Может кто-нибудь нашел paper по их технологии освещения листьев? Подскажите ссылку, пожалуйста.
И хотелось бы узнать у кого какие мысли по реализации?
На сколько я понял основная фишка — в подповерхностном рассеивании или «просвечивании» каждого листочка, а так же в тенях. Но для такой техники нужно рендерить геометрию дважды — из камеры и источника света. А если учесть, что листики с прозрачностью и их очень много, возникают вопрос — как? К тому же, что то мне подсказывает, что они учитывают рассеивание света внутри объема кроны дерева. Возможно какой то частный случай глобального освещения?
Пока на вскидку подобрал такой алгоритм:
Считают объем внутри дерева (нечто вроде VXGI, но с сильным упрощением), потом хитрым инстансингом клонируют их на большой местности с учетом детализации и некоторых изменений. А именно: считают воксельный объем освещения внутри дерева, далее рендерят все это, при этом детализация воксельного «минипространства» зависит от удаленности дерева от камеры. При таком подходе имитация просвечивания получается атоматом, а так же учитывается прозрачность.
Все проще. Есть коэффициет просвечивания листа — те какая часть света с источника пройдет сквозь. Скорей всего это модификация wrap diffuse.
Для листьев которые в тени — доля такого света ноль.
Для прямого освещения используются хитрые нормали. — не к поверхности каждого листа. Для этого крона дерева апроксимируется сферическими (или похожими) кластерами. И нормаль листа счиается по ближайшей точке этого кластера.
+ добавляются дополнительные коэффициентя для затенения листьем по «vertex color» который может использоваться так что бы сделать крону более разнообразной визуально.
В целом это все уже даст близкую картинку и все довольно дешево по накладным расходам. Сложней методы в браузер сложно пропихнуть. Те надо больше работаты делать на стадии «компиляции».
Вышел Unreal Engine 4.7 с поддержкой HTML5 и WebGL