Sumário. Bibliografia

Documentos relacionados
Introdução Geral a Computação Gráfica. Universidade Católica de Pelotas Curso de Engenharia da Computação Disciplina de Computação Gráfica

Prof. Fernando V. Paulovich 3 de agosto de SCC Computação Gráca

Introdução à Computação Gráfica. Claudio Esperança Paulo Roma Cavalcanti

Computaçã. Processamento Gráfico Computação Visual. Histórico. Histórico (dispositivos vetoriais) Visão Computacional. Gráfica. Síntese.

Computação Gráfica. Agostinho Brito. Departamento de Engenharia da Computação e Automação Universidade Federal do Rio Grande do Norte

Computaçã. Visão Geral. Sistema Gráfico. Computação Gráfica. Pixels. Sistema Gráfico e o Frame Buffer. Introdução à Computação Gráfica

Computação Gráfica. Computação Gráfica. Visão Geral. Sistema Gráfico. Introdução à Computação Gráfica e areas relacionadas

Computação Gráfica Introdução

Resumo. Computação Gráfica: Uma Proposta de Plano Pedagógico. Áreas Correlatas. Definição. Uma Visão Integrada da C.G.

Computação Gráfica. Introdução: Histórico e Conceito. Prof. Márcio Bueno {cgtarde,

Imagem Digital. Claudio Carvilhe

António Costa. Paulo Roma Cavalcanti

UNIVERSIDADE FEDERAL DO RIO GRANDE DO SUL INSTITUTO DE INFORMÁTICA DEPARTAMENTO DE INFORMÁTICA APLICADA

UNIVERSIDADE FEDERAL FLUMINENSE Pedro Martins Menezes. Um estudo dos estágios dos pipelines gráficos

Processamento Gráfico

Computação Gráfica - 01

Tópicos Especiais em Engenharia de Software (Jogos II)

Lista de exercícios. 4) Defina o conceito de função de eficiência luminosa. (Victor)

Imagem e Gráficos. vetorial ou raster?

Computação Gráfica - 12

Computação Gráfica. Prof. MSc. André Yoshimi Kusumoto

Introdução à Computação Gráfica

Mídias Discretas. Introdução à Ciência da Informação

Introdução. 1 Introdução

Visibilidade. Licenciatura em Engenharia Informática e de Computadores Computação Gráfica. Edward Angel, Cap. 7 Apontamentos CG

Rendering de Polígonos. Determinação de Superfícies Visíveis. Back Face Culling. Back Face Culling. Back Face Culling. Back Face Culling.

Mapeamento de Texturas

Computação Gráfica. Engenharia de Computação. CEFET/RJ campus Petrópolis. Prof. Luis Retondaro. Aula 1. Apresentação

Princípios sobre imagens digitais

Realismo Visual. Aula 11 UFF

Professor: Computação Gráfica I. Anselmo Montenegro Conteúdo: - Introdução. Instituto de Computação - UFF

Um pouco de história. SketchPad Tese de Doutorado de Ivan Sutherland (MIT) Conceito de comunicação com o computador

Desenvolvimento de um Motor Gráfico de Apoio a Ambientes Lúdicos Educacionais

Bruno Pereira Evangelista. Pontifícia Universidade Católica de Minas Gerais

Imagem ou Desenhos e Gráficos vetorial ou raster?

Processamento Digital de Imagens

Processamento Digital de Imagens

Introdução ao Processamento de Imagens Digitais Aula 01

Plano de Ensino de Disciplina Ciência da Computação 2º / 2016

Computação Gráfica - 03

Introdução à Computação Gráfica

COMPUTAÇÃO GRÁFICA. Ana Paula Mandelli

Aula #1: Fundamentos, Origens e Objectivos da. Computação Gráfica.

Introdução ao Processamento Gráfico

Engenharia Informática Computação Gráfica

Propriedades da Imagem Amostragem & Quantização (Quantificação) Histograma Imagem Colorida x Imagem Monocromática. Propriedades da Imagem

