1 universidade do vale do paraíba colégio técnico antônio teixeira fernandes disciplina...

55
1 Universidade do Vale do Paraíba Colégio Técnico Antônio Teixeira Fernandes Disciplina Introdução a Computação Gráfica (ICG) Material III-Bimestre Transformação Geométrica em 3D. Temporizadores e Rotas. Definições para reaproveitamento de código Reaproveitamento de Cenas. Reproduzindo Filmes em Cenas. Reproduzindo sons em Cenas. Inserindo texto em uma Cena. Sensor de Toque. Sensor de Proximidade. Site : http://www1.univap.br/~wagner Prof. Responsável Wagner Santos C. de Jesus

Upload: internet

Post on 17-Apr-2015

103 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: 1 Universidade do Vale do Paraíba Colégio Técnico Antônio Teixeira Fernandes Disciplina Introdução a Computação Gráfica (ICG) Material III-Bimestre Transformação

1

Universidade do Vale do ParaíbaColégio Técnico Antônio Teixeira FernandesDisciplina Introdução a Computação Gráfica

(ICG)Material III-BimestreTransformação Geométrica em 3D.

Temporizadores e Rotas. Definições para reaproveitamento de código

Reaproveitamento de Cenas.Reproduzindo Filmes em Cenas. Reproduzindo sons em Cenas. Inserindo texto em uma Cena.

Sensor de Toque.Sensor de Proximidade.

Site : http://www1.univap.br/~wagner

Prof. ResponsávelWagner Santos C. de Jesus

Page 2: 1 Universidade do Vale do Paraíba Colégio Técnico Antônio Teixeira Fernandes Disciplina Introdução a Computação Gráfica (ICG) Material III-Bimestre Transformação

2

Transformações Geométricas em 3D

Chamamos de transformação o ato de levar um objeto de um ponto para outro, num sistema de referências. As transformações mais usadas são :

• Translação• Rotação • Escala.

Page 3: 1 Universidade do Vale do Paraíba Colégio Técnico Antônio Teixeira Fernandes Disciplina Introdução a Computação Gráfica (ICG) Material III-Bimestre Transformação

3

Criando uma TransformaçãoTransform

Transform {} – Cria a transformaçãochildren [] – Estrutura filha para a

transformação.

Page 4: 1 Universidade do Vale do Paraíba Colégio Técnico Antônio Teixeira Fernandes Disciplina Introdução a Computação Gráfica (ICG) Material III-Bimestre Transformação

4

Exemplo :

Transform

{

children

[

Shape { geometry Sphere { } }

]

}

Page 5: 1 Universidade do Vale do Paraíba Colégio Técnico Antônio Teixeira Fernandes Disciplina Introdução a Computação Gráfica (ICG) Material III-Bimestre Transformação

5

#VRML V2.0 utf8...Transform{ translation 3 0 3 children [ Shape { .... geometry Sphere { } } ]}

Transform{ scale .5 .5 .5

rotation 0 1 0 .7535 children [ Shape { ...... geometry Box { } } ]}

Transform{ translation -3 0 -3 rotation 1 0 0 1.57 children [ Shape { ..... geometry Cone { } } ]}

Page 6: 1 Universidade do Vale do Paraíba Colégio Técnico Antônio Teixeira Fernandes Disciplina Introdução a Computação Gráfica (ICG) Material III-Bimestre Transformação

6

Escala

Determina o tamanho do objeto.

Sintaxe : (-x a x), (-y a y), (-z a z)

scale x y z

x

y

z

Page 7: 1 Universidade do Vale do Paraíba Colégio Técnico Antônio Teixeira Fernandes Disciplina Introdução a Computação Gráfica (ICG) Material III-Bimestre Transformação

7

Exemplo de EscalaTransform { scale .3 .3 .3 children[

Shape { appearance Appearance {

material Material {

diffuseColor 0 0.59 0 }

} geometry Box { }

}]}

x=.3, y= .3, z= .3

Page 8: 1 Universidade do Vale do Paraíba Colégio Técnico Antônio Teixeira Fernandes Disciplina Introdução a Computação Gráfica (ICG) Material III-Bimestre Transformação

8

Translação

Determina a movimentação do objeto.

Sintaxe : (-x a x), (-y a y), (-z a z)

translation x y z

x

y

z

Page 9: 1 Universidade do Vale do Paraíba Colégio Técnico Antônio Teixeira Fernandes Disciplina Introdução a Computação Gráfica (ICG) Material III-Bimestre Transformação

9

Exemplo de TranslaçãoTransform { translation 3 0 0 children[

Shape { appearance Appearance {

material Material {

diffuseColor 0 0.59 0 }

} geometry Box { }

}]}

+-

+

-

x=3,y=0,z=0

Page 10: 1 Universidade do Vale do Paraíba Colégio Técnico Antônio Teixeira Fernandes Disciplina Introdução a Computação Gráfica (ICG) Material III-Bimestre Transformação

10

Rotação

Determina a rotação para um objeto.

Sintaxe : ( 0 – 1) – valores para x y z

rotation x y z ângulo

x

z

y

Page 11: 1 Universidade do Vale do Paraíba Colégio Técnico Antônio Teixeira Fernandes Disciplina Introdução a Computação Gráfica (ICG) Material III-Bimestre Transformação

11

Exemplo de RotaçãoTransform { rotation 0 0 1 0.78 children[

Shape { appearance Appearance {

material Material {

diffuseColor 0 0.59 0 }

} geometry Box { }

}]}

x

z

y

Page 12: 1 Universidade do Vale do Paraíba Colégio Técnico Antônio Teixeira Fernandes Disciplina Introdução a Computação Gráfica (ICG) Material III-Bimestre Transformação

12

center e scaleOrientation

center – Define o centro da escala de transformação.

scaleOrientation – Define o eixo de rotação para escala de operação.

Page 13: 1 Universidade do Vale do Paraíba Colégio Técnico Antônio Teixeira Fernandes Disciplina Introdução a Computação Gráfica (ICG) Material III-Bimestre Transformação

13

Reaproveitamento de cenas

Inline {} – permite trazer parte de uma cena dentro do ambiente criado em uma outra cena.

Sintaxe:

Inline { url [ “Caminho” ] }

Page 14: 1 Universidade do Vale do Paraíba Colégio Técnico Antônio Teixeira Fernandes Disciplina Introdução a Computação Gráfica (ICG) Material III-Bimestre Transformação

14

Diagrama de reaproveitamento de cenas

Cena

Principal

Sub-Cena

Chamada por

Inline{}

Page 15: 1 Universidade do Vale do Paraíba Colégio Técnico Antônio Teixeira Fernandes Disciplina Introdução a Computação Gráfica (ICG) Material III-Bimestre Transformação

15

Exemplo :

Inline { url [ " Cubo.wrl " ] }

Transform { rotation 1 0 0 0.785398163397448 translation 0 0 0 children[ Inline { url [ "cubopos.wrl" ] } ] }

ou

Page 16: 1 Universidade do Vale do Paraíba Colégio Técnico Antônio Teixeira Fernandes Disciplina Introdução a Computação Gráfica (ICG) Material III-Bimestre Transformação

16

Definições de figuras

DEF : Determina um nome para a figura que irá compor a cena.

Exemplo :

DEF FIGURA Transform { translation 3 0 0 children[ Shape { appearance Appearance { material Material { diffuseColor 1 0 0 } } geometry Cylinder { } }]}

Page 17: 1 Universidade do Vale do Paraíba Colégio Técnico Antônio Teixeira Fernandes Disciplina Introdução a Computação Gráfica (ICG) Material III-Bimestre Transformação

17

Reproduzindo filmes em cenasMovieTexture { } – atribui a um objeto um

filme que será dado como textura em movimento.

Sintaxe :texture MovieTexture

{ url ["mpg ou avi"] loop booleano stopTime -n }

Page 18: 1 Universidade do Vale do Paraíba Colégio Técnico Antônio Teixeira Fernandes Disciplina Introdução a Computação Gráfica (ICG) Material III-Bimestre Transformação

18

Propriedade Valor

url Caminho do arquivo de imagens

loop Determina se o fim vai estar parado ou em movimento (true/false).

stopTime Um valor negativo que determina o tempo de execução da animação do filme.

Page 19: 1 Universidade do Vale do Paraíba Colégio Técnico Antônio Teixeira Fernandes Disciplina Introdução a Computação Gráfica (ICG) Material III-Bimestre Transformação

19

Exemplo MoviTexture

Shape { appearance Appearance { texture MovieTexture { url ["C:\clock.avi"] loop TRUE stopTime -1 } } geometry Box { } }

Page 20: 1 Universidade do Vale do Paraíba Colégio Técnico Antônio Teixeira Fernandes Disciplina Introdução a Computação Gráfica (ICG) Material III-Bimestre Transformação

20

Criando sons em uma cena sound

maxBack maxFrontminBack

minFront

location

direction

-20 db

0 db

Elipsóide Mínimo

Elipsóide Máximo

direção

Atenuação

Page 21: 1 Universidade do Vale do Paraíba Colégio Técnico Antônio Teixeira Fernandes Disciplina Introdução a Computação Gráfica (ICG) Material III-Bimestre Transformação

21

AudioCLip : aponta para o arquivo de sons que será reproduzido.

Sound

AudioCLip

Arquivo de Sons

(wav,mp3..)

Page 22: 1 Universidade do Vale do Paraíba Colégio Técnico Antônio Teixeira Fernandes Disciplina Introdução a Computação Gráfica (ICG) Material III-Bimestre Transformação

22

Propriedades da instrução sound.

Frontal Máximo(MaxFont): determina o alcance do som.Frontal mínimo(MinFront): determina a alcance mais interno para o som.Maximo do fundo(MaxBack): determina valores relativos, próximos da faixa de localização de emissão do som.Mínimo do fundo (MinBack): determina valores relativos internos a faixa de localização de emissão do som.

Localização (location): Determina o local, em relação aos eixos x, y e z, de propagação do som. Direção (direction): Determina em que direção o som irá se propagar em relação aos eixos.

Page 23: 1 Universidade do Vale do Paraíba Colégio Técnico Antônio Teixeira Fernandes Disciplina Introdução a Computação Gráfica (ICG) Material III-Bimestre Transformação

23

Sintaxe: AudioCLip

source AudioClip

{

loop boolean

url [ caminho url ]

}

Page 24: 1 Universidade do Vale do Paraíba Colégio Técnico Antônio Teixeira Fernandes Disciplina Introdução a Computação Gráfica (ICG) Material III-Bimestre Transformação

24

Exemplo : sound

Sound { maxFront 50 minBack 50 source AudioClip { loop TRUE url ["Beethoven.mp3"] } }

Page 25: 1 Universidade do Vale do Paraíba Colégio Técnico Antônio Teixeira Fernandes Disciplina Introdução a Computação Gráfica (ICG) Material III-Bimestre Transformação

25

Textos em cenas

Shape geometry Text

String[]

FontStyle

Page 26: 1 Universidade do Vale do Paraíba Colégio Técnico Antônio Teixeira Fernandes Disciplina Introdução a Computação Gráfica (ICG) Material III-Bimestre Transformação

26

Inserindo texto na cena geometry Text

geometry Text { } – permite escrever um texto que será exibido na cena em formato 3D. Propriedade string [],

Exemplo :

geometry Text { string [“texto a ser exibido”] }

Page 27: 1 Universidade do Vale do Paraíba Colégio Técnico Antônio Teixeira Fernandes Disciplina Introdução a Computação Gráfica (ICG) Material III-Bimestre Transformação

27

Exemplo Prático:

Shape {

geometry Text { string[“Informática”] }

}

Page 28: 1 Universidade do Vale do Paraíba Colégio Técnico Antônio Teixeira Fernandes Disciplina Introdução a Computação Gráfica (ICG) Material III-Bimestre Transformação

28

Configurando Fonte : FontStyle PLAIN (letra padrão), BOLD (negrito), ITALIC (itálico), BOLD ITALIC (ambos).

size - O campo tamanho: irá definir o tamanho das letras. Poderão ser indicados valores entre (Zero e UM), ou um número de zero a infinito. Se um número negativo for colocado o texto será invertido.spacing - servirá para definir o espaçamento entre duas linhas de texto. Também pode-se definir um número negativo, fazendo com que o texto que estiver abaixo mude para posição oposta.

