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

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

Страницы: 1 2 3 4 5 Следующая »
#0
8:48, 18 ноя. 2018

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

Это сообщение сгенерировано автоматически.
#1
(Правка: 8:49) 8:48, 18 ноя. 2018

Небольшое примечание:
Компания Nvidia решила стабилизировать расширение VK_NVX_raytracing, переименовав его VK_NV_ray_tracing. Так же, на днях вышла новая версия драйверов, в которых была убрана поддержка "старого" расширения для рейтрейсинга.
К сожалению, компания LunarG не поспевает, и, на текущий момент, мы имеем ситуацию, когда старое расширение не поддерживается больше последними драйверами, а использовать новое мы не можем, пока не выйдет новая версия Vulkan SDK.

В заложниках ситуации оказались многие разработчики, и автор статьи в их числе.  Арсений Капулкин (zeux), пойдя на встречу просящим (https://github.com/zeux/volk/issues/14#issuecomment-439291505) реализовал временную поддержку обоих расширений в своей замечательной библиотеке Volk.

Компания LunarG оставила мой запрос без ответа.

Будем надеяться, что ситуация в скором времени разрешится, и нам станет доступен обновленный SDK с поддержкой нового расширения.
Как только это произойдет, я обновлю текст статьи и код.

Прошу прощения за временные неудобства.
0r@ngE

#2
(Правка: 9:15) 9:14, 18 ноя. 2018

замути такую сцену - интересно сколько FPS выдаст при 1080p :D а также если её всю считать анимированной и перестраивать BVH дерево на каждый кадр :D

+ Показать

это FROL'овский ray tracer - спроси может он поделится своей моделью освещения во благо "научных" эксперементов :D
https://gamedev.ru/code/forum/?id=136598&page=16#m232

эта демка с ракурсом по умолчанию и с 3 пере- отражениями и тенями - на GTX 1080 даёт 70 FPS (в статике) [1024x768]

0r@ngE
сцену можно скачать тут (есть в т.ч. в виде obj файла)
http://sergio.gamedev.ru/shader_art

ещё интересно когда много источников освещения (тут например 6) и объекты в динамике с некоторым количеством переотражений и тенями - как например в демке ниже

кстате эта вторая демка несмотря на малое количество шаров (около 10) в 1080p на GTX 1080 тоже даёт всего около 70 FPS ..

интересно было бы поглядеть на подобную (графически) демку но с более сложными объектами .. (и тоже в динамике).

а то что насували в баттле V - полный отстой ..

если понадобятся ещё интересные графически ray trace демки - скажи , я подкину ещё :D

#3
(Правка: 10:45) 10:44, 18 ноя. 2018

0r@ngE
написал и пропал - хоть бы намекнул будут ли демки где наглядно можно оценить преимущество трассировки лучей , пусть и не в современно игровой сложности сценах и/или даже хотя бы в ограниченном разрешении ?

потому что тот шлак который льют в баттле V выглядит совсем не убедительно - отражения там почему то в основном от плоских поверхностей (не считая водички разве что), без всяких там ray tracing особых эффектов - типа множества источников освещения и теней от каждого из них и кучи переотражений .. ну т.е. всего того ради чего все пускали слюни по ray trace'у .. :D

понятно что на сцене баттлы оно (вышеперечисленное) раком встанет - но всегда можно замутить сцену попроще и разрешение поменьше :D (1024x768 например).

хотя ваще надо признать что напр. тот же Star Wars RT выглядит таки уже с определённой заявкой на прогресс , по крайней мере в одном из ожидаемых пользователей направлении использования RT .. как впрочем и новый 3DMark RT, но вот немного не хватает плотности новых эффектов ..

#4
(Правка: 11:53) 11:23, 18 ноя. 2018

ну и есть такой интересный вопрос - возможно ли чисто алгоритмически с приемлемыми затратами считать то, насколько далеко луч лежит от собственно тела треугольника, при нахождении его пересечения с ним .. для того чтобы в случае того если он лежит на грани, например пускать 4-ре лучше в этом пикселе экрана , для антиалиазинга ..

понятно что такая ботва едва ли сейчас будет совместима с RTX, но в целом для построения чёткого изображения интересно по рассуждать на тему ..

конечно что изложено в упрощённом виде, так например на гранях BVH Node также понадобится 4-ре луча на пиксель .. или например можно было бы оптимизировать нахождение соседних 4-х лучей для таких случаев, не перебирая всё подряд ..

конечно большой вопрос было бы оно быстрее чем просто 4-ре луча на пиксель :D

но если бы можно было обсчитывать границы для объёмных лучей, то теоретически возможно можно было бы получить преимущество трассируя изначально как бы в более низком разрешении и разбивая уже на большее количество лучей - уже только на гранях (треугольников и BVH Node) - для повышения разрешения до любого уровня.

я так (точнее нечто подобное просто для эксперимента) кстате делал на сцене с малым количеством треугольников, но просто обсчитывал в меньшем разрешении изначально (через 1-2 пикселя допустим по горизонтали и вертикали), потом между пикселями которые попадали в один треугольник - пересчитывал сразу пересечение недостающих пикселей сразу с этим треугольником, а остальные не просчитанные пиксели собирал в массив - и трейсил там уже полностью все их. ускорение выходило минимум на порядок :D с еле заметными артефактами одиночными мелкими.

думаю можно было бы выжать и больше :D понятно что это была упрощённая модель того что я изначально здесь описывал, да и полигонов в сцене было немного, но вообще идея выглядит довольно интересной .. :D

UPD.:

itmanager85
> для повышения разрешения до любого уровня.
до любого уровня конечно вряд ли ли получится на (особенно сильно) криволинейных поверхностях (для переотражений), - т.к. нормали могут для 4-х соседних пикселей все же по идее достаточно сильно расходится , но 1080p->2160p (DSR) по идее можно провернуть.

короче говоря не всё ещё исследовано в технологиях и техниках трассировке лучей :D

#5
(Правка: 14:26) 14:26, 18 ноя. 2018

Выложите exe и готовые бинарики плиз, чтобы ПЫЧ ПЫЧ и РЕЙТРЕЙСИНГ

#6
15:06, 18 ноя. 2018

0r@ngE
А под гибридным рендерингом ты что подразумеваешь?
Трассировку по G-буфферу, как в примерах нвидии?

Я вот хочу попробовать динамические лайтмапы на рейтрейсе, а рисование растром.

#7
0:02, 19 ноя. 2018

Какое ужасное качество.

#8
0:44, 19 ноя. 2018

gamedevfor
> Какое ужасное качество.
где ? в демке в старт посте ? алиазинг не нравится или что ? :D

#9
1:07, 19 ноя. 2018

itmanager85
в старт посте, какие то черные отражения кролика.

И твоя картинка
Изображение
тоже ужасна c черными тенями, лестницами, переотражения плохого качества.

#10
(Правка: 1:52) 1:52, 19 ноя. 2018

gamedevfor
> тоже ужасна c черными тенями
покажи где нормальные тени ?

gamedevfor
> лестницами
лестницы так просто не убрать - либо x4 DSR разрешение выставлять , либо DLSS юзать .. :D первое приведёт к 4-х кратному падению производительности , второе в действии с DXR ещё не видел ..

gamedevfor
> переотражения плохого качества.
по мне так переотражения которые не на полу (а на объектах) - выглядят весьма интересно .. покажи где оно лучше ?

#11
(Правка: 2:37) 2:36, 19 ноя. 2018

itmanager85
> покажи где нормальные тени ?

Ну тот пример с CUDA в принципе годный (хотя хотелось бы не только шаров, а что то посложнее)

#12
(Правка: 2:52) 2:48, 19 ноя. 2018

gamedevfor
> Ну тот пример с CUDA в принципе годный.
они оба на CUDA :D

второй пример - "Ray tracing on GPU with CUDA (compared to CPU)" ? да, неплохо выглядит - но как бы ещё подобрать такую модель освещения чтобы оно было идентично ? :D

вот кстате ещё интересная демка, тоже выглядит со сбалансированным качеством
https://gamedev.ru/flame/forum/?id=216540&page=26#m383

#13
3:13, 19 ноя. 2018

itmanager85
> написал и пропал
Прошу прощения, статью дописывал в 3 утра, запостил и ушел отсыпаться. А днем с семьей за город поехали отдыхать.

> будут ли демки где наглядно можно оценить преимущество трассировки лучей
Преимущество над чем? Если над растеризацией - то это факт, дело только в развитии технологий, чтоб перформанс позволял.

Arxon
> Выложите exe и готовые бинарики плиз, чтобы ПЫЧ ПЫЧ и РЕЙТРЕЙСИНГ
Проект элементарно собирается из исходников. Могу выслать архив с бинарником на почту, если сильно хочется. Сюда залить не могу по причине ограничания в 2 МБ.

/A\
> А под гибридным рендерингом ты что подразумеваешь?
Использование RTX для замены частей пайплайно современного рендера. Например стохастические тени, отражения, AO.

gamedevfor
> в старт посте, какие то черные отражения кролика.
Не могли бы вы отметить - что конкретно вы имеете ввиду?
Изображение

#14
(Правка: 4:20) 4:06, 19 ноя. 2018

0r@ngE
> Будем надеяться, что ситуация в скором времени разрешится
как то nVidia не сильно спешит утвердить своё преимущество как первопроходца передовой технологии .. :D выпустили бы уж какую нибудь RT демку (а лучше парочку) - чтоб все ахнули и побежали скупать RTX карточки .. а то так вместо лизки сам хуанг обанкротится :D

0r@ngE
> Преимущество над чем? Если над растеризацией - то это факт, дело только в
> развитии технологий, чтоб перформанс позволял.
ну т.е. я имел в виду будут ли статьи в которых будут представлены различные варианты использования возможностей аппаратного RTX - типа там различные модели освещения (с задействованием переотражений, тенями, преломлениями) / AO / Dynamic GI , возможно ещё что ? (ну т.е. в виде чего то более завершённого и глубже проработанного)

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