Computação Gráfica. Prof. André Yoshimi Kusumoto

aula 9 IC/UFF

Revisão. Soraia Raupp Musse

Computação Gráfica. Prof. MSc. André Yoshimi Kusumoto

Transformações 3D. Soraia Raupp Musse

ATIVIDADES PRÁTICAS SUPERVISIONADAS

Reconstrução e Síntese de Cenários Tridimensionais a partir de Imagens Estereoscópicas

Computação Gráca Áreas Relacionadas, Cenário e Histórico

Historia e efeitos visuais em C.G.

Computação Gráfica. Rasterização. Aula 4. Engenharia de Computação. CEFET/RJ campus Petrópolis. Prof. Luis Retondaro

Representação da Informação Imagem e Vídeo

Instituto Tecnológico de Aeronáutica. Prof. Carlos Henrique Q. Forster Sala 121 IEC. ramal 5981

CIV2802 Sistemas Gráficos para Engenharia

Princípios e representação de imagens

AdaptiveShadowMaps. Randima Fernando Sebastian Fernandez Kavita Bala Donald P. Greenberg Apresentado por Claudio Esperança

Computação Gráfica e Processamento de Imagens. - Sistemas 3D (conceitos básicos) Prof. Julio Arakaki

Introdução ao Processamento e Síntese de imagens Rendering 2016

A terceira dimensão. Modelagem tridimensional Elaboração tridimensional Realidade virtual

História da Ciência e da Tecnologia. Matheus kaique Hugo Yuri Joao Manoel Murilo Ribeiro

QuadLOD: Uma Estrutura para a Visualização Interativa de Terrenos

Pipeline de Visualização 2D

Enquadramento e Conceitos Fundamentais

Computação Gráfica definição e histórico

PEF 5743 Computação Gráfica Aplicada à Engenharia de Estruturas

A terceira dimensão. A terceira dimensão. Modelagem tridimensional. A terceira dimensão Wilson de Pádua Paula Filho

Pipeline de Visualização 3D

Computação Gráfica II

Visualização por Computador: Teoria, Prática e Aplicações

Shading (sombreamento) & Smooth Shading

Técnicas de Mapeamento

Computação Gráfica. Aula #1: Fundamentos, Origens e Objectivos da Computação Gráfica. ISUTIC Eng. Alexander Rodríguez Bonet

UNIVERSIDADE LUSÍADA DE LISBOA. Programa da Unidade Curricular COMPUTAÇÃO E REPRESENTAÇÃO GRÁFICA Ano Lectivo 2018/2019

Visibilidade. Apontamentos CG + Edward Angel, Sec Instituto Superior Técnico Computação Gráfica 2009/2010

Aula /2 Sistemas de coordenadas Window x Viewport

Modelo RGB - Aplicações

Exame de Época Especial Computação Gráfica

Bitmap X Vetorial OS DOIS PRINCIPAIS TIPOS DE ARQUIVOS NA COMPUTAÇÃO GRÁFICA

Representação da Informação

Computação Gráfica. Representação e Modelagem

Alunos: Marcelo Buratti de Freitas Hellen Santos Quast Erhardt Yago de Paula Maycon Quast Erhardt Prof. Kleber Manrique Trevisani

Ementário das disciplinas do curso de Engenharia de Software

Capítulo 3 Primeiros Passos em OpenGL Função Desenha Função Teclado Função Inicializa Programa Principal...

Introdução ao Processamento e Síntese de imagens -Linhas e superfícies escondidas

Introdução. Introdução. Quantização de Cor. Quantização de Cor. Efeitos da Discretização Espacial (redução da resolução espacial)

Motivação Por que estudar?

Sistemas de Cores. Leandro Tonietto Processamento Gráfico Jogos Digitais set-09

Computação Gráfica. Licenciatura em Engenharia Informática e de Computadores Alameda / Taguspark. Terceiro Teste 19 de Maio de 2012

Determinação da Visibilidade

K - número de valores diferentes de níveis de cinza Pixel

Shading (sombreamento) & Smooth Shading

