Unityで使えるSkyboxを作る その2

こんにちは、Kishiです。今回もSkyboxをつくります。(その1

前回はBlenderを使いましたが、今回はシェーダーを書きます。

<br />
Shader &quot;Custom/base_uv_skybox&quot; {<br />
	Properties {</p>
<p>	}<br />
	SubShader {<br />
		Tags { &quot;RenderType&quot; = &quot;Background&quot; &quot;Queue&quot; = &quot;Background&quot; }<br />
		Pass {<br />
			ZWrite Off<br />
			Cull Off<br />
			Fog { Mode Off }</p>
<p>			CGPROGRAM<br />
			#pragma vertex vert<br />
			#pragma fragment frag</p>
<p>			#include &quot;UnityCG.cginc&quot;</p>
<p>			struct appdata {<br />
				float4 position : POSITION;<br />
				float3 uv : TEXCOORD;<br />
			};</p>
<p>			struct v2f {<br />
				float4 position : SV_POSITION;<br />
				float3 uv : TEXCOORD;<br />
			};</p>
<p>			v2f vert(appdata v) {<br />
				v2f o;<br />
				o.position = mul(UNITY_MATRIX_MVP, v.position);<br />
				o.uv = v.uv;<br />
				return o;<br />
			}</p>
<p>			fixed4 frag(v2f i) : COLOR{<br />
				return fixed4(i.uv.xyz, 1);<br />
			}</p>
<p>			ENDCG<br />
		}<br />
	}<br />
}<br />

これで、以下のような基本的な世界ができます。

kcs_skybox2_0

これを基にして_Timeを使って色々動かしてみたり、不思議な紋様を描いてみたり、といったことができます。

例えば、以下はパーリンノイズを適用したみたものです。

kcs_skybox2_1

Posted on