728x90
Unity) 그림자(Shadow) :: 뻔뻔한블로그 (tistory.com)
쉐도우 맵의 원리
뎁스 텍스쳐 생성
(카메라를 통해서 현재 씬이 렌더링되는 정보를 렌더링하는 과정)
렌더링될 픽셀의 컬러 대신 카메라로부터 픽셀의 위치까지의 거리를 렌더링함
(카메라 가까이 있는 픽셀일수록 검은색 , 멀수록 흰색)
그 후, 그림자 처리를 위한 별도의 버퍼 필요.
이 버퍼에는 광원에서 바라보는 오브젝트의 픽셀의 깊이를 저장함.
-> 이것이 쉐도우맵
그림자의 깊이를 저장하는 버퍼를 만든 후, 픽셀 쉐이더에서 깊이를 비교하는 과정을 진행함
+ 넓은 영역을 커버하기 위해 여러 구역으로 나누기도 하고, 계단 현상을 없애기 위해 여러번 샘플링하여 필터링 처리하는 부가적인 기능도 추가하기도 함..
=> 이 과정으로 인해 그림자가 렌더링비용 중 많은 부분 차지하게 됨
뎁스 텍스쳐 + 쉐도우 맵 완성되면
이 둘을 비교하여 그림자 영역을 계산함.
뎁스 텍쳐에 있는 픽셀들 순회하면서 해당 픽셀을 광원으로부터 거리로 변환하여 비교
728x90
'CS > 그래픽스 & 게임수학' 카테고리의 다른 글
Double buffering (1) | 2023.12.15 |
---|---|
diffuse / ambient / specular (0) | 2023.12.15 |
DiretX / OpenGL (1) | 2023.12.15 |
게임에서의 삼각함수 활용 (2) | 2023.12.11 |
게임에서의 외적과 내적 (1) | 2023.12.11 |