OpenGL 1.x와 2.x의 차이점은 무엇입니까?


13

OpenGL 1. *와 2. *의 차이점을 보여주는 좋은 자습서가 있습니까?

glBegin ()과 같이 호출 해서는 안되는 함수를 아는 것이 도움이 될 것 입니다.


1
질문을 다시 말씀 드리겠습니다. 고정 함수 렌더링과 쉐이더의 차이점은 무엇입니까?
EnabrenTane

3
그래도 완전히 다른 질문입니다.
Jari Komppa

답변:


11

OpenGL.org은 시작 페이지가 다양한 튜토리얼에 대한 링크 듬뿍, 개요를 가지고있다.

간단히 말해 OpenGL 2.0은 고정 기능 (1.x)과 완전 프로그래밍 가능 (2.x +) 환경 사이에 있습니다. 셰이더를 추가하면서 OpenGL 1.x의 모든 기능을 계속 사용할 수 있습니다. 앞으로 (3.x +), 모든 종류의 오래된 고정 기능 시스템은 더 이상 사용되지 않기 때문에 두 세계를 혼합하는 대신 깨끗하게 시작하는 것이 좋습니다.

나는 이것이 이전에 요청되지 않은 것에 놀랐습니다. 또는 적어도 빠른 검색에서 찾을 수 없었습니다.


버전 별 자습서를 찾을 수 없습니다. (3.0 제외)
t123

해당 페이지의 "자습서 및 사용 방법 안내서"아래에 많은 링크가 있지만 기본적으로 OpenGL 1.x와 "다른 것"중에서 선택할 수 있습니다.
Jari Komppa

@ tm1rbrt : 유효한 모든 1.x 자습서가 계속 있기 때문에 2.1에 대한 특정 자습서를 찾을 수 없습니다. 유효한 2.1 자습서 . 3.x에서 중단되는 유일한 이유는 API가 제거 되었기 때문입니다. 2.1 시대 셰이더 기반 튜토리얼을 찾고 있다면 lighthouse3d 튜토리얼을 사용할 수 있습니다. 그러나 3.x 하드웨어는 2006 년부터 사용되어 왔으며 현재는 마더 보드 및 CPU에도 내장되어 있습니다. 따라서 미래는 2.x 세계에 있지 않습니다. 향후 자습서는 일반적으로 3.x 이상에 중점을 둘 것입니다.
Nicol Bolas

3

OpenGL은 버전에 의해 대형입니다 하지 Direct3D의 버전처럼. 이전 코드는 여전히 새 버전에서 작동합니다 (한 가지 예외). 따라서 OpenGL v1.4는 OpenGL 2.1에서 제대로 작동합니다. OpenGL 버전은 빼기가 아닌 추가입니다.

OpenGL 2.0 및 2.1은 OpenGL 쉐이딩 언어로 셰이더를 추가합니다. 또한 부동 소수점 텍스처, 2의 제곱이 아닌 텍스처 등과 같은 다른 기능도 추가합니다. 전체 목록은 OpenGL 2.1 사양 자체 에서 사용할 수 있습니다. "버전"섹션을보십시오. 이전 버전에서 변경된 내용을 알려줍니다.

API 변경 규칙에 대한 유일한 예외는 OpenGL 3.1 (예, 3.0이 아닌 3.1)입니다. OpenGL 3.0에서는 많은 API가 "더 이상 사용되지 않음"으로 지정되었습니다. 이는 OpenGL 담당위원회 인 ARB가 이후 버전에서 이러한 기능을 제거 할 수 있음을 의미합니다. 이 제거는 OpenGL 3.1에서 발생했습니다. 3.0 사양에는 더 이상 사용되지 않는 항목이 포함되어 있으며 3.1 사양은 그에 따라 잘립니다.

신경 쓸 필요는 없습니다 (적어도 Windows와 Linux에서는 MacOSX가 다릅니다). 이전에 제거 된 모든 기능이 반환되는 " 호환성 "모드 에서 제대로 실행할 수 있습니다 . OpenGL의 구현은 호환성 컨텍스트를 지원할 필요는 없습니다 (그리고 Mac OS X Lion은 지원하지 않습니다. 요청에 따라 2.1 또는 3.2 코어를 지원합니다). 구형 응용 프로그램과의 하위 호환성을 위해.


OpenGL 4. *에 대해 무엇이든 추가 할 수 있습니까?
Kromster

@Krom : 할 말이 없습니다. 1.x에서 2.x로가는 것처럼 아무것도 제거되지 않았습니다.
Nicol Bolas

0

OpenGL 1.x 및 2.x에 대한 자습서가 있다고 생각하지만 기능이나 사용 편의성 등이 어떻게 다른지 보여주는 자습서는 없을 것입니다.

특정 OpenGL 버전에 대한 자습서를 검색하고 유사한 자습서를 찾아서 직접 비교하는 것이 가장 좋습니다.


누가 계속 내 의견을 무작위로 내리고 있습니까?
LizardGamer

왜 downvotes가 여기에 있습니까? 큰 대답은 아니지만 downvotes? 확실하지 않다. 문제는 trully가별로 평범하지 않은 것을 원한다 ... 차이점을 보여주기위한 튜토리얼, 그것은 대부분 튜토리얼이하는 것이 아니다 ...
Notabene

@LizardGamer 며칠 전에 gamedev.SE에 가입 한 것을 확인했습니다. "환영합니다!" 그러나 FAQ를 읽으십시오. gamedev.stackexchange.com/faq 이 답변은 당신이주고 싶지 않은 답변의 완벽한 예입니다. 질문과 답변 모두에 대해보다 구체적이고 건설적인 자세를 유지하십시오. FAQ는이 사이트의 목적과 찾고있는 콘텐츠의 종류를 이해하는 데 도움이됩니다. 행운을 빕니다!
증폭 91

@ notabene이 답변은 실제로 질문에 대답하지 않습니다. 그것이 제안하는 유일한 제안은 기본적으로 "답을 찾는 것"입니다. 분명히 OP는 이미 여기에 질문을함으로써 그렇게하고 있습니다.
증폭 91

@ Amplify91 유일하게 환영 해 주셔서 감사합니다. 이미 FAQ를 읽었습니다. 질문하지 않는 방법의 예를 찾지 못했습니다. 또한 OpenGL의 버전을 비교하는 것과 관련된 자습서를 보지
못했기
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.