Baixe o app para aproveitar ainda mais
Prévia do material em texto
Computação Gráfica 1 1. Introdução e fundamentos Introdução Computação gráfica, arte e matemática Origens da Computação Gráfica Whirlwind I, MIT Origens da Computação Gráfica SAGE – Semi-Automatic Ground Enviroment Origens da Computação Gráfica Tese de Doutorado de Ivan Sutherland 1962 - MIT SketchPad Aplicações Entretenimento: Cinema Pixar: Monster’s Inc. Square: Final Fantasy Aplicações Entretenimento: Cinema A Bug’s Life (Pixar) Aplicações Visualização Médica MIT: Image-Guided Surgery Project Aplicações Visualização científica Aplicações Computer Aided Design (CAD) Aplicações Treinamento Flight Simulator X Aplicações Jogos Grand Theft Auto V Mercado de Computação Gráfica Fundamentos Geração de imagens 2D a partir de uma representação em 3D em um computador Principais atividades Modelagem geométrica (forma): criação e representação da geometria dos objetos no mundo 3D; Renderização (luz e perspectiva): geração de imagens 2D a partir de objetos; Ação (animação e movimento): descrição de como os objetos mudam no tempo. Percepção tridimensional Informações Monoculares; Informações Visuais Óculo-motoras; Informações Visuais Estereoscópicas. Informações Monoculares Perspectiva resultado da aparente diminuição dos tamanhos e das distâncias entre os objetos, à medida que o observador se distancia destes largamente usado para expressar cenas tridimensionais em superfícies planas Informações Monoculares Conhecimento prévio do objeto Informações Monoculares Oclusão; Densidade das Texturas; Variação da Reflexão da Luz; Sombras e Sombreamentos. A oclusão é responsável pela informação da posição relativa dos objetos Conhecido também como “gradiente de texturas: à medida que os padrões aparecem mais densos e menos detalhados, mais distantes estarão do observador Outras informações Informações óculo-motoras Acomodação Convergência Informações esteroscópicas A oclusão é responsável pela informação da posição relativa dos objetos Conhecido também como “gradiente de texturas: à medida que os padrões aparecem mais densos e menos detalhados, mais distantes estarão do observador Representação Vetorial e Matricial de imagens Representação Vetorial Utilização de elementos básicos pontos, linhas, curvas, superfícies tridimensionais ou mesmo sólidos que descrevem os elementos Primitivas vetoriais da imagem; Atributos; Geometria. Representação Vetorial (Exemplo) Exemplo 1 Primitiva: Ponto; Geometria: Posição (coordenadas); Atributos: Cor. Exemplo 2 Primitiva: Linha; Geometria: coordenadas dos pontos extremos; Atributos: Cor, espessura, pontilhada ou tracejada. Representação Matricial Imagens digitalizadas capturadas por scanners ou utilizadas nos vídeos; Forma de descrição principal na análise e no processamento de imagens; Emcomputação gráfica sintética, surgem nos processos de finalização (ray tracing, z-buffers). Representação Matricial A imagem é descrita porumconjunto de célulasemum arranjo espacial bidimensional, uma matriz; Cada célula representa os pixels (ou pontos) da imagem matricial; Os objetos são formados usando dequadamente esses pixels. Processador gráfico Hardware especializado; Uso de paralelismo para atingir alto desempenho; Alivia a CPU do sistema de algumas tarefas, incluindo: Transformações: Rotação, translação, escala, etc Recorte (clipping): Supressão de elementos fora da janela de visualização Projeção (3D →2D) Mapeamento de texturas Rasterização Amostragem de curvas e superfícies paramétricas Geração de pontos a partir de formas polinomiais Arquitetura de sistemas gráficos Arquitetura de sistemas gráficos Quanto mais complexa uma imagem, maior o número de pontos que devem ser criados, ocorrendo o mesmo se desejarmos melhores resoluções de imagem. OpenGL OpenGL (Open Graphical Library); Interface de software (API – Aplication Program Interface) Aceleração da programação de dispositivos gráficos; Aproximadamente 120 comandos especificação de objetos operações necessárias para a produção de aplicações gráficas interativas 3D Quanto mais complexa uma imagem, maior o número de pontos que devem ser criados, ocorrendo o mesmo se desejarmos melhores resoluções de imagem. OpenGL não é uma linguagem de programação como C, C++ ou Java; Normalmente se diz que um programa é baseado em OpenGL ou é uma aplicação OpenGL; Suas aplicações variam ferramentas CAD, jogos, imagens médicas e programas de modelagem usados para criar efeitos especiais (Jurassic Park e Star Wars) Dentre os programas de modelagem 3D MAX, Bryce, Character Studio, Lightware, Lightscape, Maya, Rhino 3D, TruSpace OpenGL Quanto mais complexa uma imagem, maior o número de pontos que devem ser criados, ocorrendo o mesmo se desejarmos melhores resoluções de imagem. Vai além do desenho de primitivas gráficas; Iluminação; Sombreamento; Mapeamento de textura; Transparência; Animação; Gerenciamento de eventos de entrada por teclado e mouse. A biblioteca OpenGL Quanto mais complexa uma imagem, maior o número de pontos que devem ser criados, ocorrendo o mesmo se desejarmos melhores resoluções de imagem. Faz parte da implementação OpenGL; Possui várias funções para modelagem: tais como superfícies quadráticas, e curvas e superfícies NURBS (Non Uniform Rational B-Splines); Transformações de translação, escala e rotação, através da multiplicação de matrizes; A biblioteca GLU Quanto mais complexa uma imagem, maior o número de pontos que devem ser criados, ocorrendo o mesmo se desejarmos melhores resoluções de imagem. #include <GL/glut.h> // inclusão da biblioteca #include <stdlib.h> // inclusão da biblioteca #include <stdio.h> // Declarações void init(void); void display(void); void keyboard(unsigned char key, int x, int y); O primeiro programa (parte 1) Quanto mais complexa uma imagem, maior o número de pontos que devem ser criados, ocorrendo o mesmo se desejarmos melhores resoluções de imagem. int main(int argc, char** argv){ printf("oi"); glutInit(&argc, argv); glutInitDisplayMode (GLUT_SINGLE | GLUT_RGB); glutInitWindowSize (150, 150); glutInitWindowPosition (100, 100); glutCreateWindow ("Desenha uma linha"); init( ); glutDisplayFunc(display); glutKeyboardFunc(keyboard); glutMainLoop( ); return 0; } O primeiro programa (parte 2) Quanto mais complexa uma imagem, maior o número de pontos que devem ser criados, ocorrendo o mesmo se desejarmos melhores resoluções de imagem. void display(void){ glClear(GL_COLOR_BUFFER_BIT); glColor3f(0.0, 0.0, 0.0); glBegin(GL_LINES); glVertex2i(20,100); glVertex2i(100,20); glEnd( ); glFlush( ); } O primeiro programa (parte 3) Quanto mais complexa uma imagem, maior o número de pontos que devem ser criados, ocorrendo o mesmo se desejarmos melhores resoluções de imagem. void keyboard(unsigned char key, int x, int y){ switch (key) { case 27: exit(0); break; } } O primeiro programa (parte 4) Quanto mais complexa uma imagem, maior o número de pontos que devem ser criados, ocorrendo o mesmo se desejarmos melhores resoluções de imagem. glColor3f Sintaxe de comando Quanto mais complexa uma imagem, maior o número de pontos que devem ser criados, ocorrendo o mesmo se desejarmos melhores resoluções de imagem. Visão geral da computação gráfica sua história e aplicações. Detalhes de como percebemos e podemos apresentar imagens foram discutidos. Também foram vistos detalhes ligados aos equipamentos e a biblioteca OpenGL. Resumo Quanto mais complexa uma imagem, maior o número de pontos que devem ser criados, ocorrendo o mesmo se desejarmos melhores resoluções de imagem. Transformações Geométricas no Plano e no Espaço; Próxima aula... Computação Gráfica 1 1. Introdução e fundamentos
Compartilhar