OpenGL ES 매트릭스 변환 및 수학 원리 에 대한 상세 한 설명(5)

도입부
4.567917.벡터 는 선형 공간의 대상 을 묘사 했다4.567917.행렬 은 벡터 가 선형 공간 에서 의 운동(변환,도약)을 묘사 하고 비슷 한 행렬 은 본질 적 으로 같은 선형 변환 의 서로 다른 묘사 이다4.567917.하나의 선형 공간 에서 하나의 기 초 를 선 정 했 고 모든 선형 변화 에 대해 정확 한 행렬 로 묘사 할 수 있다4.567917.행렬 은 선형 변환 에 대한 묘사 일 뿐만 아니 라 하나의 기본 적 인 묘사 로 서 변 환 된 행렬 로 서 선형 공간의 한 점 을 다른 점 으로 바 꿀 수 있 을 뿐만 아니 라 선형 공간의 한 좌표계(기)표를 다른 좌표계(기)로 바 꿀 수도 있다4.567917.우리 가 벡터 에 대해 이야기 할 때 반드시 그 가 있 는 좌표 계 를 지정 해 야 의미 가 있다.예 를 들 어 벡터 b=(1,2,3)은 실제 적 으로 단위 좌표계 I 아래 에 벡터 의 도량 이 b 라 는 것 을 말한다4.567917.마=b 를 이해 하면 마=Ib 로 볼 수 있다.즉,좌표계 M 에서 측정 한 벡터 a 와 좌표계 I 에서 측정 한 b 는 실제 적 으로 같은 벡터 이다4.567917.행렬 에 있어 그 가 표시 한 그 좌표계 도 한 조 의 기(벡터)로 구성 되 고 이 조 의 기 초 는 어느 좌표계 에서 도량 을 매 는 문제 도 존재 한다.행렬 M 에 대해 서 는 IM,즉 M 중의 그 벡터 가 I 좌표계 에서 나 온 것 으로 이해 합 니 다
  • MxN 본질은 M 좌표계 에서 재 어 낸 또 다른 좌표계 N 을 설명 하 는데 그 중에서 M 자 체 는 I 좌표계 에서 재 어 낸 것 이다
  • 4.567917.좌표계 에 변 화 를 가 하 는 방법 은 바로 그 좌표계 의 행렬 과 그 변 화 를 나타 내 는 행렬 을 곱 하 게 하 는 것 이다.
    그래서 우 리 는 이러한 식 을 이해 합 니 다.ACb,AC 는 행렬 이 고 b 는 벡터 입 니 다.
    4
  • b 는 벡터 이다.그 는 I 좌표계 에서 측정 한 것 이다.a=Cb 는 I 좌표계 에서 벡터 b 를 벡터 b 로 바 꾸 고 d=ACb=Aa 의 의 미 는 I 좌표계 에서 벡터 a 를 벡터 d 로 계속 바 꾸 는 것 이다.즉,같은 좌표계 I 아래 에서 두 차례 변환 작업 을 진행 하 였 다
  • 4.567917.다른 이해 방식 은 ACb=IACb 이다.그러면 IAC 세 행렬 의 상승 은 좌표계 의 변 화 를 나타 낸다.I 좌표계 에서 새로운 좌표계 IA 를 측정 한 다음 에 IA 좌표계 에서 IAC 를 측정 한 다음 에 이곳 의 최종 좌표계 에서 의 벡터 b 와 1 에서 I 좌표계 에서 두 번 의 변 화 를 거 쳐 얻 은 벡터 는 같은 벡터 이다위의 두 가지 이해 방식 도 벡터 에 대한 변환 과 좌표계 에 대한 변환 이 등가 라 는 점 을 밝 혔 다.이 점 은 뒤에서 회전 하여 변 경 된 그림 에서 도 알 수 있다.
    각종 변환
    이동 행렬

    축소 행렬

    평이 행렬 과 축소 행렬 은 이해 하기 쉽 고 행렬 형식 에서 우 리 는 왜 4 차원 의 벡터 로 정점 을 표시 하 는 지 볼 수 있다.w 분량 을 투시 제법 으로 하 는 것 을 제외 하고 다른 작용 도 평이 를 통합 시 키 기 위 한 것 이 아니 냐.모두 곱셈 을 하고 덧셈 을 하지 않 는 다.수학 적 으로 3 차원 공간의 좌 표를 그 차례 형식 으로 표시 하 는 것 이다.
    회전 변환
    회전 변환 은 상대 적 으로 복잡 하고 x,y 또는 z 축 을 돌 며 회전 하 는 상황 을 이해 하기 쉽다.

    z 축 회전 을 예 로 들다

    그래서

    행렬 형식

    임의의 축 을 돌 며 회전 하 는회전 행렬

    마찬가지 로 앞에서 배 운 직 교 투영 행렬,투시 행렬 과 카메라 행렬 은 본질 적 으로 위의 변환 과 같다.
    앞에서 일반 렌 더 링 라인 에 들 어 가 는 것 은 카메라 행렬,투영 행렬,행렬 을 바 꾸 어 곱 한 전체적인 변환 행렬 을 볼 수 있다.
    정점 착색 기 에 서 는 보통 이런 식 이에 요.
    
    gl_Position = uMVPMatrix * vec4(aPosition,1);
    위의 코드 에 있 는 변수 uMVP Matrix 는 모델(M),보기(V),투영(P)3 중 변환 종합 을 나타 낸다.

    행렬 곱셈 의 순 서 를 알 고 각 점 에 대한 변환 은 순서 가 있 습 니 다.각 점 에 대해 먼저 모델 변환(이동 확대 회전)을 한 다음 에 보기 변환(카메라 시각)을 한 다음 에 투영 변환 을 합 니 다.이 세 가지 변환 순 서 는 가 변 적 이지 않 습 니 다.순 서 를 바 꾸 면 최종 적 으로 보 이 는 효과 가 다 르 기 때 문 입 니 다.
    모든 점 에서 하 는 종합 적 인 변 화 는 본질 적 으로 이 점 에 대해 행렬 을 곱 하 는 것 이다.그러나 우리 가 들 어 온 것 은 최종 적 인 종합 적 인 변환 행렬 에 있어 방금 의 이 해 는 특별히 정확 하지 않 았 다.생각 을 바 꾸 어 종합 적 인 변환 행렬 로 이해 하면 좌표계 의 변환 이 더욱 좋 을 것 이다.왜냐하면 우 리 는 이 상승 후의 종합 행렬 을 한꺼번에 전달 하 는 것 이기 때문이다.
    이상 이 바로 본 고의 모든 내용 입 니 다.여러분 의 학습 에 도움 이 되 고 저 희 를 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.

    좋은 웹페이지 즐겨찾기