107
Computação Gráfica Conteúdo

Computação Gráfica Conteúdo. Objetivo do Curso Proporcionar o aprendizado de técnicas e conceitos básicos de computação gráfica 2D e 3D, para o desenvolvimento,

Embed Size (px)

Citation preview

Page 1: Computação Gráfica Conteúdo. Objetivo do Curso Proporcionar o aprendizado de técnicas e conceitos básicos de computação gráfica 2D e 3D, para o desenvolvimento,

Computação Gráfica

Conteúdo

Page 2: Computação Gráfica Conteúdo. Objetivo do Curso Proporcionar o aprendizado de técnicas e conceitos básicos de computação gráfica 2D e 3D, para o desenvolvimento,

Objetivo do Curso

• Proporcionar o aprendizado de técnicas e conceitos básicos de computação gráfica 2D e 3D, para o desenvolvimento, avaliação ou uso de aplicativos gráficos.

Page 3: Computação Gráfica Conteúdo. Objetivo do Curso Proporcionar o aprendizado de técnicas e conceitos básicos de computação gráfica 2D e 3D, para o desenvolvimento,

Ementa• Introdução à computação grafica• Hardware: arquiteturas de terminais gráficos• Projetos de pacotes gráficos• Padrões• Interface Humano/Computador• Aspectos Geométricos: gráficos 2D e 3D• Aspectos Humanos: . realismo na apresentação . Intensidade e coloração• Modelos e hierarquia de objetos• Representação de superfícies 3D e de sólidos• Uso de computador para projetos e ensaios de pacotes

Page 4: Computação Gráfica Conteúdo. Objetivo do Curso Proporcionar o aprendizado de técnicas e conceitos básicos de computação gráfica 2D e 3D, para o desenvolvimento,

Tópicos

• Conceituação de computação gráfica e áreas de aplicação

• Dispositivos gráficos e arquiteturas de terminais gráficos• Conceituação de aplicativos gráficos• Portabilidade e evolução de bibliotecas gráficas • Algoritmos de transformação de primitivas gráficas 2D e

3D (coordenadas homogêneas, rotação, translação, escalamento, e projeções)

• Curvas Bezier e Spline• Biblioteca OpenGL para o desenvolvimento de gráficos

Page 5: Computação Gráfica Conteúdo. Objetivo do Curso Proporcionar o aprendizado de técnicas e conceitos básicos de computação gráfica 2D e 3D, para o desenvolvimento,

Bibliografia

• Foley,J.D.; van Dam,A.; Feiner,S.K.; Hughes,J.F.- Computer Graphics – Principles and Practice, 2.ed. Addison Wesley Pub.Co.,USA, 1992

• Hearn,D. & Baker, M.P. – Computer Graphics, 2.ed. Prentice Hall, NJ,1997

• Gomes,J.& Velho, L. – Computação Gráfica – Volume 1.IMPA, RJ, 1998

• Jacobs, J.Q. – Delphi Developer’s Guide to OpenGL. Wordware Pub., Texas, 1999

• Tori,R.; Arakaki,R.; Massola,A.M.A.; Filgueiras,L.V.L. – Fundamentos de Computação Gráfica. LTC, RJ, 1987

• Mason Woo, Jackie Neider, Tom Davis & Dave Shreiner – OpenGL Programming Guide, 3rd. Ed. Addison-Wesley, 1999.

Page 6: Computação Gráfica Conteúdo. Objetivo do Curso Proporcionar o aprendizado de técnicas e conceitos básicos de computação gráfica 2D e 3D, para o desenvolvimento,

Avaliação

• Nota final = 0.5 x Prova + 0.5 x Trabalho

Prova: escrita, sobre a parte teórica

Trabalho: criação, implementação e visualização de um gráfico 3D com animação

- em grupo de no máximo 4 alunos - apresentação do trabalho em sala de aula

Page 7: Computação Gráfica Conteúdo. Objetivo do Curso Proporcionar o aprendizado de técnicas e conceitos básicos de computação gráfica 2D e 3D, para o desenvolvimento,

Introdução

• Computação gráfica – conjunto de algoritmos, técnicas e metodologias para o tratamento e a representação gráfica de informações através da criação, armazenamento e manipulação de desenhos, utilizando computadores e periféricos gráficos.

• Em termos de aplicação, ela pode ser dividida nas seguintes áreas:– CAD (Computer Aided Design)– Gráficos Ilustrativos – Arte por Computador– Entretenimento– Educação e Treinamento– Visualização Científica

Page 8: Computação Gráfica Conteúdo. Objetivo do Curso Proporcionar o aprendizado de técnicas e conceitos básicos de computação gráfica 2D e 3D, para o desenvolvimento,

Interação com outras áreas

ComputaçãoGráfica

Outras ...

Física

Medicina

Psicologia

Artes

Matemática

Eng.Eletrônica

Page 9: Computação Gráfica Conteúdo. Objetivo do Curso Proporcionar o aprendizado de técnicas e conceitos básicos de computação gráfica 2D e 3D, para o desenvolvimento,

Conceito de Aplicativo GráficoAplicativo Gráfico: um sistema composto de um ou mais programas, para a geração de uma determinada apresentação gráfica que pode ser composta de recursos 2D e/ou 3D e/ou imagem.

DataBase

ApplicationProgram

MetafileReader

Metafile

DeviceDriver

DeviceDriver

MetafileWriter

VirtualDevice

Interface

VirtualDeviceMetafile

CurrentTerminal

Future “VDI”Terminal

CurrentPlotter

Device - IndependentGraphics Package

Page 10: Computação Gráfica Conteúdo. Objetivo do Curso Proporcionar o aprendizado de técnicas e conceitos básicos de computação gráfica 2D e 3D, para o desenvolvimento,

Biblioteca GráficaA biblioteca gráfica contem as funções que o aplicativo aciona para a

geração de primitivas gráficas.

Portabilidade – independência em relação aos dispositivos gráficos

Device Drivers – comunicação da biblioteca gráfica com os dispositivos

Exemplos de bibliotecas gráficas: Core, Dore, XFDI, Starbase, GKS, PHIGS, GL, OpenGL e DirectX

OpenGL – evolução do GL (Silicon Graphics)

- grandes produtores de software e hardware tem priorizado o

seu uso

DirectX – suportada pela Microsoft

Page 11: Computação Gráfica Conteúdo. Objetivo do Curso Proporcionar o aprendizado de técnicas e conceitos básicos de computação gráfica 2D e 3D, para o desenvolvimento,

Conceitos de CADCAD (Computer Aided Design) - utilizar o computador para auxiliar nos

projetos tais como: edifício, automóvel, navio, espaçonave, eletrodoméstico, tapete, roupa, etc.

São envolvidos conceitos de computação gráfica, com recursos de interação, técnicas de gráficos 2D ou 3D, rendering, animação, etc.

Os sistemas CAD podem funcionar de forma integrada aos sistemas CAM (Computer Aided Manufacturing), quando os dados do projeto resultantes do CAD podem ser incorporados no controle da fabricação do produto com o auxílio do computador.

Atualmente os sistemas CAD/CAM sofisticados fazem parte de um conjunto maior de programas denominado de sistema de Informação gerencial MIS (Management Information System), cuja função é gerenciar todas as etapas de produção, o que envolve controle de estoque, controle de máquinas de montagem, controle de inspeção de qualidade, etc.

Page 12: Computação Gráfica Conteúdo. Objetivo do Curso Proporcionar o aprendizado de técnicas e conceitos básicos de computação gráfica 2D e 3D, para o desenvolvimento,

Dispositivos de Visualização Gráfica com o uso de CRTs (Cathode Ray Tubes)

Antigamente, o modo de operação destes dispositivos era semelhante a um osciloscópio. A exibição no CRT era feita na sequência e posição dos pontos correspondentes às

primitivas gráficas a serem exibidas. Essas primitivas eram contidas numa memória denominada de Refresh Buffer .

Controladorde Exibição

.

.

.MOVE1015LINE400300...

Terminalde Vídeo

CPU

RefreshBuffer

TecladoMouse

Page 13: Computação Gráfica Conteúdo. Objetivo do Curso Proporcionar o aprendizado de técnicas e conceitos básicos de computação gráfica 2D e 3D, para o desenvolvimento,

Terminais de Vídeo VetoriaisDevido a sequência de traçado de primitivas gráficas ( na maioria - linhas) , os

primeiros terminais de vídeo foram chamados de terminais vetoriais.

Devido a persistência luminosa do material que reveste a tela do tubo de raios catódicos – CRTs, a imagem se mantinha até o próximo ciclo de redesenho.

Os refresh buffer continha os comandos de primitivas que indicavam ao controlador de exibição onde traçar as linhas.

Problemas: - o tempo de geração de uma imagem completa é proporcional ao número de primitivas. Isso faz com que uma imagem complexa leva um tempo excessivo para o próximo ciclo do redesenho, e a imagem começa a piscar (flicker).

Page 14: Computação Gráfica Conteúdo. Objetivo do Curso Proporcionar o aprendizado de técnicas e conceitos básicos de computação gráfica 2D e 3D, para o desenvolvimento,

