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

[edição não verificada][edição verificada]
Conteúdo apagado Conteúdo adicionado
Linha 2:
 
== Configurando as matrizes ==
 
{{wikibook|GLSL_Programming/Vertex_Transformations{{!}} seção sobre transformação de vertices na linguaguem GLSL}}
Aqui estão algumas dicas para se lembrar quando se trabalha com matrizes:
* Transformações são aplicados pela multiplicação de matrizes 4X4 na ordem inversa. O <code> M = M_translation * M_rotation</code> diz para rodar primeiro, e depois movimentar.
* A Matriz é a matriz de identidade que não faz nada - absolutamente nenhuma movimentação.
* Para transformar um vertex, nós multiplicaremos ele pela matriz: <code>v' = M * v</code>
* As matrizes 4x4 pode ser aplicadas somente para vetores 4X1, que obtemos usando uma das quatro dimensões da vertice: (x, y, z, 1).
 
Para estas multiplicações, nós vamos precisar de bibliotecas aritmética(math). os Shader já possuem inclusas, um facil suporte para operações de matrizes, mas nós precisaremos manipular-las na linguaguem C. é também mais eficiente, porque os shaders são executados em cada vertice, então é melhor cacularmos as matrizes de antemão.
 
Neste tutorial nós usaremos [http://glm.g-truc.net/ OpenGL Mathematics] A biblioteca GLM, que esta escrita em C++. A GLM usa algumas convenções da GLSL, e então será facil nós começarmos. Esta documentação tambem 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 eles.
 
Existem alternativas, como [http://simdx86.sourceforge.net/ libSIMDx86] (que também trabalham em processador que não são da familia 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 iniciarmos. 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 no standard path.
Para instalar o GLM no Debian ou no Ubuntu:
<source lang="bash">
apt-get install libglm-dev
</source>
 
Agora nós podemos adicionar os cabeçalhos da GLM:
<source lang="c">
#include <glm/glm.hpp>
#include <glm/gtc/matrix_transform.hpp>
#include <glm/gtc/type_ptr.hpp>
</source>
 
== Usando 3D Points ==