#unity3d #colors #shader #fragment-shader
#unity3d #Цвет #шейдер #фрагмент-шейдер
Вопрос:
Я создал сцену для реализации примера дифференциального рендеринга в AR. Несмотря на то, что я добился желаемого поведения, цвет моего объекта отображается как полностью белый(насыщенный). На первом изображении куб насыщен, но обычно в режиме редактора, а также в левом нижнем углу, в текстурах рендеринга объект отображается красным. Вот как это выглядит в конечном результате, Сел объект. В своем коде шейдера я объединяю эти слои визуализации для достижения дифференциальной визуализации. Над изображением слева внизу слева направо указаны c_camera, c_shadow, c_noshadow и c_mask.
Вот мой шейдер фрагментов:
float4 frag (v2f_img i) : COLOR { float4 c_camera = tex2D(_MainTex, i.uv); float4 c_noshadow = tex2D(_NoShadowTex, i.uv); float4 c_shadow = tex2D(_ShadowTex, i.uv); bool c_mask = tex2D(_MaskTexture, i.uv).a gt; 0.0; float4 c_final=c_camera (c_shadow-c_noshadow) c_mask; //I'm suspicious from this line. return c_final; }
Я считаю, что, объединив эти значения в c_final, я получаю переполнение диапазона 0,1 цветов. Однако я попытался вручную установить значение c_final.r равным 1.0 и c_final.gb 0,0, но ничего не изменило. Есть какие-нибудь зацепки на этот счет? Заранее спасибо.