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

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

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

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
<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: 2016年3月23日, by :