利用全景圖創(chuàng)建一個天空球

廢話不說,先上效果圖

image.png
image.png
  • 怎么樣?效果不錯吧。說一下大體做法,是用一張全景圖貼在了一個球體上。然后指定shader。
  1. 創(chuàng)建一個3D球體,然后位置最好位于坐標原點。
  2. 然后將你事先準備的全景圖貼在這個球體上,unity會自動創(chuàng)建材質。球體的控制面板上也會出現(xiàn)shader組件
image.png
  1. 然后創(chuàng)建一個shader腳本。
Shader "Custom/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  
    }  
} 
}

該腳本的作用是讓在球體外部的貼圖在球體內部可以查看,并且是正向查看。

  1. 然后掛載腳本,在球體的shader上選擇你自己的寫的shader腳本。


    image.png
  2. 最后,完活,觀察成果。
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

友情鏈接更多精彩內容