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

[edição verificada][edição verificada]
Conteúdo apagado Conteúdo adicionado
Abacaxi (discussão | contribs)
Sem resumo de edição
Linha 15:
Suzzane é um modelo de teste do Blender. ele possui 500 poligonos, o que será um bom teste para nós.
 
PraPara criarcriá-lo, execute o Blender(Vamos usar a versão 2.58), depois:
* Remova todos os elementos da cena (pressione '''A''' e depois '''X'''
* No menu superior, clique em Add > Mesh > Monkey
Linha 43:
 
Precisamos preencher algumas arrays em C:
* De verticesvértices
* De elementos
* De normals (usado em calcular a iluminação)
Linha 141:
== Flat-shading - duplicando vértices e normals ==
[[File:OpenGL Tutorial Suzanne flat-shading.png|thumb|Suzanne com flat-shading]]
Como discutimos em [[../Modern_OpenGL_Tutorial_06|Tutorial de texturização]], as algumas vértices obtém um valor diferente dependendo de qual face é usado.
 
Isto acontece se nós não compartilharmos as normals (e escolheu um rosto arbitrário quando calcularmos uma vertex' normal, como fizemos acima). Neste caso nós precisamos duplicar um vértice toda vez que for usado com uma normal diferente e depois recriando o array de elementos. Isto fará que demore mais tempo para carregar mas será mais rápido para o OpenGL processo a longo prazo. quanto menos vértices for enviado para OpenGL melhor. ou, como dizemos anteriormente, neste exemplo apenas duplicaremos as vértices uma única vez quando eles aparecem e nós podemos fazer sem a array de elementos.
<source lang="cpp">
Linha 168 ⟶ 169:
Nosso algoritmos funciona, mas se duas faces forem referenciadas pelo mesmo vetor, em seguida a ultima face sobrescrever a normal para este vértice, isto significa que o objeto pode ficar bem diferente dependo da ordenação das faces.
 
Para concertarconsertar isto, nós calcularemos as normal entre as duas faces. Para calcular dois vetores, você pega metade do primeiro vetor mais metade do segundo vetor. Usaremos o <code>nb_seen</code> para guardar o coeficiente do vetor, assim podemos calcular com novo vetor em qualquer numero de vezes, sem gravar toda lista de vetores:
 
 
Linha 220 ⟶ 221:
 
{{Block|ff=sans-serif|Navegue e baixe [https://gitorious.org/wikibooks-opengl/modern-tutorials/trees/master os códigos completos]}}
{{AutoCat}}