5 テクスチャをブレンドする

このシェーダー入門は、おもに数式に焦点をあてる。なぜかって?筆者が数学なんもわからんの民だからだ。まちがっていたらおしえてほしい。

この記事は 7日間でマスターするUnityシェーダ入門 を自分なりに理解しようと努めた内容だ。また、プログラムはここからの引用であることが多い。詳しく知りたかったら、原典を参照してほしい。


テクスチャ 1 とテクスチャ 2 をブレンドする。このとき、マスク画像が必要になる。

マスク画像が黒に近いときは 1 を出し、白に近いときは 2 を出す。

color=texture1p+texture2(1p)\text{color} = \text{texture1} \cdot \text{p} + \text{texture2} \cdot (1 - \text{p})

これは、線形補完関数 lerp で表せる。

fixed4 c1 = tex2D (_MainTex, IN.uv_MainTex);
fixed4 c2 = tex2D (_SubTex,  IN.uv_MainTex);
fixed4 p  = tex2D (_MaskTex, IN.uv_MainTex);
o.Albedo = lerp(c1, c2, p);

バックリンク

ネットワーク

site_graph 20241209-develop-index 🔧技術 - インデックス 20250213-start-shader そろそろシェーダーをはじめる 20241209-develop-index->20250213-start-shader 20250213-1-write-ice-shader 1 氷のようなシェーダーを書く 20250213-2-highlight-outline 2 輪郭を浮かび上がらせる 20250213-3-create-stained-glass 3 ステンドグラスをつくる 20250213-4-create-scroll-water-surface 4 スクロールする水面を作る 20250213-5-blend-texture 5 テクスチャをブレンドする 20250213-6-move-circle-and-ring 6 円やリングを動かす 20250213-7-create-noise 7 ノイズをつくろう 20250213-8-create-fresnel-reflecting 8 フレネル反射をつくる 20250213-9-create-sea 9 海をつくる 20250213-start-shader->20250213-1-write-ice-shader 20250213-start-shader->20250213-2-highlight-outline 20250213-start-shader->20250213-3-create-stained-glass 20250213-start-shader->20250213-4-create-scroll-water-surface 20250213-start-shader->20250213-5-blend-texture 20250213-start-shader->20250213-6-move-circle-and-ring 20250213-start-shader->20250213-7-create-noise 20250213-start-shader->20250213-8-create-fresnel-reflecting 20250213-start-shader->20250213-9-create-sea