25
Computação Gráfica - 12 Prof. Jorge Cavalcanti [email protected] www.univasf.edu.br/~jorge.cavalcanti www.twitter.com/jorgecav Universidade Federal do Vale do São Francisco Curso de Engenharia da Computação

Computação Gráfica - 0 - Início — UNIVASF Universidade …jorge.cavalcanti/comput_graf12... · 2018-02-27 · Fases do processo de Realismo Visual. ... •Economia de memória:

Embed Size (px)

Citation preview

Page 1: Computação Gráfica - 0 - Início — UNIVASF Universidade …jorge.cavalcanti/comput_graf12... · 2018-02-27 · Fases do processo de Realismo Visual. ... •Economia de memória:

Computação Gráfica - 12

Prof. Jorge [email protected]

www.univasf.edu.br/~jorge.cavalcanti

www.twitter.com/jorgecav

Universidade Federal do Vale do São FranciscoCurso de Engenharia da Computação

Page 2: Computação Gráfica - 0 - Início — UNIVASF Universidade …jorge.cavalcanti/comput_graf12... · 2018-02-27 · Fases do processo de Realismo Visual. ... •Economia de memória:

Computação Gráfica – Parte 11 Prof. Jorge Cavalcanti

Realismo Visual

• Criar imagens sintéticas realistas é o objetivo final dacomputação gráfica.

• O realismo visual é composto pelas técnicas de tratamento computacional aplicadas aos objetos sintéticos gerados, com o objetivo de criar-lhes uma imagem o mais próxima da realidade que se teria se eles fossem construídos e filmados.

• O realismo é fundamental nas simulações, no entretenimento, na educação e muitas outras aplicações.

Page 3: Computação Gráfica - 0 - Início — UNIVASF Universidade …jorge.cavalcanti/comput_graf12... · 2018-02-27 · Fases do processo de Realismo Visual. ... •Economia de memória:

Computação Gráfica – Parte 11 Prof. Jorge Cavalcanti

• Podemos considerar o realismo em duas etapas.

– Estática: Onde são tratados os objetos e cenas estáticas é trabalhado o chamado realismo fotográfico.

– Dinâmica: A parte dinâmica esta relacionada ao movimento da cena e seus personagens, chamada de animação.

Realismo Visual

Page 4: Computação Gráfica - 0 - Início — UNIVASF Universidade …jorge.cavalcanti/comput_graf12... · 2018-02-27 · Fases do processo de Realismo Visual. ... •Economia de memória:

Computação Gráfica – Parte 11 Prof. Jorge Cavalcanti

Rendering

• A computação gráfica trata da síntese de imagens através do computador.

• Sintetizar uma imagem (uma cena ou objeto) é criá-la em termos da definição dos dados dos objetos que a compõem.

• Isso se faz a partir da geometria da cena, das informações sobre os materiais de que são feitos os objetos (suas cores e texturas), das condições de iluminação ambiente e da posição de observação da cena.

• Nesse processo de criação sintética, é denominado rendering a fase de introdução nas cenas, do realismo fotográfico.

Page 5: Computação Gráfica - 0 - Início — UNIVASF Universidade …jorge.cavalcanti/comput_graf12... · 2018-02-27 · Fases do processo de Realismo Visual. ... •Economia de memória:

Computação Gráfica – Parte 11 Prof. Jorge Cavalcanti

O termo Rendering

• Não existe uma tradução fora da área computacional adequada para essa palavra;

• Basicamente, podemos descrevê-la por “realismo visual”

• Podemos interpretar o processo de rendering como o de converter dados em uma imagem realística ou simplesmente sintetizar um objeto ou cena até ter-se deles uma aparência de algo real e não de formas inteiramente criadas no computador.

Page 6: Computação Gráfica - 0 - Início — UNIVASF Universidade …jorge.cavalcanti/comput_graf12... · 2018-02-27 · Fases do processo de Realismo Visual. ... •Economia de memória:

Computação Gráfica – Parte 11 Prof. Jorge Cavalcanti

Fases do processo de Realismo Visual

• Este processo envolve sete fases distintas.

– Nem todas usadas em todas as aplicações.

• O mais usual é que um trabalho seja apresentado em um nível de realismo adequado ao seu uso.

• Principalmente porque ao aumentar-se o realismo de uma cena aumenta-se também seu tempo de processamento e custo de geração.

Page 7: Computação Gráfica - 0 - Início — UNIVASF Universidade …jorge.cavalcanti/comput_graf12... · 2018-02-27 · Fases do processo de Realismo Visual. ... •Economia de memória:

Computação Gráfica – Parte 11 Prof. Jorge Cavalcanti

