Войти
ПрограммированиеФорумГрафика

Пишем простой рейтрейсер используя Vulkan Raytracing (комментарии) (2 стр)

Страницы: 1 2 3 4 5 Следующая »
#15
5:27, 19 ноя. 2018

itmanager85
> выпустили бы уж какую нибудь RT демку
Это подойдет?
https://youtu.be/LXo0WdlELJk


itmanager85
> будут ли статьи в которых будут представлены различные варианты использования
> возможностей аппаратного RTX - типа там различные модели освещения (с
> задействованием переотражений, тенями, преломлениями) / AO / Dynamic GI ,
> возможно ещё что ? (ну т.е. в виде чего то более завершённого и глубже
> проработанного)
Если честно - не вижу особого смысла. Рейтрейсинг он и в Африке рейтрейсинг, и все что бы написали - уже было написано миллион раз.
Моя задача была рассказать и показать, как использовать именно Vulkan Raytracing, как раз что бы вы, или кто-то другой могли сами, основываясь на этом, построить свой рейтрейсер.

#16
5:46, 19 ноя. 2018

0r@ngE
> Это подойдет?
> https://youtu.be/LXo0WdlELJk
вроде бинарников этой демки нет , так то понятно что определённые видосы есть ..

0r@ngE
> Если честно - не вижу особого смысла. Рейтрейсинг он и в Африке рейтрейсинг
а ты кстате что в своём ray tracer'е отражения просто суммируешь что ле ? :D по идее их делить надо после этого на глубину трассировки, иначе яркость выкручивается (с каждым переотражением) ..

но вообще понятно , твоя статья исключительно об использовании самой возможности нахождения пересечений.

0r@ngE
> и все что бы написали - уже было написано миллион раз.
конкретно про использование различных моделей освещения с ray tracing'ом в наглядном виде с примерами - найти проблематично ..  есть конечно OptiX с демками но там тоже не сказать полноценное рассмотрение всех возможностей ray tracing'а ..

#17
5:57, 19 ноя. 2018

itmanager85
> а ты кстате что в своём ray tracer'е отражения просто суммируешь что ле ?
Все еще проще - я считаю что поверхность 100% отражающая, потому приходящий луч отражается, и продолжается трассировка до тех пор, пока не упремся во что-то другое.
Это все го лишь демонстрация того, как организовывать многоуровневую трассировку используя Vulkan Raytracing.

#18
17:10, 19 ноя. 2018

А как советуют организовать стриминг карт?
Каждый раз перестраивать TLAS или создавать новую TLAS для подгружаемого куска карты, а переключаться между ними в RayGen шейдере?

#19
17:53, 19 ноя. 2018

/A\
> А как советуют организовать стриминг карт?
Кто советует?

Несколько TLAS держать в любом случае прийдется, для оптимизации (тени, например, трейсить по одному, свет по другому, отражения по третьему).
В случае стриминга .... имхо проще иметь 2 TLAS для round-robin, и асинхронно перестраивать, трейсится по текущей.
В теории ее строить можно на отдельной queue, я не пробовал.

#20
17:56, 19 ноя. 2018

0r@ngE
> В теории ее строить можно на отдельной queue
Только ядер в гпу от этого не прибавляется...

> Кто советует?
Ну может были где рекомендации, который я пропустил.

> Несколько TLAS держать в любом случае прийдется, для оптимизации
А где почитать подробнее в чем тут профит?

#21
(Правка: 18:04) 18:03, 19 ноя. 2018

/A\
> А где почитать подробнее в чем тут профит?
Профит в том что ты трейсишься по специфическим наборам

> Только ядер в гпу от этого не прибавляется...
Потому написал что это теория. Я не в курсе кто и как собирает AS, хотелось бы больше информации о том как работает черный ящик.

> Ну может были где рекомендации, который я пропустил.
Я пока не находил

#22
18:20, 19 ноя. 2018

0r@ngE
> Я не в курсе кто и как собирает AS, хотелось бы больше информации о том как работает черный ящик.
Написано что это compute операция, так что можно использовать так же как async compute.
Хотя, если трасировка работает на отдельных ядрах и полностью асинхронна, то можно выполнять параллельно с растеризацией.
Но вот где именно происходит построение AS не очень понятно, в новых спеках добавили отдельный stage для построения AS, вполне возможно что работает на обычных compute ядрах, чтоб не пересекаться с трасировкой

#23
18:20, 19 ноя. 2018

0r@ngE
> Профит в том что ты трейсишься по специфическим наборам
Как эти наборы оптимизировать под конкретную трассировку?

#24
18:38, 19 ноя. 2018

/A\
> Как эти наборы оптимизировать под конкретную трассировку?
Ну для того же GI можно юзать сильно упрощенную сцену.

Разные LOD для теней / отражений тоже, имхо, make sense.

#25
3:53, 20 ноя. 2018

выглядит очень круто, респект за пример

#26
(Правка: 8:00) 7:48, 20 ноя. 2018

Была исправлена ошибка в логике преломлений (на выходе не менялся индекс преломления, что неверно, ибо порядок прохождения сред меняется).
Прошу прощения за эту досадную ошибку, код Raygen шейдера был исправлен.

Исправленная ветка с кодом - https://github.com/iOrange/rtxON/tree/Version_2_1


screen_08_opt | Пишем простой рейтрейсер используя Vulkan Raytracing (комментарии)

#27
9:35, 20 ноя. 2018

itmanager85
Вы просили нагнуть RTX ?

Честный GGX в рантайм, 1280*720, 512 самплов, roughness = 0.15
Только отражения (правда для каждого отражения считается lambertian и тени, сами считайте сколько это лучей получается)
FPS виден ;)

ggx_rtx | Пишем простой рейтрейсер используя Vulkan Raytracing (комментарии)
#28
10:07, 20 ноя. 2018

0r@ngE
> GGX
чёт ни чё впечатляющего не заметно :D не видно к тому же особой разницы с демкой pica pica которая бегает на RTX в реал тайм ..

0r@ngE
> Вы просили нагнуть RTX ?
ну и нагибать разумно не более чем до 15-20 FPS , а лучше ближе к 30 FPS, хоть и скажем в 1024x768 ..

#29
(Правка: 11:53) 11:44, 20 ноя. 2018

0r@ngE нагнул так нагнул :) Как по лбу молотком !
А теперь надо нагнуть деликатно и оптимизировано :)
А то 4.8 FPS на такой сцене, как то удручающе.
На видеокарте с RTX технологией и за 96 тысяч рублей.
Получили три болта и три канцелярские кнопки за 96 тысяч рублей :)))

Страницы: 1 2 3 4 5 Следующая »
ПрограммированиеФорумГрафика