2012-05-12 2 views
5

OpenGL을 사용하여 게임을 시작하고 싶습니다. 오랫동안 가지고 있었던 게임 아이디어를 구현하기 위해 볼 수 있지만 OpenGL의 여러 버전이 있습니다.OpenGL 버전

저는 구형 컴퓨터도 지원하고 싶습니다. 그래서 OpenGL 2.1이 가장 적합한 버전인지 궁금합니다. OpenGL 4는 데스크톱 컴퓨터에서도 작동하지 않습니다. O

게임의 최소 사양 유형은 DX9 시대의 그래픽 카드이므로 기본적으로 최신 컴퓨터는 기본 그래픽 (심지어 저가형 온보드 그래픽)을 실행합니다. 나는 Java를 가장 잘 (과거에 Java3D를 수행했다는 것을) 알고 있으며 모든 3 가지 주요 OS에 배포하고자하므로 구현을 위해 JOGL을 살펴볼 것입니다.

이 점을 염두에두고 어떤 종류의 책을 제안 해 주시겠습니까? 큰 변화가 있다는 것을 읽은 것처럼 OpenGL 3 또는 4 책을 얻는 것은 무의미한 일일까요? 대신에 2.1에 대한 오래된 책에 정착해야할까요?

답변

2

OpenGL 2.1이 가장 적합 할 수 있습니다. 비교해 보면 DirectX 9c와 같은 호환성을 가지고 있습니다. DirectX 9c는 최신 Windows XP에서 사용할 수 있으며 많은 XP 상자가 있다는 것을 알고 있습니다. 내 친구 중 일부는 여전히 XP를 선호합니다.

이 시점에서이 API를 지원하지 않는 그래픽 카드는 매우 쓸모 없게 될 것입니다.

사용자가 2.1을 사용하여 게임을 실행할 수없는 경우 사용자에게 최신 컴퓨터를 구입하도록 제안해야 할 수 있습니다. 이 사고 방식을 채택한다면 OpenGL 3.0을 사용할 수도 있습니다.

제 의견으로는 2.1을 먼저 배우고 연습을 한 다음, 3.x를 사용하고 결국 4.x를 사용하기 시작합니다. 큰 게임 회사는 일반적으로 호환성에 신경 쓰지 않으며 사용자가 새 하드웨어를 구입하게합니다.

+0

답장을 보내 주셔서 감사합니다. XP와 DX9 스타일의 호환성은 예를 들어 다음 COD가 아니기 때문에 내가 목표로했던 것입니다.) "opengl superbible"이라고하는 책을 보았습니다 만, 최신판은 OpenGL 3을 커버하는 것처럼 보입니다. 제 4 판? – user859194

+1

네 번째 에디션이 좋을 것 같습니다. 2.1을 다루고 훌륭한 예제와 소스 코드를 가지고있는 것 같습니다. 리눅스 용 make 파일을 포함합니다. –

+0

그래, 내가 체크 아웃 할거야. – user859194

3

호기심에서 벗어났습니다. Linux를 사용하고 있습니까?

리눅스는 실제로 병목 현상의 주된 원인입니다. 오픈 소스 드라이버를 사용하는 Linux 시스템은 병 목입니다 (ATI 또는 NVIDIA 드라이버가있는 시스템은 문제가되지 않으며 최신의 가장 우수한 기능을 지원합니다). 앞으로도 Mesa 8이 출시되면서 오픈 소스 3 OpenGL 3 솔루션이 나왔습니다.

JOGL을 사용하고 있기 때문에 쉐이더를 사용했다면 쉐이더를 무시하지 말 것을 제안합니다. OpenGL ES 2 프로파일을 사용하여 구현할 것을 고려합니다. (어쨌든 자바를 사용하기 때문에

아, 또한 책을 구매할 때부터 대화 형 컴퓨터 그래픽 : Shader 기반 OpenGL을 사용한 하향식 접근 방식 (6th 판).

나는이 책의 이전 판을 여러 달 전에 유니 (uni)에서 배웠다. 그리고 최근에 여섯 번째 판을 구입했습니다. 왜냐하면 저는 오래된 것을 너무 좋아하고 그 품질을 좋아하기 때문입니다.

+0

나는 실제로 모든 3 OS를 빈번하게 사용하지만, 주로 Windows 및 OSX. 나는 안드로이드 포트를 보지 않을 것이다. 내가 가지고있는 게임 아이디어는 모바일 장치에서 잘 작동하지 않을 것이다. 나는 그 책을 보게 될 것이다. 대답을 주셔서 감사한다. – user859194

0

오래된 학교 OpenGL은 여전히 ​​지원됩니다. 현대 OpenGL을 사용하지 않아도된다. 비교적 복잡하지 않거나 특이하지 않은 것을하고 있다면 고정 함수 파이프 라인을 사용할 수있다. 고급 조명이나 이와 비슷한 것을 시작하고 싶다면 현대 OpenGL을 사용하는 것이 좋습니다.

솔직하게 말해서, 저는 오래된 학교 OpenGL과 비슷합니다. 훨씬 쉽고 훨씬 빠르게 화면에 표시 할 수 있습니다.현대 OpenGL은 믿을 수 없지만, 훨씬 복잡해지고 많은 코드가 필요하며 효과적으로 사용하기 시작하기 전에 너무 많이 알아야합니다.

물어 본 주된 차이점은 셰이더 작동 방식을 사용자 정의하는 것입니다. 셰이더는 GPU에서 실행되는 프로그램입니다. 과거에는 이러한 쉐이더가 사전 프로그래밍되어있어 작업 방법에 대한 제어권이 거의 없었기 때문에 OpenGL에서 수행 할 수있는 작업에 제한이있었습니다 (작업이 완료되었으므로 훨씬 더 일반적이고 덜 복잡했습니다). 강한). 따라서 현대 OpenGL을 사용하면 쉐이더 작동 방식을 사용자 정의 할 수 있습니다. 예를 들어 버텍스 쉐이더 (vertex shader) 란 GPU에 푸시 된 포인트를 처리하고 해당 포인트의 위치를 ​​결정하는 쉐이더 (shader)라는 것입니다. 최신 OpenGL에서 GLSL이라는 무언가를 사용하여 이러한 쉐이더의 작동 방식을 사용자 정의 할 수 있습니다.

GLSL은 GPU에 푸시되는 C 스타일의 반 조립 언어이며 구형과 최신 OpenGL의 주요 차이점입니다.

얻을만한 책은 2.x에서 2.0 권의 책을 가져와야한다는 것입니다. 새로운 OpenGL과 같은 야구장조차도 아닙니다. 현대 OpenGL로 전송하는 일반적인 개념이 있지만 대부분은 완전히 다릅니다. Andre Lamothe의 OpenGL 게임 프로그래밍을 5 달러라고 생각해서 주문 했나요? 그것은 2.1에 매우 좋은 소개이며 코드는 Win32로 작성되었으며 Windows API가 거의 변경되지 않았기 때문에 거의 모든 코드가 거의 동일하게 작동합니다. 책은 약 12 ​​년이지만 얼마나 잘 쓰여졌는지 보여줌) 실제로 흥미로운 프로젝트 (애니메이션 로봇, 처음 몇 분은 회전하는 큐브)가 있습니다. 어쨌든, 행운을 빈다. 힘들고 긴 길이지만, 너무 보람적입니다.

관련 문제