OpenGL vs OGRE: Qual é o melhor para iniciantes? [fechadas]

10

Estou interessado em entrar no desenvolvimento de jogos e possui boas habilidades de programação em C / C ++. Eu tentei o OGRE antes e estou curioso para saber se devo aprender OGRE ou OpenGL como ponto de partida.

Pelo meu entendimento, o OGRE é um invólucro para OpenGL e DirectX. Então, supondo que eu aprenda OGRE, ainda preciso aprender o OpenGL também para desenvolver um jogo?

Além disso, alguém pode me indicar um bom tutorial para o OpenGL? Descobri que o OGRE está bem documentado (chegou mesmo com a distribuição!), Mas para o OpenGL, a maioria dos tutoriais que encontrei estão desatualizados.

Songbreaker
fonte
Se você é um novato na programação de gráficos 3D, eu tentaria ter uma idéia da maneira como as APIs de baixo nível operam primeiro (OpenGL ou D3D, isso realmente não importa) e depois mude para um mecanismo gráfico pronto, como como OGRE, para que você possa se concentrar em seu aplicativo / jogo em vez de renderizar o design / desenvolvimento do mecanismo.
drxzcl
1
Eu iria para 2D primeiro, ao invés de 3D.
The Duck Comunista
1
A maior parte do 2D não é apenas "3D sem Y" e tem seus próprios idiomas e técnicas, não tenho certeza se seguir uma trilha lateral em 2D seria bom para alguém com "bom c / c ++".
Patrick Hughes
Por que essa pergunta não é construtiva?
Songbreaker

Respostas:

13

O Ogre é realmente um invólucro para o OpenGL, no entanto, a idéia de um invólucro é que você não precisa se preocupar com os meandros do OpenGL. Obviamente, ajudará a conhecer um pouco do OpenGL, mas o Ogre ocultará muitos detalhes feios para você.

Eu diria que o Ogre é sem dúvida mais fácil de aprender do que o OpenGL, ou, pelo menos, você obterá resultados interessantes mais rapidamente. É claro que depende totalmente do que você gostaria de fazer para avaliar se vale a pena aprender o OpenGL.

Sobre os tutoriais do OpenGL, sim, a maioria deles está bastante desatualizada, no entanto, as especificações não avançam muito rápido, portanto muitos desses tutoriais antigos ainda se aplicam à maioria do OpenGL.

Alguns dos meus favoritos:

Roy T.
fonte
28
POR FAVOR, POR FAVOR, POR FAVOR, pare de enviar pessoas para NeHe. Os tutoriais são bons, mas incrivelmente desatualizados. Os dias do OpenGL 1.x se foram há muito tempo, vamos tentar não prejudicar a próxima geração de programadores gráficos logo de cara!
drxzcl
5
Veja "Uma introdução ao OpenGL moderno": duriansoftware.com/joe/…
drxzcl
1
@Ranieri Concordo absolutamente, muito fortemente. O site permaneceu o mesmo por anos e anos, e agora que o OpenGL mudou drasticamente nos últimos dois anos, ele realmente precisa ser desencorajado. @Songbreaker, tome nota disso e considere evitar os tutoriais de NeHe, ou pelo menos levá-los com um pouco de sal. O oleoduto fixo já se foi há muito tempo.
Ricket
1
@ Ranieri, @ Ricket Eu discordo absolutamente, muito fortemente. Considere a curva de aprendizado do OpenGL 4.x para um iniciante que não esteja familiarizado com a programação gráfica e esteja escolhendo o SDK de lado em seu tempo livre, sem instruções. Como está a documentação do OpenGL 4.x? Veja meu post para mais detalhes.
Andrew Rasmussen
4
@ Breakbreaker: eu tento. Vou deixar que você decida se é bom ou não.
Nicol Bolas
17

OpenGL! Sim, estou discordando abertamente de todos os membros deste fórum até agora.

OGRE está uma bagunça. A curva de aprendizado é íngreme. Sim, eles têm alguns bons tutoriais, mas sair dos limites dos tutoriais e fazer suas próprias coisas é MUITO difícil. Eu esperaria passar três semanas antes que você possa configurar e trabalhar com o OGRE, trabalhar com os tutoriais e descobrir o que fazer em seguida. Não há nada no OGRE que seja MUITO melhor ou mais simples que o OpenGL. Se você é um bom programador de C, como reivindicou, e entende seus ponteiros / matrizes / funções, o OpenGL será igualmente fácil, se não mais fácil.