FisiologiaÉ necessária uma frequência maior que 16 Hz para que o redesenho

possibilite sensação de continuidade de movimento, em animação.Porém, para evitar a sensação tremeluzente (flicker) é necessária uma

frequência bem maior.

Nos filmes: a frequência de quadros é de 24 Hz, porém, cada quadro é iluminada duas vezes, dando uma sensação de 48 Hz para a exibição.

Na televisão (brasileira/americana ): A frequência de quadros completos é de 30 Hz, porém, cada quadro completo é composto de campo de linhas impares e de linhas pares, que são entrelaçados, dando uma sensação de 60 Hz para exibição.

Televisão européida: 25 Hz para quadro completo, 50 Hz para campos.

Page 15: Computação Gráfica Conteúdo. Objetivo do Curso Proporcionar o aprendizado de técnicas e conceitos básicos de computação gráfica 2D e 3D, para o desenvolvimento,

Terminais de Vídeo por Varredura (Raster)

Frame Buffer

0

0

0

0

0

0

0

0 0 0 0 0 0 0

1

0

1

1

1

0

0 1

0

0

0

01

Controladorde Vídeo

Terminal

Controladorde Exibição

TecladoMouse

CPU

0

1

1

0

0

1

1 0

0

0

1

0

0

0

1

1

1

0

0

0

0

Page 16: Computação Gráfica Conteúdo. Objetivo do Curso Proporcionar o aprendizado de técnicas e conceitos básicos de computação gráfica 2D e 3D, para o desenvolvimento,

Arquitetura Simples

Frame Buffer na Memória do Sistema

CPU

Memóriado Sistema

BUS

MonitorControladorde Vídeo

DispositivosPeriféricos

Page 17: Computação Gráfica Conteúdo. Objetivo do Curso Proporcionar o aprendizado de técnicas e conceitos básicos de computação gráfica 2D e 3D, para o desenvolvimento,

Arquitetura Comumente Usada

- Para animação é importante a existência de mais um frame buffer (double buffer).

- Enquanto o controlador exibe o conteúdo de um frame buffer, o conteúdo do outro é atualizado pela CPU

CPU

FrameBuffer

Memóriado Sistema

BUS

MonitorControladorde Vídeo

DispositivosPeriféricos

Page 18: Computação Gráfica Conteúdo. Objetivo do Curso Proporcionar o aprendizado de técnicas e conceitos básicos de computação gráfica 2D e 3D, para o desenvolvimento,

Arquitetura com uso do Processador Gráfico

Processador Gráfico: - scan conversion – determinação de endereço de memória de um pixel

- traçado de primitivas gráficas – linhas, arcos, linhas com anti-aliasing, rendering, etc.

CPU

Memóriado Sistema

BUS

MonitorControladorde Vídeo

DispositivosPeriféricos

ProcessadorGráfico

FrameBuffer

Memória doProcessadorGráfico

Arquiteturacom Proces.Gráfico

Page 19: Computação Gráfica Conteúdo. Objetivo do Curso Proporcionar o aprendizado de técnicas e conceitos básicos de computação gráfica 2D e 3D, para o desenvolvimento,

Operação com tabela de cores (LUT - Look Up Table)

01000011

0 Xmax0

Ymax

100110100001

0

255

67

Look-up Table

1001 1010 0001

Red Green Blue

Pixel -> 67(x’,y’)

FrameBuffer

Monitor

Pixel exibidoem (x’,y’)

Organização da Look-UpTable de um Terminal

Page 20: Computação Gráfica Conteúdo. Objetivo do Curso Proporcionar o aprendizado de técnicas e conceitos básicos de computação gráfica 2D e 3D, para o desenvolvimento,

Olho Humano

Retina: - 6 a 7 milhões de cones – sensíveis a níveis altos de luminosidade e cores

- 75 a 150 milhões de bastonetes – sensíveis a níveis baixos de luminosidade

Percepção do olho humano:

- Terminais gráficos de 1280 x 1024 pixels

- Para a transição suave de tons num dégradé, sem distinção das linhas da mudaça de tons é necessário no mínimo 100 tons.

- Para satisfazer essa exigência, os terminais modernos permitem a exibição simultânea de 128 ou 256 cores

Page 21: Computação Gráfica Conteúdo. Objetivo do Curso Proporcionar o aprendizado de técnicas e conceitos básicos de computação gráfica 2D e 3D, para o desenvolvimento,

Transformações Afins

Page 22: Computação Gráfica Conteúdo. Objetivo do Curso Proporcionar o aprendizado de técnicas e conceitos básicos de computação gráfica 2D e 3D, para o desenvolvimento,

• Uma transformação de coordenadas é denominada uma transformação afim, se em:

x

y

z

a a a

a a a

a a a

x

y

z

b

b

b

/

/

/

11 12 13

21 22 23

31 32 33

1

2

3

v A v b

as coordenadas (x’,y’,z’) do vetor v’, que definem um ponto no espaço, são uma

função linear de (x,y,z) do vetor v, e aij e bi são constantes que determinam a

transformação

Page 23: Computação Gráfica Conteúdo. Objetivo do Curso Proporcionar o aprendizado de técnicas e conceitos básicos de computação gráfica 2D e 3D, para o desenvolvimento,

Transformações afins• Transformações afins tem a função de modificar a posição dos

pontos no espaço, ou de objetos contidos no espaço.

• Tem a característica de transformar linhas paralelas em linhas paralelas e mapear pontos finitos em pontos finitos.

• O grupo de transformações afins do espaço define a geometria afim, que estuda as razões e proporções entre objetos geométricos.

• Note-se que em geometria afim, paralelismo é um conceito importante, sendo relações entre linhas paralelas uma parte substancial da geometria e os teoremas da geometria afim são idênticos aos da geometria euclidiana.

• Rotação, translação, escalamento, espelhamento e cisalhamento são exemplos de transformações afins detalhados a seguir.

Page 24: Computação Gráfica Conteúdo. Objetivo do Curso Proporcionar o aprendizado de técnicas e conceitos básicos de computação gráfica 2D e 3D, para o desenvolvimento,

Translação de um pontoz

y

x

. (x,y,z)

. (x',y',z')

b

v

v'

x'

y'

z'

=

1 0 0

0 1 0

0 0 1

x

y

z

+

b1

b2

b3

Page 25: Computação Gráfica Conteúdo. Objetivo do Curso Proporcionar o aprendizado de técnicas e conceitos básicos de computação gráfica 2D e 3D, para o desenvolvimento,

Translação

• A translação – alteração da posição dos pontos através da soma do vetor de

deslocamento às suas coordenadas.

É aplicada sobre todos os pontos da figura para a sua translação no espaço.

O exemplo clássico em computação gráfica de aplicação desta transformação é a função pan, disponível em vários sistemas gráficos.

• Em termos de transformação afim, a translação corresponde à soma de um vetor de deslocamento b ao vetor que define o ponto que se deseja deslocar.

Page 26: Computação Gráfica Conteúdo. Objetivo do Curso Proporcionar o aprendizado de técnicas e conceitos básicos de computação gráfica 2D e 3D, para o desenvolvimento,

Mudança de Escala (Scaling)

A Mudança de Escala corresponde à multiplicação das coordenadas de um ponto por valores iguais ou distintos.

É normalmente aplicada sobre todos os pontos de uma figura com o objetivo de ampliar ou reduzir a sua dimensão ou então distorcer a sua forma geométrica.

O uso clássico desta operação em computação gráfica é a função zoom in (ampliação) ou zoom out (redução).

x'

y'

z'

=

ex 0 0

0 ey 0

0 0 ez

x

y

z

Page 27: Computação Gráfica Conteúdo. Objetivo do Curso Proporcionar o aprendizado de técnicas e conceitos básicos de computação gráfica 2D e 3D, para o desenvolvimento,

Rotação

• A rotação é o giro de um determinado ângulo de um ponto em torno de um ponto de referência, sem alteração da distância entre eles.

• Esta operação é aplicada normalmente sobre todos os pontos de uma figura, o que possibilita que ela seja rotacionada sem sofrer deformação.

Page 28: Computação Gráfica Conteúdo. Objetivo do Curso Proporcionar o aprendizado de técnicas e conceitos básicos de computação gráfica 2D e 3D, para o desenvolvimento,

Rotação em torno do eixo zz

y

x

P = (x,y,z)

P' = (x',y',z')

..D

y

xz .

P = (x,y,z)

P' = (x',y',z')..

x D/ cos( )

y D sen( )

y D/ sen( )

)cos(Dx

Page 29: Computação Gráfica Conteúdo. Objetivo do Curso Proporcionar o aprendizado de técnicas e conceitos básicos de computação gráfica 2D e 3D, para o desenvolvimento,

cos( ) cos( ) cos( ) sen( ) sen( )a b b a b a sin a b b a b a( ) cos( ) sen( ) sen( ) cos( )

x x y/ cos( ) sen( )

y x y/ sen( ) cos( )

x'

y'

z'

=

cos ( ) - sen () 0

sen () cos () 0

0 0 1

x

y

z

x D/ cos( ) y D/ sen( )

Page 30: Computação Gráfica Conteúdo. Objetivo do Curso Proporcionar o aprendizado de técnicas e conceitos básicos de computação gráfica 2D e 3D, para o desenvolvimento,

Rotação em torno do eixo xz

y

x

P = (x,y,z)

P' = (x',y',z')..D

