3DMP engines3D그래픽스 물리 수학, 프로그래밍 GPU Shader 게임엔진 알고리즘 디자인패턴 matlab etc..
연산은 동일한데 포인트는, 기본 좌표계에따라 외적의 방향이 달라진다는 것
이하 첨부내용
http://blog.naver.com/9992028/120020809381
|
OpenGL은 오른손 좌표계를 쓰고,
DirectX는 왼손 좌표계를 쓴다.
사실
DirectX를 쓰면서도 오른손 좌표계를 쓰거나,
OpenGL을 쓰면서 왼손 좌표계를 사용하는 것도 가능하다.
다만 기본값이 그렇게 되어 있다는 것이고,
따라서 각각의 좌표계에 좀 더 편리하게 API가 제공되는 것일 뿐이지만 말이다.
간단하게 다음과 같이 이해하자.
일단 수학적으로는 다음과 같이 정의 된다.
기저 vector, V1, V2, V3가 있을 때.. (간단하게 x, y, z 방향이라 생각해도 된다.)
(V1 X V2) · V3 > 0 이면 오른손 좌표계
(V1 X V2) · V3 < 0 이면 왼손 좌표계이다.
정규 직교 좌표계로 한정 (세 기저 vector가 서로 직각인 경우) 지어서
기저 vector, Vx, Vy, Vz가 있을 때..
(Vx X Vy) = Vz 이면 오른손 좌표계
(Vx X Vy) = -Vz 이면 왼손 좌표계이다.
따라서
OpenGL의 경우 (오른손 좌표계인 경우)
x, y 방향의 기저 vector을 아는 경우 z 방향의 기저 vector는 -(Vx X Vy)로 구하고,
DirectX의 경우 (왼손 좌표계인 경우)
x, y 방향의 기저 vector을 아는 경우 z 방향의 기저 vector는 (Vx X Vy)로 구하면 되겠다.
DirectX는 왼손 좌표계를 쓴다.
사실
DirectX를 쓰면서도 오른손 좌표계를 쓰거나,
OpenGL을 쓰면서 왼손 좌표계를 사용하는 것도 가능하다.
다만 기본값이 그렇게 되어 있다는 것이고,
따라서 각각의 좌표계에 좀 더 편리하게 API가 제공되는 것일 뿐이지만 말이다.
간단하게 다음과 같이 이해하자.
일단 수학적으로는 다음과 같이 정의 된다.
기저 vector, V1, V2, V3가 있을 때.. (간단하게 x, y, z 방향이라 생각해도 된다.)
(V1 X V2) · V3 > 0 이면 오른손 좌표계
(V1 X V2) · V3 < 0 이면 왼손 좌표계이다.
정규 직교 좌표계로 한정 (세 기저 vector가 서로 직각인 경우) 지어서
기저 vector, Vx, Vy, Vz가 있을 때..
(Vx X Vy) = Vz 이면 오른손 좌표계
(Vx X Vy) = -Vz 이면 왼손 좌표계이다.
따라서
OpenGL의 경우 (오른손 좌표계인 경우)
x, y 방향의 기저 vector을 아는 경우 z 방향의 기저 vector는 -(Vx X Vy)로 구하고,
DirectX의 경우 (왼손 좌표계인 경우)
x, y 방향의 기저 vector을 아는 경우 z 방향의 기저 vector는 (Vx X Vy)로 구하면 되겠다.
< 자료출처> http://mobile.egloos.com/1848128
반응형
'수학 (Mathematics) > 3D수학' 카테고리의 다른 글
일차 독립, 일차 종속 (0) | 2012.11.02 |
---|---|
3D 벡터 기초 연산 (0) | 2012.11.02 |
directx 사원수 관련 함수 d3dx9math.h (0) | 2012.11.02 |
GPU 에서 노멀맵 굽기 (0) | 2012.11.02 |
표면 스케터링으로 실시간 근사 (0) | 2012.11.02 |