Местный "алхимик" с ником LifeKILLED на базе основных теней Юнити "сварил" свое опен-сорсное зелье которое и выложил на суд общественности. Доработанная система теней привнесет (буду сравнивать на Very High Resolution):
1) тени от источников света типа POINT теперь действительно мягкие - нет ступенек от PCF-фильтрации
2) подправлен биос теней - избавились от ситуации, когда тень начинается дальше места стыка объекта с поверхностью
3) тени от полупрозрачных объектов и системы партиклов корректные - они теперь не выглядят как шахматная сетка
4) затенение по дистанции видимости (пока не риализовано) - товарищ LifeKILLED сейчас разрабатывает систему обсчета теней в зависимости от расстояния объекта к источнику освещения. Это даст более корректный физический результат: объекты которые расположены ближе к ИС будут давать более размытые тени на поверхности, а дальние объекты - более четкие. Будем ждать.
Да и того что есть за глаза хватает)
не обошлось и без минусов:
1) доработанные тени в среднем на 5-10% медленнее - быстрее они будут только с понижением качества 2) при понижении качества на тенях от полупрозрачных объектов проступают артефакты фильтрации - в принципе можно убивать качество с расстоянием.
Немного поднастроил тень по инструкции автора - просто показалось что она излишне размытая и биос чуток подкрутил. Вот ссылка POINT SHADOW после скачки распаковать архив по адресу: "Program Files\Unity\Editor\Data\CGIncludes" заменив исходник. Перед запуском Юнити найдите "Директория проекта\Library и удалите папку Shader Cache. Затем запускаем Юнити и юзаем новые тени. Настройку теней делал через Mono Develop. Почему-то файл прям в дериктории не сохраняется, поэтому я держал его отдельно в папке, там и настраивал, а потом копировал с заменой в CGIncludes. По настройке (указываю с номером строк):
102| mydist *= 0.999; // bias - соответственно биас тени - отвечает за точность построения тени. Нужно соблюдать баланс чтобы плоские поверхности не артефачили с замозатенением и чтобы не было отступа тени от объекта. базовое значение было 1.5 что создавало артефакты - я его чуток уменьшил.
104| const float downscale = 512.0f; - степень размытости тени - чем меньше тем размытие больше
остальное не крутил.
Вот итог (система Athlon2 x3, 8Gb DDR3, GTX 650 ti):
тут то в принципе сцена маленькая. Это конечно не RTSM (Ray-Traced Shadow Mapping) но всяко лучше того что было)