Форум программистов, компьютерный форум, киберфорум
DirectX
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/6: Рейтинг темы: голосов - 6, средняя оценка - 5.00
4 / 4 / 2
Регистрация: 15.11.2014
Сообщений: 40

Отрисовка Gizmos в RayTracer (SharpDX-ComputeShaders)

09.03.2016, 16:59. Показов 1213. Ответов 7
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый вечер, такая задача: необходимо отрисовывать Gizmos в рейтрейсере, который реализован на DirectX (враппер SharpDX) на ComputeShaders. Пока думаю рисовать их с помощью растеризатора, так как рейтрейсером тут явно не получится, но не понимаю, как мне растеризовать только мои гизмы, но с учетом depth buffer, и провести композицию двух получившихся текстур в одну?

С уважением, HartMagic

Добавлено через 20 часов 6 минут
Окей, тогда такие вопросы: как мне часть примитивов рендерить (растеризация), а часть не рендерить, но всё записывать в буфер глубины? И как провести композицию двух получившихся бэкбуферов?

Добавлено через 10 часов 5 минут
Перечитав кучу статей, пришел к выводу, что это дело называется depth compositing 2D-3D images, но не нашел ни одного примера на DirectX (только OpenGL): на msdn вообще только один абзац, что такое возможно, а что и как - хз. Судя по описанию для OpenGL алгоритм таков: 1) рейтресим и сохраняем результат 2) включаем альфаблендинг, включаем z-тест, отключаем запись в Color buffer и рендерим вначале все объекты на сцене, кроме gizmos 3) включаем запись в Color buffer и рендерим теперь Gizmos 4) рисуем фуллскрин квад проводим композицию.
Не знаю: как отключать запись в Color buffer (в OpenGL это делается одной строкой, по DirectX я даже упоминания не нашел), как соединить результаты двух рендеров...буду благодарен любым пинкам в правильном направлении и любым советам!

Добавлено через 14 часов 52 минуты
Как я и думал: рейтрейсим, потом пишем сцену только в буфер глубины, потом рисуем Gizmos. Все с одним backbuffer и RenderTarget. Единственное, я так и не нашел, как отключать write to color buffer. Есть св-во у OutputMerger - BlendSampleMask, 0 - не пишем, 1 - пишем, но при 0 - не пишется и в Z-buffer. Подскажите пжл, как мне отключить запись в color buffer, но оставить запись в Z-buffer?

Добавлено через 2 часа 26 минут
Как вариант - обнулять рендертаргет и рисовать, тогда пишется только в Z-Buffer. Тема закрыта, всем спасибо за прекрасные ответы и помощь!
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
09.03.2016, 16:59
Ответы с готовыми решениями:

Прорисовка Gizmos
Ребята всем доброго времени суток ! рисую габаритный контейнер для пустышки с помощью Gizmos.DrawWireCube(transform.position, new...

SharpDx c#
Начал потихоньку изучать sharpdx Пытался сделать оверлей, но никак не получается очистить экран без потери прозрачности окна ...

Медленный SharpDX 2D
Привет всем! Есть задача: отрисовать около 150 многоугольников примерно по 100-200 точек, залитых однородным цветом (у каждого свой...

7
 Аватар для snake32
3514 / 1697 / 236
Регистрация: 26.02.2009
Сообщений: 8,504
Записей в блоге: 6
10.03.2016, 10:41
HartMagic, сорри за нубство но что такое Gizmos?
0
4 / 4 / 2
Регистрация: 15.11.2014
Сообщений: 40
10.03.2016, 12:39  [ТС]
В целом, это вспомогательные объекты на сцене: отображение осей, сетки, различные значки, например, показывающие, что этот объект является источником звука, или чем-то еще.
1
 Аватар для snake32
3514 / 1697 / 236
Регистрация: 26.02.2009
Сообщений: 8,504
Записей в блоге: 6
10.03.2016, 12:42
То есть задача сводилась к тому чтобы отобразить Gizmos всегда поверх всех остальных объектов на сцене?
0
4 / 4 / 2
Регистрация: 15.11.2014
Сообщений: 40
10.03.2016, 12:51  [ТС]
Как раз-таки наоборот - гизмы должны рисоваться с учетом Z-buffer'а, иначе они всегда будут поверх, а нужно, чтобы они перекрывались. Но, сцена-то рейтрейсится, а гизмы рисуются линиями толщиной в один пиксель, и отрейсить их будет просто невозможно, поэтому их лучше растеризовать. Но вот тут стала проблема, из-за моих больших просветов в DirectX я не сразу допер, как можно решить данную задачу))
0
 Аватар для snake32
3514 / 1697 / 236
Регистрация: 26.02.2009
Сообщений: 8,504
Записей в блоге: 6
10.03.2016, 13:50
Цитата Сообщение от HartMagic Посмотреть сообщение
Как раз-таки наоборот
Ну тогда, да - кроме как запоминать глубину в рейтрейсе вариантов не вижу...
Ох и гизма - идиотское название
0
4 / 4 / 2
Регистрация: 15.11.2014
Сообщений: 40
10.03.2016, 15:27  [ТС]
да чтож поделаешь, какое есть)) так во многих пакетах 3д-графики (аля 3ds Max) называют
0
9944 / 2945 / 496
Регистрация: 05.10.2013
Сообщений: 7,998
Записей в блоге: 240
26.03.2016, 00:14
В движке Unity, то же эти штуки называются Gizmos:
Description

Gizmos are used to give visual debugging or setup aids in the scene view.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
26.03.2016, 00:14
Помогаю со студенческими работами здесь

Уроки SharpDX
Где можно найти уроки/книги по SharpDX?

Падение SharpDX
Привет всем! Версия SharpDX 2.5.0, обновиться пока не могу, ибо много кода придется переделывать (как оказалось, очень плохо у 3 версии с...

Документация по SharpDX
Доброго времени суток уважаемые товарищи! Решил я заняться графикой, погуглил и понял что лучше всего SharpDX, но документации по нему...

SharpDX не компилирует шейдеры
Здравствуйте, не знаю сюда ли это или в .Net ветку. В общем начал изучать SharpDX, до этого с голыми графическими апи не работал вообще,...

SharpDX.Windows ошибка reference
Скачал с офф сайта SharpDX, подключил нужные dll, при сборке пишет Ругается на using SharpDX.Windows, dll с этим пространством имён...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-rectangles-sdl3-c. zip finish-rectangles-sdl3-cpp. zip
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая ссылка» (hard link),. . .
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru