수학/이득우의 게임 수학

외적의 활용 (5) - 백페이스 컬링

monstro 2026. 5. 6. 10:52
728x90
반응형

- 개요

게임은 실시간으로 빠르게 렌더링을 처리해야 하므로

시선에 보이지 않는 메시의 뒷면은 그리지 않고 건너뛰는 것이 효과적이다

위와 같이 카메라에서 보이지 않는 메시의 뒷면생략하는 기법을 백페이스 컬링이라고 한다

이때 백페이스 컬링은 메시의 삼각형을 구성하는 세 정점외적을 활용하여 구현할 수 있다

 

- 백페이스 컬링의 구현

정점 버퍼와 인덱스 버퍼

 

메시를 구성하는 삼각형의 세 점을 지정하는 인덱스 버퍼에는 점의 순서가 나열되어 있다

이를 활용하면 삼각형의 방향을 지정하지 않아도 외적을 사용하여 삼각형이 향하는 방향을 파악할 수 있다

 

점의 순서에 따른 삼각형의 면의 방향의 결정

 

첫 번째 삼각형에서는 정점이 시계 방향으로 나열되어 있으므로 삼각형의 면의 방향지면의 뒤편을 향한다

두 번째 삼각형에서는 정점이 반시계 방향으로 나열되어 있으므로 면의 방향지면을 향할 것이다

위와 같은 상황에서 삼각형의 면의 방향카메라의 시선 방향을 대조하여 

서로 마주보면 삼각형을 그리고, 같은 방향을 바라보면 그리기를 생략하는 것이 백페이스 컬링의 원리이다

 

- 백페이스 컬링의 수식

외적을 사용한 삼각형의 면의 방향 벡터 계산

 

삼각형을 구성하는 세 개의 점을 각각 p0, p1, p2라고 할 때

세 개의 점으로 두 개의 벡터를 만들고 외적을 사용하면 삼각형의 면이 향하는 법선 벡터를 계산할 수 있다

 

내적을 사용한 삼각형의 면과 카메라가 마주보는지 판별

 

삼각형의 면이 카메라와 마주보는지를 판단하기 위해서는 내적을 사용하여 계산할 수 있다

뷰 공간에서 카메라의 시선 방향 -Z이므로 (0, 0, -1)면의 방향 벡터를 내적하였을 때

계산 결과가 음수라면 두 개의 벡터는 서로 반대 방향을 의미하므로 해당 면은 그리면 된다

728x90
반응형

'수학 > 이득우의 게임 수학' 카테고리의 다른 글

삼중곱  (0) 2026.05.13
로드리게스 회전  (0) 2026.05.06
외적의 활용 (4) - 회전행렬의 생성  (0) 2026.04.29
외적의 활용 (3) - 좌우 방향 판별  (0) 2026.04.01
외적의 활용 (2) - 법선 벡터  (0) 2026.04.01