The Graphics Pipeline

Protótipo de Software para Análise da Percepção de Profundidade Aparente em Computação Gráfica

Transcrição:

3 3 Bibliografia Computação Gráfica Aula 01 - Introdução Vinicius Graciano Santos vgs@dcc.ufmg.br Sumário Introdução Computação Gráfica Expectativas e Objetivos do Curso Whirlwind, Sage e Sketchpad Universidade de Utah Empresas Comerciais Monitores de Vídeo Picture Elements Rasterização Objetos em 3D Percepção Tridimensional Perspectiva Conhecimento Prévio e Oclusão Densidade de Texturas Sombreamento e Sombras Efeitos Atmosféricos Profundidade de Campo Estereoscopia Bibliografia 2 Computação Gráfica. Eduardo Azevedo e Aura Conci. vol. 1 (2003) Real Time Rendering. Tomas Akenine-Moller, Eric Haines e Naty Hoffman. Terceira edição (2008)

6 6 Bibliografia Introdução Computação Gráfica Computação Gráfica É a ciência e a arte da comunicação visual via uma tela de computador e seus dispositivos de interação. Síntese de imagens baseada em dados e modelos. Área de estudo interdisciplinar: ciência da computação, design, engenharia, física, matemática, etc. Mathematics for 3D Game Programming and Computer Graphics. Eric Lengyel. Terceira edição (2011) Introdução Computação Gráfica 3 Introdução Computação Gráfica 5 Síntese Computação Gráfica Modelagem Dados Modelos Imagem Processamento Design Dados Modelos Imagem Processamento Digital de Imagens Análise Visão Computacional

10 Introdução Expectativas do Curso Introdução Objetivos do Curso Exemplos do que você irá aprender nesta disciplina: Hardware gráfico Transformações e projeções geométricas Modelos de iluminação Shaders Objetivo Principal Proporcionar aos alunos uma visão geral dos fundamentos da área de computação gráfica Exemplos do que você não irá aprender nesta disciplina: Programas de modelagem e animação (Blender, 3DS Max, etc) Programas de edição de imagens (Photoshop, GIMP, etc) Métodos básicos por trás das engines e programas gráficos Possibilitar o aprendizado de técnicas avançadas Motores para jogos (Unity, UDK, etc) Mas podem ser utilizados para exemplificar algum tópico... 7 Sketchpad (Ivan Sutherland 1963) 8 (a) Whirlwind (MIT 1945) (b) SAGE (US Navy 1958) (c) Light Pen (SAGE) (d) Boeing Man (William Fetter 1966)

Universidade de Utah (1968) Primeira Animação (Catmull & Parke 1972) (a) Texture Mapping (Catmull 1974) (b) Shading (Blinn 1977) (c) Facial Animation (Parke 1974) (d) Bump Mapping (Blinn 1978) Empresas Comerciais 12 Evolução entre 1960 1980 (Pixar Shutterbug & Renderman) (a) ILM (1975) (b) Pixar (1986) (c) Sierra Entertainment (1979) (d) Id Software (1991) Wireframe 15

Evolução entre 1960 1980 (Pixar Shutterbug & Renderman) Evolução entre 1960 1980 (Pixar Shutterbug & Renderman) Wireframe com brilho baseado na profundidade Remoção de linhas ocultas Evolução entre 1960 1980 (Pixar Shutterbug & Renderman) 15 Evolução entre 1960 1980 (Pixar Shutterbug & Renderman) 15 Iluminação constante 15 Iluminação facetada 15

Evolução entre 1960 1980 (Pixar Shutterbug & Renderman) Evolução entre 1960 1980 (Pixar Shutterbug & Renderman) Gouraud shading Phong shading Evolução entre 1960 1980 (Pixar Shutterbug & Renderman) 15 Evolução entre 1960 1980 (Pixar Shutterbug & Renderman) 15 Patches bicúbicos 15 Modelos avançados de iluminação 15

