법선, 탄젠트 및 이진법 벡터 란 무엇이며 어떻게 사용됩니까?


47

다음 정보를 찾고 싶습니다.

  • 그들은 무엇인가?
  • 게임 개발의 사용 예 (사용 지역)

다음 벡터 유형 정보 :

  • Normal
  • Tangent
  • Binormal

간단한 게임 개발 중심의 설명만으로 충분합니다.


1
너무 많은 질문을하고 있습니다. 벡터가 어떻게 작동하는지 읽는 것이 가장 좋습니다. 기스로부터. 또한 삼각법을 패치하십시오.
Sidar

3
나는 이것이 많이 물어볼지도 모른다고 생각했지만, 반면에 한 가지 질문 으로이 정보를 함께 갖는 것이 좋을 것입니다. 그것이 또한 제가 간단한 설명을 요구 한 이유이기도합니다.
Jaanus Varus

답변:


43

일반적으로 법선 벡터는 표면에서 직접 "밖으로"가리키는 방향을 나타냅니다. 즉, 평면 (평면의 경우)과 동일 평면에 있거나 평평하지 않은 표면의 경우) 주어진 지점에서의 표면.

접선 벡터는 일반적으로 표면의 평면 내에 존재하거나 (평면의 경우) 곡면의 기준점에 접하는 (즉, 평면이 기준점에서 동일한 법선으로 구성된 경우) 하나의 벡터로 간주됩니다. 접선 벡터는 해당 평면과 동일 평면 상에 있습니다.

Binormal 벡터의 개념은 조금 더 복잡합니다. 컴퓨터 그래픽에서, 그것은 일반적으로 Bitangent 벡터 ( 여기서 참조 )를 의미하는데, 이것은 사실상 법선 벡터와 선택된 탄젠트 벡터에 직교하는 표면에 대한 "다른"탄젠트 벡터입니다.보통, 탄젠트, Bitangent

계산 방법과 관련하여 표면의 복잡성과 법선의 정확도에 따라 달라집니다 (부드러운 셰이더와 같은 경우에는 근사 표면의 법선을 계산하는 것이 더 바람직합니다. 표면에 대한 실제 정보가없는 경우), 여기에 몇 가지 일반화 된 공식이 있습니다 .

어디에서 발생하는지에 대한 답은 어디에나 있습니다. 법선 벡터는 3D 공간에 카메라와 객체를 배치하고, 물리 계산에서 궤적, 반사 및 각도를 결정하고, 스킨과 텍스처를 3D 모델에 매핑하고, AI 프로그래밍에서 조준 궤적 오프셋을 결정하고, 쉐이더에 힌트를주기 위해 사용됩니다. 조명, 카메라 및 기타 물체와 관련하여 표면의 조명, 음영 및 색상 점에 적용됩니다. 3D 환경에서 가장 유용한 정보 중 하나 일 수 있으며 2D에서도 매우 유용합니다.


2
젠장, 사진을 추가해야합니다 : p
RobCurr

철저한 설명 감사합니다! 답변으로 표시됩니다.
Jaanus Varus

2
제곱 패치 가정이 유효하지 않은 이유 와 탄젠트비트 탄젠트 에 대한 모든 사람들이 왜 가짜 인지에 대한 이 기사 를 읽는 것이 도움이 될 수 있습니다 . 그것은 올바른 수학을 사용해야하지만 슬프게도 올바른 답을 작성할만큼 유능하지 않습니다 .
Lars Viklund

역가 및 비정규 벡터는 동일합니다. 그것들은 이름이 같은 것에 기인하며 어떤 이름을 사용할 것인지에 대한 "정신적 관점"에만 의존합니다.
Nikos

15

법선 벡터는 일반적으로 조명 계산에 사용됩니다. 메시의 꼭짓점에 의해 근사 된 표면에 수직 인 벡터입니다. 법선은 각 정점 위치에서 정의되지만 해당 정점에서 빛이 어떻게 반사되는지 또는 쉐이더에서 빛 계산으로 수행하려는 작업에 따라 다르게 계산 될 수 있습니다.

탄젠트 및 바이 노멀 벡터는 서로 직교하는 벡터와 렌더링하려는 표면에 대한 u, v 텍스처 좌표의 방향을 본질적으로 나타내는 법선 벡터입니다. 일반적으로 노멀 맵과 함께 사용하여 모델에 대한 서브 표면 조명 디테일을 만들 수 있습니다 (범프).

이 벡터를 활용하는 다른 방법이 분명히 있으며 그 평균 사용을 설명했습니다. 더 많은 기술 정보를 얻으려면 컴퓨터 그래픽에 관한 책을 집거나 인터넷에서 기사를 찾아 보는 것이 좋습니다. 이것에 대한 많은 정보가 있습니다.


4
+1-다음에는; 사진을 추가하십시오.
Pieter Geerkens

9

접선과 법선 사이의 차이는 적은 바로 표면에 분명하다,하지만 너무 놀라운 일이 안 - 법선은 원래하지 표면뿐만에 대해 정의 된 곡선 개념은 많은 의미가 있습니다, (그리고 정말 삶 움직임의 방향에 직교한다는 점에서 '정상'으로, 따라서 이름). 보다 구체적으로, p = V (t) = (V x (t), V y (t), V z (t)) 형식의 공간 곡선이 주어진 경우 접선- 운동 방향-T u = dp / dt = (dV x / dt, dV z / dt, dV z)/ dt). (여기에 MathJax가 없으므로 '비정규 화'를 구별하기 위해 여기 첨자를 사용하고 있습니다.) 그러면 곡선을 따라 (순간) 속도 는 접선 벡터의 길이 인 s = | T u | '정규화 된'탄젠트 벡터는 단순히 T = T u / s입니다.

그런 다음 곡선에 대한 법선 벡터는 시간에 따른 정규화 된 접선 벡터의 미분입니다. N u = dT / dt; 여기서 정규화 된 탄젠트가 사용되는 이유는 곡선을 따라 속도가 법선 벡터를 왜곡하지 않도록하기위한 것입니다.이 정의를 사용하면 항상 TN u = 0임을 알 수 있습니다. N u 가 반드시 단위 벡터 일 필요는 없습니다. , T보다 더 U 이고; 실제로, 그 크기 k = | N u | 주어진 점에서 곡선 의 (즉시) 곡률 이고, 점 p + N u 는 소위 오실 레이션 서클 의 중심입니다 (주어진 점에서). 정규화 된 법선은 N = N u입니다./ k이고, 비트 탄젠트 B는 교차 생성물 B = TxN이고; T와 N은 모두 단위 벡터이고 서로 직교하기 때문에 B도 단위 벡터이며 (T, N, B)는 직교 프레임입니다.

이 정의에 의해 곡선에 대한 '비정규'는 표면에 대한 법선 (곡선의 '로컬'평면에 대한 법선)에 대해 생각하는 것에 더 가깝고 곡선에 대한 법선은 우리는 표면에 대한 괴로움으로 생각합니다.

(이 이미지는 슬프게도 실제로 개념 정의를 수행하지는 않지만 웹에서 찾을 수있는 최선이며 직접 만들 수는 없습니다 ...)

여기에 이미지 설명을 입력하십시오

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.