• Na primeira fase, tem-se a construção do modelo que conterá todas as informações para o processo de realismo visual.

– Essa primeira fase consiste na utilização de alguma técnica de modelagem.

• A segunda fase aplica transformações lineares no modelo de modo que ele tenha aparência tridimensional nos diversos dispositivos (geralmente bidimensionais).

– Essa fase consiste, então, na utilização de projeções e perspectivas adequadas.

Fases do processo de Realismo Visual

Page 8: Computação Gráfica - 0 - Início — UNIVASF Universidade …jorge.cavalcanti/comput_graf12... · 2018-02-27 · Fases do processo de Realismo Visual. ... •Economia de memória:

Computação Gráfica – Parte 11 Prof. Jorge Cavalcanti

• Na terceira fase, considera a eliminação de polígonos ou faces escondidas devido a posição relativa entre os objetos da cena e o observador (culling back-faces).

• Na quarta fase, são desconsideradas as partes das cenas que não serão mostradas, são chamados “recortes”. – Imagine que você tenha uma infinidade de coisas para ver, para

algumas sua visão será limitada, por que estão encobertas ou não chamam atenção.

• Isso é chamado de clipping (assim como o rendering não tem um significado literal) tem sentido no contexto.

Fases do processo de Realismo Visual

Page 9: Computação Gráfica - 0 - Início — UNIVASF Universidade …jorge.cavalcanti/comput_graf12... · 2018-02-27 · Fases do processo de Realismo Visual. ... •Economia de memória:

Computação Gráfica – Parte 11 Prof. Jorge Cavalcanti

• A quinta fase se encarrega em converter a representação tridimensional para pixels.

• Seja lá qual for o sistema de coordenadas que se esteja usando, os dados serão levados para um conjunto de coordenadas do dispositivo em que será mostrado.

• Essa conversão de coordenadas leva os dados do modelo para o mundo digital.

• Linhas e áreas serão transformadas em conjuntos de pixels.

– Esse processo é chamado rasterização.

Fases do processo de Realismo Visual

Page 10: Computação Gráfica - 0 - Início — UNIVASF Universidade …jorge.cavalcanti/comput_graf12... · 2018-02-27 · Fases do processo de Realismo Visual. ... •Economia de memória:

Computação Gráfica – Parte 11 Prof. Jorge Cavalcanti

• A sexta fase é de certa maneira uma continuação da terceira, pois trata também da eliminação de partes de um objeto que devem ser removidas.

– Só que agora essas partes são devidas à interferência dos diversos objetos presentes na cena,onde, devido a sua posição relativa, pode ocorrer que uns fiquem na frente de partes de outros.

• Muitos autores englobam estas duas partes no que se chama tratamento de partes escondidas (hidden).

Fases do processo de Realismo Visual

Page 11: Computação Gráfica - 0 - Início — UNIVASF Universidade …jorge.cavalcanti/comput_graf12... · 2018-02-27 · Fases do processo de Realismo Visual. ... •Economia de memória:

Computação Gráfica – Parte 11 Prof. Jorge Cavalcanti

• Na última fase, o realismo “fotográfico” começa a ser realmente tratado e percebido.– E para que seja feito adequadamente deve-se levar em conta as

luzes presentes na cena, suas intensidades e direções (em relação aos objetos).

• Também devem ser consideradas todas as características das superfícies representadas: transparência, brilho, reflexão e textura.

• Ainda devem ser consideradas as sombras que os diversos objetos fazem entre si e nas superfícies em que se apóiam.

• O nível de realismo dessa fase pode ser tão sofisticado quanto a aplicação precisar.

Fases do processo de Realismo Visual

Page 12: Computação Gráfica - 0 - Início — UNIVASF Universidade …jorge.cavalcanti/comput_graf12... · 2018-02-27 · Fases do processo de Realismo Visual. ... •Economia de memória:

Computação Gráfica – Parte 11 Prof. Jorge Cavalcanti

Realismo por passadas

• A construção de uma cena realística é um processo incremental.

• Essa forma de criação de cenas realísticas é denominada de realismo por passadas.– É a forma utilizada pela grande maioria dos sistemas para

geração de cenas realísticas

• Esse processo permite que os atributos de uma cena sejam renderizados separadamente da sua geração ou modelagem. – Diversas técnicas e softwares participam do processo de inclusão

do grau de realismo desejado a cena.

Page 13: Computação Gráfica - 0 - Início — UNIVASF Universidade …jorge.cavalcanti/comput_graf12... · 2018-02-27 · Fases do processo de Realismo Visual. ... •Economia de memória:

Computação Gráfica – Parte 11 Prof. Jorge Cavalcanti

Realismo por passadas• Uma série de bons motivos tornou a renderização por

