그래픽스 정리

백 페이스 컬링

water_beetle 2023. 10. 10. 18:28

Back Face Culling

문제 상황

위 그림과 같은 정육면체인 주사위 오브젝트가 화면에 출력된다고 생각해보자.

  1. 완전 정면에서 볼 경우에는 그냥 사각형만 볼 수 있을 것이다.
  2. 약간 비스듬하게 보면 주사위의 3면을 볼 수 있을것이다.

이렇게 우리가 보는 방향에 따라 주사위의 볼 수 있는 면이 달라진다.
그런데 이 때 주사위의 화면 출력에서 안보이는 면을 계산할 필요가 있을까?
-> Back Face Culling

해결 방법

각 면의 Normal Vector를 계산한 다음, 카메라 방향과 내적해
카메라와 마주보는 면(Front Face)만 Rendering하자

Front Face : Normal Vector가 카메라랑 마주봄
Back Face : Normal Vector가 카메라와 같은 방향

  • Primitive Assembly 단게에서 Back Face는 Pipeline에서 Culling된다.
  • 평균적으로 절반이 culling되기 때문에 속도가 2배 빨라짐
  • 단 이 때, 투명한 물체이거나 완전히 둘러싸이지 않으면 Back Face Culling을 사용할 수 없다.