一旦他们被统一翻转,如何反映法线

时间:2017-11-16 17:58:45

标签: unity3d shader normals

我正在尝试在球体内播放360视频。我不是团结或3D建模的专家,但我设法让360视频反转它的法线并在球体内部进行游戏。

问题是视频已经被反转翻转(右边是左边和左边是右边)。我需要纠正这个问题,尽管最后三个小时的搜索我找不到我理解的解决方案。这是我一直用作自定义着色器来实现反转的代码:

Shader "Custom/Flip Normals" {
    Properties {
        _MainTex ("Base (RGB)", 2D) = "white" {}
    }
    SubShader {

        Tags { "RenderType" = "Opaque" }

        Cull Off

        CGPROGRAM

        #pragma surface surf Lambert vertex:vert
        sampler2D _MainTex;

        struct Input {
            float2 uv_MainTex;
            float4 color : COLOR;
        };

        void vert(inout appdata_full v) {
            v.normal.xyz = v.normal * -1;
        }

        void surf (Input IN, inout SurfaceOutput o) {
             fixed3 result = tex2D(_MainTex, IN.uv_MainTex);
             o.Albedo = result.rgb;
             o.Alpha = 1;
        }

        ENDCG

    }

      Fallback "Diffuse"
}

注意:弄乱相机或视频文件本身并不理想。

0 个答案:

没有答案