passadas o padrão da computação gráfica atual.

• Economia de memória: pois nessa técnica não precisam ser colocados todos os objetos de uma vez para o render.

• Facilidade da introdução de modificações: se precisarmos alterar somente alguns elementos de uma cena como luzes, sombras ou cores, não será necessário perder ou refazer todo o processo de renderização anterior.

Page 14: Computação Gráfica - 0 - Início — UNIVASF Universidade …jorge.cavalcanti/comput_graf12... · 2018-02-27 · Fases do processo de Realismo Visual. ... •Economia de memória:

Computação Gráfica – Parte 11 Prof. Jorge Cavalcanti

Realismo por passadas

• Um outro motivo que torna mais eficiente essa forma de renderização é a possibilidade de maior utilização das imagens estáticas.– Por exemplo, se já temos em uma animação uma cena observada

a partir de um ponto estático (como um filme com uma câmera fixa), não será necessário renderizar toda a cena, apenas os pontos que sofrerem modificações.

• Essa técnica permite também a mixagem com objetos ou texturas reais obtidas por captura, ou seja, o render por passadas permite uma integração com imagens fotográficas, acrescentando sombras, texturas complexas ou elementos do mundo real (como rostos) à cena.

Page 15: Computação Gráfica - 0 - Início — UNIVASF Universidade …jorge.cavalcanti/comput_graf12... · 2018-02-27 · Fases do processo de Realismo Visual. ... •Economia de memória:

Computação Gráfica – Parte 11 Prof. Jorge Cavalcanti

RasterizaçãoRepresentação Vetorial x Matricial • Normalmente, gráficos são definidos

através de primitivas geométricas como pontos, segmentos de retas, polígonos, etc– Representação vetorial

• Dispositivos gráficos podem ser pensados como matrizes de pixels (rasters)– Representação matricial

• Rasterização é o processo de conversão entre representações vetorial e matricial

• Técnicas de antialiasing podem ser empregadas.

Page 16: Computação Gráfica - 0 - Início — UNIVASF Universidade …jorge.cavalcanti/comput_graf12... · 2018-02-27 · Fases do processo de Realismo Visual. ... •Economia de memória:

Computação Gráfica – Parte 11 Prof. Jorge Cavalcanti

• Rasterização é um processo de amostragem

– Domínio contínuo discreto

– Problemas de aliasing são esperados

• Cada primitiva pode gerar um grande número de pixels

– Rapidez é essencial

• Em geral, rasterização é feita por hardware

Rasterização

Page 17: Computação Gráfica - 0 - Início — UNIVASF Universidade …jorge.cavalcanti/comput_graf12... · 2018-02-27 · Fases do processo de Realismo Visual. ... •Economia de memória:

Computação Gráfica – Parte 11 Prof. Jorge Cavalcanti

Rasterização de Segmentos de Reta• Segmento de reta entre P1= (x1, y1) e P2= (x2, y2)

– Já foi recortado com relação ao viewport

• Objetivo é pintar os pixels atravessados pelo segmento de reta– Na verdade, nem todos, apenas os mais próximos

• Reta de suporte dada por a x + b y + c = 0• Queremos distinguir os casos

– Linhas ~ horizontais computar y como função de x– Linhas ~ verticais computar x como função de y

Page 18: Computação Gráfica - 0 - Início — UNIVASF Universidade …jorge.cavalcanti/comput_graf12... · 2018-02-27 · Fases do processo de Realismo Visual. ... •Economia de memória:

Computação Gráfica – Parte 11 Prof. Jorge Cavalcanti

Amostragem, Aliasing, e Anti-aliasing• A linha, que no universo físico é contínua, é amostrada em uma

matriz finita 2D de pixels.

• Tal discretização pode causar distorções visuais como cisalhamento ou efeito de escada.

• Essas distorções são chamadas de aliasing.

• Para reduzir o problema, usa-se uma técnica chamada anti-aliasing.

• A técnica consiste em uma superamostragem (uma vez que o aliasing é causada por uma subamostragem)

Page 19: Computação Gráfica - 0 - Início — UNIVASF Universidade …jorge.cavalcanti/comput_graf12... · 2018-02-27 · Fases do processo de Realismo Visual. ... •Economia de memória:

Computação Gráfica – Parte 11 Prof. Jorge Cavalcanti

Superamostragem = Amostrar um objeto numa resolução maior do que será reconstruído.

Dividir os pixels em sub-pixels (i.e. 9), aplicar o algoritmo de Bresenham nesses sub-pixels

Contar o número desub-pixels “acesos”

por pixel

O pixel será aceso com intensidade proporcional ao número de sub-pixels acesos.

23

1 3

3

3

