2010-01-09 4 views
2

나는 리눅스와 iphoneOS 모두를위한 OpenGL 게임을 쓰고 있는데, 기본적으로 OpenGL ES 1.5 헤더를 사용하여 빌드하고 내 리눅스 데스크톱에서 실행할 수 있기를 바란다. 내가 할 수 있을까? IE, OpenGL과 OpenGL-ES 사이에 공통적 인 API 호출의 하위 집합 만 사용하고 싶습니다.OpenGL ES 1.x 호출 만 사용하여 OpenGL 응용 프로그램을 빌드하고 링크해도 여전히 작동합니까?

위의 작업을 수행하고 정상적인 libGL.a로 내 시스템에서 연결하면 내 화면을 얻을 수 있지만 장면 배경색은 바꿀 수있는 것처럼 보입니다.

답변

2

나는 정확히 그 일을했으며 잘 작동했다.

표준 OpenGL에는 제공되지 않지만 저사양 플랫폼에는 매우 좋은 OpenGL | ES 확장 모음이 있습니다. glDrawTexImage는 이러한 확장입니다. 데스크톱 OpenGL 호출로 가득 찬 손을 사용하여 이러한 확장을 에뮬레이션하는 것은 큰 문제가되지 않습니다.

또한 OpenGL | ES는 대부분의 진입 점에 대해 고정 소수점 데이터 형식을 지원합니다. 예를 들어 glClearColorx를 사용하십시오. 데스크탑 OpenGL에서는 사용할 수 없으므로이를 사용하려면 래퍼를 작성해야합니다. 버텍스 데이터를이 형식으로 저장하면 더 많은 작업이 필요합니다.

오 - OpenGL | ES에는 glu 라이브러리가 제공되지 않습니다. 데스크탑에서 사용할 수는 있지만 나중에 다시 구현해야합니다 (gluLookAt 및 gluUnproject에 대한 100 개의 질문 참조).

+0

감사합니다. 좋은 점은 성공 가능성이 있다는 것입니다. – IanNorton

1

OpenGL ES 1.5와 같은 것은 없습니다. 1.1이라는 뜻 이었습니까?

어떻게 창을 차지합니까? 이는 플랫폼에 따라 다릅니다.

어떤 경우에도 링크 할 lib에 해당하는 헤더에 대해 컴파일해야합니다. 헤더가 무엇을 설정하는지 확실히 알지 못합니다 (예 : Windows에서는 상관 없지만 여전히 호출 규칙이 지정되어 있음).

두 통화간에 잘 매핑되지 않는 통화도 있습니다. 이중 정밀도는 단 정밀도 또는 고정 소수점으로 대체 을 DepthRange, 프러스 텀과 직교되는 명령

: 단지 GL의 두 배를 사용하는 API를합니다 (ES 사양에서) GLES에서 부동입니다 변종

간단히 말해 GL ES 하위 집합을 고수하면 문제의 작업이 최소한이지만 동일한 코드를 사용하는 것보다 간단합니다.

+0

예, ES 1.1을 의미했습니다. 지금 제대로 렌더링 할 수 있도록 프로그램을 만들었습니다. – IanNorton