horizontal - o campo horizontal: irá definir se o texto será escrito da esquerda para a direita. Se a propriedade for mudada para FALSE o texto irá ser escrito na vertical.

topToBottom - o campo de cima para baixo: irá definir com que o texto seja escrito na seqüência natural. Caso a propriedade seja mudada para FALSE, o texto que deveria estar embaixo será enviado para cima, ou seja, haverá uma inversão da ordem na qual ele foi escrito.

justify - o campo justificar: servirá para definir o alinhamento entre as linhas do texto. As opções são: BEGIN - alinha o texto da esquerda para direita (alinhamento padrão); FIRST - faz o alinhamento pela primeira palavra do texto; MIDDLE - centraliza o texto com base na palavra que tiver o maior número de caracteres; END - ajusta o texto usando como referencia o último caractere da primeira palavra.

leftToRighto o campo da esquerda para direita: irá permitir com que o texto seja escrito na forma convencional, ou de maneira invertida, quando a propriedade estiver modificada para FALSE.

family o campo família: irá determinar o tipo de letra que deverá ser usada no texto, sendo o permitidas somente a indicação de um dos três tipos: SERIF, SANS e TYPEWRITER.

Page 29: 1 Universidade do Vale do Paraíba Colégio Técnico Antônio Teixeira Fernandes Disciplina Introdução a Computação Gráfica (ICG) Material III-Bimestre Transformação

29

Sintaxe : FontStyle

fontStyle FontStyle {

<Estilos de Fontes>

}

Page 30: 1 Universidade do Vale do Paraíba Colégio Técnico Antônio Teixeira Fernandes Disciplina Introdução a Computação Gráfica (ICG) Material III-Bimestre Transformação

30

Exemplo :

fontStyle FontStyle { family "SERIF" style "PLAIN" size 0.31 spacing 0.23 justify "BEGIN" horizontal TRUE leftToRight TRUE topToBottom TRUE }

Page 31: 1 Universidade do Vale do Paraíba Colégio Técnico Antônio Teixeira Fernandes Disciplina Introdução a Computação Gráfica (ICG) Material III-Bimestre Transformação

31

Temporizador

Para se determinar o tempo de execução para um movimento de um elemento contido em uma cena se faz necessário o recurso do temporizador. (TimeSensor)

Page 32: 1 Universidade do Vale do Paraíba Colégio Técnico Antônio Teixeira Fernandes Disciplina Introdução a Computação Gráfica (ICG) Material III-Bimestre Transformação

32

Sintaxe :

DEF TIMER TimeSensor {} – cria um temporizador com recurso de liga e desliga e o intervalo de tempo para executar animações.

Page 33: 1 Universidade do Vale do Paraíba Colégio Técnico Antônio Teixeira Fernandes Disciplina Introdução a Computação Gráfica (ICG) Material III-Bimestre Transformação

33

Propriedade do TimeSensor

Propriedade Valor

cycleInterval Valor correspondente a tempo em segundos 0,

loop Repetir ou não a freqüência da animação (true/false).

Page 34: 1 Universidade do Vale do Paraíba Colégio Técnico Antônio Teixeira Fernandes Disciplina Introdução a Computação Gráfica (ICG) Material III-Bimestre Transformação

34

Exemplo : TimeSensor

DEF TIMER TimeSensor

{

cycleInterval 1

loop FALSE

}

Page 35: 1 Universidade do Vale do Paraíba Colégio Técnico Antônio Teixeira Fernandes Disciplina Introdução a Computação Gráfica (ICG) Material III-Bimestre Transformação

35

Rotas

Rotas são caminhos traçados para que um objeto da cena percorra um deslocamento em x,y ou z. realizando movimentos de rotação ou translação.

Page 36: 1 Universidade do Vale do Paraíba Colégio Técnico Antônio Teixeira Fernandes Disciplina Introdução a Computação Gráfica (ICG) Material III-Bimestre Transformação

36

Movimento de figuras

Transformação

Figura (Shape)

Quadro (Orientação/Posição)

Eixo de Movimentação

Temporizador]