z

yx .

P = (x,y,z)

P' = (x',y',z')..

)cos(/ Dy

)(Dsenz

)(/ Dsenz

)cos(Dy

Page 31: Computação Gráfica Conteúdo. Objetivo do Curso Proporcionar o aprendizado de técnicas e conceitos básicos de computação gráfica 2D e 3D, para o desenvolvimento,

)()cos(/ zsenyy

)cos()(/ zysenz

x'

y'

z'

=

0 sen ( ) cos()

0 cos () -sen ()

1 0 0 x

y

z

)cos(/ Dy )(/ Dsenz

Page 32: Computação Gráfica Conteúdo. Objetivo do Curso Proporcionar o aprendizado de técnicas e conceitos básicos de computação gráfica 2D e 3D, para o desenvolvimento,

Rotação em torno do eixo yz

y

x

P = (x,y,z)

P' = (x',y',z')

.

.D

x

zy .

P = (x,y,z)

P' = (x',y',z')..

)(/ Dsenx

)cos(Dz

)cos(/ Dz

)(Dsenx

Page 33: Computação Gráfica Conteúdo. Objetivo do Curso Proporcionar o aprendizado de técnicas e conceitos básicos de computação gráfica 2D e 3D, para o desenvolvimento,

)()cos(/ zsenxx

)cos()(/ zxsenz

x'

y'

z'

=

-sen ( ) 0 cos()

cos () 0 sen ( )

0 1 0

x

y

z

)(/ Dsenx )cos(/ Dz

Page 34: Computação Gráfica Conteúdo. Objetivo do Curso Proporcionar o aprendizado de técnicas e conceitos básicos de computação gráfica 2D e 3D, para o desenvolvimento,

Rotação em torno de um eixo genérico

• A matriz de rotação em torno de um eixo genérico não é complexa, porém trabalhosa em termos de dedução, assim, será apresentado apenas a matriz MGR que permite esta operação.

• Sendo N um vetor unitário de coordenadas (x,y,z) e o ângulo de rotação, tem-se:

MGR

tx c txy sz txz sy

txy sz ty c tyz sx

txz sy tyz sx tz c

2

2

2

Onde:

x,y,z = coordenadas de N t = 1 - cos() s = sin() c = cos()

Page 35: Computação Gráfica Conteúdo. Objetivo do Curso Proporcionar o aprendizado de técnicas e conceitos básicos de computação gráfica 2D e 3D, para o desenvolvimento,

Nn

i

j

k

Q

P*P

S

x, x*

y, y*

O

z, z*

Page 36: Computação Gráfica Conteúdo. Objetivo do Curso Proporcionar o aprendizado de técnicas e conceitos básicos de computação gráfica 2D e 3D, para o desenvolvimento,

Espelhamento• Uma operação bastante conhecida em

computação gráfica é o espelhamento, a qual consiste em rotacionar um objeto em torno de um eixo de tal maneira que os pontos do objeto na posição original e na rotacionada mantenham a mesma distância em relação a um linha de referência, caso bidimensional, ou a um plano de referência, caso tridimensional.

• As figuras mostram o espelhamento de um objeto:

a) em torno do eixo y em relação ao plano xy e

b) em torno do eixo z em relação ao plano xz.

z

y

x

z

y

x

Page 37: Computação Gráfica Conteúdo. Objetivo do Curso Proporcionar o aprendizado de técnicas e conceitos básicos de computação gráfica 2D e 3D, para o desenvolvimento,

Cisalhamento (shear)• Outra transformação afim importante de ser estudada é o cisalhamento (shear), cujo

exemplo clássico para o sistema de coordenadas bidimensional que explica a sua função é o da italização de um caracter.

• Neste caso, há uma variação no valor da coordenada x em função do valor da y, sendo MTS_1 a matriz de transformação correspondente.

• Pode-se associar uma outra transformação a de cisalhamento, como, por exemplo, o escalamento da coordenada y, conforme exemplificado em MTS_2.

• A matriz MTS_3 ilustra o uso desta transformação para o caso tridimensional.

i_1 i_2 i_3

MTS_1 =

1

0 1xsh

MTS_2 =

1

0x

y

she

MTS_3 =

1 0

0 1

0 0 1

x

y

s

s

Page 38: Computação Gráfica Conteúdo. Objetivo do Curso Proporcionar o aprendizado de técnicas e conceitos básicos de computação gráfica 2D e 3D, para o desenvolvimento,

Exemplo de cisalhamento no caso 3D

z

y

x

z

y

x

Page 39: Computação Gráfica Conteúdo. Objetivo do Curso Proporcionar o aprendizado de técnicas e conceitos básicos de computação gráfica 2D e 3D, para o desenvolvimento,

Composição das transformações• Uma importante questão que sempre deve ser considerada com

relação as transformações afins se refere a sua composição. • Neste caso, a ordem em que elas são executadas pode alterar o

resultado final esperado. • Considere-se então duas transformações afins, uma somente de

rotação de 45 em torno do eixo z e outra somente de translação de valor x ao longo do eixo x.

• A aplicação primeiro da rotação e depois da translação tem resultados distintos.

y

x

z

y y

zz

x x

Page 40: Computação Gráfica Conteúdo. Objetivo do Curso Proporcionar o aprendizado de técnicas e conceitos básicos de computação gráfica 2D e 3D, para o desenvolvimento,

• Neste sentido, caso se deseje rotacionar um objeto no espaço em torno de um ponto interno a ele, deve se primeiramente deslocar o centro de rotação (origem dos eixos) para este ponto, proceder a rotação e posteriormente voltar o centro de rotação à sua posição inicial.

• Note-se que isto equivale a deslocar o objeto para o centro de coordenadas.

y

x

z

y

x

z

y

z

x

y

x

z

y

z

x

Page 41: Computação Gráfica Conteúdo. Objetivo do Curso Proporcionar o aprendizado de técnicas e conceitos básicos de computação gráfica 2D e 3D, para o desenvolvimento,

Projeções

Page 42: Computação Gráfica Conteúdo. Objetivo do Curso Proporcionar o aprendizado de técnicas e conceitos básicos de computação gráfica 2D e 3D, para o desenvolvimento,

Projeções Planares

• Dado que a exibição de um objeto 3D em uma tela de computador ou em uma folha de papel exige o mapeamento de um sistema de coordenadas 3D em um 2D, operações de projeção são requeridas. Em geral, entende-se como projeção, o processo de mapear um sistema de coordenadas de dimensão “n” em um de dimensão menor ou igual a “n-1”.

• O objetivo deste curso é conceituar projeções planares (para um plano, 2D), apresentando a sua classificação e formas algébricas de manipulá-las. Com base nestes conceitos, será ilustrado o funcionamento do esquema de transformações em bibliotecas e sistemas gráficos que manipulam primitivas tridimensionais.

Page 43: Computação Gráfica Conteúdo. Objetivo do Curso Proporcionar o aprendizado de técnicas e conceitos básicos de computação gráfica 2D e 3D, para o desenvolvimento,

HISTÓRICO

2150 A.C. - desenho de planta de um prédio da cidade de Lagash na Mesopotâmia.500 AC. - o pintor Agatharchus foi o primeiro a usar perspectivas em larga escala e escreveu um livro sobre “pintura de cenas”, o que inspirou os filósofos Anaxagoras e Demócrito a escrever sobre perspectiva.14 AC - primeira evidência real do uso de desenhos para guiar edificações foi encontrado nos textos de Vitruvius, um arquiteto e engenheiro romano.1300 - formalização destas técnicas surgiu na Renascença. Os pintores Duccio, de “A Última Ceia”, e Giotto empreenderam esforços no sentido de representar a terceira dimensão através da perspectiva. 1400 - Filippo Brunelleschi foi o primeiro artista a desenvolver um sistema matemático para a perspectiva. 1435 - publicação do primeiro tratado sobre perspectiva, Della Pittura, por Leone Battista Alberti. No mesmo período, a técnica da perspectiva continuou a seraperfeiçoada por Piero della Francesca através do texto De Prospettiva Pingendi e por Leonardo da Vinci que pintou a sua versão de “A Última Ceia”.1801 – publicação do livro Geometrie Descriptive, de Gasparad Monge, um desenhista de fortificações militares francesas. Foi o primeiro a descrever de forma organizada o uso de projeções em engenharia, o que lhe valeu o título de “pai da geometria descritiva”.

Page 44: Computação Gráfica Conteúdo. Objetivo do Curso Proporcionar o aprendizado de técnicas e conceitos básicos de computação gráfica 2D e 3D, para o desenvolvimento,

As técnicas de projeções continuaram a ser estudadas e aperfeiçoadas e se popularizaram entre profissionais e estudantes de engenharia, artes e arquitetura.

