디퍼드라이팅 하고나면은 화면크기 메쉬에 결과물 싹 칠해버리는데, 그 위에 어떻게 오브젝트를 포워드라이팅함??
깊이테스트 꺼버리면은 디퍼드결과물 위에 그려지기는 하는데, UI처럼 아예 화면 맨앞에 렌더링됨. 즉, 디퍼드결과물이랑 섞이지가 않음.
G-Buffer에 Draw해서 각각 텍스쳐(diffuse,specular,depth,normal) 구하는건 PreRender에서 하고, 이 텍스쳐들로 화면크기의 사각형메쉬에 라이팅연산해서 최종픽셀 도출하는건 Render에서 하는데, 생각해보니 Render에서 DepthStencilView를 새롭게하니까 안섞이는게 정상인거같기는 함..
반투명 물체 그릴려는거 같은데 G-Buffer에 기록된 Depth Stencil Buffer를 Forward 렌더링할 오브젝트들 렌더링할때 그대로 써요 - dc App
디퍼드->포워드(디퍼드에서 최종적으로 그린 렌더 타겟, G-Buffer에서 기록한 Depth-Stencil Buffer 바인딩해서) - dc App
이거맛다
지금 당장은 반투명물체까진 아니긴한데 혹시 DepthEnable이나 BlendEnable 옵션 조심해야할거있음?? 꺼야한다던가 켜야한다던가
반투명한게 아니면 딱히 포워드로 따로 그려줄 이유가 없는데? 그리고 반투명 물체 그리려면 당연히 블렌딩 켜야할거고, 조심해야할건 카메라 기준 멀리 있는것부터 그려줘야한다는거 정도
아 ㅋㅋㅋ 맞음 그러긴 한데 그냥 컬라이더를 G-Buffer에 그리고싶지 않더라고 ㅎㅎ 왜 굳이 그러냐고? 그냥
아 스바 왜 안되지... G-Buffer에서 사용했던 DSV 그대로 넘겼는디...
잠깐, 반투명물체말고 그냥 일반적인 불투명객체들도 디퍼드 후에 포워드로 그리면 잘 그려지는게 정상이지?? 왜 카메라기준 멀리있는것부터 그려줘야됨?
반투명한걸 sorting해서 맨뒤에 부터 그리는이유는 가까운것부터 그리면 texture가 testing + blending할때 발생하는데 가까운것부터 그리면 해당pixel을 무시서 뒤에있는거 그려도 이미 해당 pixel이 testing되서 색이 먹힘 그래서 반투명한거 그릴땐 무조건 카메라기준 뒤에서부터
구글검색하면 바로나옴
https://heinleinsgame.tistory.com/26
아 그 내 질문은 '반투명한걸 왜 뒤에서부터 그려줘야해?'가 아니라, 디퍼드렌더후에 포워드렌더로 '불투명오브젝트'를 그릴 때 왜 다시 뒤에서부터 그려야하는지 물어본거였음 ㅇㅇ..
불투명한건 뒤에서부터 그릴필요 없긴한데 굳이 그걸 그렇게 비효율적으로 따로 포워드로 해야하나는 생각이 드네...
그래서 포기했으용... 덕분에 기술문서 만들시간 날리고 그냥 포폴영상으로만 공채지원했음 ㅠㅠ