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

Сделал software raytracer(осторожно трафик) (2 стр)

Страницы: 1 2
#15
21:31, 12 мая 2018

Delfigamer
> Да поди просто самый топорный и unbiased, без всяких этих ваших кэшев, деревьев и прочих структур данных.
Не тянет на unbiased, видны артефакты, как будто непрерывные источники заменяются на пачку точечных.


#16
1:36, 13 мая 2018

Delfigamer
> О... Оден-сама? (#>.<#)
не, это под впечатлением от toribash, просто мне надоело кодом расставлять сферы, поэтому до головы дело не дошло.

Suslik
> покажи сцену с одним переотражением и маленьким количеством сэмплов?

+ Показать

Delfigamer
> Мне кажется, или второе отражение здесь слишком слабое?
второе отражение дорогое, его тут нет.

оно есть только на трех кадрах в начале темы и вот здесь

zozozo
я второе переотражения по быстренкому just for lulz прикрутил, поэтому оно считается слишком честно. у меня конечно была идея сохранять световую карту для каждого треугольника геометрии, а затем пользоваться ей при расчёте вторичного освещения, но мне так не интересно сразу начинать торговать точностью ради скорости, мне хотелось узнать сколько надо времени чтобы более менее честно посчитать.

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

вообще я уже почти забил на этот raytracer, т.к это не правильный путь. мне очень охота по честному свет считать, тоесть запускать фронт частиц из источников света, а затем тупо ждать когда это добро долетит до камеры. ещё охота всякие квантовые эффекты воспроизвести :)


Panzerschrek[CN]
> На Жабаскрипте, небось, писал рейтрейсер?
raytracer на С++11

nodejs опционально используется чтобы закидывать raytracer и сцену к worker`ам, а потом доставлять потоки пикселей с worker`ов к hub`у который всё складывает в файловую_систему/шарит_по_tcp

Delfigamer
> без всяких этих ваших кэшев, деревьев и прочих структур данных.
из оптимизации есть рендер сцены с 4096 направлений в картинки 64x64 где каждый пиксель - это что-то типа small_vector<int>


upd:
добавил ещё одну картинку с 65536 направлений

#17
2:27, 13 мая 2018

Adler
> 512 направлений
Ааа, так ты на ровной сетке интегрируешь! Всё с тобой понятно.
...Да, так делать нехорошо, потому что ровные сетки алиасят. Правильный вариант - генерировать выборку случайным образом, тогда у шума не будет такого квадратного вида.
Adler
> вообще я уже почти забил на этот raytracer, т.к это не правильный путь. мне
> очень охота по честному свет считать, тоесть запускать фронт частиц из
> источников света, а затем тупо ждать когда это добро долетит до камеры.
Можно делать наоборот - испускать луч из камеры и ждать, пока он не долетит до светящейся поверхности/не разорится на борделях по дороге.
Adler
> ещё охота всякие квантовые эффекты воспроизвести
Тут уравнение рендеринга (которое «давайте пустим стопятьсот лучей и сложим их вместе») не поможет, потому что его ключевая предпосылка - это «давайте не будем усложнять себе жизнь волнами и нелинейностями, и проведём расчёты в идеальном мире прямых лучей и передаточных функций». Если хочется честного расчёта световых волн - придётся честно рассчитывать волны. Если же ты будешь считать волны на лучах - это уже будет biased, fake and gay и, на самом деле, очень круто, если будет стабильно давать правильный ответ.

#18
3:49, 13 мая 2018

Adler
у меня такие же были артефакты на rasterization-based рендере:


я такое писал на GPU, потому что GPU всегда была натасканна на растеризацию и подобные сцены считаются относительно эффективно и можно хранить геометрию в самом обычном vertex buffer + index buffer представлении без всяких деревьев. но в чём смысл делать такой метод на CPU, если можно гораздо эффективнее сделать какой-нибудь kd-tree и выпускать случайные семплы bidirectional path tracing'ом?
#19
11:07, 13 мая 2018

Adler
эта сцена - какая-то лоу-поли спонза?

#20
11:28, 13 мая 2018

У меня не получается конвертировать в gltf данную "Like Sponza"

#21
20:15, 13 мая 2018

Вау, как будто в 2000 год попал.

Страницы: 1 2
ПрограммированиеФорумГрафика

Тема в архиве.