이것이 강사가 강의 과정에서 나에게 한 말입니다.
4 * 4 행렬 만 고려합니다. 객체를 회전, 크기 조정 또는 변환하는 데 사용됩니다 (또는 이러한 작업의 조합). 매트릭스는 나중에 가상 카메라 모델 구현에서 사용됩니다. 벡터 변환과 점 변환의 차이점을 모르면 찾아보십시오.
답변을 찾지 못해이 질문에 대해서만이 웹 사이트에 대한 계정을 만들었습니다.
이것이 강사가 강의 과정에서 나에게 한 말입니다.
4 * 4 행렬 만 고려합니다. 객체를 회전, 크기 조정 또는 변환하는 데 사용됩니다 (또는 이러한 작업의 조합). 매트릭스는 나중에 가상 카메라 모델 구현에서 사용됩니다. 벡터 변환과 점 변환의 차이점을 모르면 찾아보십시오.
답변을 찾지 못해이 질문에 대해서만이 웹 사이트에 대한 계정을 만들었습니다.
답변:
간단한 대답은 다음과 같습니다.
4D에서 4x4 행렬로 곱할 수 있도록 벡터는 (x, y, z, 0)으로 표시되고 점은 (x, y, z, 1)로 표시됩니다.
4x4 행렬의 4 번째 행은 행렬의 변환을 나타내므로 위의 표현에서는 점이 변환의 영향을 받지만 벡터는 영향을받지 않습니다.
벡터와 포인트는 모두 회전, 스케일링 등에 영향을받습니다.
경고:
벡터에 특정 속성이있을 것으로 예상되면 더 깊이 논의해야합니다. 예를 들어, 동일한 행렬로 삼각형의 법선을 변환하면 삼각형의 꼭짓점을 변환 할 수 있으며, 실제로는 더 이상 삼각형의 법선 벡터가 아닐 수도 있습니다. 법선 벡터는 계산 된 정점에 대해 일종의 역 관계를 갖기 때문입니다.
내가 배운 것은 학생이기도 하기 때문에 회전, 스케일링 및 변환을 같은 방식으로 처리하기 위해 xtimes 행렬 로 작업하고 싶습니다. 즉 , 행렬을 곱하는 것입니다. , 행렬).
이 행렬 이 없으면 변환은 벡터와 합산으로 표현되는 반면 회전과 스케일링은 각각 벡터와 스칼라 인자로 곱셈을 사용하여 표현됩니다.
이제 문제는 3D 좌표계에서 4D 좌표계로 어떻게 전달할 것인가입니다. 답은 " 균일 좌표 "입니다.
그래서, 무슨 뜻입니까? 우리 는 회전, 스케일링 및 변환을 나타 내기 위해 매트릭스를 구성 하므로, 변환 (예 : 회전, 스케일링 등)을 나타 내기 위해 행렬 곱셈 만 사용합니다. 우리가 개별적으로 구성하는 방법은 더 구체적이지만 웹에서 볼 수 있습니다.
이 시점에서는 크기가 일치하지 않기 때문에 행렬과 벡터를 곱할 수 없기 때문에 행렬과 3D 벡터가 아직 유용 하지 않습니다. 그래서 우리가 홈 좌표로 작업 할 때 주어진 3D 포인트를 해당 4D 포인트로 변환해야합니다.
우리는 어떻게합니까?
방향 벡터 와 위치 벡터를 구분 합니다. 이름에서 알 수 있듯이 방향 벡터는 방향이 향하고 있습니다. 우리는 또한 그들의 길이에 관심이 있지만 번역에 영향을받지 않습니다. 왜냐하면 그들의 위치에 관심이 없기 때문입니다. 위치 벡터 (또는 간단히 "포인트")는 번역되거나 이동할 수 있습니다. 그것들은 일반적으로 원점과 관련하여, 즉 원점에서 점 자체까지의 벡터로 표현됩니다.
해당 동종 벡터 의 번째 좌표 로 을 추가하여 3D 방향 벡터 를 변환합니다. 기본적으로 변환 효과가 제거되므로 0을 추가합니다. 우리는 위치 벡터와 비슷한 일을하지만, 대신에 1 대신 을 추가합니다 .
예를 들어 방향 벡터 가있는 경우 . 마찬가지로, 점 벡터 가 있으면
참고 : 균일 좌표 변환에 대응에 백업에 사람을, 당신은 간단하게 제거 할 수 없습니다 이 아니라면, 좌표 여전히 동일 (또는 각각).
벡터와 점의 정의를 찾으려면 벡터는 다음과 같습니다.
크기와 방향으로 완전히 지정된 속도와 같은 수량. http://www.thefreedictionary.com/vector
그리고 요점은 다음과 같습니다.
위치를 제외한 속성이없는 치수가없는 형상 객체입니다. http://www.thefreedictionary.com/point
따라서 벡터는 스케일이있는 방향이고 점은 위치입니다.
따라서 벡터를 변형하면 회전하고 크기를 조정할 수 있습니다. 점을 사용하면 점을 변환 할 수도 있습니다 (점의 회전 및 크기 조정은 점 자체가 회전 할 수없는 위치이므로 원점을 중심으로 함).
대부분의 경우 벡터와 점은 4 개의 구성 요소가있는 벡터 인 동일한 컨테이너에 배치됩니다. 유일한 차이점은 w 구성 요소입니다. w 성분이 0이면 방향입니다. 1이면 벡터는 점입니다.
그 이유는 행렬 자체에서 찾을 수 있습니다. 4x4 행렬이있는 4 개의 구성 요소가있는 벡터를 곱하는 방식을 사용합니다. 어떻게 작동하는지 모르는 경우 빠른 Google을 제안합니다.
대부분의 경우 4x4 매트릭스를 사용합니다. 정상적인 변환 행렬은 다음과 같을 수있다 : (회전 스케일은 당신이 말할 수있는 3x3 영역에 배치되므로 회전과 스케일을 위해 3x3 매트릭스도 사용할 수 있지만 변환이 시작되면 4 번째 열이 필요합니다.)
보시다시피, 마지막 구성 요소가 0이면 0을 곱한 결과가 0이므로 변환이 없습니다.
따라서 다각형 개체가있는 컴퓨터 그래픽에서 쉽게 사용할 수 있습니다. 위치와 법선을 변환하는 동일한 변환 행렬이 있습니다. 법선의 w 구성 요소가 0으로 설정되고 위치의 w 구성 요소가 1이기 때문에 법선은 방금 회전되고 (또한 크기가 조정되어 이상한 것들로 이어질 수 있으므로, 법선의 대부분은 정규화됩니다. ') t 이상한 점 때문에 위치와 회전에 동일한 행렬을 사용하는 것이 좋습니다! @JarkkoL의 의견을보십시오. 위치가 변환되고 원점을 중심으로 회전 및 축척됩니다.
내가 실수하지 않았기를 바랍니다 : P, 이것은 당신에게 도움이되었습니다!