Написать шейдер для Unity 5 Personal
Входные параметры шейдера: цвет (float4 Color), 2D текстура _MainTex.
Условия работы:
- Можно использовать либо вертекс\фрагмент, либо сурфейс, на ваш вкус.
- Удар по перформансу - не более, чем на 20% выше дефолтного Standart материала.
Обставновка:
- Шейдер расположен только на 1 объекте - это нестатичная плоскость.
- На плоскость воздействуют лампочки, а так же падают тени от объектов.
- Тип рендера камеры deferred (не legacy, так что помоему для лампочек будет “deferred lighting” aka Light Pre-Pass).
Задача шейдера строго следующая:
- Берется результирующий цвет точки (на объекте с материалом шейдера) и выясняется, попадает ли хоть крупица света от любой лампочки,
- если да, то пиксель не рисуется (clip, discard)
- если нет, то пиксель должен рисоваться строго указанным сшплошным цветом (параметр _Color) * tex2D от текстуры, и никаким более
- При рисовании пикселя обязательно учитывать альфа канал, т.е. общую прозрачность видимой области плоскости.
- При рисовании пикселя (если вариант "не clip") ни в коем случае нельзя учитывать его освещенность, результирующий цвет не должен зависеть от расстояния до лампочек.