RenderMonkey で Light Prepass レンダリングを実装しようとしています。これまでのところ、Normal+Depth パスでは、Normal バッファは正しい結果を得ているように見えますが、Depth バッファは 1 つの色しか表示しません。深度バッファが正しいかどうかを確認するにはどうすればよいですか? ワークスペースのダウンロード リンク: http://www.mediafire.com/?jq3jmantyxw
1 に答える
0
水色は実際にはRGB値0.0, 1.0, 1.0
です。深さは(通常)Zを表す単一のチャネルであるため、テクスチャからサンプリングすると、最初のチャネルである赤に返されます。欠落しているチャネルの緑、青、およびアルファは、ハードウェアによって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;
}
カメラの設定によっては、次のようなものが得られます。
于 2012-07-10T18:38:17.710 に答える