É por isso que recomendo começar com o OpenGL. O OpenGL forçará você a aprender todos os fundamentos dos gráficos. É muito mais interessante, pois você perceberá o que eles estão acontecendo em segundo plano. E o YES começa com os tutoriais de NeHe. Sim, eles são 1.x, o que está muito desatualizado (isso é para você, Ranieri), mas pular para o OpenGL 4.x é uma curva de aprendizado muito íngreme.

Comece com o modo imediato em 1.x (glBegin, glEnd) e aprenda sobre as matrizes de vértices. Se quiser, brinque com as listas de exibição apenas para aprender. Em seguida, vá para objetos de buffer de vértice. Então aprenda sobre shaders. Cada uma dessas transições é muito fácil e existem vários ótimos tutoriais online. As VBOs estão no centro do 4.1, então quando você chegar lá, você não estará mais aprendendo material desatualizado, e é muito mais fácil chegar lá começando com o material 1.x.

Além disso, se você quiser uma carreira de desenvolvimento de jogos, ninguém vai contratá-lo, porque você pode fazer um cubo girar em alguma biblioteca pronta para uso. Eles vão contratá-lo porque você entende o que está acontecendo no nível mais baixo possível e pode tomar decisões de design com base nesse conhecimento valioso.

Referências: Eu estava onde você estava. Passei um mês no OGRE, uma semana testando o Irrlicht, uma semana testando o Horde3d, dois dias jogando com o DirectX e um mês jogando com o OpenGL. Depois de um mês com o OGRE, eu mal conseguia ir além do escopo dos tutoriais. Depois de um mês com o OpenGL, eu tinha um personagem rodando em um mundo minecraftiano, renderizando 260.000 cubos texturizados por quadro com mais de 700 quadros de taxa de quadros.

Andrew Rasmussen
fonte
Não concordo com suas declarações e também não acho que a experiência que você está expondo tenha algum significado. Tanto o Ogre quanto o OGL exigem que você tenha conhecimentos básicos de como conversar com a placa gráfica, o que não significa que você precise conhecer OGL ou DX, mas basicamente você precisa saber o que eles podem fazer. Neste ponto, o Ogre adiciona camadas que um iniciante leva meses para configurar corretamente e que você não pode ver com um exemplo que configurou em um mês. É sempre bom conhecer o OGL, mas dispensar o Ogre por causa de sua experiência não significa nada.
Klaim
1
Não, o OGRE realmente não exige que você saiba como conversar com a placa gráfica - esse é o ponto. Além disso, OGRE não é apenas um wrapper em torno de uma API de gráficos, é também um gerente de cena, carregador de modelo, etc.
Jarrett
5

Resposta curta? OGRO.

Resposta longa? O OGRE é um invólucro do OpenGL; portanto, você precisa fazer muito menos trabalho. Você não precisa se preocupar tanto em enviar dados para a GPU ou vincular sombreadores ou classificar vértices em um nível baixo. É muito mais rápido usar o OGRE do que usar o OpenGL para produção, e é provável que seu código também seja (muito marginalmente) mais rápido.

Se você estiver interessado no desenvolvimento de motores, use o GL. Senão, use OGRE. E eu provavelmente começaria com o OGRE de qualquer maneira.

O Pato Comunista
fonte
3

Não é necessário conhecer o hardware de computação gráfica para o desenvolvimento de jogos. É necessário tornar-se programador de gráficos ou parte da equipe de render dev em uma empresa de jogos (Nota pessoal: qual é a melhor diversão para todo o desenvolvimento de jogos :)).

Se você não deseja se tornar engenheiro de renderização, provavelmente não precisará aprender todo o openGL ou DX para desenvolver jogos.

Notabene
fonte
2

Eu argumentaria que nenhum dos dois é o melhor para iniciantes, mas "melhor" é um termo relativo que depende exatamente do que você deseja obter. Por exemplo, se o que você quer é aprender programação de gráficos 3D para adquirir habilidades que você poderia usar para conseguir um emprego como programador de gráficos 3D para uma empresa de jogos, essas escolhas fazem sentido. Com esse objetivo, você também pode olhar para o DirectX.

Se, no entanto, você tiver algum outro objetivo em mente, eu recomendaria procurar outras opções. Para iniciantes, embora da sua pergunta alguém suponha que você queira se envolver no desenvolvimento de jogos como programador, na verdade você não especificou isso. Escrever um mecanismo gráfico no OpenGL e construir sobre o Ogre é definitivamente para programadores importantes.

jhocking
fonte