새소식

인기 검색어

게임 개발/그래픽스

뒷면 제거 (backface culling)

  • -

화면에 보이는 부분만 그리면 성능적인 이득을 볼 수 있다.

이것을 backface culling이라고 한다.

비슷하게 occlusion(다른 물체에 가리는 것)을 그리지 않는 culling 방식도 있다.

 

화면에 projection된 vertex의 위치가 시계방향(왼손좌표계 기준)이면 앞면, 반시계 방향이면 뒷면이라고 판단한다.

그렇다면 애초에 vertex를 저렇게 시계방향으로 잘 순서대로 잘 배치해주는 건 어떻게 작동되는거냐?

-> 그건 모델링 소프트웨어에서 지원한다.

vertex를 화면으로 projection vertex들의 좌표가 screen 좌표계로 변환된다.

월드 좌표계에서는 z방향이 화면 안으로 들어가는 방향이었다.

반대로 screen 좌표계에서는 우리쪽으로 오는 방향이다.

이때 삼각형이 앞면인가 뒷면인가를 어떻게 판단하는가?

Edge function이용, cross product를 했을때 음수라면 뒷면, 양수라면 앞면이다.

다만, 이미 projection된 2차원공간에서의 계산이기 때문에 cross product를 단순화 할 수 있다.(이전 게시물 참고)

따라서 연산량을 많이 줄일 수 있다. (ray tracing 대비)

'게임 개발 > 그래픽스' 카테고리의 다른 글

블린-퐁 쉐이딩 (Blinn-Phong Shading)  (0) 2023.11.10
원근 투영 (Perspective Projection)  (0) 2023.11.10
쉐이더 개념  (0) 2023.11.08
깊이 버퍼 (Depth buffer / z-buffer)  (0) 2023.11.07
2차원 애니메이션  (0) 2023.11.07
Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.