2016-11-30 5 views
0

Windows에서 iOS로 응용 프로그램을 이동하고 있습니다. 그렇다면 OpenGL ES에서 "OpenGL"을 변환해야합니다. 원래 응용 프로그램에서는 glPush/PopAttrib 명령어가 있지만 OpenGL ES에는 존재하지 않습니다. 어떤 사람들은 대안을 여기에서 말합니다 : http://qt.developpez.com/doc/4.7/opengl-hellogl-es/ 그러나 그들은 OpenGL ES 1.1 (2 또는 3이 아님)에서만 사용 가능한 glMatrixMode를 사용하고 있습니다.iOS | OpenGLES 2/3 - glMatrixMode 대안

그래서 누군가 OpenGL ES 2에서 glMatrixMode의 대안을 가지고 있습니까?

좀 더 정확하게하려면 : Qt와 OpenSceneGraph 컨텍스트가 함께 작동하도록 노력하고 있습니다. 셰이더에서 수행되는 작업을 제어 할 수는 없습니다.

+0

쉐이더로 모두 다시 작성하십시오. – Starl1ght

답변

0

OpenGL ES 2.x 이후에는 고정 기능 매트릭스 스택 지원이 없습니다. 매트릭스를 원한다면 직접 값을 계산하고 glUniformMatrix*()을 통해 raw를 업로드해야합니다.

정확하게이 행렬이 필요로하는 것과 유니폼 심볼의 "이름"은 전적으로 쉐이더에 달려 있으며 기하 변환을 처리하는 방법입니다. 일반적으로 애플리케이션은 꼭지점 당 계산을 할 필요가 없도록 CPU에서 모델 뷰 및/또는 모델 뷰 프로젝션 행렬을 연결하려고합니다.

OpenGL ES 1.x에 존재하는 많은 개념은 OpenGL ES 2.x에는 전혀 존재하지 않으므로 (예 : 단편화를위한 고정 기능 조명 파이프 라인이 없음) 거의 "단순한"포트가 아니며 렌더링 엔진의 큰 덩어리를 다시 써야합니다. ...