Superamostragem

Page 20: Computação Gráfica - 0 - Início — UNIVASF Universidade …jorge.cavalcanti/comput_graf12... · 2018-02-27 · Fases do processo de Realismo Visual. ... •Economia de memória:

Computação Gráfica – Parte 11 Prof. Jorge Cavalcanti

Exemplo de Anti-aliasing em Linhas

Observe que quando a cor de fundo não é preto, o anti-aliasing deve fazer uma composição da intensidade com a cor de fundo.

Anti-aliasing é necessário não só para linhas, mas também para polígonos e texturas.

Page 21: Computação Gráfica - 0 - Início — UNIVASF Universidade …jorge.cavalcanti/comput_graf12... · 2018-02-27 · Fases do processo de Realismo Visual. ... •Economia de memória:

Computação Gráfica – Parte 11 Prof. Jorge Cavalcanti

Remoção de elementos ocultos• Remoção de elementos ocultos (eliminação de linhas e

superfícies escondidas).

• A solução eficiente de problemas de visibilidade é o principal passo do processo de criação de cenas realísticas.

• Esse problema lida freqüentemente com a determinação da visibilidade de linhas e superfícies.

• Existem diversos algoritmos usados para determinar as linhas, arestas, superfícies ou volumes que são visíveis ou não para um observador localizado em um ponto específico no espaço. – Atualmente, são implementados nas placas gráficas.

– Algoritmos Z-Buffer, do Pintor, Cálculo da Normal...

Page 22: Computação Gráfica - 0 - Início — UNIVASF Universidade …jorge.cavalcanti/comput_graf12... · 2018-02-27 · Fases do processo de Realismo Visual. ... •Economia de memória:

Computação Gráfica – Parte 11 Prof. Jorge Cavalcanti

Remoção de elementos ocultos

E

Page 23: Computação Gráfica - 0 - Início — UNIVASF Universidade …jorge.cavalcanti/comput_graf12... · 2018-02-27 · Fases do processo de Realismo Visual. ... •Economia de memória:

Computação Gráfica – Parte 11 Prof. Jorge Cavalcanti

Remoção de elementos ocultos• É importante existir uma forma de identificação de linhas, arestas ou

superfícies visíveis e não visíveis.– Decidir se a mesma deverá ser traçada ou não

– Conservar a fidelidade, resolução e agilidade de representação

• Algoritmos de remoção de faces ocultas (HSR) foram desenvolvidos na década de 70, mas foram abandonados por que requeriam alto processamento e grande quantidade de memória

• O avanço tecnológico e barateamento de memória re-introduziram alguns desses algoritmos.

• Os diferentes algoritmos deverão realizar as seguintes tarefas:– Ler e armazenar em matriz as coordenadas 3D dos objetos

– Localizar no espaço 3D a posição do observador, para definição dos parâmetros de visibilidade

– Cálculo do vetor normal 3D de cada face do objeto

– Cálculo do vetor da linha de visibilidade para cada face do objeto

Page 24: Computação Gráfica - 0 - Início — UNIVASF Universidade …jorge.cavalcanti/comput_graf12... · 2018-02-27 · Fases do processo de Realismo Visual. ... •Economia de memória:

Computação Gráfica – Parte 11 Prof. Jorge Cavalcanti

Remoção de elementos ocultos• Os diferentes algoritmos deverão realizar as seguintes

tarefas (cont.):– Realizar o teste de visibilidade, verificando o ângulo da normal da

face com a linha de visibilidade.

– Definir os vértices ou cantos das faces do objeto e armazená-los– Verificar os cantos visíveis, com seus respectivos posicionamentos– Traçar as arestas das faces visíveis, que revelarão o objeto sob

determinado ponto de vista.

Se 90º < < 180º - Superfície invisívelSe - 90º < < 90º - Superfície visível

Page 25: Computação Gráfica - 0 - Início — UNIVASF Universidade …jorge.cavalcanti/comput_graf12... · 2018-02-27 · Fases do processo de Realismo Visual. ... •Economia de memória:

Computação Gráfica – Parte 11 Prof. Jorge Cavalcanti

Z-buffer

• Buffers são áreas reservadas de memória utilizadas para determinados propósitos.

• Em aplicações de animação, por exemplo, o double-buffer permite que as sucessivas renderizações sejam feitas de modo suave, sem o efeito indesejável de piscar entre cada atualização da janela de visualização.

• O z-buffer é bastante comum em aplicações gráficas e é utilizado para calcular a distância do observador e remover superfícies ou partes ocultas de objetos sobrepostos.

glutInitDisplayMode(GLUT_DOUBLE | GLUT_RGB | GLUT_DEPTH)

Z-Buffer