Не работает шейдер

72
14 мая 2021, 23:00

Написал шейдер который должен делать эффект тумана в дали, но он не работает. В чём может быть причина?

Создаю Material выбираю Custom/FogEffect шейдер, устанавливаю цвет тумана после этого, перехожу на камеру вешаю скрипт устанавливаю ссылку на этот Material, и ноль эффекта, как-будто и шейдера нет.

C#

using UnityEngine;
[ExecuteInEditMode, ImageEffectAllowedInSceneView]
public class FogEffect : MonoBehaviour
{
    public Material Fog; // Material с туманом
    void Start()
    {
        GetComponent<Camera>().depthTextureMode = DepthTextureMode.Depth;
    }
    void OnRenderImage(RenderTexture src, RenderTexture dest)
    {
        Graphics.Blit(src, dest, Fog);
    }
}

ShaderLabs

Shader "Custom/FogEffect"
{
    Properties
    {
        _MainTex ("Texture", 2D) = "white" {}
        _FogColor("Fog Color", Color) = (1,1,1,1)
    }
        SubShader
    {
        Cull Off ZWrite Off ZTest Always
        Pass
        {
            CGPROGRAM
            #pragma vertex vert
            #pragma fragment frag
            #include "UnityCG.cginc"
            sampler2D _CameraDepthTexture;
            fixed4 _FogColor;
            struct appdata
            {
                float4 vertex : POSITION;
                float2 uv : TEXCOORD0;
            };
            struct v2f
            {
                float2 uv : TEXCOORD0;
                float4 vertex : SV_POSITION;
                float scrPos : TEXCOORD1;
            };
            v2f vert (appdata v)
            {
                v2f o;
                o.vertex = UnityObjectToClipPos(v.vertex);
                o.scrPos = ComputeScreenPos(o.vertex);
                o.uv = v.uv;
                return o;
            }
            sampler2D _MainTex;
            fixed4 frag(v2f i) : COLOR
            {
                float depthValue = Linear01Depth(tex2Dproj(_CameraDepthTexture, UNITY_PROJ_COORD(i.scrPos)).r);
                fixed4 fogColor = _FogColor * depthValue;
                return fogColor;
            }
            ENDCG
        }
    }
}
READ ALSO
Как сосчитать ссылки на объект c#?

Как сосчитать ссылки на объект c#?

Мне необходимо подсчитать ссылки на объект, и если осталась только 1, то удалить егоДело в том, что все объекты хранятся в словаре:

171
Проблема с createmap &lt;messaging.dto&gt;

Проблема с createmap <messaging.dto>

в чем может быть проблема? Есть 2 таблицы ContractCity и ContractManagerЯ хочу промаппить в Messaging

114
Как создать службу одним куском с#?

Как создать службу одним куском с#?

Как создать полноценную службу в одном исполнимом модуле? Есть готовое приложение (можно взять нулевое winforms)Добавляю services

113