호환성 및 성능을 고려할 때 어떤 버전의 OpenGL을 코딩해야합니까? [닫은]

OpenGL 사양이 업데이트되면 기능 만 추가됩니다. 이론적으로 코어 및 호환성 프로파일을 지원하는 최신의 가장 큰 하드웨어는 아주 오래된 OpenGL1.1 코드를 잘 실행해야합니다. 이것은 사실로 밝혀졌습니다. 나는 OpenGL1.1을 배우는 데 12 개월을 보냈고 그것에 대해 상당히 이해했다.

멋진 OpenGL4.2 서적 중 하나의 장을 읽었습니다. 필자가 사용하는 거의 모든 기능은 더 이상 사용되지 않으며 (예 : 표시 목록) 이러한 모든 작업을 수행하는 더 좋은 방법이 있다고 가정 할 수 있습니다.

모든 최신 하드웨어가 1.1을 완전히 지원할 수 있다고 생각하자. 1.1 1992 년 내가 어렵게 코딩 아니에요 출시 된 단지 20 옛 PC를 지원합니다. :-p 대부분의 게이머가 5 년 정도 된 중형 범위의 하드웨어를 사용한다고 가정하는 것이 합리적이라고 생각합니다.

새로운 방법은 보편적으로 두 가지 중 하나가되도록 설계되었다고 생각합니다. 성능 향상 또는 코딩 용이성. 나는 어딘가에서 그것의 결코 읽지 않는다는 것을 읽었다! XD

~ 5 년 전 하드웨어에서 가장 널리 지원되는 OpenGL 버전은 무엇입니까? 이러한 고려 사항을 고려할 때 어떤 버전이 가장 적합합니까?



답변

귀하의 고려 사항을 감안할 때 각 버전에 대한 OpenGL 사양이 출시 된 시점을 확인하고 내가 본 내용에서 전반적인 통찰력을 얻었습니다.

FBO, VAO 등을 소개 한 OpenGL 3은 거의 5 년 전에 2008 년 7 월 11 일에 출시되었습니다. 물론, 그 날짜 이후의 모든 카드가 OpenGL 3을 즉시 사용할 수 있다고 기대할 수는 없습니다.

Steam 하드웨어 설문 조사를 살펴보면 40 %는 DirectX 10입니다. OpenGL 3는 유사한 그래픽 카드가 필요했기 때문에 대부분의 DirectX 10 카드는 최소한 OpenGL 3을 실행할 수 있다고 가정하는 것이 안전합니다.

OpenGL 3은 GeForce 8xxx 시리즈까지 모든 카드에서 지원되며, 올바르게 기억하면 꽤 인기가 있습니다. 주목할 점은 Intel HD 2000 및 3000 Graphics (Sandy bridge)가 최대 OpenGL 3 만 지원한다는 점입니다. 대상을 지정할 계획이라면 명심하십시오.

결론 : OpenGL 3은 좋은 선택입니다. 또한 대상 고객에 따라 대부분의 게이머가 평균보다 하드웨어가 더 우수하다는 점을 기억하십시오.


답변

여기부터 시작하겠습니다 : http://store.steampowered.com/hwsurvey

예를 들어, 4cpus를 대상으로하는 경우 45 %의 사용자 만 공격하지만 2로 작업하면 90 %에 근접하게됩니다.


답변

대답은 언급 한 기간 내에 출시 된 인텔 그래픽에서 실행해야하는지 여부에 따라 다릅니다.

그렇다면 OpenGL 2.1 (또는 1.5)로 제한하십시오. 그렇지 않으면 3.x가 합리적입니다.

예, 이전 버전의 OpenGL은 계속 실행되며 한 관점에서 보면 더 단순 해 보일 수 있습니다. 상황이 구부러지는 곳은 너무 쉽게 지원하지 않는 일을하려고 할 때입니다. OpenGL 1.1은 어려운 방법 일뿐만 아니라 특정 결과를 얻으려는 경우 종종 불가능한 방법입니다.


답변

첫째, 디스플레이 목록과 같은 OpenGL 1.1은 호환성 프로파일 (일반적으로 그러한 경우)이있는 경우 여전히 새로운 컨텍스트에서 작동합니다. 유일한 문제는 콘솔 특정 그래픽 라이브러리 중 하나 인 OpenGL ES (일반적으로 OpenGL ES와 유사한 OpenGL이 제거됨) 또는 WebGL (어쨌든 상당히 많은 재 작업이 필요함)으로 포팅 할 것으로 예상되는 경우입니다.

개인적으로 정점 / 조각 셰이더와 VBO를 사용하는 것이 좋습니다. 그들은 꽤 오랫동안 주변에 있었고 훌륭한 성능 향상을 제공합니다. 클래스에서 함수를 래핑하면 간단한 폴백을 제공 할 수도 있습니다.

정점 배열 객체와 같은 것을 모방 할 수도 있습니다.


답변

5 년 된 하드웨어를 사용하는 일부 사람들은 여전히 ​​XP를 사용하고 있습니다. 이는 DirectX 10 또는 OpenGL 3으로 코딩조차 할 수 없음을 의미합니다. OpenGL 3에는 프레임 버퍼와 같은 많은 이점이 있습니다. 솔직히, 나는 당신이 그 기능들을 포함시킬 수 있도록 당신의 시스템 요구 사항을 조금만 부풀려 줄 것이다.


답변

3d 소프트웨어는 “기본”그래픽 API 버전과 “최신 및 가장 큰”API 버전 모두에 대한 코드 경로를 갖는 것이 일반적입니다.

일반적인 기본 그래픽 버전은 D3D9 및 OpenGL 2.1 / GLSL 120입니다. 이전 하드웨어가 지원하지 않기 때문에 지오메트리 쉐이더가 모두 누락되었습니다.

또 다른 기본 옵션은 ANGLE이며, 이는 GLES 2.0과 D3D9, 데스크톱 OpenGL 및 모바일 GLES 2.0에서 실행되는 EGL입니다. Chrome 및 Firefox에서 Google 크롬 및 webgl의 백엔드입니다.

http://code.google.com/p/angleproject/

선택한 “최신 및 최고”버전은 더 어렵습니다. 최신 API 및 하드웨어를 대상으로할수록 더 나은 기능을 지원할 수 있지만 최신 하드웨어에서만 가능합니다.