2009-08-15 4 views
0

저는 주로 Java로 일하는 전문 개발자입니다. 그러나 여가 시간에는 다른 언어와 라이브러리로 놀고 싶습니다. 3D 지원 응용 프로그램이나 게임을 개발하는 법을 배우기 시작하고 싶습니다. 엔진이 많이 있지만 인스턴트 메시지를 사용하면 3d 개발의 기본을 배울 수 없을 것입니다.씬 그래프 엔진이나 OpenGL direct로 시작 하시겠습니까?

SDL과 같은 라이브러리 또는 씬 그래프 엔진으로 프로그래밍을 시작해야합니까? 아니면 opengl을 사용하여 직접 작업을 시작해야합니까?

나는 리눅스에서 모든 개발을하지만 내가 개발 한 것들을 크로스 플랫폼으로 만들고 싶다.

답변

3

일반 OpenGl로 시작하겠다. 몇 가지 기본 장면을 수행하고 거기에서 자신의 "3D 엔진"을 만들기 시작하십시오. 아마 당신이 배우고 저수준의 물건을 많이 조작해야하기 때문에 나쁠 것입니다. 그러나, 나는 그것이 당신이 배우고 싶어하는 것이라고 생각합니다.

지나치게 복잡한 것을 만들지 말고 기본으로 돌아가서 마스터 링 한 후에 (일부는 행렬 조작, 카메라, 절두체, 오 클루 전 등을 참조) 일부 3D 엔진을보고 그것을 구현했습니다. 나는 그 시간에 그들을 사용하기 시작할 것이다.

OpenGL 캔버스를 설정하려면 간단한 툴킷이 필요합니다. GLUT는 오래되고 아주 간단합니다. 간단한 화면 설정에 도움이됩니다. 그보다 낮은 레벨은 이식성이 떨어지며, Xorg는 일명 '한숨'을 부른다. 많은 툴킷 라이브러리에는 3D 캔버스 (QT, SDL 등)가 있습니다. 그러나 GLUT의 장점은 단지 창을 만들고, 일부 기능을 설정한다는 것입니다.

OpenGL의 기본 사항을 살펴볼 수있는 매우 멋진 3D 엔진은 Ogre입니다. 사용하기 쉽고 프로그래밍이 잘되어 있습니다.

+0

뿐만 아니라 모든 설정 파일이있는 OpenSceneGraph 기반 라이브러리

입니다 플러그인은 무엇이든해야합니다. : - \ \하지만 나는 일반 OpenGL로 시작하는 것에 매우 동의한다. – Ricket

+0

@Ricket yeah, 나는 너에게 동의한다. 그러나 3D 엔진이지만 그 이상은 아무것도 아닙니다. 그래서 학습을 좋아합니다. 그저 일을 할 수있는 다른 엔진이 있습니다. –

2

OpenGL에서 시작했습니다. OpenGL 그 자체로을 가르치는 것 외에도 웹에서 사용할 수있는 많은 자습서가 있으며 적절한 장면 조명 및 애니메이션 기본 사항과 같은 3D (게임) 개발에서 중요한 요소를 많이 배울 수 있습니다.

2

직접적인 OpenGL 액세스와 관련하여 3D 개발의 기본 사항은 빠르게 변화하는 목표입니다. 새로운 기능에 대해 몇 달에 한 번씩 배울 필요가 있음을 준비하십시오. 수년간의 침체 후에, 작년에 3 개의 OpenGL 표준이 발표되었는데, 각각 중요한 변화가있었습니다. 이것은 즐거운 일일 수 있지만, 따라하기 위해서는 많은 노력이 필요합니다.

오랫동안 사용 된 물건을보고 싶다면 OpenGL 2.0 사양으로 이동하십시오. 적어도 몇 년은 머물러 있습니다. OpenGL 3.0은 모든 변경 사항을 별도의 컨텍스트에서 소개하며 NVIDIA는 자체 기능을 삭제하지 않기로 약속했습니다. 경쟁력은 없지만 여가 시간에 안정적인 플랫폼을 갖추고 있습니다.

만약 OpenGL을 최후의 수단으로 생각한다면, 당신은 더러운 일을 모두하는 더 높은 수준의 라이브러리를 선호 할 것입니다. 3D 그래픽의 "기타"기본 요소, 즉 벡터, 행렬, 쿼터니언 (등)도이 수준에 나타납니다. GPU로 효율적으로 전달하는 방법을 알 필요가 없습니다. 고차원 3D 그래픽을 사용한다면 모든 API (OpenGL, OpenGL ES, Direct3D)와 기술 (스캔 라인 래스터 화, 레이 트레이싱)에서 동일하게 유지되는 것에 집중할 수 있습니다.

그래서 결국 여가 시간에 무엇을하고 싶은지 결정해야합니다. 두 경로 모두 흥미 롭습니다. 고정 된 목표가 없다면 내재 된 "더 나은"방법은 없습니다.

+0

답장을위한 고맙습니다. 가장 현대적인 소프트웨어 기술과 같다고 생각합니다. 따라 잡기에는 많은 시간이 걸리지 만 시도하기에는 재미가 있습니다. –

0

난 당신 OpenSceneGraph 및 C++

아니면 을 Delta3D을 제안 할 수 있습니다. 또한 오우거하지만 난 그것을 사용하지 않았다 ..

내가 오우거 전반에 걸쳐 존재하는 싱글 톤의 사용에 반대하고 있지만
관련 문제