Adler
> блин, всего-то хотел предложить переписать цикл вот как то так:
Нафига мелочиться, надо так:
for (auto row : bitmap) for ( auto pixel : row) ...
любопытно , а на WebGL можно динамически генерировать BVH деревья ? (чтобы трейсить анимированные сцены)
xma
> любопытно , а на WebGL можно динамически генерировать BVH деревья ?
Ну если можно, то на WebGL и физику можно написать.
Mikle
wawe
у вас в трейсерах сразу два очень сильных упрощения — только отражения без рассеивания и только сферы. нужно снять хотя бы одно из них, а то оценивать-то особо нечего.
а вот эта демка WebGL без построения BVH что ле работает ? (в ней объекты можно перемещать)
http://madebyevan.com/webgl-path-tracing/
Suslik
> только отражения без рассеивания
Рассеивание, это Diffuse? Оно у меня есть, видно достаточно явно.
Suslik
> только сферы
Ещё плоскость :), но это, действительно, не стоит внимания.
Mikle
> Рассеивание, это Diffuse? Оно у меня есть, видно достаточно явно.
ну так и покажи чисто диффузные поверхности, чтобы не было вопросов. очевидно же, что их рендерить куда сложнее.
Suslik
Может ты скриншоты спутал? Вот мой:
Кирпичный, бежевый и белый шары с преобладающим Diffuse, очевиднее некуда, отражений на них значительно меньше.
Вечером могу сделать регулятор уровня отражений и выложить новый вариант.
Mikle
> Кирпичный, бежевый и белый шары с преобладающим Diffuse, очевиднее некуда,
> отражений на них значительно меньше.
освещение на них называется зеркальным с частичным поглощением, а не diffuse'ом. diffuse должен выглядть как сильно размытое отражение, а не как смешение цвета материала и зеркального отражения.
вот простейший пример полностью диффузного материала:
а вот — частично зеркального:

вся сложность в том, что для расчёта диффузного освещения недостаточно выпустить единственный луч на пиксель, как в твоём алгоритме, так как он отражается в общем случае недетерминированно. можно, например, выпускать семейство лучей и комбинировать их вклад методами монте-карло, но математически корректно скомбинировать их в общем случае — вовсе не так-то просто.
Suslik
Понятно, я использовал понятие Diffuse в том смысле, в каком оно используется, например, в Direct3D.
Mikle
> Понятно, я использовал понятие Diffuse в том смысле, в каком оно используется,
> например, в Direct3D.
в FFP (в том числе в d3d9 ffp) используется аппроксимация диффузного освещения, использующая точечный, либо направленный источник света и не учитывающая переотражений лучей между поверхностями. в таком приближении диффуз действительно очень легко посчитать, но он не учитывает вторичное освещение.
dave
> Ну если можно, то на WebGL и физику можно написать.
http://mentalx.org/concept/X5/X5_2016_05_19_physics/ я писал, 1-5 клавиши
XProger
> http://mentalx.org/concept/X5/X5_2016_05_19_physics/ я писал, 1-5 клавиши
Упавшие кубы продолжают дрожать.
Тема в архиве.