Com o surgimento da computação gráfica e com a popularização de sistemas e bibliotecas gráficas, o número de interessados nas técnicas de projeções se ampliou acentuadamente.

Geralmente, os usuários de sistemas ou bibliotecas gráficas se deparam com operações relacionadas a posicionamento e especificação de câmeras, ou então, a ajuste de transformações que permitam o correto posicionamento de um objeto em uma cena.

Outro problema nesta mesma linha é o transporte dos objetos criados em um determinado sistema gráfico para outro.

Page 45: Computação Gráfica Conteúdo. Objetivo do Curso Proporcionar o aprendizado de técnicas e conceitos básicos de computação gráfica 2D e 3D, para o desenvolvimento,

Projeções em superfícies planares, cilíndricas e cônicas

Proj.Planar

Proj.Cilindrica

Proj.Cônica

Page 46: Computação Gráfica Conteúdo. Objetivo do Curso Proporcionar o aprendizado de técnicas e conceitos básicos de computação gráfica 2D e 3D, para o desenvolvimento,

Projeções em superfícies planares

Proj. Planares

Paralelas Perspectivas

Ortográficas Oblíquas

V. Lateral

V. Frontal

Planta

Axonométricas

IsométricasDimétricasTrimétricas

Cabinet

Cavalier

Um-Ponto

Dois-Pontos

Três-Pontos

Page 47: Computação Gráfica Conteúdo. Objetivo do Curso Proporcionar o aprendizado de técnicas e conceitos básicos de computação gráfica 2D e 3D, para o desenvolvimento,

Projeções paralelas e perspectivasAs projeções planares paralelas e perspectivas diferem com relação a

distância do plano de projeção ao centro de projeção:

- se a distância é finita, a projeção é perspectiva, e

- se a distância é infinita, a projeção é paralela

A’

B’

A

B

Raios Projetores

C. de Projeçãono Infinito

C. de Projeçãono Finito

A’

B’

A

B

Page 48: Computação Gráfica Conteúdo. Objetivo do Curso Proporcionar o aprendizado de técnicas e conceitos básicos de computação gráfica 2D e 3D, para o desenvolvimento,

Projeções planares paralelas• Projeções planares paralelas são subclassificadas em ortográficas e

oblíquas dependendo da relação entre a direção dos raios projetores e a normal ao plano de projeção. - projeções ortográficas, as direções são as mesmas (raios perpendiculares ao plano de projeção). - projeções oblíquas, são diferentes.

(a) Ortográfica (b) oblíqua

N

N

rr

Page 49: Computação Gráfica Conteúdo. Objetivo do Curso Proporcionar o aprendizado de técnicas e conceitos básicos de computação gráfica 2D e 3D, para o desenvolvimento,

Projeções ortográficas: vistas lateral, frontal e planta

• As projeções ortográficas vista lateral, vista frontal e planta constituem as projeções normalmente utilizadas em desenho técnico.

• Os vetores normais aos planos de projeção coincidem com a direção dos eixos cartesianos, e a direção dos raios de projeção.

• Elas oferecem uma visão parcial do objeto, no entanto, mantém sem alteração as relações de dimensões e ângulos do objeto projetado. Estas projeções são geralmente utilizadas em conjunto, contando também com uma projeção axonométrica ou perspectiva.

VistaLateral

VistaFrontal

Planta

Page 50: Computação Gráfica Conteúdo. Objetivo do Curso Proporcionar o aprendizado de técnicas e conceitos básicos de computação gráfica 2D e 3D, para o desenvolvimento,

Projeções ortográficas axonométricas• As projeções paralelas ortográficas axonométricas tem a direção dos

raios projetores e a normal ao plano de projeção coincidentes, porém distintas da direção dos eixos cartesianos. Permitem a visualização de várias faces paralelas aos planos cartesianos de uma única vez.

Page 51: Computação Gráfica Conteúdo. Objetivo do Curso Proporcionar o aprendizado de técnicas e conceitos básicos de computação gráfica 2D e 3D, para o desenvolvimento,

Projeções ortográficas axonométricas: dimétricas, isométricas e trimétricas

• Projeções axonométricas distorcem os objetos, alterando as relações de ângulos e dimensões de lados dos objetos, no entanto, mantém as relações de paralelismo entre eles.

• A alteração da dimensão dos lados é relacionada com a alteração da dimensão dos versores (vetores unitários) em cada um dos eixos x, y e z, quando projetados no plano.

• Assim, projeções axonométricas se subdividem em: dimétricas, quando dois versores variam a dimensão igualmente

quando projetados no plano; isométricas, quando três versores variam na mesma proporção; e trimétricas, os três versores variam de forma diferenciada.

Page 52: Computação Gráfica Conteúdo. Objetivo do Curso Proporcionar o aprendizado de técnicas e conceitos básicos de computação gráfica 2D e 3D, para o desenvolvimento,

Exemplos de projeções ortográficas axonométricas

x

y

z

x’

y’

x’

y’

Dimétrica Isométrica

Page 53: Computação Gráfica Conteúdo. Objetivo do Curso Proporcionar o aprendizado de técnicas e conceitos básicos de computação gráfica 2D e 3D, para o desenvolvimento,

Projeções paralelas oblíquas• As projeções paralelas oblíquas tem a direção da normal ao plano de

projeção distinta da direção dos raios projetores.

Page 54: Computação Gráfica Conteúdo. Objetivo do Curso Proporcionar o aprendizado de técnicas e conceitos básicos de computação gráfica 2D e 3D, para o desenvolvimento,

Projeções paralelas oblíquas: cavalier e cabinetAs projeções paralelas oblíquas se subdividem em cavalier e cabinet.

Na cabinet há um encolhimento na dimensão do versor perpendicular ao plano de projeção para corrigir a ilusão de que o objeto exibido é maior na direção deste versor.

CavalierCabinet

CavalierCabinet

Page 55: Computação Gráfica Conteúdo. Objetivo do Curso Proporcionar o aprendizado de técnicas e conceitos básicos de computação gráfica 2D e 3D, para o desenvolvimento,

Projeções planares perspectivas

• O efeito visual de uma projeção perspectiva é bastante realista, pois as dimensões de um objeto projetado variam inversamente com relação ao centro de projeção, o que está de acordo com o modo de funcionamento do sistema visual humano.

• Como as projeções axonométricas, elas permitem a visualização conjunta de várias faces normais aos eixos x, y, e z, de um objeto.

• As projeções perspectivas não são úteis para documentar precisamente as formas de um objeto, dado que as dimensões e os ângulos dos seus lados podem sofrer alterações após a projeção.

• Em especial, pode haver perda do paralelismo entre as linhas.

Page 56: Computação Gráfica Conteúdo. Objetivo do Curso Proporcionar o aprendizado de técnicas e conceitos básicos de computação gráfica 2D e 3D, para o desenvolvimento,

Projeções perspectivas: ponto de fuga• Como a projeção perspectiva tem o centro de projeção localizado em

um ponto finito, ocorre uma distorção no objeto projetado que faz com que qualquer conjunto de linhas que sejam paralelas ao plano de projeção convirjam para um mesmo ponto denominado ponto-de-fuga. O surgimento do ponto-de-fuga pode ser melhor compreendido observando-se as figuras.

pXYpf

l_A

l_B

z

CP

pRP

pXY

z

pf

A

B

RP1RP2

CP

l_A

l_B

Page 57: Computação Gráfica Conteúdo. Objetivo do Curso Proporcionar o aprendizado de técnicas e conceitos básicos de computação gráfica 2D e 3D, para o desenvolvimento,

• Na figura à esquerda, um raio projetor parte do centro de projeção e incide sobre um ponto p da linha l_A. Quando p tende ao infinito, o raio projetor vai encontrar este ponto no infinito, o que significa que a linha RP vai ficar paralela a linha l_A, cruzando, assim, o plano x sempre no mesmo ponto pf. Nota-se que um ponto sobre a linha l_B, paralela a linha l_A, vai ser alcançado no infinito de forma similar ao ponto sobre a linha l_A, ou seja, o raio projetor corta o eixo x no mesmo ponto pf.

• Quando o raio projetor incide sobre uma linha paralela ao eixo de projeção, não tem ponto-de-fuga. A explicação para este caso é simples. Considere o ponto A da figura à direita que está sobre a linha l_A, paralela ao plano xy. Assim, quando A tender a infinito, o raio projetor RP1 vai encontrá-lo no infinito e, neste caso, estará paralelo ao plano xy, o que evita o surgimento do ponto-de-fuga. Ao contrário, o raio projetor RP2 que incide sobre o ponto B sobre a linha l_B, perpendicular ao plano xy, vai tender à origem quando B tender a infinito. Neste caso, a projeção perspectiva do retângulo vai apresentar apenas um ponto-de-fuga.

Page 58: Computação Gráfica Conteúdo. Objetivo do Curso Proporcionar o aprendizado de técnicas e conceitos básicos de computação gráfica 2D e 3D, para o desenvolvimento,

