Пишу шейдер, который раскрасит объект один в один по заданному цвету без влияния какого-либо освещения.
Написал шейдер:
- Код: Выделить всё
Shader "Custom/SubObjectColor" {
Properties {
_Emission ("Emission", COLOR) = (1,1,1,1)
}
SubShader {
Pass {
Lighting Off
SeparateSpecular Off
Color[_Emission]
}
}
}
То, что получилось можно увидеть снизу на скриншоте (MeshShadow.jpg). Но, когда я убрал освещение, то я лишился диффузных теней внутри второго окна. Для сравнения я обозначил эти окна стрелками. Если какой-то способ назначить цвет без освещения и оставить отображения теней?!
Я пробовал и такой вариант:
- Код: Выделить всё
Shader "Custom/SubObjectColor" {
Properties {
_Emission ("Emission", COLOR) = (1,1,1,1)
_Diffuse ("Diffuse", COLOR) = (1,1,1,1)
}
SubShader {
Pass {
Material {
Emission[_Emission]
Diffuse [_Diffuse]
}
Lighting On
SeparateSpecular Off
//Color[_Emission]
}
}
}
Но диффузный цвет искажает основной Emission (pic.2). Не намного, но заметно делает светлее поверхность стены, но делая яркость тени окна и там, и там ближе к одинаковой (что и нужно). Если я хочу сделать стену темнее делая темнее диффузный цвет, то тень у окна опять становится не видно, но стены по цвету идеально похожи. Если не затруднит, поясните что не так. В аттаче пакадж домика, материал и шейдер.