0
我正試圖在RenderMonkey中實現Light Prepass渲染。到目前爲止,在Normal + Depth中,看起來正常緩衝區正在得到正確的結果,但深度緩衝區只顯示一種顏色。我如何檢查我的深度緩衝區是否正確? 工作區下載鏈接:http://www.mediafire.com/?jq3jmantyxw深度緩衝區只顯示藍色
我正試圖在RenderMonkey中實現Light Prepass渲染。到目前爲止,在Normal + Depth中,看起來正常緩衝區正在得到正確的結果,但深度緩衝區只顯示一種顏色。我如何檢查我的深度緩衝區是否正確? 工作區下載鏈接:http://www.mediafire.com/?jq3jmantyxw深度緩衝區只顯示藍色
淡藍色實際上是RGB值0.0, 1.0, 1.0
。由於深度(通常)是代表Z的單個通道,因此從紋理採樣時,它會在第一個通道中返回紅色。缺少綠色,藍色和alpha通道將用硬件取代1.0。
您的下載鏈接不起作用,因爲我懷疑已經有2年了。
您應該確保您的像素着色器返回既COLOR0
和COLOR1
語義(注意,深度是float4
儘管輸出是一個單通道紋理):
struct PS_OUT { float4 color : COLOR0; float4 depth : COLOR1; };
PS_OUT ps_main(PS_INPUT Input)
{
PS_OUT Output;
// your color shader here
Output.color = myFinalColor;
Output.depth = myFinalDepth; // e.g. Input.posz/Input.posw from your vertex shader
return Output;
}
根據您的相機設置,你可以得到是這樣的:
我們可以看到所產生的深度緩衝的形象? – Goz 2010-07-07 10:29:17
它只是淺藍色。沒有其他的。如果你想看,使用這個鏈接http://www.flickr.com/photos/[email protected]/4772680803/ 其實,你可以下載我上面上傳的工作區,並嘗試爲你的自己 – Ethan 2010-07-08 02:26:20