OpenGL vs OGRE : 초보자에게 가장 적합한 것은 무엇입니까? [닫은]


10

게임 개발에 관심이 있고 좋은 C / C ++ 프로그래밍 기술을 보유하고 있습니다. 전에 OGRE를 사용해 보았으며 OGRE 또는 OpenGL을 시작점으로 배울 지 궁금합니다.

내 이해에서 OGRE는 OpenGL 및 DirectX의 래퍼입니다. 그래서, 나는 OGRE를 배우고 있다고 가정하는데, 게임을 개발하기 위해 OpenGL을 배우어야합니까?

또한 누군가 OpenGL에 대한 좋은 자습서를 알려 줄 수 있습니까? 나는 OGRE가 잘 문서화되어 있음을 발견했다.


3D 그래픽 프로그래밍을 처음 접하는 사람이라면 저수준 API가 먼저 작동하는 방식 (OpenGL 또는 D3D, 실제로 중요하지 않음)을 느끼고 기성품 그래픽 엔진으로 전환하려고합니다. 렌더링 엔진 디자인 / 개발 대신 애플리케이션 / 게임에 집중할 수 있도록 OGRE로
drxzcl

1
저는 3D가 아닌 2D를 먼저 시작합니다.
공산주의 오리

1
대부분의 2D는 "Y가없는 3D"가 아니며 고유 한 관용구와 기술을 가지고 있습니다. 2D로 옮길 부분이 이미 "좋은 c / c ++"인 사람에게는 도움이 될지 확신 할 수 없습니다.
Patrick Hughes

이 질문이 왜 건설적이지 않습니까?
Songbreaker

답변:


13

오우거는 실제로 OpenGL의 래퍼이지만 그러한 래퍼의 아이디어는 OpenGL의 복잡한 점에 대해 걱정할 필요가 없다는 것입니다. 물론 OpenGL에 대해 조금 아는 것이 도움이 될 것입니다. 그러나 오우거는 많은 추악한 세부 사항을 숨길 것입니다.

나는 OpenGL과 반대로 Ogre가 배우기가 더 쉽다고 말하거나 적어도 흥미로운 결과를 더 빨리 얻을 것이라고 말합니다. 물론 OpenGL을 배우는 것이 가치가 있는지 평가하기 위해 무엇을하고 싶은지에 달려 있습니다.

OpenGL 튜토리얼에 관해서는 그렇습니다. 대부분은 꽤 구식이지만 사양이 실제로 빠르게 진행되지 않았으므로 많은 오래된 튜토리얼이 여전히 대부분의 OpenGL에 적용됩니다.

내가 좋아하는 몇 가지 :


28
제발 사람들을 NeHe로 보내지 마십시오. 튜토리얼은 훌륭하지만 매우 구식입니다. OpenGL 1.x의 시대는 오래 지났습니다. 차세대 그래픽 프로그래머를 방해하지 않도록 노력합시다!
drxzcl

5
"현대 OpenGL에 대한 소개"를 참조하십시오 : duriansoftware.com/joe/…
drxzcl

1
@Ranieri 나는 절대적으로 매우 강력하게 동의합니다. 이 사이트는 수년 동안 동일하게 유지되어 왔으며, 이제 OpenGL이 지난 몇 년 동안 상당히 크게 바뀌 었으므로 실제로 낙담해야합니다. @Songbreaker이 점을 명심하고 NeHe의 자습서를 피하거나 적어도 소금 한 덩어리로 가져 가십시오. 고정 파이프 라인은 오랫동안 사라졌습니다.
Ricket

1
@ Ranieri, @ Ricket 절대적으로 매우 동의하지 않습니다. 그래픽 프로그래밍에 익숙하지 않고 자유 시간에 SDK를 배우지 않고 초보자를위한 OpenGL 4.x의 학습 곡선을 고려하십시오. OpenGL 4.x에 대한 설명서는 어떻습니까? 자세한 내용은 내 게시물을 참조하십시오.
Andrew Rasmussen

4
@ Songbreaker : 노력합니다. 그들이 좋은지 아닌지를 결정하기 위해 당신에게 맡길 것입니다.
Nicol Bolas

17

OpenGL! 예, 지금까지이 보드의 모든 사람들과 공개적으로 동의하지 않습니다.

OGRE는 엉망입니다. 학습 곡선이 가파 릅니다. 예, 훌륭한 튜토리얼이 있지만 튜토리얼의 범위를 벗어나 자신의 일을하는 것은 매우 어렵습니다. OGRE를 설정하고 작업하고 튜토리얼을 진행하며 다음에 수행 할 작업을 파악하기까지 3 주가 소요될 것으로 예상됩니다. OGRE에 대해서는 OpenGL보다 훨씬 좋거나 간단한 것이 없습니다. 당신이 주장한대로 훌륭한 C 프로그래머이고 포인터 / 배열 / 함수를 이해한다면 OpenGL은 쉽지 않을 것입니다.

