WinCNT

Post Processing 본문

게임 프로그래밍(학습 내용 정리)/3D Game Programming

Post Processing

WinCNT_SSS 2022. 5. 19. 15:50

Post Processing

모든 그리기가 끝난 다음, 뭔가 또 처리하는 것

  • Blur
  • Bloom/Gloom
  • HDR(Legacy나 PBR과 상관 없는 의미의 HDR)
  • DOF(Depth Of Field, 피사계심도), ExponentialFog(깊이/거리 기반 안개), Motion Blur, SSAO

모든 Deffered Rendering의 기술

 

 

Deffered Renddering

픽셀 단위로 데이터가 들어오기 때문에 버텍스의 수와 많아도 상관 없다

픽셀 셰이더의 스펙이 높아지면서 빛을 발휘하기 시작했다

 

 

An Implementation of Post Processing

일단 텍스처(렌더 타겟)(들)에 모두 그린다!

Blur는 한장, DOF는 두장이 필요하다 등등

 

그 텍스처들을 적절히 조작한다

 

화면을 모두 덮는 Face 2개(즉, 사각형)에 다시 그린다

 

 

 

Blur

픽셀을 뭉갠다

 

주변의 픽셀들의 값을 적절히 배분한다

 

 

알아야 할 것들 / 주의점

Texture에 그림을 그리고, 그것을 다시 Sampler로 가져와서 다시 그림

 

 

Compute Shader

용책 DX11에서는 추가적으로 CS도 사용함

 

 

 

 

 

Deffered Rendering

첫번째 패스에서 한번 그린 걸로 따로따로 텍스처를 만들고

두번째 패스에서 조립함

 

 

 

 

두번째

 

여기서 각각의 픽셸 셰이더 출력에 알파 채널이 남게 되는 경우가 생겨서

거기에 추가적인 값을 넣게 된다

 

핵심은

ID3D11DeviceContext::OMSetRenderTargets method

SV_Target0~7

 

https://m.blog.naver.com/PostView.naver?isHttpsRedirect=true&blogId=sorkelf&logNo=40169749877 

 

 

SSS

'게임 프로그래밍(학습 내용 정리) > 3D Game Programming' 카테고리의 다른 글

Blending  (0) 2022.05.20
깊이 버퍼(Depth Buffer)  (0) 2022.05.18
Normal Mapping  (0) 2022.05.06
Picking  (0) 2022.05.06
Skinning  (0) 2022.04.29