2011-01-27 16 views
9

무엇을 배워야합니까? OpenGL 4.1 또는 OpenGL ES 2.0?OpenGL 또는 OpenGL ES

Qt를 사용하여 데스크톱 응용 프로그램을 개발할 예정이지만 몇 달 안에 모바일 응용 프로그램을 개발할 수도 있습니다. 나는 3D, 3D 수학 등에 대해 아무것도 모릅니다. 그리고 1 주간의 웹 사이트 파기와 시행 착오를 거치기보다는 좋은 책에서 100 달러를 쓰고 싶습니다.

OpenGL 4.1에서 볼 수있는 한 가지 문제점은 OpenGL ES 2.0에 대한 책이 있지만 책이 없다는 것입니다. 가장 최근의 책은 OpenGL 3.3 또는 4.0입니다.

다른 한편으로는, 나의 순수한 견지에서, OpenGL 4.1은 OpenGL ES 2.0+ 추가처럼 보입니다. 그래서 OpenGL ES 2.0을 처음 배우고 나서 셰이더 언어로가는 것이 더 쉬울 것 같습니다. 등

,

+1

OpenGL 4와 OpenGL 3은 모두 최신 OpenGL이며 고정 기능 OpenGL은 아닙니다. 따라서 OpenGL 3을 배웠다면 OpenGL 4로 절대적으로 코딩 할 수 있습니다. 배울 주요 개념은 'Vertex Buffer Objects, Vertex Array Objects (예 : VBO 및 VAO)'와 그것들을 사용하는 방법입니다. –

답변

8

네, 확실히는 OpenGL ES로 시작 (그것은 일반적으로 나쁜/오래된 관행 가득 합의 된 것), 두리안 튜토리얼 등

감사를 NeHe를 사용하는 말하지 말아주세요 2.0. 사실 WebGL (OpenGL ES 2.0과 거의 비슷합니다)으로 시작한다고합니다. here 이상의 공개 위키는 시작할 수있는 좋은 장소입니다. WebGL에 대한 좋은 점은 컴파일 링/링크와 같은 일을 처리 할 필요가 없으며 많은 설정을위한 상용구 코드를 많이 피할 수 있다는 것입니다. 그래서 실제 드로잉에 집중하게됩니다. (정말 재미 있습니다 :)). OpenGL ES 2.0 서적을 가지고 있다면 여전히 WebGL에 잘 맵핑되어야합니다.

플러스 repository에는 많은 데모가 있습니다.이 데모는 즉시 실행할 수 있으며 브라우저의 '소스보기'를 클릭하면 코드로 바로 이동할 수 있습니다. 이미지 텍스쳐 테스트, 컬러 박스, 텍스쳐 박스와 같은 간단한 것들로 시작하십시오.

이러한 예제는 OpenGL ES 2.0 책과 함께 바로 시작할 수 있습니다. 재미있어!

편집 : 나는 아마도 당신이 경우는 OpenGL을 4.1 경로를 이동하기로 결정 것을 지적해야한다, 당신은 아마는 OpenGL 4.1 책을 기다릴 필요가 없습니다. OpenGL 3.3 또는 4.0 책은 정상적으로 작동합니다.

+0

또한 webGL은 대부분의 브라우저의 베타 버전에서만 사용할 수 있습니다. 따라서 곧 응용 프로그램을 배포해야하는 경우 데스크톱 버전을 만들어야합니다. 그러나 단지 * 학습 *이라면 시작할 수있는 좋은 방법입니다 –

2

OpenGL 버전은 일반적으로 이전 버전에 새로운 기능을 추가하기 때문에 OpenGL 4.1을 배우는 것은 사실 OpenGL 3.0을 배우는 것과 같습니다. 특히 기본 3D 프로그래밍을 시작하는 경우에는 동일합니다.

OpenGL ES 2.0은 OpenGL 3.x의 하위 집합입니다.

이러한 '사실'을 염두에두고, OpenGL 3+ 또는 OpenGL ES 2+를 배우는 것이 세부 사항의 차이점과 거의 같다고 말할 수 있습니다.

데스크톱 플랫폼 (OS, 그래픽 카드)에 따라 OpenGL 3 구현에 액세스하지 못할 수 있습니다.

데스크톱에서 OpenGL ES 2를 구현하지 못할 수도 있습니다.

WebGL에서 시작하는 Shezan Baig의 제안이 OpenGL init을 위임 할 때 도움이 될 것입니다. 브라우저의 문제 - 심지어는 implement WebGL over DirectX의 가용성을 개선하십시오.

제 생각에는 배우는 동안 3D 원리, 알고리즘 및 수학에 초점을 맞 춥니 다. 이것들은 옳다는 것이 가장 힘듭니다.구현 '세부 사항'은 OpenGL (ES가 아닌지) 또는 DirectX 또는 기타와 크게 다르지 않습니다.

더 정확하게, 나는 당신이 대부분의 익숙한 프로그래밍 언어에서 시작하는 것이 좋을 것. 이 언어로 된 OpenGL 1.x/2.x는 GL의 이전 버전에 3.x +에서 '지원되지 않는'헬퍼 함수 (glBegin/glVertex/glEnd; glMultMatrix 등)가 많이 포함되어 있습니다. . 이를 사용하면 알고리즘을 테스트하는 데 '생산적'일 수 있습니다.

3 차원 프로그래밍에는 많은 것들이 있습니다. freely available이되는 참조 서적을 찾고 사용 사례에 대해 흥미로운 정보를 선택하십시오.

+0

"3D 원리, 알고리즘 및 수학"을 시작하려면 무엇을 제안합니까? – zxspectrum

+0

몇 가지 제안을 포함하도록 답변 편집 – rotoglup

0

예 GLES2를 사용하십시오.

1) 휴대용.

2) PC의 경우에도 작업을 수행하는 GLES2 방법을 따르십시오. (GL3/4의 고급 기능을 필요로하지 않는 한).

3) 셰이더 기간을 사용하고 GLES2가 적절한 방법을 배우기에 좋습니다.

Windows에서는 OpenGL을 사용합니다. 운전자는 일반적으로 쓰레기입니다. netbook을 가져 가면 hlsl 2.0을 지원하지만 GLSL 쉐이더는 지원하지 않으며 GL-1.3 만 실행합니다.

+1

"드라이버는 쓰레기"요점은 일반적으로 사실이 아닙니다. 무엇이 "싫은가", 인텔 드라이버 및 넷북이 가장 일반적으로 인텔 GPU와 함께 제공됩니다. 한편, AMD와 NVidia는 모두 좋은 드라이버를 보유하고 있습니다. 그리고 대개 OS에 대해 무시해도됩니다. –

+0

필자의 경험에 비추어 Windows 용 OpenGL 드라이버는 대개 D3D와 흡사하다 (기능과 성능에 대한 의견을 말할 때). 이것이 사실이 아닌 유일한 경우는 엔비디아입니다. 또한 게시물은 2011 년부터 게시되었으며 그 당시와 그 이후의 GPU를 나타냅니다. 지금의 맥락에서 상황이 바뀔 수도 있습니다. – zezba9000