Render.ru

фейк рейтрейсинг

Denis V Nemolovskiy

Пользователь сайта
Рейтинг
2
#1
Вот такой вопрос как сделать рейтрейсинг? :)
Было такое предположение что если сделать проход сферы с наложенным енвироментом (с позиции камеры) и потом положить его сзади на поверхность (бек) то потом при прощёте сферы с прозрачностью получится эффект преломления сквозь неё … Типа рейтрейсинг …
Но получается что текстура проецируется как орфографик а камера «с%*№» перспективная и текстура за объектом меньше. Вопрос как это побороть … ?
Если конечно нет другого правильного метода.
 
#2
Если вопрос о фейковом преломлении - его можно сделать с помощью стандартного РАТового environment map, когда предварительным проходом рендерятся 6 битмапов "изнутри" объекта, а потом наносятся хитрым образом в качестве "refraction" на сам объект (шейдер для расчета вектора направления юзает функцию fresnel()). Само собой, "честную" картину преломления это не даст даже при условии, что объект - шар, но кое-что приемлемое таким образом вполне можно сделать...
 
#3
Я бы предложил написать собственный шейдер для этого (что сам и сделал), который потребляет карту нормалей данного объекта (в моем случае шейдер их у объекта спрашивал, но можно карту заранее отрендеренную ему подсовывать), а затем искажать луч I (вектор из камеры), вобщем вот так вот. Это на самом деле близко к тому что в природе происходит, только я путано объяснил.
 
Сверху