• Para que a projeção deste retângulo apresente mais de um ponto-de-fuga basta rotacioná-lo, o que faz com que as suas linhas paralelas fiquem inclinadas em relação ao plano xy.

pXY

z

pf_1pf_2

AB

CP

Page 59: Computação Gráfica Conteúdo. Objetivo do Curso Proporcionar o aprendizado de técnicas e conceitos básicos de computação gráfica 2D e 3D, para o desenvolvimento,

• Para melhor se compreender a relação entre os pontos-de-fuga e o centro de projeção, a figura abaixo apresenta a forma de se obter a projeção perspectiva de um paralelepípedo com lados paralelos ao eixo x e centro de projeção sobre o eixo z.

• O objeto é projetado do sistema de coordenadas 3D xyz no sistema de coordenadas 2D x’y’.

• Dado que a dimensão dos lados AB, CD, EF e GH não são visíveis, a dimensão dos lados A’B’, C’D’, E’F’ e G’H’ foram definidas arbitrariamente.

y

CP

PF_1 PF_2

z

A,B

C,D

E,F

G,H

A’

B’G’

H’

E’

F’

C’

x’

y’

Page 60: Computação Gráfica Conteúdo. Objetivo do Curso Proporcionar o aprendizado de técnicas e conceitos básicos de computação gráfica 2D e 3D, para o desenvolvimento,

Tipos de projeções perspectivas

• Nota-se que cada conjunto de linhas paralelas no espaço pode ter associado um ponto-de-fuga. Assim, com o objetivo de definir um critério de classificação, somente as linhas paralelas aos eixos são consideradas.

• Em função do número de pontos-de-fuga associados às linhas paralelas aos três eixos cartesianos, as projeções perspetivas se subdividem em projeções de um ponto-de-fuga, de dois pontos-de-fuga e de três pontos-de-fuga.

• Projeções perspectivas de três pontos-de-fuga são usadas menos frequentemente, dado que elas acrescentam pouco realismo ao já alcançado pelas projeções de dois pontos-de-fuga.

Page 61: Computação Gráfica Conteúdo. Objetivo do Curso Proporcionar o aprendizado de técnicas e conceitos básicos de computação gráfica 2D e 3D, para o desenvolvimento,

Projeção perspectiva com um ponto de fuga

z

x

y y

x

Page 62: Computação Gráfica Conteúdo. Objetivo do Curso Proporcionar o aprendizado de técnicas e conceitos básicos de computação gráfica 2D e 3D, para o desenvolvimento,

Projeção perspectiva com dois pontos de fuga

PF-1 PF-2

Page 63: Computação Gráfica Conteúdo. Objetivo do Curso Proporcionar o aprendizado de técnicas e conceitos básicos de computação gráfica 2D e 3D, para o desenvolvimento,

Projeção perspectiva com três pontos de fuga

PF-1

PF-2

PF-3

Page 64: Computação Gráfica Conteúdo. Objetivo do Curso Proporcionar o aprendizado de técnicas e conceitos básicos de computação gráfica 2D e 3D, para o desenvolvimento,

Coordenadas Homogêneas

Uma transformação afim segue a forma:(eq. 3.1)

Esta formulação é, em termos de cálculo, bastante inconveniente para se determinar as coordenadas do vetor final, após uma série de transformações de um vetor inicial. A formulação da equação 3.4 é muito mais conveniente porque permite que o cálculo de múltiplas transformações seja realizado calculando-se a matriz de transformação resultante e aplicando-se esta matriz sobre o vetor (eq. 3.5).

(eq. 3.2)

(eq. 3.3)

(eq. 3.4)

(eq. 3.5)

v M v b

1 1 1 v M v b

2 2 1 2 1 2 v M M v M b b

v M v

v M M M vn n 1 1...

Page 65: Computação Gráfica Conteúdo. Objetivo do Curso Proporcionar o aprendizado de técnicas e conceitos básicos de computação gráfica 2D e 3D, para o desenvolvimento,

A solução usual para este problema é a alteração do espaço de coordenadas de dimensão 3 para 4, de forma controlada, de maneira que a dimensão da matriz M se altere de 3x3 para 3x4 e, assim, ela possa incorporar a transformação de translação (eq. 3.6).

Como é inconveniente operar uma matriz não quadrada por não permitir, por exemplo, o cálculo da inversa, a matriz MT pode ser novamente

modificada pela inserção de mais uma linha que não altere o resultado final (eq. 3.7).

(eq. 3.6) (eq. 3.7)

MT =

x

y

z

l

m

n

x

y

z

x l

y m

z n

1

1

0

0

0

1

0

0

0

11 1

1 0 0

0 1 0

0 0 1

0 0 0 1

l

m

n

Page 66: Computação Gráfica Conteúdo. Objetivo do Curso Proporcionar o aprendizado de técnicas e conceitos básicos de computação gráfica 2D e 3D, para o desenvolvimento,

Considerando-se uma matriz M genérica de dimensão 4x4, quando ela é aplicada sobre o vetor , em coordenadas homogêneas, gera o vetor

Para se calcular o vetor desejado, normaliza-se o vetor .

Assim, supondo-se , tem-se .

v

v *

v *

H 0 v

v M

x

y

z

X

Y

Z

H

*

1

v

X H

Y H

Z H

/

/

/

1

Page 67: Computação Gráfica Conteúdo. Objetivo do Curso Proporcionar o aprendizado de técnicas e conceitos básicos de computação gráfica 2D e 3D, para o desenvolvimento,

Neste contexto, uma propriedade interessante e bastante útil das coordenadas homogêneas se refere a representação de um ponto no infinito.

Considere o ponto sobre o eixo x indicado pelo vetor e :

quando ,

v *

v

v

A

H

*

0

0

v

A H/

0

0

1

H 0 A H/

Page 68: Computação Gráfica Conteúdo. Objetivo do Curso Proporcionar o aprendizado de técnicas e conceitos básicos de computação gráfica 2D e 3D, para o desenvolvimento,

A aplicação de uma matriz de transformação em coordenadas homogêneas resulta em um ponto no infinito quando o seu vetor posicional for do tipo descrito a seguir.

Os pontos no infinito dos eixos x,y e z, seriam representados respectivamente por:

Estes vetores infinitos serão, em especial, usados na determinação de pontos-de-fuga no caso de projeções planares perspectivas.

v *

v

A

B

C*

0

*x

1

0

0

0

*y

0

1

0

0

*z

0

0

1

0

Page 69: Computação Gráfica Conteúdo. Objetivo do Curso Proporcionar o aprendizado de técnicas e conceitos básicos de computação gráfica 2D e 3D, para o desenvolvimento,

A matriz de transformação M de dimensão 4x4, pode ser particionada em 4 quatro partes:

onde

1x3: produz projeção perspectiva

1x1: produz escalamento global

3x3: produz uma transformação afim do tipo rotação e mudança de escala

3x1: produz translação

Mx x

x x

3 3 3 1

1 3 1 1

Page 70: Computação Gráfica Conteúdo. Objetivo do Curso Proporcionar o aprendizado de técnicas e conceitos básicos de computação gráfica 2D e 3D, para o desenvolvimento,

Álgebra das projeções planares paralelas

Para que as projeções possam ser geradas em computador é necessário se definir matrizes de transformações que, aplicadas ao conjunto de pontos de um objeto tridimensional, permita a obtenção da figura projetada do objeto.

Assim, a seguir, para cada tipo de projeção serão determinadas as matrizes de transformação.

Este capítulo cobre a álgebra das projeções planares paralelas.

Page 71: Computação Gráfica Conteúdo. Objetivo do Curso Proporcionar o aprendizado de técnicas e conceitos básicos de computação gráfica 2D e 3D, para o desenvolvimento,

Álgebra das Projeções Planares Paralelas

Ortográficas

Page 72: Computação Gráfica Conteúdo. Objetivo do Curso Proporcionar o aprendizado de técnicas e conceitos básicos de computação gráfica 2D e 3D, para o desenvolvimento,

Álgebra das Projeções Paralelas Ortográficas: vista lateral, frontal e planta

As projeções planares ortográficas vista lateral, frontal e planta são obtidas através de transformações ortogonais, de acordo com as regras abaixo, e projeção no plano xy através de raios projetores perpendiculares a este plano.

vista lateral- rotação de -90 no eixo x, eliminação da coordenada z

vista frontal- rotação de -90 no eixo z, rotação de –90 no eixo x, e eliminação da coordenada z

vista superior (planta)- rotação de -90 no eixo z, translação no eixo y no maior valor na coordenada x, e eliminação da coordenada z .

Page 73: Computação Gráfica Conteúdo. Objetivo do Curso Proporcionar o aprendizado de técnicas e conceitos básicos de computação gráfica 2D e 3D, para o desenvolvimento,

A seguir é detalhada a geração da vista lateral. Assim, partindo-se da equação de rotação em torno do eixo x,

determina-se a matriz de projeção da vista lateral Mpvl

sendo = -90 e considerando-se a projeção no plano x’y’, coincidente com o plano xy.

XR

1 0 0 0

