2010-07-07 8 views
0

Light Prepass 렌더링을 RenderMonkey에서 구현하려고합니다. 지금까지는 Normal + Depth 패스에서 Normal 버퍼가 올바른 결과를 얻었지만 Depth 버퍼는 하나의 색상 만 표시합니다. 깊이 버퍼가 맞는지 아닌지 어떻게 확인할 수 있습니까? 작업 영역 다운로드 링크 : http://www.mediafire.com/?jq3jmantyxw깊이 버퍼가 파란색으로 만 표시됩니다.

+1

결과 깊이 버퍼의 이미지를 볼 수 있습니까? – Goz

+0

그냥 하늘색입니다. 다른 건 없어. 보고 싶다면이 링크를 사용하십시오. http://www.flickr.com/photos/[email protected]/4772680803/ 실제로 업로드 한 작업 공간을 다운로드하여 자기 자신을 위해 사용해보십시오 – Ethan

답변

0

하늘색은 실제로 RGB 값 0.0, 1.0, 1.0입니다. depth는 (보통) Z를 나타내는 단일 채널이기 때문에 텍스처에서 샘플링하면 첫 번째 채널에서 빨간색으로 반환됩니다. 누락 된 채널 녹색, 파란색 및 알파는 하드웨어로 대체됩니다.

의심되는 2 년이 지났기 때문에 다운로드 링크가 작동하지 않습니다.

당신은 당신의 픽셀 셰이더가 모두 COLOR0COLOR1 의미 (즉, 깊이가 출력되는 단일 채널의 질감에도 불구하고 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; 
} 

카메라 설정에 따라, 당신은 얻을 수 예 :

enter image description here

관련 문제