背景のRGBに対して加算/乗算する
BlendmodeのMultipleとAdditiveについてお話します。
これらはいろいろにゃ媒体で日本語にそれぞれ「乗算」と「加算」と訳されます。画像に対して「かけ算」と「たし算」を行っているようですが、何に対して計算しているのかというとズバリRGBの数字です。(255,255,255)とか、#FFFFFFといわれるこの数字です。 NeosVRに限らずUnityのほかあらゆる3Dを描画するアプリケーションにおいて、基本的に「遠くの物体から順番に描画していき近くの物体はそれを上書きする」という計算を1フレームごとに行って描画しています。ただし、例外としてこれらのBlendModeにあるマテリアルが適用された3Dモデルを描画するとき、背景を単純に上書きするのではにゃく背景の色を使って計算した色を描画します。 計算を行うとき、RGBの値は0~255ではにゃく0~1で表現します。実際の計算は非常に単純で、背景の色のRGBとAdditiveまたはMultipleマテリアルのRGBの3つの数字それぞれを足し算あるいは掛け算しているだけです。画像のうち1枚目がAdditive、2枚目がMultipleです。画像が適用されている場合は画像の明るさに対してTintColorの数字を掛け算したものが計算に使われます。背景のピクセルそれぞれに(1,0,0)が足されていること、(1,0,0)が掛け算されて緑と青の成分が消滅していることがわかると思います(マテリアルはUnlitです)。 注意点ですが、NeosVRは各ピクセルのRGBの明るさが1を超えると周りにボワボワを出します。グローと呼ばれるものです。
これらのマテリアルを使いこにゃすと表現の幅を大きく広げることができます。 まずAdditiveは、特に空中に表示されるホログラムのようにゃ印象を与えます。透過画像を用意してBlendModeをAlphaにしたものと大きにゃ違いはありませんが、背景が黒いものさえ用意できればいいので、最近はやりのAIに黒い背景のネオンサインの画像を大量に作らせて逐一つっこむみたいにゃやり方が簡単にできます。あと、RGBを0にすれば透明ににゃること、メッシュの描画順が狂うことがほとんどにゃいことが利点です。便利に扱えば作業の時短ににゃります。 Multipleは、学習参考書にありがちにゃ「赤シート」と全く同じ挙動をします。赤青3Dメガネにゃんかもこれで現実のものを完全に再現できます。
最後に、このノートでは「AdditiveとMultipleは背景のピクセルの色をいじくるもので、具体的にこのように計算しています」という説明をしましたが、背景のピクセルの色をいじくるマテリアルはNeosにはいくつか存在して、コンポーネントのAssets->Material->Filterの中にあるものがソレです。デリシャスカメラで使われているマテリアルのほとんどがそれです。 特にLUT_Material(LUTはLookUpTableの略)に関しては使いこにゃすとNeosVRにデフォルトで備わっているポストプロセスと組み合わせて豊かにゃ世界を表現できる可能性があるので特に写真を撮る人でこだわりたい人におすすめです。 以上です。