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.
Respostas:
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:
fonte
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.
fonte
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.
fonte
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.
fonte
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.
fonte