このトピックでは、オンラインの情報は本当に小さすぎる、メインはOnRenderImage実装後に治療上のいくつかの基本的な操作です。
それはめったに尊敬の原理を説明しないようにするために、更新を追加することです見つかった場合でも、私は戻っへのネットワーク外に発見していないことがあります。
オンライン情報:HTTPS://gameinstitute.qq.com/community/detail/112744を
参照することができますが、主にこの実験で私を見て分析することができます。
この記事では、さまざまな状況考え分析の結果、主ビット長ったらしいであってもよいです。
図1に示すように、テストスクリプトを調製する:TestRenderTexture.csは、
メインカメラにハングアップするために、スクリプトの内部の内容が空である今回は、バックは、さまざまな状況をテストします。
場合は、この時点では何もしませんでしたが、メインカメラには、我々は次のようにカメラは、球を見てみましょう、TestRenderTextureスクリプトをハング:
フレームデバッガ開くには、この時間:
この時点では、すべてが前に、私たちと同じです変更なし。ここでは、実験はまだ始まっていないので、結論はどんな根拠なしで、どんな結論を作りません。[OK]を、私たちは、に進みます。
2は、TestRenderTexture.csで、次の操作を実行します。
スクリプト書き換えOnRenderImage方法で)2.1を、変更を参照してください
using UnityEngine;
public class TestRenderTexture : MonoBehaviour
{
private void OnRenderImage(RenderTexture source, RenderTexture destination)
{
// 不做任何操作
}
}
:画面が暗かった
フレームデバッガ:
この時間はほとんど変化、これは1つの黒い画面であり、第二は、カメラの画面が一時的TempBufferの行くを描画します。
ブレークポイントの状況は:
ソースは、一時的なバッファであり、先はnullです。
我々は継続します。
図3は、OnRenderImage方法では、ブリット方法:
コードは次のようになります。
using UnityEngine;
public class TestRenderTexture : MonoBehaviour
{
private void OnRenderImage(RenderTexture source, RenderTexture destination)
{
Graphics.Blit(source, destination);
}
}
このとき、結果:
フレームデバッガ:
ブレークポイントの状況:
我々ブリット操作はOnRenderImage方法で行われるので、画面には、物事を見ることができます。
このブリットの参照、ソース一時バッファ先は、我々はそれが画面に直接コピーされ、宛先が空である知っている、nullにコピーし、一時的なバッファであり、ヌル、です。だから我々は、画面に何かを参照してください。メインフレームは、デバッガながら、BlitCopyが構築されたシェーダを使用して複数の描画呼び出しImageEffectsは、一時的なバッファは、その後、画面にコピーされます。
図4に示すように、RTを与えるために作成し、スタート方法でカメラに割り当てます
using UnityEngine;
public class TestRenderTexture : MonoBehaviour
{
public RenderTexture rt;
public Camera m_camera;
public void Start()
{
rt = new RenderTexture(m_camera.pixelWidth, m_camera.pixelHeight, 16); //16位的深度
rt.name = "xxx";
m_camera.targetTexture = rt;
}
}
画面:
画面には、私たちのために作成された、黒、およびRT targetTextureカメラです。
デバッガフレームに入れる:
この時点で、我々は、画面が黒ですので、上がる作成室温に物事を描画します。
図5に示すように、スクリプトで、OnRenderImage方法が、唯一の空のメソッドを追加します。
この場合、スクリーンはプロンプトの出力は、目標が何かを描画していないと言う、まだ黒です。
デバッガフレームに入れます: