Тема: PlayCanvas
Показать сообщение отдельно
Старый 17.11.2016, 17:39   #114
Mr_F_
Терабайт исходников
 
Аватар для Mr_F_
 
Регистрация: 13.09.2008
Сообщений: 3,947
Написано 2,189 полезных сообщений
(для 6,051 пользователей)
Ответ: PlayCanvas

Вот немного более наглядно про VSM:



PCF, VSM8, VSM16, VSM32.

Для тех, кто в танке:
PCF делает фильтрацию при применении, т.е. тень вычисляется каждый кадр на каждый пиксель в нескольких соседних точках, получается типа фильтрованная.
VSM позволяет применять любой обычный блюр к текстуре тени ещё до её наложения. В плейканвасе мы применяем гауссиан блюр, можно легко выбрать его ширину. Т.к. блюр не обязан применяться каждый кадр, VSM отлично работает, когда тень не нужно обновлять постоянно (это движок также позволяет настроить). Например, если персонаж бежит под непересекающимися фонарями, можно обновлять только тот, под которым он сейчас, другие будут просто накладывать тень довольно дёшево. Минус - VSM больше занимают видеопамяти.

Технические детали:
VSM8 это на самом деле 16-битный VSM, где 2 канала упакованы в RG и BA восьмибитной текстуры соответственно. Для многих задач прекрасно хватает, работает везде.
VSM16 это уже 16-битный EVSM, засчёт экспоненты выше точность, вблизи кастеров особенно. Запаковать в ргба8 его не вышло, так что требует честных халф-флоатов (на ряде мобилок не поддерживаются), т.к. там нужна нормальная целая/дробная часть.
VSM32 это 32-битный EVSM, круче уже низя, весит тоже прилично, требует поддержки рендера в флоат)
__________________
бложик | geom.io | твиттер | faded | демо 1 2 | роботы | лайтмаппер
(Offline)
 
Ответить с цитированием
Эти 5 пользователя(ей) сказали Спасибо Mr_F_ за это полезное сообщение:
ARA (17.11.2016), Arton (17.11.2016), mauNgerS (17.11.2016), pax (18.11.2016), St_AnGer (17.11.2016)