한 가지 방법은, 같은 기저 벡터의 단지 설명 점입니다 당신은 점 하나를 적용하는 경우 : 당신이 것을 적용 할 경우
[A D G] [x] [A*x + D*y + G*z] [A] [D] [G]
[B E H] [y] = [B*x + E*y + H*z] = x * [B] + y * [E] + z * [H]
[C F I] [z] [C*x + F*y + I*z] [C] [F] [I]
즉, 행렬을 입력하면, 입력 x 축은 (A, B, C)를 따라 실행을 끝내고, 입력 y 축은 (D, E, F)를 따라 실행을 끝내고 입력 z 축은 (G, H, 나는).
내가 생각하는 것 "어느 축이 출력 z에서 가장 작은 변화가 있습니까? 즉 화면에 수직으로 가장 가깝습니다"와 동일합니까? 그래서 당신은 (C, F, I)에서 최소 크기를 가진 값을 찾아서 결정할 수 있습니다.
그런 다음 (A, B, C)와 (D, E, F)가 교차하는 제품의 z 기호를 사용하여 허용되는 것과 동일한 논리로 축을 긍정적 또는 부정적으로 바라 볼지 여부를 결정할 수 있습니다 이 테스트를 역 얼굴 제거에 사용하십시오 - 카메라가 가상으로 무한대로 뒤로 이동하면 볼 수있는 얼굴이 진실로 앞에 있습니다.
그럴 수도있는 대안 테스트를 제안합니다. 변형과 수직에 가장 가까운 얼굴 중 가장 눈에 잘 띄는 것이 가장 큰 것입니다. 램버트 라이팅 모델의 뒤에있는 논리는 얼굴이 균일 한 크기였습니다. 테스트의 장점은 오 클루 전 쿼리를 사용하여 GPU에서 직접 할 수 있다는 것입니다. 그들 중 실제로 occluded입니다.
동시에 여러 축을 따라 회전하는 것이 어렵지 않은 경우, 임의의 90 ° 트윈을 사용하여 큐브를 계속 회전시킨 다음 탭하면 더 이상 트윈을 생성하지 않고 마지막 트윈이 큐브를 사용자 위치에서 끝냅니다. 필요. – opyate