Tenho certeza de que já existem várias perguntas como essa, mas a atualização constante da biblioteca OpenGL as descarta e, em um ou dois meses, as respostas aqui serão inúteis novamente.
Estou pronto para iniciar a programação no OpenGL usando C ++. Eu tenho um compilador funcional (DevCpp; NÃO me peça para mudar para o VC ++ e não me pergunte o porquê). Agora estou apenas procurando um tutorial sólido sobre como programar com o OpenGL. Meu assistente encontrou o tutorial fornecido pela NeHe Productions, mas como eu descobri, é MUITO FORA DA DATA! (embora eu tenha reunido uma janela básica para suportar uma tela OpenGL)
Então eu fui online, e encontrei o OpenGL SuperBible, que aparentemente usa freeglut? Mas o que eu gostaria de saber é se a SuperBible 5th edition está ou não atualizada. A sugestão de freeglut que eu encontrei disse que a versão mais recente era 2.6.0, mas agora é 2.8.0!
- O OpenGL SuperBible ainda é um local bom e bastante atualizado para começar?
- Existe um lugar melhor para aprender OpenGL?
- Posso simplesmente armazenar freeglut no diretório de inclusão do DevCpp (talvez no GL) ou há algum procedimento importante?
- Existem comentários ou sugestões que eu não pensei em perguntar, pois estou apenas começando?
A @dreta esclareceu algumas coisas para mim, então agora tenho uma idéia melhor do que perguntar:
Eu acho que gostaria de começar com o OpenGL usando uma biblioteca de wrapper em vez de acessar diretamente o OpenGL.
Eu apenas acho que, para um iniciante, seria mais fácil programar e obter bons resultados, embora ainda não precise entender todos os detalhes sombrios (como o @stephelton mencionou).
O problema é que não consigo encontrar nenhuma biblioteca que não tenha referências indefinidas para as funções que não são mais suportadas. Freeglut parece operacional, mas ainda usa GLU.
Alguém sabe o que eu posso fazer?
Além disso, tentei compilar a primeira fonte do SuperBible, mas obtive erros porque o GLAPI não está sendo definido como um tipo, o erro originário da biblioteca GLU.
Gostaria de usar o SuperBible, mas não sei como consertar isso.
Respostas:
Nosso residente Nicol Bolas mantém um livro on-line sobre programação gráfica moderna . Ele usa o OpenGL moderno, tudo é apresentado em um ritmo fácil de consumir, é um bom lugar para começar. Eu o tenho usado para aprender o OpenGL moderno e ele tem me feito maravilhas nos últimos 2 meses.
Além disso, existem pedaços de conhecimento aqui e ali. O wiki do OpenGL é bastante bem mantido. O código não é "práticas recomendadas" e, às vezes, há ambiguidade na versão do OpenGL, mas fora dessas raras ocasiões, é um ótimo recurso.
Se você quiser aprender sobre o GLSL, há o Tutorial do GLSL Core do lighthouse3D. Embora este seja o único conhecimento essencial em que eu "confiaria" no site, o descanso tende a estar desatualizado.
Depois de começar a entender como o OpenGL moderno é feito, será fácil procurar informações específicas, filtrar códigos desatualizados e, o mais importante, ler as especificações. Você apenas tem que começar de algum lugar.
Muitos dos livros disponíveis do OpenGL, se não todos, estão desatualizados. O novo SuperBible é uma aberração de algum tipo e eu não o recomendaria a ninguém. O Guia de programação do OpenGL para OpenGL 4.1 sai em 16 de setembro. Infelizmente, a 7ª edição usa código obsoleto, então você só precisa esperar, com certeza.
E, claro, você sempre pode fazer perguntas aqui.
fonte
Já faz um tempo desde que essa pergunta foi feita, mas espero que isso ajude as pessoas que têm a mesma pergunta que você.
Comecei com o OpenGL lendo um minibook
arcsynthesis.org
. Não tenho certeza de quem escreveu. Parece que o registro do site expirou ou algo assim, mas você deve encontrá-lo aqui: http://web.archive.org/web/20140209181347/http://www.arcsynthesis.org/gltut/ . Ele usa o OpenGL 3.3, portanto você usará o pipeline moderno e todas as práticas que isso implica, mas não será exposto a mosaicos ou shaders de computação.Outro site que vale a pena visitar é https://open.gl/ . Parece ser MUITO focado no iniciante e não cobre coisas tão profundas quanto o material acima, mas poderia ser um bom ponto de partida para as pessoas que estão apenas começando.
Lembre-se de ler o wiki do OpenGL e pesquisar seus nomes de funções no Google se precisar de ajuda. Algumas das páginas do wiki são completamente inúteis, mas outras são bastante úteis, tanto como referência quanto como material de aprendizado.
fonte
Esses tutoriais antigos ainda são muito relevantes para iniciantes. Na verdade, eu sugeriria começar por lá, e não com versões recentes do OpenGL. As versões mais recentes descartaram alguns dos métodos mais fáceis de desenhar geometria (ou seja, desenho em modo imediato).
Nas versões recentes, você precisa preparar e enviar matrizes de vértices e informar à placa de vídeo como seus vértices estão organizados na matriz que você fornece. Essas coisas são difíceis de depurar.
Algumas versões (nomeadamente o OpenGL ES 2.x) exigem que você forneça suas próprias equações de iluminação (na forma de Fragment Shaders) e transforme seus próprios dados de vértice para que eles acabem na tela onde você deseja (Vertex Shaders). Isso é ainda mais difícil de depurar e não é lugar para iniciantes (na minha opinião).
Então, na verdade, sugiro que você volte para os tutoriais do NeHe (etc) e comece por aí. Eles podem estar "desatualizados", mas ainda funcionam. Quando você começar a entender o que realmente acontece no pipeline de renderização no OpenGL e sentir alguns dos conceitos matemáticos que fazem essas coisas funcionarem, estará pronto para examinar alguns dos métodos mais atualizados de renderização em OpenGL.
fonte
Como outros já disseram, a maioria dos livros está obsoleta ou muito avançada. No entanto, eu recomendaria a 5ª edição do SuperBible, mas apenas para obter uma rápida visão geral do que pode ser feito no OpenGL e me familiarizar com coisas como a visão / projeção etc.
Mergulhar imediatamente no OpenGL moderno pode deixar você impressionado no começo, então considere aprender a fazer algumas coisas básicas nas versões agora obsoletas.
Também gostaria de adicionar um site com bons tutoriais que encontrei recentemente http://ogldev.atspace.co.uk/
fonte
arcsynthesis.org (o site mencionado na resposta aceita) parece estar inoperante, infelizmente. (EDIT: está disponível neste link !).
Os tutoriais de Anton Gerdelan para o OpenGL 4 são muito legíveis e atualizados em meados de 2014. Os primeiros são gratuitos, o restante está disponível na Amazon, onde eles têm ótimas críticas, por um preço pequeno. Até agora, fiquei satisfeito.
Existem mais tutoriais gratuitos para o OpenGL 3.3+ em http://www.opengl-tutorial.org/ . Eles datam de 2012, mas podem ser um bom material suplementar para outras fontes.
fonte