2013-06-13 2 views
1

TBN 개념을 이해할 수 없다고 생각합니다. 범프 매핑, 일반 매핑 등에서 사용합니다.하지만 modelview 매트릭스를 사용하여 텍셀에서 법선을 추출 할 수는 없습니까? TBN 매트릭스에 대한 설명이 필요합니다. 실제로 사용 이유를 이해할 수 없습니다.왜 OpenGL에서 TBN 매트릭스가 필요합니까?

답변

3

사용하는 모든 점과 벡터는 일부 참조 프레임에서 정의되지만 하나에서 다른 것으로 변환 할 수 있습니다.

텍스처 맵에서 읽는 법선은 "접선 공간"에 있습니다. 이것은 사실 강박 적이 지 않습니다. 예를 들어 세계 공간에서 정의 할 수도 있습니다. 그러나 생각해보십시오. 모델을 회전 시키면 법선이 어떻게됩니까? 접선 공간은 모델과 함께 회전합니다. 즉, 법선이 수행하는 것을 의미합니다 (메쉬를 변형/스킨 한 경우에도 마찬가지 임). 그렇지 않으면 가능한 모든 순환에 대해 다른 법선을 제공해야합니다.
그 이유는 접선 공간을 사용하면 사실상 필요성 (어쨌든 선택 사항입니다)입니다.

이제 당신의 빛과 눈은 접선 공간에서 정의되지 않았지만 세계 공간에서 정의됩니다. 예를 들어 반각 벡터 등이 있습니다.
모든 것이 동일한 좌표계에있는 경우 의미가있는 방식으로 만 계산할 수 있습니다. TBN을 사용하면 하나에서 다른 것으로 변환 할 수 있습니다.

방향을으로 정의 할 수 있기 때문에 꼭지점 법선만으로는 충분하지 않습니다 (그러나 법선과 T 또는 B 중 하나는 교차 곱을 사용하여 계산할 수 있습니다). "나사". 따라서 적어도 하나 이상의 벡터가 없으면 법선이 정의되지 않고 가능한 모든 방향에서 정점 법선을 중심으로 회전 할 수 있습니다. 모든 방향이 똑같이 유효하거나 무효합니다.

여러 텍셀을 가져와야 할 때 비슷한 상황이 발생합니다 (예 : 노멀 맵이 아닌 샘플링 높이 맵). 확실히 보간 된 UV 좌표가 있습니다. 따라서 샘플링 할 텍셀이 잘 정의되어 있습니다.
그러나 이제는 다른 3 개의 텍셀을 4x4 쿼드로 샘플링하려고합니다. 아니면 너는 raymarching하고 싶어. 다음 텍셀을 어느 방향으로 샘플링합니까? 너 을 모른다. 정상적인 방향으로 UV 좌표계를 회전시킬 수 있기 때문이다. 모든 회전은 똑같이 유효하거나 무효합니다.
N은 위쪽을 가리키고 (텍스처 이미지에서 멀어 지므로) T와 B가 U와 V와 같은 방향을 가리 키기 때문에 TBN이이를 해결합니다.

+0

눈과 빛이 시각 공간에 정의되어 있다면, 세상이 아닌가? TBN 작업이 늘어날 것인가? – deniz

+0

예 (또는 오히려 그렇습니다, 아니요, 의존적입니다). <-> 세계 및 세계 <-> (MV 사용) 및 원하는대로 뒤로 변환 할 수 있습니다. 당신이 수학을 할 때마다 _ 무엇이든지 똑같은 것으로 변환하는 한, 어떤 것이 들어 있든 상관 없습니다. 모든 것이 같은 좌표계에 있다면, 당신은 좋습니다. 그렇지 않으면 잘못 보입니다. – Damon

+0

감사합니다. 반각 벡터가 의미하는 것은 무엇입니까? – deniz