백페이스 도태
Back-face culling컴퓨터 그래픽에서 백페이스 컬링은 그래픽 객체의 다각형이 보이는지 여부를 결정한다.폴리곤의 포인트가 화면에 투영될 때 시계 방향인지 시계 반대 방향인지 테스트하는 그래픽 파이프라인의 한 단계다.사용자가 전면 폴리곤에 시계 방향의 권선이 있지만 화면에 투사된 폴리곤에 시계 반대 방향의 권선이 있다고 지정한 경우, 카메라와 반대 방향으로 회전한 후 그리지 않는다.
이 프로세스는 프로그램이 그릴 다각형의 수를 줄임으로써 개체를 더 빠르고 효율적으로 렌더링할 수 있도록 한다.예를 들어, 도시의 거리 장면에서는 일반적으로 카메라를 마주보는 건물의 측면에 다각형을 그릴 필요가 없다; 그것들은 카메라를 마주보는 측면에 완전히 가려져 있다.
일반적으로 백페이스 도금은 닫히고 불투명한 기하학만 포함하는 경우 렌더링된 장면에서 가시적인 아티팩트를 생성하지 않는 것으로 가정할 수 있다.투명 다각형이 포함된 장면에서는 알파 구성 과정을 통해 후향 다각형이 보일 수 있다.와이어프레임 렌더링에서 백페이스 컬링은 은선 제거 문제를 부분적으로 해결하는 데 사용할 수 있지만 닫힌 볼록 형상에 대해서만 사용할 수 있다.
관련된 기법은 카메라의 시야 내에 폴리곤이 있는지 여부를 결정하는 클리핑이다.
또 다른 유사한 기법으로는 폐색 도태라고도 하는 Z-컬링(Z-culling)이 있는데, 이 기법은 다른 눈에 보이는 폴리곤이 시야에서 덮고 있는 폴리곤의 도면을 건너뛰려고 시도한다.
비현실적인 렌더링에서는 특정 얼굴이 카메라에서 멀리 향하기보다는 보이는지 여부에 의해 도태될 수 있다.후처리 효과 없이 윤곽이나 토온 쉐이더를 시뮬레이션하는 데 "전면 도태" 또는 "전면 도태"를 사용할 수 있다.[1]
실행
백페이스 도태 구현 방법 중 하나는 표면의 도트 곱이 정상이고 카메라 대 삼각 벡터가 0보다 크거나 같은 삼각형을 모두 폐기하는 것이다.
여기서 P는 뷰 포인트, V는0 삼각형의 첫 번째 꼭지점, N은 정상이며, V에0 인접한 삼각형의 측면을 나타내는 두 벡터의 교차 제품으로 정의된다.
교차 제품이 비확정적이므로 교차 제품의 측면에서 정규 분포를 정의하면 정점 순서(바인딩)를 사용하여 삼각형 표면에 상대적인 정규 방향을 지정할 수 있다.
점이 이미 시야 공간에 있는 경우 P는 원점인 (0, 0, 0)으로 가정할 수 있다.
또한 위의 불평등을 행렬의 결정요인으로 표현하고 거기에 투영 행렬을 적용함으로써 투영 공간에서도 이 방법을 사용할 수 있다.[2]
반사 패리티를 기반으로 하는 다른 방법이 존재하는데, 표면 정규를 계산할 수 없는 2차원(CCW 체크라고도 함)에 더 적합하다.
2차원(동종 좌표)의 단위 삼각형을 다음과 같이 정의하도록 한다.
다른 삼각형의 경우 2차원에서도
단위 삼각형을 변환하는 행렬 정의:
따라서:
매트릭스 M에 홀수 반사 수가 포함되어 있으면 삼각형을 폐기하십시오(단위 삼각형의 반대쪽을 향함).
단위 삼각형은 기준으로 사용되며 변환 M은 두 삼각형 사이의 정점 순서가 다른지 여부를 나타내는 트레이스로 사용된다.정점 순서가 2차원에서 변할 수 있는 유일한 방법은 반성을 하는 것이다.반사는 (정점 순서에 관해서) 비자발적인 함수의 예로서, 따라서 반사의 짝수는 반사를 전혀 적용하지 않은 것처럼 삼각형이 같은 면을 향하게 될 것이다.홀수 반사는 마치 한 반사가 끝난 직후처럼 삼각형이 반대쪽을 향하게 할 것이다.반사의 수가 홀수인 변환은 항상 음의 스케일링 계수를 가지며, 마찬가지로 스케일링 계수는 반사가 없거나 반사가 많더라도 양수인 것이다.변환의 스케일링 계수는 그 행렬의 결정 인자에 의해 계산된다.
참조
- ^ https://jorick.vanderhoeven.ch/assets/files/sketch-shading.pdf[bare URL PDF]
- ^ 데이비드 에벌리(2006년).3D 게임 엔진 설계: 실시간 컴퓨터 그래픽에 대한 실용적인 접근법, 페이지 69.모건 카우프만 출판사, 미국 ISBN0122290631.