Cullling이란,
그래픽스 파이프라인에서 무언가를 그릴 지 말 지를 결정하는 과정이다.
대표적으로 Back-face culling이 있는데, 이는 폴리곤의 화면에 보이지 않는 안쪽 부분을 굳이 렌더링하지 않는 것을 의미한다. (이는 GPU 단에서 각 폴리곤의 normal vector/법선벡터를 확인해 처리해준다)
Frustum Culling이란,
카메라 시야각 내에 보이는 오브젝트만을 렌더링하는 기법으로 이는 GPU가 아닌 CPU단에서 연산되는 일종의 전처리이며, 여기서 걸러지는 오브젝트들은 애초에 GPU로 보내지지 않는다.
구체적으로 판정하는 방법은,
그래픽 오브젝트 별로 Collision 판정을 할 범위를 3차원 물체로 설정하고 (주로 직육면체 혹은 구를 사용한다)
그 물체가 카메라 시야각을 나타내는 3차원 잘린 피라미드(truncated pyramid)와 충돌하는지 안하는지를 판정하는 형식으로 이루어진다.
정확히는 어떤 정점이 이 잘린 피라미드의 각 면들에 대해 면 법선벡터 양의 방향에 있는지, 음의 방향에 있는지를 판별해 카메라 시야각 안에 해당 정점이 들어와 있는지를 판정하고 이를 이용해 어떤 오브젝트를 렌더링할 지 결정한다.
이같은 연산의 수학적 원리에 대해서는 이 포스트에서 설명한다.
참고:
https://m.blog.naver.com/PostView.naver?isHttpsRedirect=true&blogId=sipack7297&logNo=220438495355
https://www.youtube.com/watch?v=4p-E_31XOPM
'computer graphics > graphics theory' 카테고리의 다른 글
[그래픽스] Skeletal Animation/Rigging (0) | 2022.06.18 |
---|