利用全景图创建一个天空球

废话不说,先上效果图 利用全景图创建一个天空球
文章图片
image.png 利用全景图创建一个天空球
文章图片
image.png

  • 怎么样?效果不错吧。说一下大体做法,是用一张全景图贴在了一个球体上。然后指定shader。
  1. 创建一个3D球体,然后位置最好位于坐标原点。
  2. 然后将你事先准备的全景图贴在这个球体上,unity会自动创建材质。球体的控制面板上也会出现shader组件
利用全景图创建一个天空球
文章图片
image.png
  1. 然后创建一个shader脚本。
Shader "Custom/InsideVisible" { Properties { _MainTex ("Base (RGB)", 2D) = "white" {} }SubShader { Tags { "RenderType"="Opaque" } Cull front// ADDED BY BERNIE, TO FLIP THE SURFACES LOD 100Pass { 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. 最后,完活,观察成果。

    推荐阅读