티스토리 뷰

CASE: Pixel shader가 수행이 안되었다고 뜬다.

여러 문제가 있을 수 있다.

  1. linear alloactor 를 사용하였던가 <쓰는 사람이 없으므로 문제 될건 없다>
  2. early depth test 에서 전멸했던가
  3. blend를 no color write로 해둬었던가

pixel alpha 값에서 머가 보인다고 하면 blend 설정을 찾아보자.

다른 증상으로는 wireframe 시 그 선부분만 배경이 비치게 된다. 왜냐하면 depth는 쓰여졌기에 다른 개체가 그 부분의 color 를 채울 수 없다.

early depth가 의심이 간다면

간단한 사각형을 가지고 테스트를 하자.

depth가 어떤 값을 가졌든 제발좀 써달라고 어필을하자.

depth 를 overwrite 하면 early depth test가 수행되지 않는다.

struct PixelShaderOutput
{
    float4 color : SV_Target;
    float depth : SV_Depth;
};

PixelShaderOutput main(PixelShaderInput input)
{ 
    PixelShaderOutput output;
    output.color = float4(1, 1, 1, 1);
    output.depth = 0.5;
    return output;
}

CASE: Pixel shader 까지 진행했는데, 안찍히는 경우

    OpaquePSO->SetBlendState( BlendNoColorWrite );

depth 쪽 설정 조작하다가 blend가 안먹혔는지 보자

이 경우는 pixel의 alpha를 보면 티가 난다.

'Game > MMD' 카테고리의 다른 글

Environment mapping + mirror (2)  (0) 2017.10.24
SV_Target 지정시에도 변화가 없을때  (0) 2017.10.23
Bloom + Emmisive (2)  (0) 2017.10.18
Physics 치마가 떨어지지 않아  (0) 2017.10.17
Tone mapping (5)  (0) 2017.10.17
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크