2013-01-08 3 views
3

저는 VBO로 효율적으로 작업하는 프로그램을 가지고 있지만, 1 명을 제외하고는 아무도 아는 사람이 OpenGL 3.0을 지원하는 컴퓨터를 가지고 있다는 사실을 알게되었습니다. 그들이 모두 사용하는 프로그램을 실행할 때 깊이있는 평평한 텍스처는 VBO 나 내가 사용하고있는 Shader 언어를 지원하지 않기 때문에 얻을 수있는 모든 것을 만들었습니다.OpenGL Vertex Arrays가 필요합니다. 버전

이제 이전 컴퓨터 (이전 OpenGL 3.0 지원)를 지원하도록 코딩 중입니다. 완전히 필요한 경우가 아니면 즉시 모드에서 드로잉을 코딩하고 싶지 않기 때문에 꼭 Vertex Arrays로 되돌아갑니다.

버텍스 어레이를 지원하려면 어떤 OpenGL 버전이 필요합니까?

어디서나 찾을 수없는 것 같습니다.

확장 레지스트리 : http://www.opengl.org/registry/

그냥 내가 서버 측 정점 배열 개체와 혼동하지 클라이언트 측 정점 배열에 대해 (VAO의)를 이야기하고 명확하게 또는 버텍스 버퍼 오브젝트 (VBO의)

+1

버퍼 객체 (인텔의 엉뚱한 1.4 구현에도 해당)가 없으면 OpenGL 구현 또한 버그가 많을 확률이 높습니다. 그런 카드를 지원하는 것은 하드웨어에서 실제로 테스트 할 수 없다면 어려운 전망입니다. –

+0

매우 사실입니다. 그것이 VBO가 지원되지 않는 경우 ** fallback ** ** 인 이유입니다. – CoderWalker

답변

5

specifications에서 찾을 수있는 정점 배열에 대한 가장 최근의 언급은 OpenGL 1.1입니다 (섹션 2.8 정점 배열, 21 페이지).

7

여기서는 다소 포괄적입니다.

기본 정점 배열 API는 OpenGL 1.1 이후 핵심 요소였습니다.

  • glDrawArraysglDrawElements (뿐만 아니라 glArrayElement,하지만 정말 아무도 아무것도 을 위해 그것을 사용해서는 안) 렌더링 :

    는 OpenGL을 1.1는 소개했다.

  • glVertexPointer, glTexCoordPointer, glNormalPointerglColorPointer은 "속성"에 대한 것입니다. 하나의 텍스처 좌표 포인터 만 가져옵니다.

는 OpenGL을 1.2 소개 :

  • glDrawRangeElements을, 일부 드라이버의 성능 향상을 위해. 요즘은 그리 유용하지 않지만, 오래된 하드웨어를 코딩한다면, 그것을 살펴보십시오.

는 OpenGL을 1.3 소개 :

  • glActiveTexture을 따라서 glTexCoordPointer의의 GL_MAX_TEXTURE_UNITS 수 있도록.

는 OpenGL은 1.4 도입 :

  • glMultiDrawArraysglMultiDrawElements한다.
  • glSecondaryColorPointerglFogCoordPointer.

는 OpenGL을 1.5 소개 :

  • 버퍼 오브젝트를.

는 OpenGL을 2.0 소개 : 일반 쉐이더 속성

  • glVertexAttribPointer. 클라이언트 측 정점 배열과 함께 사용할 수 있습니다.
+2

대단합니다! 모든 즉시 모드는 필요하지 않습니다. 그들의 컴퓨터가 OpenGL 1.1을 지원하지 않는다면 나는 게임을하지 말아야한다고 확신한다. – CoderWalker

+0

이 역사가 훌륭합니다. 오픈 GL에서 버텍스 제출의 역사를 연구하면서 하루 종일 썼습니다. 이것은 위키 피 디아의 많은 기사보다 낫습니다. –

관련 문제