Unity显示360度全景照片

作者: 游戏开发小Y | 来源:发表于2017-04-08 12:58 被阅读90次

    Unity显示360度全景,其实就是把全景图片贴到一个球上,只不过,这个球是从里往外看。

    先把摄像机移动到坐标(0,0,0)。


    20170110142230066.jpg

    添加一个球体,坐标也是(0,0,0)

    20170110142331352.jpg

    把全景图片拖到球体上,


    20170110142557403.jpg

    这个时候,因为贴图在外面,所以还看不到


    20170110142659358.jpg

    新建一个着色器

    Shader "InsideVisible" {
    
    Properties {
        _MainTex ("Base (RGB)", 2D) = "white" {}
    }
    
    SubShader {
        Tags { "RenderType"="Opaque" }
        Cull front    // ADDED BY BERNIE, TO FLIP THE SURFACES
        LOD 100
        
        Pass {  
            CGPROGRAM
                #pragma vertex vert
                #pragma fragment frag
                
                #include "UnityCG.cginc"
    
                struct appdata_t {
                    float4 vertex : POSITION;
                    float2 texcoord : TEXCOORD0;
                };
    
                struct v2f {
                    float4 vertex : SV_POSITION;
                    half2 texcoord : TEXCOORD0;
                };
    
                sampler2D _MainTex;
                float4 _MainTex_ST;
                
                v2f vert (appdata_t v)
                {
                    v2f o;
                    o.vertex = mul(UNITY_MATRIX_MVP, v.vertex);
                    // ADDED BY BERNIE:
                    v.texcoord.x = 1 - v.texcoord.x;                
                    o.texcoord = TRANSFORM_TEX(v.texcoord, _MainTex);
                    return o;
                }
                
                fixed4 frag (v2f i) : SV_Target
                {
                    fixed4 col = tex2D(_MainTex, i.texcoord);
                    return col;
                }
            ENDCG
        }
    }
    }
    

    将球体的着色器改成新加的。

    20170110142954518.jpg

    这个时候,就能显示了

    20170110143245303.jpg

    相关文章

      网友评论

      本文标题:Unity显示360度全景照片

      本文链接:https://www.haomeiwen.com/subject/htylattx.html