quinta-feira, 2 de maio de 2013

OpenGL: Objetos em 2D

     Quem já jogou os antigos consoles, teve muito contato com objetos 2D. Os objetos são definidos pela descrição geométrica e atributos, definindo suas características. Definimos sua orientação pelo SRU(Sistema de Referência do Universo), que é o lugar onde fazemos a descrição geométrica do objeto. Nos exemplos será utilizado o Sistema Cartesiano, formando o 3D por eixos x, y e z, e o 2D por x e y.



Definindo um objeto 2D


Antes de mais nada é importante ter uma noção sobre geometria(elementos topológicos do espaço) e sua "descendente", a topologia(especificamente arestas e faces).
As imagens são geradas em cinco estágios distintos, chamados de pipelines. Em resumo são:

- Modelagem Geométrica:


Primeiro, definimos as coordenadas.


- Instanciamento:


Depois vem o instanciamento, aplicando as transformações geométricas.



- Recorte:


Aplicado o instanciamento, é realizado o recorte, mostrando o que vai ser exibido na tela.



- Mapeamento:


O mapeamento faz com que as coordenadas na SRU sejam mapeadas para o sistema de referência da tela (SRT).


- Conversão Vetorial-Matricial:


E por último, vem a conversão vetorial-matricial, onde o objeto é convertido em pixels.


Até a Próxima!!! ^^

Menu de OpenGL

quinta-feira, 28 de março de 2013

OpenGL: Configurando o ambiente

A OpenGL possui 3 bibliotecas com a finalidade de simplificar determinadas tarefas de programação: Elas são GL, GLU e GLUT.

GL: É responsável pelas tarefas de baixo nível.
GLU: É utilizada para criar objetos complexos.
GLUT: Utilizada para fazer a comunicação com as janelas por meio de funções.

Quando eu comecei a passar os tutoriais de C, eu mostrei uma pequena lista de compiladores que poderiam ser usados durante a programação da linguagem. Todos os exemplos que eu passar aqui, vou estar utilizando a IDE Dev-C++ com o sistema Windows (Ruindows para alguns :) ).

Caso você ja tenha as bibliotecas, é bom atualiza-las. Abra o Dev-C++. Clique na aba 'Ferramentas', e depois em atualizações. Deve aparecer esta tela.


Na aba 'Groups', selecione 'OpenGL', seguindo um click em 'Check for updates'. Ele vai atualizar a lista de bibliotecas. Nela você deve achar e baixar a biblioteca GLUT, e atualiza-la.

Agora indo ao ponto de que as bibliotecas não se encontram na máquina.
Entre no diretório do Dev-C++ (\Dev-Cpp\Include\GL), e verifique se o mesmo contém gl.h, glu.h e glut.h.



OBS: Caso não consiga achar as bibliotecas, as mesmas estão disponíveis no site da OpenGL
Depois de baixar, copie a "glut32.dll" para a pasta "system32". Copie a "glut.h" para "\Dev-Cpp\Include\GL".

Após isso, va em "Arquivo>>Novo>>Projeto", e dentro da aba "Basic" selecione "Console Application", definindo o projeto como "Projeto C++". Dê um nome ao projeto e clique "OK". Você deve salvar seu projeto em uma pasta de fácil acesso.


Va na aba 'Projeto' e clique em Opções de Projetos, clicando em seguida na aba 'Parâmetros'. No Linker, adicione: lib/libglu32.a, lib/glut32.a e lib/libopengl32.a. As mesmas se encontram na pasta "\Dev-C++\Lib".