お世話になっております。
ポストエフェクトを自作するためにRenderTextureを使って色々と試しています。
メインカメラとアングルの違うサブカメラを用意し、
それぞれのレンダリング結果をアルファ合成してみようと思ったのですが、
どうにも思った通りの結果になりません。
メインカメラはSkyBoxの背景とキャラクターをレンダリングします。
サブカメラはCulling Maskでキャラクターのみをレンダリングさせ、結果をRenderTextureに保存しました。
2枚のテクスチャを合成する処理
//Return用変数を宣言 fixed4 re; //メインカメラのレンダリング結果 fixed4 Main= tex2D(_MainTex, i.uv); //サブカメラのレンダリング結果 fixed4 Sub= tex2D(_SubTex, i.uv); //二台のカメラのレンダリング結果をSubのα値で合成 re = lerp(Main, Sub, Sub.a); //画面に出力 return re;
上記処理で合成したのですが、
サブカメラのClear FlagをSkyBoxやSolidColorにするとアルファ値が背景に潰されてしまうのか合成にならず、
DepthOnlyやDontClearにすると合成はできるものの、オブジェクトを移動させると残像が残ってしまいました。
サブカメラのtargetTextureに毎フレームnew RenderTextureを入れれば残像が消えて望んだ結果になるのですが、
解決法として正しくない気しています。
アルファ値を保持したままSolidColorで更新する方法などありますでしょうか?
そもそもテクスチャのアルファ値を使った合成自体がナンセンスで、ステンシルなどを使ってマスクするしかありませんか?
御教示のほど、何卒よろしくお願い致します。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/08/25 11:49
2019/08/25 16:15
2019/08/25 22:58
2019/08/26 21:59
2019/08/26 23:33