Я пытаюсь изменить цвета объектов таким образом, чтобы они казались красными, когда они находятся рядом с экраном, и фиолетовыми для дальнейших объектов / точек с экрана.
Я попытался реализовать код для фрагментной части шейдера в Unity3D, но он не работает.
fixed4 frag(v2f i) : SV_TARGET{
//get depth from depth texture
float depth = tex2D(_CameraDepthTexture, i.uv).r;
//linear depth between camera and far clipping plane
depth = Linear01Depth(depth);
//depth as distance from camera in units
depth = depth * _ProjectionParams.z;
//get source color
fixed4 source = tex2D(_MainTex, i.uv);
if(depth >= _ProjectionParams.z)
return RGB(violet);
else
return RGB_value_of_object_according_to_the_depth;
}
Здесь я могу получить цвет источника, но не могу изменить цвет объекта на красный, если он ближе к камере, и фиолетовый, если он самый дальний.
Если быть точным, я не могу исправить код для условия if / else.
Заранее спасибо за любую помощь, которую я могу получить.
Code Credits: код, используемый в уроках Роньи по упражнениям