2011-12-26 2 views
1

나는 openGL 1.5의 스펙을 읽었으며, glViewMatrix와 같은 ModelView 매트릭스에 대한 참조를 보유하고있는 변수에 대한 참조는 사용되지 않으며 일종의 호환성 모드에서만 사용 가능하다는 것을 알았습니다. (내 GPU에서는 지원되지 않습니다).GLSL 1.5에서 ModelView 행렬을 검색하려면 어떻게해야합니까?

먼저 ModelView 매트릭스를 검색하거나 생성 한 몇 가지 예를 보았습니다. 그런 다음이를 균일 변수로 다시 GPU에 보냅니다.

이제이 모든 것이 나에게 뒤떨어져있는 것처럼 보입니다. 간단한 버텍스 쉐이더 일지라도 많은 경우 지오메트리에 일종의 변형을 사용하고자합니다.

그래서 지금 정말로 궁금합니다. GLSL 1.5를 사용하여 버텍스 쉐이더에서 현재 ModelView 행렬을 얻는 방법은 무엇입니까?

답변

4

OpenGL-3 코어는 매트릭스 스택, 즉 내장 된 모델 뷰, 프로젝션, 텍스처 및 컬러 매트릭스를 완전히 삭제했습니다. 이제는 매트릭스 수학을 구현하고 자체 선택된 유니폼을 통해 매트릭스를 제공 할 것으로 예상됩니다.

+0

글쎄, 그게 그것을 설명합니다. 내가 그것을 좋아하는지 잘 모르지만. – Bartvbl

+1

@Bartvbl : glLoadMatrix로 다른 곳에서 생성 된 행렬을로드하는 것 외에는 실제로 행렬 스택을 실제로 사용하지는 않습니다. 모든 애니메이션 시스템은 애니메이션 데이터를 매트릭스를 사용할 준비가 된 상태로 방출합니다. 보기 계산을 위해 OpenGL보다 다른 코드에서 사용하기 위해 이미 투영 및 뷰 행렬이 있습니다. 따라서 전체 매트릭스 스택은 실제로 중복되어 사용하기가 번거로 웠습니다. 무료로 정의 가능한 유니폼을 통해 프로그램을 작성하면 프로그램이 특정 복잡성에 도달하면 훨씬 편리 해집니다. – datenwolf

0

3. + 버전 이후로 코어 OpenGL에 매트릭스 시스템/lib가 내장되어 있지 않습니다. 많은 사람들이 openGL에서 "거대한 변화"에 대해 비슷한 (나쁜) 의견을 가지고있었습니다.

매트릭스 계산을 수행하려면 고유 한 함수 세트를 사용해야합니다. 예를 들어 GLM 또는 lighthouse3D과 같은 라이브러리를 참조하십시오.

모두 학습 할 때 OpenGL에서 행렬 함수를 사용하는 것이 매우 유용했습니다. 이제 다른 솔루션을 찾아야합니다 ... 일반적으로 자체 수학 라이브러리가있는 게임 엔진이나 게임 프레임 워크에서는 문제가 없습니다. 따라서 "새로운"OpenGL은 사용하기가 더 쉽습니다.

관련 문제