• Nenhum resultado encontrado

Billboard. INF1339 Computação Gráfica Tridimensional. Waldemar Celes. 23 de Setembro de Tecgraf, DI/PUC-Rio.

N/A
N/A
Protected

Academic year: 2021

Share "Billboard. INF1339 Computação Gráfica Tridimensional. Waldemar Celes. 23 de Setembro de Tecgraf, DI/PUC-Rio."

Copied!
30
0
0

Texto

(1)

Billboard

INF1339 – Computa¸ c˜ ao Gr´ afica Tridimensional

Waldemar Celes

celes@inf.puc-rio.br – sala 505 RDC

Tecgraf, DI/PUC-Rio

23 de Setembro de 2015

(2)

Billboard

Forma simples de renderiza¸ c˜ ao baseada em imagem (IBR) Ideia b´ asica:

Substituir objeto geom´ etrico por uma imagem

I

Exemplos: flare, ´ arvores, fontes de luz, ...

Billboard

I

Imagem de textura representando o objeto

I

Suporte geom´ etrico para aplica¸ c˜ ao da textura

I

Em geral, usa-se um quadril´ atero simples

(3)

Billboard

Forma simples de renderiza¸ c˜ ao baseada em imagem (IBR) Ideia b´ asica:

Substituir objeto geom´ etrico por uma imagem

I

Exemplos: flare, ´ arvores, fontes de luz, ...

Billboard

I

Imagem de textura representando o objeto

I

Suporte geom´ etrico para aplica¸ c˜ ao da textura

I

Em geral, usa-se um quadril´ atero simples

(4)

Billboard

Posicionamento

I

Transla¸c˜ ao para a posi¸ c˜ ao do objeto no mundo

I

Rota¸c˜ ao para billboard ficar sempre voltado para o observador

Tipos de billboard

I

Pontual: rota¸ c˜ ao em torno de um ponto

I

Alinhado com tela (screen-aligned)

I

Alinhado com o mundo (world-aligned)

I

Axial: rota¸c˜ ao em torno de um eixo

(5)

Billboard

Posicionamento

I

Transla¸c˜ ao para a posi¸ c˜ ao do objeto no mundo

I

Rota¸c˜ ao para billboard ficar sempre voltado para o observador

Tipos de billboard

I

Pontual: rota¸ c˜ ao em torno de um ponto

I

Alinhado com tela (screen-aligned)

I

Alinhado com o mundo (world-aligned)

I

Axial: rota¸ c˜ ao em torno de um eixo

(6)

Billboard

Matriz de rota¸ c˜ ao

I

Acha-se uma base ortonormal (r, u, n) que representa o correto posicionamento do billboard no mundo 3D

I

Escolhe-se um sistema de eixo local do suporte geom´ etrico

z x y

M =

r u n

(7)

Posicionamento de billboard

Billboard pontual alinhado com a tela

I

Deve-se fornecer posi¸ c˜ ao no mundo

I

Usado para textos, flare, etc.

I

Ou objetos axissim´ etricos (sem dire¸ c˜ ao “para cima” definida)

Base ortonormal

I

r?

I

u?

I

n?

Como deve estar alinhado com a tela:

I

n = −v

dir

I

u = v

up I

r = u × n

(8)

Posicionamento de billboard

Billboard pontual alinhado com a tela

I

Deve-se fornecer posi¸ c˜ ao no mundo

I

Usado para textos, flare, etc.

I

Ou objetos axissim´ etricos (sem dire¸ c˜ ao “para cima” definida)

Base ortonormal

I

r?

I

u?

I

n?

Como deve estar alinhado com a tela:

I

n = −v

dir

I

u = v

up I

r = u × n

(9)

Posicionamento de billboard

Billboard pontual alinhado com o mundo

I

Deve-se definir posi¸ c˜ ao e dire¸ c˜ ao “para cima” (u

w

) no mundo

I

Usado para fontes de luz, fuma¸ ca, fogo, nuvem, etc.

Base ortonormal

I

r?

I

u?

I

n?

Como deve estar voltado para observador:

I

n = −v

dir

I

u = u

w

, o qto poss´ıvel

I

r = u × n

Como determinar u:

I

r = u

w

× n

I

u = n × r

(10)

Posicionamento de billboard

Billboard pontual alinhado com o mundo

I

Deve-se definir posi¸ c˜ ao e dire¸ c˜ ao “para cima” (u

w

) no mundo

I

Usado para fontes de luz, fuma¸ ca, fogo, nuvem, etc.

Base ortonormal

I

r?

I

u?

I

n?

Como deve estar voltado para observador:

I

n = −v

dir

I

u = u

w

, o qto poss´ıvel

I

r = u × n

Como determinar u:

I

r = u

w

× n

I

u = n × r

(11)

Posicionamento de billboard

Billboard pontual alinhado com o mundo

I

Deve-se definir posi¸ c˜ ao e dire¸ c˜ ao “para cima” (u

w

) no mundo