Page 37: 1 Universidade do Vale do Paraíba Colégio Técnico Antônio Teixeira Fernandes Disciplina Introdução a Computação Gráfica (ICG) Material III-Bimestre Transformação

37

Tipos de rotas

OrientationInterpolator – define caminho de rotação para os eixos x,y e z.

PositionInterpolator – define rota de translação para os eixos x,y e z.

Page 38: 1 Universidade do Vale do Paraíba Colégio Técnico Antônio Teixeira Fernandes Disciplina Introdução a Computação Gráfica (ICG) Material III-Bimestre Transformação

38

Propriedades key e keyValue

Key[] – determina a divisão dos quadros para serem animados. (0 – 1)

keyValue[] – determina os valores de deslocamento nos eixos x,y e z. (- a )

Page 39: 1 Universidade do Vale do Paraíba Colégio Técnico Antônio Teixeira Fernandes Disciplina Introdução a Computação Gráfica (ICG) Material III-Bimestre Transformação

39

TimerSensor

Interpolador

fraction_changed = .415

0 .1 .2 .3 .4 .5 .6 .7 .8 .9 1

0 cycleIntervaltick

key

keyValues

0 1

V1 V2 V3 . . . . . . . . . . . . . . . . Vn

Page 40: 1 Universidade do Vale do Paraíba Colégio Técnico Antônio Teixeira Fernandes Disciplina Introdução a Computação Gráfica (ICG) Material III-Bimestre Transformação

40

Key – Valores de quadros

Key[ 0 0.05 0.1 0.15 0.2 0.25 0.3.....n]

keyValue – Valores dos eixos

keyValue [ 0 0 0, 0 0 0.2,

0 0 0.4, 0 0 0.6, 0 0 0.8,

............ ]

Page 41: 1 Universidade do Vale do Paraíba Colégio Técnico Antônio Teixeira Fernandes Disciplina Introdução a Computação Gráfica (ICG) Material III-Bimestre Transformação

41

Exemplo (rotação): OrientationInterpolator

DEF ROTOR OrientationInterpolator {

Key[ 0 0.05 0.1 0.15 0.2 0.25 0.3.....]keyValue [

1 0 0 0, 1 0 0 3.14,

1 0 0 6.28, 1 0 0 9.42,

1 0 0 12.56, 1 0 0 15.7, ] }

Page 42: 1 Universidade do Vale do Paraíba Colégio Técnico Antônio Teixeira Fernandes Disciplina Introdução a Computação Gráfica (ICG) Material III-Bimestre Transformação

42

Exemplo (Translação):PositionInterpolator

DEF ROTOR PositionInterpolator {

Key[ 0 0.05 0.1 0.15 0.2 0.25 0.3.....]keyValue [ 0 0 0,

0 0 0.2, 0 0 0.4,

0 0 0.6, 0 0 0.8, ]}

Page 43: 1 Universidade do Vale do Paraíba Colégio Técnico Antônio Teixeira Fernandes Disciplina Introdução a Computação Gráfica (ICG) Material III-Bimestre Transformação

43

Executando Rotas

TimeSensor OrientationInterpolatorRotação

PositionInterpolator

Translação

ROUTE

Interpolador

Page 44: 1 Universidade do Vale do Paraíba Colégio Técnico Antônio Teixeira Fernandes Disciplina Introdução a Computação Gráfica (ICG) Material III-Bimestre Transformação

44

ROUTE (Executando Rotas)

Determinar que tipo de figuras será executada mediante as rotas que foram criadas e qual temporizador será usado para realizar a translação ou rotação.

Page 45: 1 Universidade do Vale do Paraíba Colégio Técnico Antônio Teixeira Fernandes Disciplina Introdução a Computação Gráfica (ICG) Material III-Bimestre Transformação

45

Associando ROUTE ao TimeSensor

Propriedades

fraction_changed – Evento que é executado na troca de valores do temporizador.

value_changed – Substitui os valores no ROUTER para realizar o deslocamento.

set_fraction – Captura valores correspondentes aos quadros que deverão ser movimentados.

rotation – Captura elementos de rotação dos eixos.

translation – Captura os elemento para translação dos eixos

