RenderTextureで実装する簡易鏡
概要
鏡もどきを簡単に実装する知見です。現実の鏡とは違い、どちらかと言えばカメラの映像を映した液晶ディスプレイ。RenderTextureを用いる事で、そのまま写真撮影にも応用できるので、そういった使い方をするのであれば、この手法がおすすめです。カメラのFOVも好きに調整できるので、平面的な写真が撮りやすい鏡も作れます。(FOVが低いほど平面的に写せてよい感じになる。)
実装方法
1.RenderTexture
を作成。サイズは任意に変更。
2.Material
を作成。Albedo
に1で作成したRenderTexture
を設定し。Shader
をStandard
からLegacy Shaders/Self-Illumin/VertexLit
に変更することで、明るく良い感じに表示される。
※StandardとLitの違い
3.鏡に映すためのカメラを作成。TargetTexture
に1で作成したRenderTexture
をアタッチする。
4.Quad
を作成。Size
やPosition
を調整する。2で作成したMaterial
を設定。拡大/縮小
のX
がマイナスになっているのは、鏡のように反転させるため。
5.Quad
の子オブジェクトにCamera
を設定、Position
やfieldOfView
、nearClipPlane
を調整する。Quadにカメラの映像が写っていれば完成。
カメラのPosition
を計算する方法についてはこちらを参照
完成イメージ
以下はFOV30のカメラを使用してRenderTextureをPNG保存したものです。PNG化についてはRenderTexture
png
保存
とかでぐぐれば出てくるので割愛します。この鏡の実装について書いたのは、RenderTextureを適用したMaterialのShader設定について記述している記事が殆ど無かった為です。暗くて泣いていたUnity初心者はきっと私だけなのでしょう。