I

Usado para fontes de luz, fuma¸ ca, fogo, nuvem, etc.

Base ortonormal

I

r?

I

u?

I

n?

Como deve estar voltado para observador:

I

n = −v

dir

I

u = u

w

, o qto poss´ıvel

I

r = u × n

Como determinar u:

I

r = u

w

× n

I

u = n × r

(12)

Posicionamento de billboard

Billboard axial

I

Deve-se fornecer posi¸ c˜ ao e eixo vertical (e

w

) no mundo

I

Usado para ´ arvores, raios de laser, etc.

Base ortonormal

I

r?

I

u?

I

n?

Como deve respeitar o eixo:

I

n = −v

dir

, , o qto poss´ıvel

I

u = e

w I

r = u × n

Como determinar n:

I

r = u × −v

dir

I

n = r × u

(13)

Posicionamento de billboard

Billboard axial

I

Deve-se fornecer posi¸ c˜ ao e eixo vertical (e

w

) no mundo

I

Usado para ´ arvores, raios de laser, etc.

Base ortonormal

I

r?

I

u?

I

n?

Como deve respeitar o eixo:

I

n = −v

dir

, , o qto poss´ıvel

I

u = e

w I

r = u × n

Como determinar n:

I

r = u × −v

dir

I

n = r × u

(14)

Posicionamento de billboard

Billboard axial

I

Deve-se fornecer posi¸ c˜ ao e eixo vertical (e

w

) no mundo

I

Usado para ´ arvores, raios de laser, etc.

Base ortonormal

I

r?

I

u?

I

n?

Como deve respeitar o eixo:

I

n = −v

dir

, , o qto poss´ıvel

I

u = e

w I

r = u × n

Como determinar n:

I

r = u × −v

dir

I

n = r × u

(15)

Posicionamento de billboard

Como determinar v

dir

?

Usar v

dir

constante ou vari´ avel

I

Dire¸ c˜ ao constante: normal do plano near

I

Dire¸ c˜ ao vari´ avel: determinar posi¸ c˜ ao da cˆ amera

(16)

Posicionamento de billboard

Como determinar v

dir

?

Usar v

dir

constante ou vari´ avel

I

Dire¸ c˜ ao constante: normal do plano near

I

Dire¸ c˜ ao vari´ avel: determinar posi¸ c˜ ao da cˆ amera

(17)

Posicionamento de billboard

Como determinar v

dir

?

Usar v

dir

constante ou vari´ avel

I

Dire¸ c˜ ao constante: normal do plano near

I

Dire¸ c˜ ao vari´ avel: determinar posi¸ c˜ ao da cˆ amera

(18)

Textura do billboard

Imagem com transparˆ encia

I

Textura RGBA

I

Usar MODULATE para combinar

I

Considera ilumina¸ c˜ ao do suporte geom´ etrico

I

Habilita BLEND e desenha billboards em ordem

Mark Harris, UNC-Chapel Hill

(19)

Billboard animado

Sequˆ encia de imagens com anima¸c˜ ao

I

Armazenadas num ´ unico objeto de textura para evitar carga da troca

Objeto de textura

I

Textura 2D: imagens colocadas lado a lado

I

N˜ ao permite transi¸ c˜ ao suave entre quadros

I

Textura 3D: imagens arranjadas na dimens˜ ao da profundidade

I

Permite interpola¸c˜ ao entre imagens adjacentes

I

N˜ ao permite uso de mipmapping

(20)

Billboard animado

Sequˆ encia de imagens com anima¸c˜ ao

I

Armazenadas num ´ unico objeto de textura para evitar carga da troca

Objeto de textura

I

Textura 2D: imagens colocadas lado a lado

I

N˜ ao permite transi¸c˜ ao suave entre quadros

I

Textura 3D: imagens arranjadas na dimens˜ ao da profundidade

I

Permite interpola¸c˜ ao entre imagens adjacentes

I

N˜ ao permite uso de mipmapping

(21)

Billboard animado

Sequˆ encia de imagens com anima¸c˜ ao

I

Armazenadas num ´ unico objeto de textura para evitar carga da troca

Objeto de textura

I

Textura 2D: imagens colocadas lado a lado

I

N˜ ao permite transi¸c˜ ao suave entre quadros

I

Textura 3D: imagens arranjadas na dimens˜ ao da profundidade

I

Permite interpola¸ c˜ ao entre imagens adjacentes

I

N˜ ao permite uso de mipmapping

(22)

Impostores

Impostores s˜ ao billboards gerados “on-the-fly”

I

Renderiza objeto complexo numa textura

I

Ao inv´ es de renderiz´ a-lo diretamente na cena

I

Mapeia textura na posi¸ c˜ ao do objeto

I

A mesma textura pode ser usada por alguns quadros

(23)

Sprites

Renderiza¸c˜ ao baseada em pontos

I

Uso de ponto como primitiva gr´ afica

I

