如何将立方体贴图应用于Unity 3D中的球体反转

时间:2016-11-27 21:44:27

标签: unity3d unity5 virtual-reality

我正在尝试将.jpg纹理应用于球体基元(倒置球体)的内部,以制作用于VR的简单3D光球,我遇到了问题。我正在使用团结5.4

我导入360度全景.jpg纹理,将其纹理类型设置为立方体贴图,并将其映射设置为经度/纬度(圆柱形)。

我创建了一个新材质,我可以在材质的着色器下拉列表中找到唯一的立方体贴图着色器是skybox / cubemap。我选择了这个,但它不会让我将材料分配给球体。我可以将它分配给背景,但我需要它在球体上,我做错了什么?如何将我的立方体贴图纹理添加到可以应用于倒置球体的材质上?

1 个答案:

答案 0 :(得分:1)

这是一个可能有用的着色器

Shader "Flipping 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"
}