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


19

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

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

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

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

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

답변:


19

귀하의 고려 사항을 감안할 때 각 버전에 대한 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은 좋은 선택입니다. 또한 대상 고객에 따라 대부분의 게이머가 평균보다 하드웨어가 더 우수하다는 점을 기억하십시오.


이것은 좋은 대답입니다. 내가 찾던 일종의 통찰력이었습니다.
Suds

3
"또한 주목할만한 점은 인텔 HD 2000 및 3000 그래픽 (샌디 브리지)이 OpenGL 3까지만 지원한다는 점입니다."참고 : 인텔은 신경 쓰지 않기 때문에 GL 3.1 만 지원합니다. 그리고 인텔이기 때문에 "지원"은 한알의 소금으로 가져와야합니다. 그들의 하드웨어 3.3을 지원할 있지만 노출 시키지는 않습니다 (다시 신경 쓰지 않기 때문에). 인텔 하드웨어에서 OpenGL 3.x를 사용하지 않는 것이 좋습니다. 실제로 인텔 하드웨어를 기반으로 한 쉐이더 기반의 작업은 피하고 싶습니다.
Nicol Bolas

그런 다음 질문이 제기됩니다. 인텔 하드웨어 시장은 얼마나 포화 상태입니까? 인텔 그래픽에 신경 쓰지 않고 OpenGL3.x를 사용하는 것이 가치가 있습니까? 아니면 실제로 중요한 인텔 그래픽 하드웨어가 충분한가?
Suds

1
한 가지 문제는 OSX입니다. 최신 릴리스 10.7.x는 OpenGL 3.2 만 지원 하고 10.6.x는 3.0 (또는 2.x) 만 지원합니다. 10.5.x는 카드에 따라 크게 다르며 1.3, 1.5 및 2.0이 가능합니다. 사용자가 업데이트를 위해 Apple에 돈을 지불하지 않는 한 이러한 시스템은 OpenGL 버전에서 영원히 멈출 것입니다. OpenGL을 업데이트 할 OSX 용 비디오 카드 드라이버 업데이트 나 업데이트는 없습니다. 다른 문제는 넷북에 사용되는 도그 리 임베디드 인텔 칩셋 중 일부입니다. 그들 중 다수는 OpenGL 2.0 이상입니다.
David C. Bishop

그리고 당신은 ... 아직도의 OpenGL 1.1을 흔들 된 3DS를 가지고
kirbyfan64sos

8

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

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


1
OpenGL은 어디에서 보았습니까? DirectX 만 볼 수 있습니다 (Windows 만 타겟팅하려는 경우 주목할만한 흥미로운 내용).
DMan

그래픽 카드 분석을 기반으로 합법적 인 작업을 수행 한 것 같습니다
Jimmy

예-OpenGL에 대해서는 아무것도 보지 못했지만 카드 모델에서 얻을 수 있습니다. 또는 DirectX 버전과 OpenGL 사이에는 상당한 양의 상관 관계가 있다고 생각합니다.
salmonmoose

3

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

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

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


왜 1.1이 종종 불가능한 지에 대한 예를 추가해야합니다. 1.1 기능과 쉽게 관련 될 수있는 방법 중 하나는 다중 블렌드 패스입니다. FBO가없고 컴포넌트 텍스처 당 8 비트로 제한되기 때문에 블렌드 패스가 쌓이면 정밀도가 떨어지기 시작합니다. 3/4/5 패스를 사용하면 최종 결과가 16 비트 또는 8 비트 그래픽처럼 보이기 시작합니다. 그러나 1.1 기능 세트로 더 높은 수준의 효과 (기본 다중 텍스처링은 우리 모두에게 익숙한 것임)를 시뮬레이션하기 위해 여러 패스가 필요한 경우가 많습니다.
Maximus Minimus 2016 년

인텔 HD 그래픽 (Sandy / Ivy Bridge)조차도 OpenGL 3.1 만 지원하며 1 년 전입니다. 저렴한 (또는 저전력) 랩톱을 지원할지 여부가 결정됩니다.
Steve Howard

2
@SteveHoward : 인텔 HD 그래픽의 OpenGL 4. 지원할 수있는 소스
야누스 Troelsen

그 기사는 제가 의견을 게시한지 약 3 개월이 지난 후입니다.
Steve Howard

1

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

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

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


0

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


8
-1 : "5 년 된 하드웨어로 일부 사람들은 여전히 ​​XP를 사용하고 있습니다. 따라서 DirectX 10 또는 OpenGL 3으로 코딩 할 수도 없습니다." 사실이 아니다. OpenGL 3.x는 XP에서 작동 합니다. API / 드라이버 때문에 XP에서 제한되는 것은 D3D10뿐입니다. 하드웨어와 관련이 없습니다.
Nicol Bolas

0

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 및 하드웨어를 대상으로할수록 더 나은 기능을 지원할 수 있지만 최신 하드웨어에서만 가능합니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.