1 / 55

Material III-Bimestre

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

Download Presentation

Material III-Bimestre

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Universidade do Vale do ParaíbaColégio Técnico Antônio Teixeira FernandesDisciplina 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

  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.

  3. Criando uma TransformaçãoTransform Transform {} – Cria a transformação children [] – Estrutura filha para a transformação.

  4. Exemplo : Transform { children [ Shape { geometry Sphere { } } ] }

  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 { } } ] }

  6. Escala Determina o tamanho do objeto. Sintaxe : (-x a x), (-y a y), (-z a z) scale x y z y x z

  7. Exemplo de Escala Transform { scale .3 .3 .3 children[ Shape { appearance Appearance { material Material { diffuseColor 0 0.59 0 } } geometry Box { } } ]} x=.3, y= .3, z= .3

  8. Translação Determina a movimentação do objeto. Sintaxe : (-x a x), (-y a y), (-z a z) translation x y z y x z

  9. Exemplo de Translação Transform { translation 3 0 0 children[ Shape { appearance Appearance { material Material { diffuseColor 0 0.59 0 } } geometry Box { } } ]} x=3,y=0,z=0 + - + -

  10. Rotação Determina a rotação para um objeto. Sintaxe : ( 0 – 1) – valores para x y z rotation x y z ângulo y x z

  11. Exemplo de Rotação Transform { rotation 0 0 1 0.78 children[ Shape { appearance Appearance { material Material { diffuseColor 0 0.59 0 } } geometry Box { } } ]} y x z

  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.

  13. Reaproveitamento de cenas Inline {} – permite trazer parte de uma cena dentro do ambiente criado em uma outra cena. Sintaxe: Inline { url [ “Caminho” ] }

  14. Diagrama de reaproveitamento de cenas Cena Principal Sub-Cena Chamada por Inline{}

  15. Exemplo : Inline { url [ " Cubo.wrl " ] } ou Transform { rotation 1 0 0 0.785398163397448 translation 0 0 0 children[ Inline { url [ "cubopos.wrl" ] } ] }

  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 { } } ]}

  17. Reproduzindo filmes em cenas MovieTexture { } – atribui a um objeto um filme que será dado como textura em movimento. Sintaxe : texture MovieTexture { url ["mpg ou avi"] loop booleano stopTime -n }

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

  19. Criando sons em uma cena sound Elipsóide Mínimo Elipsóide Máximo 0 db -20 db direção Atenuação maxFront maxBack minBack minFront direction location

  20. AudioCLip : aponta para o arquivo de sons que será reproduzido. Sound AudioCLip Arquivo de Sons (wav,mp3..)

  21. 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.

  22. Sintaxe: AudioCLip source AudioClip { loop boolean url [ caminho url ] }

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

  24. Textos em cenas geometry Text Shape String[] FontStyle

  25. 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”] }

  26. Exemplo Prático: Shape { geometry Text { string[“Informática”] } }

  27. Configurando Fonte : FontStyle PLAIN (letra padrão), BOLD (negrito), ITALIC (itálico), BOLDITALIC (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.

  28. Sintaxe : FontStyle fontStyle FontStyle { <Estilos de Fontes> }

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

  30. 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)

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

  32. Propriedade do TimeSensor

  33. Exemplo : TimeSensor DEF TIMER TimeSensor { cycleInterval 1 loop FALSE }

  34. 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.

  35. Movimento de figuras Transformação Figura (Shape) ] Quadro (Orientação/Posição) Temporizador Eixo de Movimentação

  36. 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.

  37. 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 )

  38. tick cycleInterval 0 Timer Sensor 0 .1 .2 .3 .4 .5 .6 .7 .8 .9 1 fraction_changed = .415 0 1 key Interpolador V1 V2 V3 . . . . . . . . . . . . . . . . Vn keyValues

  39. 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, ............ ]

  40. 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, ] }

  41. 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, ]}

  42. Executando Rotas Interpolador OrientationInterpolatorRotação TimeSensor PositionInterpolator Translação ROUTE

  43. 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.

  44. 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

  45. Sintaxe : ROUTE TO ROUTE <objeto>.propriedade TO <objeto_router>.propriedade

  46. 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

  47. Sensor de Toque : TouchSensor{} Determina a sensibilidade em um determinado objeto ao passar ou clicar com mouse. TouchSensor TimeSensor Objeto Interpolador

  48. Exemplo Associação do sensor com o objeto DEF FIGURA Transform { children[ DEF TOQUETouchSensor{} Shape { appearance Appearance { material Material { diffuseColor 0 0.7 0 } } geometry Cone { side TRUE bottom TRUE } } ]}

  49. 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.

More Related