0 0

0 0

0 0 0 1

cos( ) sen( )

sen( ) cos( )

1000

0000

0100

0001

MPVL

Page 74: Computação Gráfica Conteúdo. Objetivo do Curso Proporcionar o aprendizado de técnicas e conceitos básicos de computação gráfica 2D e 3D, para o desenvolvimento,

Álgebra das projeções planares paralelas ortográficas axonométricas

As projeções vista lateral, frontal e planta permitem uma observação parcial do objeto projetado, em especial, caso se observe apenas uma delas, não é possível se conceber corretamente a forma do objeto.

Isso acontece principalmente quando as faces do objeto são posicionadas paralelamente aos planos cartesianos xy, yz e xz.

De forma a solucionar este problema, é usual a folha de projeto de um objeto conter as projeções vista lateral, frontal e planta, mais uma projeção axonométrica, a qual permite que se tenha uma visão mais integrada do objeto.

Page 75: Computação Gráfica Conteúdo. Objetivo do Curso Proporcionar o aprendizado de técnicas e conceitos básicos de computação gráfica 2D e 3D, para o desenvolvimento,

As projeções paralelas ortográficas axonométricas tem a direção de projeção e a normal ao plano de projeção não coincidentes com a direção de um dos eixos principais. Isto é equivalente a se rotacionar adequadamente o objeto e considerar a direção de projeção e a normal ao plano de projeção coincidentes com a direção de um dos eixos principais.Nas projeções axonométricas há uma alteração da dimensão das faces do objeto quando projetadas sobre o plano. O tipo de rotação do objeto e as considerações sobre a alteração das dimensões permitem que se determine as matrizes de projeção. Neste sentido, o cálculo destas matrizes vai partir de uma rotação do objeto em torno do eixo y e posteriormente do eixo x.

X YR R

1 0 0 0

0 0

0 0

0 0 0 1

0 0

0 1 0 0

0 0

0 0 0 1

cos( ) sen( )

sen( ) cos( )

cos( ) sen( )

sen( ) cos( )

Page 76: Computação Gráfica Conteúdo. Objetivo do Curso Proporcionar o aprendizado de técnicas e conceitos básicos de computação gráfica 2D e 3D, para o desenvolvimento,

Aplicando-se esta matriz sobre os vetores unitários (1,0,0), (0,1,0) e (0,0,1), versores nos eixos x, y, e z respectivamente, tem-se:

X YR R

cos( ) sen( )

sen( )sen( ) cos( ) cos( ) sen( )

sen( )cos( ) sen( ) cos( )cos( )

0 0

0

0

0 0 0 1

X

X

X

XX Yu

x

y

zR R

1

1

0

0

1 1

cos( )

sen( )sen( )

sen( )cos( )

Y

Y

Y

YX Yu

x

y

zR R

1

0

1

0

1

0

1

cos( )

sen( )

Z

Z

Z

ZX Yu

x

y

zR R

1

0

0

1

1 1

sen( )

cos( ) sen( )

cos( ) cos( )

Page 77: Computação Gráfica Conteúdo. Objetivo do Curso Proporcionar o aprendizado de técnicas e conceitos básicos de computação gráfica 2D e 3D, para o desenvolvimento,

Considerando-se apenas as componentes x e y dos versores rotacionados, tem-se as projeções destes vetores sobre os plano xy. De forma a se estipular condições para o encolhimento da dimensão destes vetores, são calculados os seus módulos, como ilustrado a seguir. Assim, para o caso da projeção do versor sobre o eixo x tem-se:

Similarmente, para os versores sobre os eixos y e z tem-se:

XYxu xx xy 2 2

XYxu cos ( ) (sen ( )sen ( ))2 2 2

XYyu cos( )

