2012-11-30 2 views
1

나는 안드로이드 플랫폼에 opengles2을 사용하여 개발하고 있습니다. 그러나 GLES2/gl2.h 헤더 파일에서 glMatrixMode 메서드를 찾을 수 없지만 GLES/gl.h에서 찾을 수 있습니다. 동시에 gl.h을 포함해야합니까? gl2.h을 포함합니까? opengles2에서 매트릭스 모드가 필요합니까?OpenGL ES 2에는 매트릭스 모드 설정 방법이 없습니다.

답변

6

OpenGL-ES-2에는 매트릭스 스택이 없습니다. 그것은 완전히 제거되었습니다. 최신 OpenGL (OpenGL-3 코어 이상)에서도 마찬가지입니다.

모든 진지한 3D 그래픽 응용 프로그램이 수년간하는 것처럼 행렬을 직접 관리해야합니다. < = OpenGL-2.1 및 OpenGL-ES-1의 매트릭스 스택은 기능이 완벽하지 않아 작업하기가 번거롭습니다. 좋은 속임수.

3D 그래픽 매트릭스 연산을 구현하는 라이브러리가 많이 있습니다. "GLM", "Eigen"또는 "linmath.h"에 대한 Google

+0

그래서 매트릭스 모드에 대해 더 이상 신경 쓸 필요가 없다는 뜻입니까? 제공된 API를 사용하여 사진을 그리면 항상 올바른 매트릭스 모드로 유지됩니까? –

+3

@ user674199 : 더 이상 매트릭스 모드가 없습니다. 어쨌든 버텍스 쉐이더를 제공해야하기 때문에 일종의 의미가 있습니다. 그리고 여러분이 제공하는 매트릭스의 의미는 쉐이더에 의해 완전히 정의됩니다. 일반적으로 모델 뷰, 투영 및 일반 변환 행렬의 3 가지 행렬을 제공합니다 (정상 변환은 모델 뷰의 역 전치입니다). – datenwolf

+2

링에 내 클라이언트 사이드 루틴을 던지 겠어 : [matrix.h] (http://ezekiel.vancouver.wsu.edu/~cs442/util/matrix.h), [matrix.c] (http : //ezekiel.vancouver.wsu.edu/~cs442/util/matrix.c). glUniformMatrix4fv를 사용하여 GL에 행렬을로드하여 쉐이더가 사용할 수있게하십시오. – wcochran