0

RenderMonkey で Light Prepass レンダリングを実装しようとしています。これまでのところ、Normal+Depth パスでは、Normal バッファは正しい結果を得ているように見えますが、Depth バッファは 1 つの色しか表示しません。深度バッファが正しいかどうかを確認するにはどうすればよいですか? ワークスペースのダウンロード リンク: http://www.mediafire.com/?jq3jmantyxw

4

1 に答える 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 に答える