Evolução entre 1960 1980 (Pixar Shutterbug & Renderman) Evolução entre 1960 1980 (Pixar Shutterbug & Renderman) Mapeamento de texturas Bump mapping e texturas projetivas Evolução entre 1960 1980 (Pixar Shutterbug & Renderman) 15 Atualmente Os Vingadores (2012) - VisualFX Breakdown 15 Reflexões 15 youtube.com/ilmvisualfx

20 Como são formadas as imagens na tela de um computador? Monitores de Vídeo Varredura Aleatória Varredura Fixa Monitores de Vídeo 18 Conversão entre gráficos 19 Varredura Aleatória Gráficos vetoriais Objetos são representados por conjuntos geométricos: Retas Curvas Polígonos. Eficiência depende do número de objetos. Não propensa a serrilhados Varredura Fixa Gráficos raster/matriciais Objetos são amostrados em uma grade regular: Picture elements (pixels) Matrizes de pixels Frame buffer. Eficiência independe do número de objetos. Propensa a serrilhados Gráficos Vetoriais Rasterização Gráficos Raster Observações: Monitores de varredura aleatória estão obsoletos para CG. Monitores atuais podem apresentar outros padrões de varredura fixa. Reconhecimento de Padrões

Picture Elements Picture Elements Picture Element (Pixel): Um ponto físico em um gráfico raster/matricial. Geralmente é representado por três ou quatro canais (RGB ou RGBA). Cada canal possui 8 bits (0 255 em decimal). Modelo aditivo de cor: COR = 01101110 }{{} 01101100 }{{} 11001101 }{{} = 110R + 108G+205B 110 108 205 Tamanho de uma imagem de 800 600 pixels com três canais: (800 600 pixels) (8 bits) (3 canais) = 11520000 bits 1.36 MBytes Picture Elements Modo de cor direto: 22 Picture Elements Modo de cor indexado: Pixels vistos através de um microscópio 23 Os valores de cada pixel são armazenados diretamente na matriz. Os valores de cada pixel são armazenados indiretamente na matriz. Ocupa muito espaço se houver poucas cores na imagem. Ocupa muito espaço se houver muitas cores na imagem. Imagem Direta 253 253 253 253 253 253 255 255 255 255 255 255 99 99 99 99 99 99 253 22 253 253 22 253 255 122 255 255 122 255 99 192 99 99 192 99 253 253 253 253 253 253 255 255 255 255 255 255 99 99 99 99 99 99 253 51 253 253 51 253 255 51 255 255 51 255 99 51 99 99 51 99 253 253 51 51 253 253 255 255 51 51 255 255 99 99 51 51 99 99 253 253 253 253 253 253 255 255 255 255 255 255 99 99 99 99 99 99 (6 6 pixels) (8 bits) (3 canais) = 864 bits Imagem Indexada 2 2 2 2 2 2 2 1 2 2 1 2 2 2 2 2 2 2 2 0 2 2 0 2 2 2 0 0 2 2 2 2 2 2 2 2 0 1 2 Paleta (51, 51, 51) (22, 122, 192) (253, 255, 99) (6 6 pixels) (2 bits)+(3 cores) (3 canais) (8 bits) = 144 bits 25

Profundidade de Cor Profundidade de Cor Profundidade de Cor (quantização): Número de bits em cada canal Número total de bits utilizado para representar uma cor Cuidado: várias definições! bpp - bits por pixel bpc - bits por canal bpc - bits por cor bps - bits por sample (amostra) Exemplos: Monocromático: 1 bpp Escala de cinza: 8 bpp High color: 16 bpp - 4 bpc RGBA True color: 24 bpp - 8 bpc RGB Observação: N bits podem representar 2 N valores diferentes. 1 bpp 2 cores Profundidade de Cor 26 Profundidade de Cor 2 bpp 4 cores 3 bpp 8 cores

28 Profundidade de Cor Profundidade de Cor 4 bpp 16 cores 5 bpp 32 cores Profundidade de Cor Profundidade de Cor Dither Dither (dithering): Padrão aplicado com o intuito de minimizar o erro de quantização na ausência de bits suficientes para representar uma imagem. Representa mais cores com menos bits. Trade-off entre resolução e quantização. Efeito baseado na percepção humana. Bastante utilizado por jornais para economia na impressão. 8 bpp 256 cores

Profundidade de Cor Dither Profundidade de Cor Dither 1 bpp 2 cores (SEM DITHER) 1 bpp 2 cores (COM DITHER) Profundidade de Cor Dither Profundidade de Cor Dither 2 bpp 4 cores (SEM DITHER) 2 bpp 4 cores (COM DITHER)

31 31 Rasterização de Linhas Algoritmo de Bresenham Rasterização de Linhas Algoritmo de Bresenham Exemplo: Rasterizar uma linha do ponto (x0, y0) a (x9, y5). O algoritmo de Bresenham rasteriza uma linha em uma grade regular. Utiliza apenas aritmética inteira mais eficiente Todas as placas de vídeo implementam alguma versão desse algoritmo. Rasterização de Linhas Algoritmo de Bresenham 30 Rasterização de Linhas Algoritmo de Bresenham 31 O primeiro pixel é fácil: (x0, y0) Qual pixel deve ser o próximo? (x1, y0) ou (x1, y1)?

31 31 Rasterização de Linhas Algoritmo de Bresenham Rasterização de Linhas Algoritmo de Bresenham Ache a distância de y0 e y1 para a reta e pegue a mais próxima. O processo se repete até chegar ao pixel (x9, y5). Rasterização de Linhas Algoritmo de Bresenham 31 Rasterização de Linhas Algoritmo de Bresenham 31 O processo se repete até chegar ao pixel (x9, y5). O processo se repete até chegar ao pixel (x9, y5).

32 32 Rasterização de Linhas Algoritmo de Bresenham Rasterização de Triângulos Algoritmo de Bresenham com Preenchimento O processo se repete até chegar ao pixel (x9, y5). Exemplo: Rasterizar um triângulo com preenchimento. Rasterização de Triângulos Algoritmo de Bresenham com Preenchimento 31 Rasterização de Triângulos Algoritmo de Bresenham com Preenchimento 32 Execute simultaneamente o algoritmo de Bresenham para as duas linhas que vão de cima para baixo. Execute simultaneamente o algoritmo de Bresenham para as duas linhas que vão de cima para baixo.

32 32 Rasterização de Triângulos Algoritmo de Bresenham com Preenchimento Rasterização de Triângulos Algoritmo de Bresenham com Preenchimento Preencha os pixels horizontalmente. O processo se repete até completar o triângulo. Rasterização de Triângulos Algoritmo de Bresenham com Preenchimento 32 Rasterização de Triângulos Algoritmo de Bresenham com Preenchimento 32 O processo se repete até completar o triângulo. O processo se repete até completar o triângulo.

33 33 Rasterização de Polígonos Triangulação Rasterização de Polígonos Triangulação Para rasterizar um polígono, separe-o em triângulos. Para rasterizar um polígono, separe-o em triângulos. Todo polígono com N arestas pode ser triangulado em N 2 triângulos. Geometria computacional Rasterização de Polígonos Triangulação 33 Rasterização de Polígonos Triangulação 33 Para rasterizar um polígono, separe-o em triângulos. Todo polígono com N arestas pode ser triangulado em N 2 triângulos. Geometria computacional Para rasterizar um polígono, separe-o em triângulos. Todo polígono com N arestas pode ser triangulado em N 2 triângulos. Geometria computacional Rasterize cada triângulo com o algoritmo de Bresenham. Rasterize cada triângulo com o algoritmo de Bresenham. Atenção: As arestas internas não existem no polígono original, logo elas devem ser coloridas com a cor de preenchimento.

34 34 Rasterização de Curvas Rasterização de Curvas Para rasterizar uma curva qualquer: Para rasterizar uma curva qualquer: Aproxime a curva por um polígono. Rasterização de Curvas 34 Rasterização de Curvas 34 Para rasterizar uma curva qualquer: Para rasterizar uma curva qualquer: Aproxime a curva por um polígono. Aproxime a curva por um polígono. Triangule ou tessele o polígono. Triangule ou tessele o polígono. Rasterize os triângulos.

36 37 Rasterização de Curvas Objetos em 3D Para rasterizar uma curva qualquer: Aproxime a curva por um polígono. Triangule ou tessele o polígono. Rasterize os triângulos. Fim! Placa de Vídeo: Basicamente, a placa de vídeo é um hardware especializado em rasterizar triângulos em uma grade bidimensional. Dezenas, centenas, milhares, milhões de triângulos. Triângulos são objetos naturalmente de duas dimensões. Como é possível renderizar um objeto de três dimensões? 34 Objetos em 3D 35 3D é uma ilusão! 3D é uma ilusão: Você nunca jogou um jogo virtual em 3D! Você nunca modelou um personagem virtual em 3D! Sua placa de vídeo não desenha gráficos 3D! Tudo é feito em 2D! Seu cérebro é enganado para achar que os objetos são 3D!

Objetos em 3D Percepção Tridimensional Percepção de Profundidade: Humanos possuem a habilidade visual de perceber, com relativa facilidade, a profundidade em imagens bidimensionais. Informações monoculares e binoculares (estereoscópicas). Existem vários tipos de informações de profundidade, mas vamos exemplificar apenas alguns. Isso não é um golfinho em 3D São vários triângulos 2D com cores diferentes Percepção Tridimensional Perspectiva: 38 Percepção Tridimensional Perspectiva: 40 Objetos distantes são menores do que objetos próximos. Objetos distantes são menores do que objetos próximos. Objetos orientados sobre o ângulo de visão são mais rasos. Objetos orientados sobre o ângulo de visão são mais rasos.

Percepção Tridimensional Percepção Tridimensional Conhecimento Prévio e Oclusão: Ajudam a determinar a forma, as dimensões e a ordenação dos objetos em relação à profundidade. Conhecimento Prévio e Oclusão: Ajudam a determinar a forma, as dimensões e a ordenação dos objetos em relação à profundidade. Qual objeto está na frente? Qual objeto está na frente? Percepção Tridimensional 42 Percepção Tridimensional 42 Conhecimento Prévio e Oclusão: Ajudam a determinar a forma, as dimensões e a ordenação dos objetos em relação à profundidade. Conhecimento Prévio e Oclusão: Ajudam a determinar a forma, as dimensões e a ordenação dos objetos em relação à profundidade. Triângulo cortado... Qual objeto está na frente?

Percepção de Profundidade Percepção de Profundidade Densidade das Texturas: Variações nas texturas em relação ao espaço indicam profundidade. Densidade das Texturas: Variações nas texturas em relação ao espaço indicam profundidade. Percepção de Profundidade 43 Percepção de Profundidade 43 Sombreamento (shading): Variação na intensidade da iluminação de acordo com a distância e curvatura dos objetos. Sombreamento (shading): Variação na intensidade da iluminação de acordo com a distância e curvatura dos objetos.

Percepção de Profundidade Percepção de Profundidade Sombras: Criadas por objetos que ocludem a luz. Auxiliam a compreender a profundidade de maneira contínua. Percepção de Profundidade Efeitos Atmosféricos: A interação da luz com partículas no ar reduz o contraste e altera o matiz de objetos muito distantes. 45 Percepção de Profundidade Efeitos Atmosféricos: A interação da luz com partículas no ar reduz o contraste e altera o matiz de objetos muito distantes.

49 Percepção de Profundidade Profundidade de Campo: Objetos fora de foco ficam embaçados. Geralmente estão muito próximos ou muito longe da câmera. Percepção de Profundidade Profundidade de Campo: Objetos fora de foco ficam embaçados. Geralmente estão muito próximos ou muito longe da câmera. Percepção de Profundidade Estereoscopia: Técnica utilizada para aumentar a percepção da profundidade a partir da análise de duas imagens obtidas em pontos diferentes. 48 48