OpenGL로 시작하는 것이 좋습니다. OpenGL을 사용하면 그래픽의 모든 기본 사항을 배울 수 있습니다. 그들이 배경에서 무슨 일이 일어나고 있는지 실제로 깨닫게 될 때 훨씬 더 흥미 롭습니다. 그렇습니다. NeHe의 튜토리얼부터 시작하십시오. 예. 1.x는 매우 구식입니다 (이것은 Ranieri입니다). OpenGL 4.x로 점프하는 것은 학습 곡선이 너무 가파 릅니다.

1.x (glBegin, glEnd)에서 즉시 모드로 시작한 다음 정점 배열에 대해 알아 봅니다. 원한다면 표시 목록을 가지고 배우면됩니다. 그런 다음 정점 버퍼 객체쪽으로 이동하십시오. 그런 다음 셰이더에 대해 배웁니다. 이러한 각 전환은 매우 쉽고 온라인에는 훌륭한 자습서가 많이 있습니다. VBO는 4.1의 핵심에 있으므로 VBO는 더 이상 오래된 자료를 배우지 않으며 1.x부터 시작하여 훨씬 쉽게 얻을 수 있습니다.

또한 게임 개발 경력을 원한다면 선반 라이브러리에서 큐브 스핀을 만들 수 있기 때문에 아무도 당신을 고용하지 않을 것입니다. 그들은 당신이 가능한 가장 낮은 수준에서 무슨 일이 일어나고 있는지 이해하고 그 소중한 지식을 바탕으로 디자인 결정을 내릴 수 있기 때문에 당신을 고용하려고합니다.

참고 문헌 : 나는 당신이 있었던 곳입니다. 나는 일주일 동안 Irrlicht, Horde3d 시험, 일주일 DirectX와 OpenGL로 한 달 동안 OGRE에서 한 달을 보냈습니다. OGRE로 한 달 후 튜토리얼의 범위를 넘어 설 수는 없었습니다. OpenGL을 사용하여 한 달 후, 캐릭터가 마인 크래프트 세계를 돌아 다니며 프레임 당 700+ 프레임 속도로 260,000 개의 텍스처 큐브를 렌더링했습니다.


나는 당신의 진술에 동의하지 않으며 또한 당신이 드러내는 경험이 의미가 없다고 생각합니다. 오우거와 OGL 모두 그래픽 카드와 대화하는 방법에 대한 기본 지식이 필요하므로 OGL 또는 DX를 알아야하는 것이 아니라 기본적으로 그들이 할 수있는 일을 알아야합니다. 이 시점에서 Ogre는 초보자가 올바르게 설정하는 데 몇 개월이 걸리고 한 달에 설정 한 예제로는 볼 수없는 레이어를 추가합니다. 항상 OGL을 아는 것이 좋지만, 경험 때문에 Ogre를 해산한다고해서 아무 의미가 없습니다.
Klaim

1
아니요, OGRE는 그래픽 카드와 대화하는 방법을 알 필요가 없습니다. 바로 그 점입니다. 또한 OGRE는 그래픽 API를 둘러싼 래퍼 일뿐만 아니라 장면 관리자, 모델 로더 등입니다.
Jarrett

5

짧은 답변? OGRE.

더 긴 대답? OGRE는 OpenGL의 래퍼이므로 훨씬 적은 작업을해야합니다. GPU로 데이터를 보내거나 셰이더를 바인딩하거나 정점을 낮은 수준으로 정렬하는 것에 대해 걱정할 필요가 없습니다. 프로덕션에 OpenGL을 사용하는 것보다 OGRE를 사용하는 것이 훨씬 빠르며 코드가 (매우 미미하게) 빠를 가능성이 있습니다.

엔진 개발에 관심이 있다면 GL을 사용하십시오. 그렇지 않으면 OGRE를 사용하십시오. 어쨌든 OGRE로 시작했을 것입니다.


3

게임 개발에는 컴퓨터 그래픽 하드웨어를 알 필요가 없습니다. 게임 회사에서 그래픽 프로그래머 나 렌더 개발자 팀의 일원이되어야합니다 (개인 메모 : 전체 게임 개발에서 가장 재미 있습니다).

렌더 엔지니어가되고 싶지 않다면 게임을 개발하기 위해 전체 openGL 또는 DX를 배울 필요가 없습니다.


2

나는 초보자에게도 최고가 아니라고 주장하지만 "최고"는 정확히 당신이 얻고 자하는 것에 의존하는 상대적인 용어입니다. 예를 들어, 게임 회사의 3D 그래픽 프로그래머로 직업을 얻는 데 사용할 수있는 기술을 습득하기 위해 3D 그래픽 프로그래밍을 배우고 자하는 경우 이러한 선택이 합리적입니다. 이 목표를 통해 DirectX를 볼 수도 있습니다.

그러나 다른 목표를 염두에두면 다른 옵션을 살펴 보는 것이 좋습니다. 우선, 당신의 질문에서 프로그래머로서 게임 개발에 참여하고 싶다고 가정하지만 실제로는 지정하지 않았습니다. OpenGL에서 그래픽 엔진을 작성하고 Ogre 위에 구축하는 것은 하드 코어 프로그래머를위한 것입니다.

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