Pergunta

Estou confuso.Eu tenho tentado começar com o OpenGL, e eu não tive nenhum sucesso.

Detalhes: Parece que tenho tentado usar o Mesa 3D, que nem é estritamente uma implementação oficial da OpenGL.Mesa 3D até usa a GPU?e eu tenho a versão 4.0 (que é como uma implementação do OpenGL versão 1.3).Eu não sei como obter outra biblioteca de implementação;Eu nem sei o que os outros são.(Mesa 3D foi fornecida com meu compilador Dev-CPP)

Na verdade, eu realmente não entendo completamente o que o OpenGL é.

Além disso, não consigo ficar livre ou glut ou glu para trabalhar.Eles estão chamando funções não existentes, como Gluoroso e Gluperspective.Isso é devido ao uso de Mesa 3D?Existe alguma maneira que eu poderia obter essas bibliotecas inteiras para realmente funcionar?

Foi útil?

Solução

.

Na verdade, eu realmente não entendo completamente o que o OpenGL é.

OpenGL em e em si é apenas uma especificação de uma API: um conjunto de funções que você pode chamar e valores e tokens especiais e quais são os efeitos de cada chamada. Implementações, em seguida, siga esta especificação para fornecer um opengl working.

Opengl é rasterizing desenho API, otimizado para o desenho de primitivas no espaço 3D. Isto é Você fornece um fluxo de coordenadas 3D e um modo de desenho, isto é, desenho pontos, linhas ou triângulos, e o OpenGL transformará os dados 3D no espaço da tela 2D e desenhará primitivos planos em uma tela. Versões posteriores do OpenGL não são mais estritamente 3d para 2d, mas exigem que os chamados shaders, que são pequenos programas que descrevem a transformação da geometria dimensional arbitrária no espaço da tela 2D.

Funcionalidade adicional é a amostragem e interpolação de dados de imagem (texturização) como uma fonte de dados adicional ao desenhar.


.

Detalhes: Parece que tenho tentado usar o Mesa 3D, que nem é estritamente uma implementação oficial do OpenGL.

Por quê? Se você estiver no Windows, então deve usar a implementação OpenGL fornecida pelo driver GPU, não alguma biblioteca aleatória (embora o Mesa3d não seja totalmente aleatório).

O OpenGL não é realmente alguma biblioteca que você instala, é um conjunto de funções fornecidas pelo driver GPU. Para os casos em que os drivers GPU não fornecem o OpenGL, você pode usar uma implementação de Rasterizer de software.

.

O Mesa 3D ainda usa a GPU?

depende. No Windows Mesa3D é apenas um software rasterizador. No entanto, para o X.org (Linux, FreeBSD, etc.), o Mesa3D é o frontend open e opengl para os drivers GPU, para que você obtenha aceleração da GPU através do Mesa lá, se X.org estiver configurado para usar um driver que o MESA3D possa usar. < / p >.

.

Eu não sei como obter outra biblioteca de implementação; Eu nem sei o que os outros são. (Mesa 3D foi fornecida com meu compilador Dev-CPP)

Normalmente você recebe o seu OpenGL como parte dos drivers GPU. No Linux ao instalar drivers de GPU de código aberto, isso instala automaticamente o MESA3D. Mas também há drivers de origem fechados e aqueles usam uma faixa de código inteiramente diferente.

Isso é realmente importante: Você não precisa de uma biblioteca OpenGL especializada para o desenvolvimento do OpenGL.

Normalmente, seu compilador é enviado com um "opengl32.lib" (se no Windows - em outras plataformas, você acabou de dizer ao vinculador para ligar o sistema OpenGL). No entanto, este é apenas uma tabela de conteúdo para o vinculador, o que uma implementação do OpenGL real oferecerá.

No Windows O sistema OpenGl32.dll exporta apenas OpenGL-1.1. Para qualquer funcionalidade acima, há o chamado mecanismo de extensão para carregar as funções de versão superiores. Você costuma fazer isso através de uma biblioteca (neste caso realmente uma biblioteca) como glew

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top