Sprite: associa¸c˜ ao de textura aos fragmentos do ponto

Aplica¸c˜ oes

I

Fenˆ omenos naturais

I

Renderiza¸ c˜ ao de superf´ıcies

I

Visualiza¸ c˜ ao volum´ etrica

(24)

Renderiza¸c˜ ao de ponto

Controle do tamanho e da forma

I

Controle do tamanho em raster

glPointSize (...);

I

Controle da forma

glEnable(GL POINT SMOOTH);

I

Varia¸c˜ ao do tamanho

glPointParameter∗ (...);

size

0

= clamp

"

size ×

r 1

a + b × z + c × z

2

#

(25)

Renderiza¸c˜ ao de pontos

Corre¸ c˜ ao perspectiva

I

Desenhar pontos com diˆ amero δ no espa¸ co do mundo

I

Tamanho do ponto em raster quando z = z

near

s = δ h

∆y

I

Tamanho em raster quando z > z

near

s

0

= s z

near

z

I

Defini¸ c˜ ao dos parˆ ametros de controle: a, b, c

r 1

a + b × z + c × z

2

= z

near

z Ent˜ ao:

a = b = 0, c = 1

z

near2

(26)

Renderiza¸c˜ ao de pontos

Corre¸ c˜ ao perspectiva

I

Desenhar pontos com diˆ amero δ no espa¸ co do mundo

I

Tamanho do ponto em raster quando z = z

near

s = δ h

∆y

I

Tamanho em raster quando z > z

near

s

0

= s z

near

z

I

Defini¸ c˜ ao dos parˆ ametros de controle: a, b, c

r 1

a + b × z + c × z

2

= z

near

z Ent˜ ao:

a = b = 0, c = 1

z

near2

(27)

Renderiza¸c˜ ao de pontos

Corre¸ c˜ ao perspectiva

I

Desenhar pontos com diˆ amero δ no espa¸ co do mundo

I

Tamanho do ponto em raster quando z = z

near

s = δ h

∆y

I

Tamanho em raster quando z > z

near

s

0

= s z

near

z

I

Defini¸ c˜ ao dos parˆ ametros de controle: a, b, c

r 1

a + b × z + c × z

2

= z

near

z Ent˜ ao:

a = b = 0, c = 1

z

near2

(28)

Renderiza¸c˜ ao de pontos

Corre¸ c˜ ao perspectiva

I

Desenhar pontos com diˆ amero δ no espa¸ co do mundo

I

Tamanho do ponto em raster quando z = z

near

s = δ h

∆y

I

Tamanho em raster quando z > z

near

s

0

= s z

near

z

I

Defini¸ c˜ ao dos parˆ ametros de controle: a, b, c

r 1

a + b × z + c × z

2

= z

near

z

Ent˜ ao:

a = b = 0, c = 1

z

near2

(29)

Renderiza¸c˜ ao de pontos

Corre¸ c˜ ao perspectiva

I

Desenhar pontos com diˆ amero δ no espa¸ co do mundo

I

Tamanho do ponto em raster quando z = z

near

s = δ h

∆y

I

Tamanho em raster quando z > z

near

s

0

= s z

near

z

I

Defini¸ c˜ ao dos parˆ ametros de controle: a, b, c

r 1

a + b × z + c × z

2

= z

near

z Ent˜ ao:

a = b = 0, c = 1

z

near2

(30)

Sprite

Especificando mapeamento de textura em pontos

glTexEnvi(GL POINT SPRITE, GL COORD REPLACE, GL TRUE);

glPointParameteri(GL POINT SPRITE COORD ORIGIN, GL LOWER LEFT);

glEnable(GL POINT SPRITE);

Referências

Documentos relacionados

Superintendência Regional de Meio Ambiente e Desenvolvimento Sustentável do Leste Mineiro Rua 28, 100 – Ilha dos Araújos – Governador Valadares –

objref objref_ptr objref_ptr & objref_ptr & objref_ptr sequence const sequence & sequence & sequence *& sequence * struct (fixed) const struct & struct

Quando, a 27 de Abril, tropas da 2ª frente bielorrussa romperam na direcção de Prenzlau, Heinrici retirou para Norte duas divisões, disponibilizadas pelo Alto Comando da

Quadro 2 Quadro-resumo das condutas consesuadas sobre triagem e avaliação nutricional para o paciente oncológico adulto e idoso cirúrgico, clínico, transplantado (TCTH) e sob

Os experimentos do presente estudo foram desenvolvidos com o intuito de esclarecer algumas características relacionadas à puberdade na espécie eqüina, dando ênfase ao

- {nodes} Camera Light Entity - app - shp Scene - env Transform Property Environ Appearance Material Texture Shape Engine Classe Node Atributos. I Nome associado ao n´

Qual o espa¸ co de mem´ oria adicional para armazenar a pirˆ amide. I Considerando uma

–  Indica regiões de sombra ð  Renderiza cena normal. ²  Aplica textura