All streams
Search
Write a publication
Pull to refresh
1
0
Send message
Про вот это уравнение.
image
Явно приводить и в лицо им тыкать не стоит, я согласен, но в это уравнение рано или поздно упираешься сам. Просто я хорошо помню, как голову ломал, мол, какого чёрта это вообще работает, откуда берутся всякие странные коэффициенты, и ни в одной статейке не было написано ничего, что меня бы убедило. А когда взял это страшилище, помучался и сделал всё собственными руками, всё встало на свои места.
Спасибо вам уже сказали, а я, пожалуй, выскажу из всех мыслей, которые хочется высказать, две.
1. «Формула для расчета отраженного света от поверхности» совсем непонятно, откуда взялась, как мне получить такую же, как ей пользоваться и что она означает. Да, я соглашусь, тема сложная. Там непривычная физика и математика непростая, в двух словах не увяжешь. Но можно было бы хоть ссылку какую-нибудь оставить и на неё опереться. В итоге ни читатель, ни вы сами, понятия не имеете, что там происходит.
2. С генерацией направления в полусферу получилась жесть. Функция RandomSpherePoint стреляет не в сферу, а в полусферу — там хорошо видно, что z = cosTheta >= 0. Не так хорошо, но всё же видно, что распределение получается даже не равномерное в полусферу `p(theta, phi) = sin(theta) / 2pi`, а неравномерное, вытянутое к нормали `p(theta, phi) = sin(2 * theta) / 2pi`. Правда, эта самая неравномерность позволяет выкинуть cos(theta) из той непонятной формулы для расчёта света, будто его и не было. Соответственно, дальше от полусферы отрезается сектор, и лучи стреляют в порезанную полусферу, если я ничего не путаю. Если поправить, отрисовываться всё будет более корректно. Сейчас, как мне кажется, там какое-то месиво, но это я вполне могу чего-то не понять и упустить.
В общем, эту статью читать можно, но очень осторожно. Path tracing — представитель алгоритмов семейства «закодить просто; непросто понять, что где-то накосячил; сложно найти, где именно; очень сложно сделать всё корректно», поэтому без способности ориентироваться в теоретических его аспектах, браться за него — так себе идея.

Information

Rating
Does not participate
Registered
Activity