Page 46: 1 Universidade do Vale do Paraíba Colégio Técnico Antônio Teixeira Fernandes Disciplina Introdução a Computação Gráfica (ICG) Material III-Bimestre Transformação

46

Sintaxe : ROUTE TO

ROUTE <objeto>.propriedade TO <objeto_router>.propriedade

Page 47: 1 Universidade do Vale do Paraíba Colégio Técnico Antônio Teixeira Fernandes Disciplina Introdução a Computação Gráfica (ICG) Material III-Bimestre Transformação

47

Exemplo prático (Rotação)

ROUTE TIMER.fraction_changed TO ROTOR.set_fraction

ROUTE ROTOR.value_changed TO FIGURA.rotation

Exemplo prático (Translação)

ROUTE TIMER.fraction_changed TO ROTOR.set_fraction

ROUTE ROTOR.value_changed TO FIGURA.translation

Page 48: 1 Universidade do Vale do Paraíba Colégio Técnico Antônio Teixeira Fernandes Disciplina Introdução a Computação Gráfica (ICG) Material III-Bimestre Transformação

48

Sensor de Toque : TouchSensor{}

Determina a sensibilidade em um determinado objeto ao passar ou clicar com mouse.

TouchSensor

TimeSensor

Interpolador

Objeto

Page 49: 1 Universidade do Vale do Paraíba Colégio Técnico Antônio Teixeira Fernandes Disciplina Introdução a Computação Gráfica (ICG) Material III-Bimestre Transformação

49

Exemplo Associação do sensor com o objeto

DEF FIGURA Transform { children[ DEF TOQUE TouchSensor{} Shape { appearance Appearance { material Material { diffuseColor 0 0.7 0 } } geometry Cone { side TRUE bottom TRUE } }]}

Page 50: 1 Universidade do Vale do Paraíba Colégio Técnico Antônio Teixeira Fernandes Disciplina Introdução a Computação Gráfica (ICG) Material III-Bimestre Transformação

50

Observação sobre TimeSensor

DEF TIMER TimeSensor

{

cycleInterval 10

loop FALSE

}

É necessário que a propriedade loop seja FALSE, para que o sensor de toque funcione.

Page 51: 1 Universidade do Vale do Paraíba Colégio Técnico Antônio Teixeira Fernandes Disciplina Introdução a Computação Gráfica (ICG) Material III-Bimestre Transformação

51

Propriedade ROUTE para TouchSensor{}

touchTime – Verifica se houve uma mudança no temporizador.

isOver – Coloca em loop por intermédio de um simples movimento do mouse.

Page 52: 1 Universidade do Vale do Paraíba Colégio Técnico Antônio Teixeira Fernandes Disciplina Introdução a Computação Gráfica (ICG) Material III-Bimestre Transformação

52

Exemplo prático

ROUTE TOQUE.touchTime TO TIMER.startTime

ROUTE TOQUE.isOver TO TIMER.loop

ROUTE TIMER.fraction_changed TO ROTOR.set_fraction

ROUTE ROTOR.value_changed TO FIGURA.translation

Page 53: 1 Universidade do Vale do Paraíba Colégio Técnico Antônio Teixeira Fernandes Disciplina Introdução a Computação Gráfica (ICG) Material III-Bimestre Transformação

53

Sensor de Aproximação : ProximitySensor {}

Determina a sensibilidade em um determinado objeto havendo aproximação no mesmo.

ProximitySensor

TimeSensor

Interpolador

Objeto

Page 54: 1 Universidade do Vale do Paraíba Colégio Técnico Antônio Teixeira Fernandes Disciplina Introdução a Computação Gráfica (ICG) Material III-Bimestre Transformação

54

Exemplo : ProximitySensor

DEF ABREFECHA ProximitySensor

{

center 0 0 0

size 5 2 8

}

Page 55: 1 Universidade do Vale do Paraíba Colégio Técnico Antônio Teixeira Fernandes Disciplina Introdução a Computação Gráfica (ICG) Material III-Bimestre Transformação

55

Exemplo ROUTER

ROUTE ABREFECHA.enterTime TO TIMER.startTime

ROUTE ABREFECHA.exitTime TO TIMER.startTime