[DX11 입문 제12장] Blur 예제 질문 드립니다.

GPG 시리즈 관련 질답, 논의 공간.

Moderator: 류광

비회원

Blur 예제 질문 드립니다.

Post by 비회원 »

수평, 수직 컴퓨트쉐이더 작업 이후에

DrawScreenQuad() 함수 호출시
Effects::BasicFX->SetDiffuseMap(mBlur.GetBlurredOutput());
부분이 이해가 안됩니다. 오타는 분명 아닌것 같은데...
제 생각에는
Effects::BasicFX->SetDiffuseMap(mOffscreenSRV);
이게 맞는거 같아서요


DrawScene()함수에서
mBlur.BlurInPlace(md3dImmediateContext, mOffscreenSRV, mOffscreenUAV, 4);
BlurInPlace함수 안에 들어가 보면
수평 작업 이후 수직 작업할때
Effects::BlurFX->SetInputMap(mBlurredOutputTexSRV);
Effects::BlurFX->SetOutputMap(inputUAV);
순서로 됩니다. 결국 최종적으로 컴퓨트셰이더에서 Write하는 자원뷰는 inputUAV가 맞지 않나요?
그러면 inputUAV에 대응되는 셰이더 리소스뷰가 mOffscreenSRV가 아닌지요?

mBlur.GetBlurredOutput()로 가져오는 자원뷰는
수평 Blur작업까자만 진행된 자원뷰로 보이는데요...

헷갈리네요..
류광
Posts: 3805
Joined: 2001-07-25 09:00
Location: GPGstudy
Contact:

Post by 류광 »

지적하신 게 맞는 것 같습니다. p.513의 1~6을 따른다면 Blur의 화면 밖 텍스처가 A이고 BlurFilter의 텍스처가 B이므로, 최종적으로는 A의 텍스처에 대한 SRV, 즉mOffscreenSRV를 텍스처로 사용하는 게 맞겠습니다.

애초에 설계가 조금 허술한 게 아닌가 싶은데요. 실제로 이 책의 DX12 버전에 있는 예제에서는 BlurFilter 클래스가 좀 더 "실수하기 어렵게" 바뀌었습니다(대신 입력 텍스처를 매번 복사하는 것으로 보이는데, 성능에 어느 정도 영향이 있을지는 모르겠습니다..)

https://github.com/d3dcoder/d3d12book 에 DX12 버전의 모든 예제가 있습니다.
비회원

답변 감사합니다.

Post by 비회원 »

언제나 친절하게 답변해 주셔서 너무 감사드립니다.

그런데 류광역자님.. 보안상(?) 답변이 불가능하실진 모르겠는데..
혹시 12버전 번역 진행중이신가요?
진행중이시라면 어제쯤 완료될까요?^^;;

그리고.. Real-Time Rendering 최신판은 예정 없으신지요?ㅠ_ㅠ
류광
Posts: 3805
Joined: 2001-07-25 09:00
Location: GPGstudy
Contact:

Post by 류광 »

예 DX 12 책은 지금 번역 중이고 11월 하순에 탈고 예정입니다. 책은 내년 봄이나 초여름에 나오지 않을까 예상합니다. Real-Time Rendering은 예정이 없고요.
Post Reply