Descrição:
Este poste faz parte de um trabalho da disciplina Introdução a Computação Gráfica. Nele será abordado o conceito de rasterização, com exemplos de rasterização de pontos, retas e triângulos.
Utilizarei um framework desenvolvido por Christian Azambuja Pagot , professor da disciplina a que se vincula este trabalho. Este framework foi desenvolvido em C++ e contém os seguintes arquivos: • definitions.h, • main.cpp, • main.h, • Makefile, • mygl.h. O framework ira simular o acesso a memória de vídeo para escrita direta pois os sistemas operacionais modernos não permitem acesso direto a esta.
Será criada três funções de rasterização, listadas abaixo:
PutPixel: Função que rasteriza um pixel na tela.
DrawLine: Função que rasteriza um conjunto de pixel na tela, formando linhas.
DrawTriangle: Função que rasteriza três linhas, formando triângulos.
PutPixel: Função que rasteriza um pixel na tela.
DrawLine: Função que rasteriza um conjunto de pixel na tela, formando linhas.
DrawTriangle: Função que rasteriza três linhas, formando triângulos.
Estas funções serão criadas no arquivo mygl.h.
Dependências
A compilação do projeto exige que os cabeçalhos do OpenGL e a GLUT (The OpenGL Toolkit)
estejam instalados.
Rasterização:
O processo de converter uma imagem vetorial em uma imagem raster (pontos ou píxel) para a saída em vídeo.
Framebuffer:
Região da memória responsável por armazenar os dados da imagem que será representada no monitor.
Estrutura:
Definições:
Rasterização:
O processo de converter uma imagem vetorial em uma imagem raster (pontos ou píxel) para a saída em vídeo.
Framebuffer:
Região da memória responsável por armazenar os dados da imagem que será representada no monitor.
Estrutura:
typedef struct{
int R;
int G;
int B;
int A
}color;
typedef struct{
color cor;
int x;
int y;
}ponto;
Funções:
- void putpixel(ponto p, color cor);
O putpixel() é responsável por acender um pixel na tela, tem como parâmetros as coordenadas x e y que localizam o pixel na tela e os inteiros r,g,b,a que são responsáveis por darem cor ao ponto.
- void drawLine(ponto p1, ponto p2);
DrawLine usa o algoritmo de Bresenham para calcular onde serão pintados os pixels , usa o putpixel para pintar os pixels, formando uma linha do ponto inicial até o ponto final.
- void drawTriangle(ponto x1,ponto x2, ponto x3);
DrawTriangle chama o algoritimo drawLine() para formas as linhas que formarão o triangulo.