simplestarの技術ブログ

目的を書いて、思想と試行、結果と考察、そして具体的な手段を記録します。

Built-inのポストエフェクトでキューブマップをサンプリング

解像度を与えておき、uv 値の 0~1 の値を使って
ピクセルにおけるカメラ位置から発せられる視線ベクトル viewDir を求めます
あとはキューブマップのサンプル処理につなげるだけです

            fixed4 frag (v2f i) : SV_Target
            {
                fixed4 col = tex2D(_MainTex, i.uv);
                half2 uvBase = i.uv - 0.5h;
                // Edge Screen Position
                float2 esp = float2(uvBase.x * _ScreenEdge.x, uvBase.y * _ScreenEdge.y);
                // ピクセルの視線ベクトル
                float3 viewDir = normalize(_CameraRight * esp.x + _CameraUp * esp.y + _CameraForward);
                // キューブマップ色
                half4 color = UNITY_SAMPLE_TEXCUBE(_CubeMap1, viewDir);
                // ブレンドした背景色に溶けるようにFogをかける
                return color;
            }

ゲームで使わなくなったので消すファイルなのですが
あとで使いたくなることもあるかもしれないので、記録しておきますね
しばらく動いてたので、ご参考にどうぞ