Programação com OpenGL/Modern OpenGL Tutorial 04: diferenças entre revisões

Saltar para a navegação Saltar para a pesquisa
[edição verificada][edição verificada]
Sem resumo de edição
== Configurando as matrizes ==
 
AquiAlgumas estãocoisas algumastemos dicas para seque lembrar quando se trabalhatrabalhamos com matrizes:
* Transformações são aplicados pela multiplicação de matrizes 4X4 na ordem inversa. O <code> M = M_translation * M_rotation</code> que diz para rodar primeiro, e depois para movimentar.
* A Matriz é auma matriz de identidade que não faz nada - absolutamente nenhuma movimentação.
* Para transformar umuma vertexvértice, nós multiplicaremos ele pela matriz: <code>v' = M * v</code>
* As matrizes 4x4 podepodem ser aplicadas somente para vetores 4X1, que obtemos usando uma das quatro dimensões da vertice: (x, y, z, 1).
 
Para estasNestas multiplicações, nós vamos precisar de bibliotecasuma biblioteca aritmética(math). os Shader já possuem inclusas,uma umde facilfácil suporte para operações de matrizes, mas nós precisaremosprecisamos manipular-las na linguaguem C. é também mais eficiente, porque os shaders são executados em cada verticevértice, então é melhor cacularmoscalcularmos as matrizes de antemão.
 
Neste tutorial nós usaremos [http://glm.g-truc.net/ OpenGL Mathematics] A biblioteca GLM, que estaestá escrita em C++. A GLM usa algumas convenções da GLSL, e então será facilmais nósfácil começarmospara começar. Esta documentação tambemtambém mostrar substitutos para a defassada OpenGL 1.x e funções da GLU, como o <code>glRotate</code>, <code>glFrustum</code> ou <code>gluLookAt</code>, que vem a calhar se você já usou elesum deles.
 
Existem alternativas, como [http://simdx86.sourceforge.net/ libSIMDx86] (que também trabalham em processador que não são da familiafamília x86). você pode também escrever seus próprio códigos de matrizes, desde que não seja muito grande, veja o exemplo <code>mesa-demos-8.0.1/src/egl/opengles2/tri.c</code> no demos que vem no Mesa3D.
 
Nota: a partir de agora usaremos C++, vamos precisar mudar nosso programa para C++ - desculpe por isto,; vamos então editar nosso primeiro tutorial para iniciarmoscomeçar. Na verdade você só precisa mudar o nome <code>triangle.c</code> para <code>triangle.cpp</code>
 
O GLM é uma biblioteca header-only, então você não precisa modificar o Makefile, contando que os header esteja configurado corretamente no standard path.
Para instalar o GLM no Debian ou no Ubuntu:
<source lang="bash">
332

edições

Menu de navegação