XYzu (sen ( ) cos ( ) sen ( )2 2 2

Page 78: Computação Gráfica Conteúdo. Objetivo do Curso Proporcionar o aprendizado de técnicas e conceitos básicos de computação gráfica 2D e 3D, para o desenvolvimento,

Considerando-se que no momento da projeção de um objeto 3D sobre o plano xy, ocorra um encolhimento por igual das coordenadas x e y dos pontos deste objetos, tem-se:

Como da trigonometria tem-se a equação:

aplicando-se esta relação, tem-se:

e finalmente,

XYx XYyu u

cos ( ) sen ( )sen ( ) cos ( )2 2 2 2

cos ( ) sen ( )2 2 1

sen ( ) sen ( ) sen ( ) sen ( )2 2 2 2

sen ( ) sen ( ) / ( sen ( ))2 2 21

Page 79: Computação Gráfica Conteúdo. Objetivo do Curso Proporcionar o aprendizado de técnicas e conceitos básicos de computação gráfica 2D e 3D, para o desenvolvimento,

Uma maneira simples de se calcular os ângulos e é considerar um valor fixo para o encolhimento no eixo z. Assim, inicialmente será suposto que a dimensão do versor projetado será 1/2, ou seja, encolherá pela metade. Logo, da equação

tem-se que

Aplicando-se a equação anteriormente obtida

e rearranjando, tem-se:

sen ( ) cos ( )sen ( ) /2 2 2 21 2

8 9 1 04 2sen ( ) sen ( )

XYzu (sen ( ) cos ( ) sen ( )2 2 2

sen ( ) sen ( ) / ( sen ( ))2 2 21

Page 80: Computação Gráfica Conteúdo. Objetivo do Curso Proporcionar o aprendizado de técnicas e conceitos básicos de computação gráfica 2D e 3D, para o desenvolvimento,

Fazendo-se , tem-se:

Resolvendo-se essa equação, tem-se x=1/8 e x=1. A segunda raiz é inválida porque origina valor zero no denominador da equação anteriormente obtida

Usando-se a primeira raiz tem-se:

e

xsen )(2

8 9 1 02x x

sen ( ) /2 1 8 sen ( ) /2 1 7

20 705.

22 208.

sen ( ) sen ( ) / ( sen ( ))2 2 21

Page 81: Computação Gráfica Conteúdo. Objetivo do Curso Proporcionar o aprendizado de técnicas e conceitos básicos de computação gráfica 2D e 3D, para o desenvolvimento,

Desta maneira aplicando-se os valores obtidos, tem-se a seguinte matriz:

que zerando os valores da coordenada z, tem-se a matriz de projeção axonométrica dimétrica:

X YR R

0 925820 0 0 377964 0

0133631 0 935414 0 327321 0

0 353553 0 353553 0 866025 0

0 0 0 1

. . .

. . .

. . .

. . .

DMP

0 925820 0 0 377964 0

0133631 0 935414 0 327321 0

0 0 0 0

0 0 0 1

. . .

. . .

. . .

. . .

Page 82: Computação Gráfica Conteúdo. Objetivo do Curso Proporcionar o aprendizado de técnicas e conceitos básicos de computação gráfica 2D e 3D, para o desenvolvimento,

A projeção isométrica permite o encolhimento por igual de todas as coordenadas. Logo:

Isso significa que , além da equação

resultante de

tem-se a seguinte equação:

resultante de

o que resulta em:

e ,

Portanto e

XYx XYy XYzu u u

sen ( ) cos ( ) sen ( ) cos ( )2 2 2 2

Projeção axonométrica isométrica

sen ( ) sen ( ) / ( sen ( ))2 2 21

uu yxXYXY

uu yzXYXY

sen ( ) ( sen ( )) / ( sen ( ))2 2 21 2 1

sen ( ) sen ( )2 21 2 sen ( ) /2 1 3

sen( ) / sen( ) / 1 3 1 2 35 26429.

450.

Page 83: Computação Gráfica Conteúdo. Objetivo do Curso Proporcionar o aprendizado de técnicas e conceitos básicos de computação gráfica 2D e 3D, para o desenvolvimento,

Substituindo os valores, tem-se a matriz

que permite a projeção isométrica, após se zerar a coordenada “z”:

X YR R

0 707107 0 0 707107 0

0 408248 0 816597 0 408248 0

0 577353 0 577345 0 577353 0

0 0 0 1

. . .

. . .

. . .

. . .

IMP

0 707107 0 0 707107 0

0 408248 0816597 0 408248 0

0 0 0 0

0 0 0 1

. . .

. . .

. . .

. . .

Page 84: Computação Gráfica Conteúdo. Objetivo do Curso Proporcionar o aprendizado de técnicas e conceitos básicos de computação gráfica 2D e 3D, para o desenvolvimento,

Um fato interessante advém da análise do ângulo que o versor no eixo x faz com o eixo x’, quando projetado no plano x’y’ .Tem-se:

Este resultado é bem conhecido de desenhistas, pois é com um esquadro de 30 e 60 que eles desenham a projeção de um objeto em uma folha de projeto.

Xu

cos( )

sen( )sen( )

tan( ) (sen( )sen( )) / cos( )

tan( ) ( / / ) / / / 1 2 1 3 1 2 3 3

Uma outra consideração importante sobre projeções isométricas se refere ao fato que:

ou

ou

Logo, a projeção isométrica pode ser estruturada de outras formas.

sen ( ) /2 1 3 3526. 144 74.

2/1)(2 sen 00.45 135 00.

Page 85: Computação Gráfica Conteúdo. Objetivo do Curso Proporcionar o aprendizado de técnicas e conceitos básicos de computação gráfica 2D e 3D, para o desenvolvimento,

I IP M

A B C D E F G H

1 1 1 1 0 0 0 0

0 1 1 2 0 0 1 1 2 0

0 0 1 1 0 0 1 1

1 1 1 1 1 1 1 1

/ /

Exemplo

A seguir é esboçado um exemplo de obtenção de uma projeção Axonométrica de um objeto, cujos vértices estão explicitados através da matriz IP

Page 86: Computação Gráfica Conteúdo. Objetivo do Curso Proporcionar o aprendizado de técnicas e conceitos básicos de computação gráfica 2D e 3D, para o desenvolvimento,

Álgebra das Projeções Planares Paralelas Oblíquas

Page 87: Computação Gráfica Conteúdo. Objetivo do Curso Proporcionar o aprendizado de técnicas e conceitos básicos de computação gráfica 2D e 3D, para o desenvolvimento,

• As projeções paralelas oblíquas tem a direção do plano de projeção distinta da direção dos raios projetores.

• As projeções paralelas obliquas se subdividem em cavalier e cabinet, sendo que na projeção cabinet há uma distorção na dimensão do versor perpendicular ao plano de projeção, em geral, um encurtamento de 1/3 ou de 1/2.

• Além disto, em ambos os casos, o ângulo () que este versor forma com o eixo x pode ser de 30 ou 45.

Page 88: Computação Gráfica Conteúdo. Objetivo do Curso Proporcionar o aprendizado de técnicas e conceitos básicos de computação gráfica 2D e 3D, para o desenvolvimento,

Ângulo formado pela linha P1-P1’ com o plano xy - determina o grau de encurtamento ou de dilatação da dimensão do versor ( =45.0 não há alteração de dimensão e se =60 há um encurtamento pela metade ). Ângulo formado pela projeção da linha P1-P1’ com o eixo x - não tem influência sobre o tamanho do versor e o seu valor é arbitrário.

P z P d d1 0 0 11 ( , , ) ( cos( ), sen( ))

P z P z z d z z d2 0 0 22 2 1 2 1 ( , , ) (( / ) * )cos( ),(( / ) * )sen( ))

Page 89: Computação Gráfica Conteúdo. Objetivo do Curso Proporcionar o aprendizado de técnicas e conceitos básicos de computação gráfica 2D e 3D, para o desenvolvimento,

A generalização da formulação para qualquer ponto pode também ser feita facilmente. Assim, supondo-se z1 igual a 1 e z2 igual a z, tem-se:

P b z P z d b z d2 0 2 ( , , ) ( * cos( ), ( * )sen( )) P a z P a z d z d3 0 3 ( , , ) ( ( * )cos( ),( * )sen( ))

d

Page 90: Computação Gráfica Conteúdo. Objetivo do Curso Proporcionar o aprendizado de técnicas e conceitos básicos de computação gráfica 2D e 3D, para o desenvolvimento,

Em representação matricial:

Para exemplificar a aplicação da matriz de projeção oblíqua, seja d=1, sem alteração da dimensão do versor, o que significa (=45.0), e =45.0, o que define uma matriz de projeção obliqua cavalier.

x

y

z

d

d

x

y

z

x z d

y z d

1

1 0 0

0 1 0

0 0 0 0

0 0 0 1 1

0

1

cos( )

sen( )

(( * )cos( ))

(( * )sen( ))

OM

1 0 2 2 0

0 1 2 2 0

0 0 0 0

0 0 0 1

/

/

Page 91: Computação Gráfica Conteúdo. Objetivo do Curso Proporcionar o aprendizado de técnicas e conceitos básicos de computação gráfica 2D e 3D, para o desenvolvimento,

Exemplo:OM

1 0 2 2 0

0 1 2 2 0

0 0 0 0

0 0 0 1

/

/

X

Y

Z

A

B

C

D

F

EG

HO OP M

A B C D E F G H

1 1 1 1 0 0 0 0

0 1 1 2 0 0 1 1 2 0

0 0 1 1 0 0 1 1

1 1 1 1 1 1 1 1

/ /

OP

A B C D E F G H

1 1 2 2 2 2 2 2 0 0 2 2 2 2

0 1 1 2 2 2 2 0 1 1 2 2 2 2

0 0 0 0 0 0 0 0

1 1 1 1 1 1 1 1

( ) / ( ) / / /

( ) / / ( ) / /

A

D

CGF

E

HB

X'

Y'

Page 92: Computação Gráfica Conteúdo. Objetivo do Curso Proporcionar o aprendizado de técnicas e conceitos básicos de computação gráfica 2D e 3D, para o desenvolvimento,

Álgebra das Projeções Planares Perspectivas

Page 93: Computação Gráfica Conteúdo. Objetivo do Curso Proporcionar o aprendizado de técnicas e conceitos básicos de computação gráfica 2D e 3D, para o desenvolvimento,

O ponto P (x,y,z) é projetado no ponto P’ (x’,y’,0), contido no plano xy, a partir de um centro de projeção localizado no ponto C (0,0,k).

Aplicando-se a semelhança de triângulos e considerando-se que a coordenada z tem valor negativo obtém-se:

Z

X

Y

x'

y'x

y

z

CP

k

P

P’

x k x z k x x z k/ / ( ) / (( / ) )1

y k y z k y y z k/ / ( ) / (( / ) )1

X

Y

Z

H k

x

y

z

x

y

z

z k

1 0 0 0

0 1 0 0

0 0 1 0

0 0 1 1 1 1/ ( / )

x

y

z

X H

Y H

Z H

x z k

y z k

z z k

1 1

1

1

1

1

/

/

/

/ (( / ) )

/ (( / ) )

/ (( / ) )

Page 94: Computação Gráfica Conteúdo. Objetivo do Curso Proporcionar o aprendizado de técnicas e conceitos básicos de computação gráfica 2D e 3D, para o desenvolvimento,

• Quando se adota o plano xy como o plano de projeção, desconsidera-se o valor de z’.

• Nota-se que nesta equação se , então e , o que origina uma projeção paralela, com raios projetores perpendiculares ao plano de projeção xy.

• Considerando-se x = at, y = bt e z = -ct, com a, b, e c maiores que zero:

e se tem-se:

O ponto (ka/c, kb/c, -k) constitui um ponto-de-fuga, dado que ele é um ponto finito para o qual converge a projeção de uma linha infinita. Dependendo do valor de a, b e c, dado k fixo, infinitos pontos-de-fuga podem ser determinados.

x

y

z

at ct k

bt ct k

ct ct k

1

1

1

1

1

/ (( / ) )

/ (( / ) )

/ (( / ) )

x

y

z

X H

Y H

Z H

x z k

y z k

z z k

1 1

1

1

1

1

/

/

/

/ (( / ) )

/ (( / ) )

/ (( / ) )

k x x y y

x

y

z

ka c

kb c

k

1 1

/

/t

Page 95: Computação Gráfica Conteúdo. Objetivo do Curso Proporcionar o aprendizado de técnicas e conceitos básicos de computação gráfica 2D e 3D, para o desenvolvimento,

Em termos de classificação da projeção perspectiva interessa apenas os pontos-de-fuga associados às linhas paralelas aos eixos cartesianos. Assim, considere-se: , e que definem, respectivamente, linhas paralelas aos eixos x, y e z.

cujas projeções são obtidas por:

e quando resulta em:

v

at

b

cv

a

bt

cv

a

b

ct1 2 3

1 1 1

, ,

v1

v2

v3

t

v

at c k

b c k

c c kv

a c k

bt c k

c c kv

a ct k

b ct k

ct ct k1 2 3

1

1

1

1

1

1

1

1

1

1

1

1

/ (( / ) )

/ (( / ) )

/ (( / ) ),

/ (( / ) )

/ (( / ) )

/ (( / ) ),

/ (( / ) )

/ (( / ) )

/ (( / ) )

vB

Cv

A

Cv

k11

12

2

23

1 1

0

0

1

Page 96: Computação Gráfica Conteúdo. Objetivo do Curso Proporcionar o aprendizado de técnicas e conceitos básicos de computação gráfica 2D e 3D, para o desenvolvimento,

• Mesmo sendo B1, C1, A2 e C2 constantes finitas, e resultam em pontos que no espaço tendem ao infinito, ou seja, não há pontos-de-fuga associados às linhas paralelas aos eixos x e y.

• Este resultado é esperado, pois e definem linhas perpendiculares ao eixo z que contém o centro-de-projeção.

• A transformação perspectiva de resulta em um ponto finito no espaço, ou seja, há ponto-de-fuga.

vB

Cv

A

Cv

k11

12

2

23

1 1

0

0

1

v1

v2

v1

v2

v3

x

y

z

a

b

c v1

v2

v3

Page 97: Computação Gráfica Conteúdo. Objetivo do Curso Proporcionar o aprendizado de técnicas e conceitos básicos de computação gráfica 2D e 3D, para o desenvolvimento,

• Os pontos A’ e B’ são as projeções no plano xy dos pontos AB da linha A-B perpendicular ao plano de projeção.

• Nota-se que considerando a coordenada z, os pontos A* e B* mostram como a transformação perspectiva força a convergência dos pontos transformados para o ponto-de-fuga.

• Para t=0, resulta no ponto PI (a, b, 0), que é o ponto que a linha AB estendida intercepta o plano.

• Os pontos A* e B* estão na linha PI-PF e, assim, quando B, B*PF e B’(0,0), o que faz com que todos os pontos projetados no plano estejam na linha limitada pelos pontos (a,b) e (0,0).

z

y

xk

-k

PI

B*

A*

B’

A’

A

B

PF

Page 98: Computação Gráfica Conteúdo. Objetivo do Curso Proporcionar o aprendizado de técnicas e conceitos básicos de computação gráfica 2D e 3D, para o desenvolvimento,

Nota-se que estes mesmos resultados são obtidos quando se aplica a matriz de transformação perspectiva sobre pontos infinitos:

Aplicando-se as equações:

resulta em:

X

Y

Z

H k

x

y

z

x

y

z

z k

1 0 0 0

0 1 0 0

0 0 1 0

0 0 1 1 1 1/ ( / )

v v v1 2 3

1

0

0

0

0

1

0

0

0

0

1

0

, ,

v v vk1 2 3

1

0

0

0

0

1

0

0

0

0

1

, ,

x

y

z

X H

Y H

Z H

x z k

y z k

z z k

1 1

1

1

1

1

/

/

/

/ (( / ) )

/ (( / ) )

/ (( / ) )

Page 99: Computação Gráfica Conteúdo. Objetivo do Curso Proporcionar o aprendizado de técnicas e conceitos básicos de computação gráfica 2D e 3D, para o desenvolvimento,

• A certificação do número de pontos-de-fuga das matrizes é obtida através da aplicação dos pontos infinitos em coordenadas homogêneas.

• Assim, inicialmente, utilizando-se a matriz MTPxy e os pontos definidos pelos vetores infinitos, tem-se:

• Como foram gerados dois pontos-de-fuga, a matriz MTPxy é uma matriz de transformação perspectiva de dois pontos-de-fuga.

• Similarmente, aplicando-se a matriz MTPxyz sobre os pontos no infinitos tem-se:

• Logo, a matriz MTPxyz é uma matriz de transformação perspectiva de três pontos-de-fuga.

v

r

vs

v1 2 3

0

0

1

0

0

1

0

0

1

0

, ,

v

r

vs

vk1 2 3

0

0

1

0

0

1

0

0

1

, ,

Page 100: Computação Gráfica Conteúdo. Objetivo do Curso Proporcionar o aprendizado de técnicas e conceitos básicos de computação gráfica 2D e 3D, para o desenvolvimento,

• O objetivo primordial em se utilizar uma projeção perspectiva é a obtenção de uma visão realística de um objeto.

• A simples aplicação da projeção perspectiva não garante este objetivo. • Por exemplo, a figura abaixo mostra o resultado de uma projeção

perspectiva com pontos-de-fuga (3,0,0) e (0,3,0). • Neste caso, a qualidade visual desta projeção deixa muito a desejar.

z

x

y

x’

y’

Page 101: Computação Gráfica Conteúdo. Objetivo do Curso Proporcionar o aprendizado de técnicas e conceitos básicos de computação gráfica 2D e 3D, para o desenvolvimento,

• Uma maneira de resolver este problema é utilizar a projeção perspectiva associada às transformações de mudança de escala e rotação.

• A figura abaixo mostra uma nova visão do objeto quando ele é rotacionado em torno dos eixos x e y e posteriormente projetado através de uma matriz de projeção perspectiva de dois pontos-de-fuga.

• Neste caso, é possível se ter uma visão completa do objeto e dos pontos-de-fuga.

• Nota-se, em especial, como as linhas paralelas convergem para o mesmo ponto-de-fuga após a projeção.

PF-1 PF-2

Page 102: Computação Gráfica Conteúdo. Objetivo do Curso Proporcionar o aprendizado de técnicas e conceitos básicos de computação gráfica 2D e 3D, para o desenvolvimento,

• Em termos de computação gráfica, o foco de interesse é a projeção de um ponto no espaço sobre o plano da tela.

• Neste sentido, para ilustrar uma forma mais intuitiva de se obter as equações anteriores, será deduzido a matriz de projeção perspectiva a partir da consideração de que a tela do computador está sobre o plano xy e que o centro de projeção (observador) está fora deste plano e em alguma parte positiva do eixo z.

CP

P2

P1

x

y

z

Page 103: Computação Gráfica Conteúdo. Objetivo do Curso Proporcionar o aprendizado de técnicas e conceitos básicos de computação gráfica 2D e 3D, para o desenvolvimento,

Supondo-se conhecido P1 e CP, pode-se escrever a equação de reta que passa por estes dois pontos:

Logo, o valor de u para P2, com coordenadas (x2,y2,0), é:

Portanto,

e tem-se a matriz:

x x x x uc c ( )1y y y y uc c ( )1

z z z z uc c ( )1

CP

P2

P1

x

y

z

u z z zc c / ( )1

x x z x x z zc c c c2 1 1 ( ) / ( )y y z y y z zc c c c2 1 1 ( ) / ( )

MP

z x

z y

z

c c

c c

c

0 0

0 0

0 0 0 0

0 0 1

Page 104: Computação Gráfica Conteúdo. Objetivo do Curso Proporcionar o aprendizado de técnicas e conceitos básicos de computação gráfica 2D e 3D, para o desenvolvimento,

• Dividindo-se todos os elementos da matriz MP por um mesmo valor não se altera o resultado da sua aplicação sobre um vetor em coordenadas homogêneas. Assim, dividindo-se todos os elementos por 1/zc tem-se:

MP

z x

z y

z

c c

c c

c

0 0

0 0

0 0 0 0

0 0 1

MP

x z

y z

z

c c

c c

c

1 0 0

0 1 0

0 0 0 0

0 0 1 1

/

/

/

Page 105: Computação Gráfica Conteúdo. Objetivo do Curso Proporcionar o aprendizado de técnicas e conceitos básicos de computação gráfica 2D e 3D, para o desenvolvimento,

• Considerando-se xc e yc iguais a zero na MP , tem-se:

• que é a matriz de transformação perspectiva MTPz, deduzida anteriormente, no caso do centro de projeção estar no ponto (0,0,zc).

MP

x z

y z

z

c c

c c

c

1 0 0

0 1 0

0 0 0 0

0 0 1 1

/

/

/

MP

zc

1 0 0 0

0 1 0 0

0 0 0 0

0 0 1 1/

Page 106: Computação Gráfica Conteúdo. Objetivo do Curso Proporcionar o aprendizado de técnicas e conceitos básicos de computação gráfica 2D e 3D, para o desenvolvimento,

A matriz MP gera apenas um ponto-de-fuga. Para a geração de mais pontos-de-fuga pode-se associar MP com matrizes de rotação.

Nota-se que, caso se rotacione um objeto é possível obter um número maior de pontos-de-fuga. Assim, fazendo-se a multiplicação da matriz MP pela matriz RxRy

tem-se a equação:

MPR

xc zc xc zc xc zc

yc zc yc zc yc zc

zc zc zc

cos( ) ( / ) sen( ) cos( ) ( / ) sen( ) sen( ) ( / ) cos( ) cos( )

sen( ) sen( ) ( / ) sen( ) cos( ) cos( ) ( / ) sen( ) cos( ) sen( ) ( / ) cos( ) cos( )

( / ) sen( ) cos( ) ( / ) sen( ) ( / ) cos( ) cos( )

0

0

0 0 0 0

1 1 1 1

X YR R

1 0 0 0

0 0

0 0

0 0 0 1

0 0

0 1 0 0

0 0

0 0 0 1

cos( ) sen( )

sen( ) cos( )

cos( ) sen( )

sen( ) cos( )

X YR R

cos( ) sen( )

sen( )sen( ) cos( ) cos( )sen( )

sen( )cos( ) sen( ) cos( )cos( )

0 0

0

0

0 0 0 1

Page 107: Computação Gráfica Conteúdo. Objetivo do Curso Proporcionar o aprendizado de técnicas e conceitos básicos de computação gráfica 2D e 3D, para o desenvolvimento,

Supondo-se zc, sen(), sen(), cos(), cos() diferentes de zero, deriva-se os seguintes pontos-de-fuga:

Assim, utilizando-se a matriz MPR tem-se o controle simultâneo do centro de projeção e dos pontos-de-fuga. Esta matriz pode ser modificada para incorporar rotações no eixo z.

PFxx z

y z

c c

c c

(cos( ) / (sen( ) cos( )))

(sen( ) / cos( ))

PFyx

y z

c

c c

(cos( ) / sen( ))

PFzx z

y z

c c

c c

(sen( ) / (cos( ) cos( )))

(sen( ) / cos( ))