Universidade Federal do Ma

Slides:



Advertisements
Apresentações semelhantes
INF 1366 – Computação Gráfica Interativa X3D
Advertisements

INF 1366 – Computação Gráfica Interativa X3D – Iluminação, Environment Sensors e Protótipos Alberto B. Raposo
INF 1366 – Computação Gráfica Interativa Animação por Computador
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 IV-Bimestre Agrupamentos.
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.
Básico.
Tópicos Aparência Importando Arquivos Inserção de Textos Interagindo com o AV.
Mini-Curso: X3D Básico Gustavo Francisco Frizzo Cleber Alexandre de Azevedo.
VRML: Virtual Reality Modeling Language Alexandre Cardoso
VRML Virtual Reality Modeling Language
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 IV-Bimestre Criação.
Conceitos de Iluminação Gerando Eventos Em VRML, um nó de iluminação descreve como parte do mundo deve ser iluminada, mas não cria, automaticamente, uma.
Matéria e Energia Materia: é qualquer coisa ou é tudo que tem massa e ou ocupa uma espaço Exemplo: Ouro, carne, a água. Não são as - radiações eletromagnéticas.
CLASSES EM JAVA Dilvan Moreira (baseado no livro Big Java)
Programação WEB - Aprender as noções básicas para o desenvolvimento WEB, mediante a compreensão, domínio e aplicações das técnicas inerentes a Programação.
LINGUAGEM DE PROGRAMAÇÃO. Breve histórico Ada Lovelace Luigi Menabrea Charles Babbage TradutorMemóriasMáquina analítica.
Linguagem de Programação – Aula 03 Prof. Me. Ronnison Reges Vidal.
Princípios de Desenvolvimento de Algoritmos MAC122 Prof. Dr. Paulo Miranda IME-USP Variáveis e Atribuições.
Prof. Anderson Terroso Março/2017
Técnicas de Diálogo e Gênero
Recursividade, Entrada pelo teclado e Funções com retorno
Diagrama de Sequencia Prof. Thales Castro.
Espelhos planos e esféricos
Computação Gráfica – Transformações Geométricas
GRÁFICOS ESTATÍSTICOS
XML – Extensible Markup Language (Introdução – Parte II) Prof. Joel
UMA BREVE APRESENTAÇÃO
CONCEITOS INICIAIS E M.U PG 01-TEORIA 1
Nome completo, vínculo institucional
Prof. Wellington Franco Estrutura de um Programa Usando o VisuAlg
UML: Casos de Uso.
Prof. Wellington Franco
INSTRUÇÕES PARA ELABORAÇÃO DO PÔSTER
Introdução à Programação BCC 201 Aula
FUNDAMENTO DE PROGRAMAÇÃO PROF. BRUNO DE CASTRO H. SILVA
HTML CSS CRD Filipe Pacheco.
Prof. Wellington Franco Manipulação de Arquivos em C
Hoje em dia quando viajamos é comum usar o GPS
Programação Gráfica em Java Animação
Introdução e objetivos
Classes e Objetos Aula 11/08/2014.
TÍTULO DO TRABALHO Itens Obrigatórios:
Computação Gráfica: Câmera Virtual pt. 2 Prof. Rafael Vieira
CREATED BY RAFAEL S. T. VIEIRA
Computação Gráfica: Visibilidade Prof. Rafael Vieira
Arquitetura de Computadores
PIT – PROGRAMA INTERNO DE TREINAMENTO 2015
Controlador Lógico Programável CLP ou PLC
Daniel Paulo SQL Server 2016 Módulo II Daniel Paulo
OBJETO DE APRENDIZAGEM PARA APOIO NO PROCESSO ENSINO-APRENDIZAGEM DE QUÍMICA ORGÂNICA Renan Souza de Sá; João Paulo Custódio Ferreira Longo; Carmen Silvia.
Programação para Internet Rica
Aplicativos para Internet
Máquinas Elétricas e segundo princípio da termodinâmica
Como personalizar o site do Microsoft SharePoint Online
Profa. Maria Augusta Constante Puget
Sistemas Operacionais
Dimensões Fractais FEP 113 – Aula 2 Marcello Magri Amaral
Linguagem PASCAL Tipos Estruturados
Princípios de Controle
TÍTULO DO TCC (LETRA MAIÚSCULA, NO MÁXIMO 2 LINHAS
Writer Editor de texto do BrOffice.org
Visual Basic TCP.
Desenho Aplicado à Automação e Controle
Interfaces Especiais Interface para Carros
Python: Comandos Básicos
PROJEÇÕES CARTOGRÁFICAS
Introdução a progrmação Comandos condicionais: if e switch
Interface Java: JFrame, JPanel, JButton, JLabel, JMenuBar, Jmenu, JMenuItem, addSeparator() e a biblioteca Java.Math Prof. Esp. André Aparecido da Silva.
RESULUÇÃO DOS EXERCÍCIOS E
Sobre a linguagem Criado em 1995 por Brendan Eich da Netscape nomeada inicialmente de Mocha, posteriormente LiveScript e por fim JavaScript. É um linguagem.
Transcrição da apresentação:

Universidade Federal do Ma Introdução à Computação Gráfica Prof. Anselmo C. de Paiva Depto de Informática VRML

Roteiro Introdução a VRML Conceitos Chave Construindo e Agrupando Formas Predefinidas http://www.wiley.com/legacy/compbooks/vrml2sbk/cover/cover.htm Prof. Anselmo C. de Paiva - DEINF-UFMA

1-2 - Introdução a VRML - Conceitos Chave Virtual Reality Modeling Language

Arquivo VRML Descrição textual de um mundo VRML.. Extensão wrl Prof. Anselmo C. de Paiva - DEINF-UFMA

Tipos de Componentes de um Arquivo VRML: VRML Header (cabeçalho) - obrigatório Protótipos Formas, interpoladores, sensores e scripts Rotas Prof. Anselmo C. de Paiva - DEINF-UFMA

Outros itens: Comentários Nodos Campos e valores de campos Nomes de nodos definidos Nomes de nodos usados Prof. Anselmo C. de Paiva - DEINF-UFMA

fig 2.1 Prof. Anselmo C. de Paiva - DEINF-UFMA

O Cabeçalho VRML #VRML V2.0 utf8 Prof. Anselmo C. de Paiva - DEINF-UFMA

Comentários # Draw the hut walls Prof. Anselmo C. de Paiva - DEINF-UFMA

Nodos Nodos descrevem formas e suas propriedades. Geralmente contém: tipo (obrigatório) chaves (obrigatório) campos (pocionais) e seus valores dentro das chaves Prof. Anselmo C. de Paiva - DEINF-UFMA

Exemplo de nodo Cylinder { } height 2.0 radius 2.0 Prof. Anselmo C. de Paiva - DEINF-UFMA

Campos e valores de campos height 2.0 radius 2.0 São os atributos de um nodo São opcionais porque têm valores default Prof. Anselmo C. de Paiva - DEINF-UFMA

Definições de nomes de campos DEF node-name node-type { ... } Prof. Anselmo C. de Paiva - DEINF-UFMA

Uso de nomes de campos USE USE node-name Prof. Anselmo C. de Paiva - DEINF-UFMA

Formas geometry - define a estrutura material - aparência (cor) texture - textura (vidro, madeira, etc.) Estes atributos ficam dentro do nodo SHAPE VRML suporta formas geométricas primitivas e avançadas Prof. Anselmo C. de Paiva - DEINF-UFMA

Agrupando formas Nodo group Prof. Anselmo C. de Paiva - DEINF-UFMA

3 - Construindo e Agrupando Formas Predefinidas

Forma - Nodo Shape Todas as formas são construídas com o nodo Shape appearance NULL #exposedField SFNode geometry NULL #exposedField SFNode } Prof. Anselmo C. de Paiva - DEINF-UFMA

Aparência - nodo appearance O atributo do campo Appearance pode ser preenchido com um nodo appearance Appearance { material NULL #exposedField SFNode texture NULL #exposedField SFNode textureTransform NULL #esposedField SFNode } Prof. Anselmo C. de Paiva - DEINF-UFMA

Nodo Material Especifica atributos de material podendo ser usado como valor do atributo material de appearance Material { ambientIntensity 0.2 #exposedField SFFloat diffuseColor 0.8 0.8 0.8 #exposedField SFColor emissiveColor 0.0 0.0 0.0 #exposedField SFColor shininess 0.2 #exposedField SFFloat specularColor 0.0 0.0 0.0 #exposedField SFColor transparency 0.0 #exposedField SFFloat } Prof. Anselmo C. de Paiva - DEINF-UFMA

Caixa - Nodo Box Cria uma caixa, podendo ser usado como valor do campo geometry no nodo shape. Box { size 2.0 2.0 2.0 #field SFVec3f Prof. Anselmo C. de Paiva - DEINF-UFMA

Exemplos fig 3.1 Prof. Anselmo C. de Paiva - DEINF-UFMA

Prof. Anselmo C. de Paiva - DEINF-UFMA

Nodo Cone Cone { } bottomRadius 1.0 #field SFFloat height 2.0 #field SFFloat side TRUE #field SFBool bottom TRUE #field SFBool } Prof. Anselmo C. de Paiva - DEINF-UFMA

Prof. Anselmo C. de Paiva - DEINF-UFMA

Prof. Anselmo C. de Paiva - DEINF-UFMA

Nodo Cylinder Cylinder { } radius 1.0 #field SFFloat height 2.0 #field SFFloat side TRUE #field SFBool top TRUE #field SFBool bottom TRUE #field SFBool } Prof. Anselmo C. de Paiva - DEINF-UFMA

Prof. Anselmo C. de Paiva - DEINF-UFMA

Prof. Anselmo C. de Paiva - DEINF-UFMA

Prof. Anselmo C. de Paiva - DEINF-UFMA

Nodo Sphere Sphere { } radius 1.0 #field SFFloat Prof. Anselmo C. de Paiva - DEINF-UFMA

Prof. Anselmo C. de Paiva - DEINF-UFMA

Nodo Group Group { children [ ] #exposedField MFNode bboxCenter 0.0 0.0 0.0 #field SFVec3f bboxSize -1.0 -1.0 -1.0 #field SFVec3f addChildren #eventIn MFNode removeChildren #eventOut MFNode Prof. Anselmo C. de Paiva - DEINF-UFMA

Prof. Anselmo C. de Paiva - DEINF-UFMA

Prof. Anselmo C. de Paiva - DEINF-UFMA

use a geometria “texto” no nodo “shape” 4 - Formas de Texto use a geometria “texto” no nodo “shape”

Nodo Texto Text { } string [ ] #exposedField MFString length [ ] #exposedField MFFloat maxExtent 0.0 #exposedField SFFloat fontStyle NULL #exposedField SFNode } Prof. Anselmo C. de Paiva - DEINF-UFMA

Prof. Anselmo C. de Paiva - DEINF-UFMA

Use o campo translation do nodo Transform agrupado a uma forma 5 - Posicionando Formas Use o campo translation do nodo Transform agrupado a uma forma

Nodo Transform Transform { children [ ] #exposedField MFNode translation 0.0 0.0 0.0 #exposedField SFVec3f rotation 0.0 0.0 1.0 0.0 #exposedField SFRotation scale 1.0 1.0 1.0 #exposedField SFVec3f scaleOrientation 0.0 0.0 1.0 0.0 #exposedField SFRotation bboxCenter 0.0 0.0 0.0 #field SFVec3f bboxSize -1.0 -1.0 -1.0 #field SFVec3f center 0.0 0.0 0.0 #exposedField SFVec3f addChildern #eventIn MFNode removeChildren #eventIn MFNode Prof. Anselmo C. de Paiva - DEINF-UFMA

Transform { translation 0.0 2.0 0.0 children [ Shape { #VRML V2.0 utf8 Transform { translation 0.0 2.0 0.0 children [ Shape { appearance Appearance { material Material { } } geometry Cylinder { } } ] Prof. Anselmo C. de Paiva - DEINF-UFMA

Prof. Anselmo C. de Paiva - DEINF-UFMA

Prof. Anselmo C. de Paiva - DEINF-UFMA

campos “rotation” e “center”do nodo “Transform” 6 - Rotacionando Formas campos “rotation” e “center”do nodo “Transform”

Eixos de Rotação Prof. Anselmo C. de Paiva - DEINF-UFMA

Prof. Anselmo C. de Paiva - DEINF-UFMA

Valores para Eixos de Rotação Comuns Y: 0.0 1.0 0.0 Z: 0.0 0.0 1.0 Prof. Anselmo C. de Paiva - DEINF-UFMA

Ângulos de Rotação Radianos 1 grau = 0.0175 radianos 360 graus = 6.3 radianos x graus = x*0.0175 radianos Prof. Anselmo C. de Paiva - DEINF-UFMA

Prof. Anselmo C. de Paiva - DEINF-UFMA

Prof. Anselmo C. de Paiva - DEINF-UFMA

Prof. Anselmo C. de Paiva - DEINF-UFMA

Prof. Anselmo C. de Paiva - DEINF-UFMA

Prof. Anselmo C. de Paiva - DEINF-UFMA

7 - Escala

Prof. Anselmo C. de Paiva - DEINF-UFMA

Sintaxe Prof. Anselmo C. de Paiva - DEINF-UFMA

Prof. Anselmo C. de Paiva - DEINF-UFMA

Prof. Anselmo C. de Paiva - DEINF-UFMA

TimeSensor, PositionInterpolator, OrientationInterpolator 7 - Animação TimeSensor, PositionInterpolator, OrientationInterpolator

Animação requer dois elementos Um relógio: Nodo TimeSensor Uma descrição de como as coisas mudam ao longo do tempo: Nodos PositionInterpolation e OrientationInterpolation Prof. Anselmo C. de Paiva - DEINF-UFMA

Animação Pode-se ligar a saída de um TimeSensor na entrada de um PositionInterpolation ou OrientationInterpolation e a saída destes nodos a um nodo Transform. Prof. Anselmo C. de Paiva - DEINF-UFMA

Relógio O campo eventOut time do TimeSensor indica a hora corrente. Um TimeSensor pode ser iniciado ou parado pela definição de valores absolutos para startTime e stopTime Prof. Anselmo C. de Paiva - DEINF-UFMA

Tempo Fracionário Inicia em 0.0 e vai até 1.0 fraction_changed eventOut indica mudanças no tempo fracionário cycleInterval define a duração entre 0.0 e 1.0 campo loop = TRUE -> repete o ciclo Prof. Anselmo C. de Paiva - DEINF-UFMA

Posições-chave em tempo fracionário Deve-se prover um valor de posição e/ou orientação para cada um dos instantes de tempo entre 0 e 1. Há infinitos instantes entre 0 e 1. Pode-se definir apenas algumas posições-chave e o interpolador calcula as demais. Prof. Anselmo C. de Paiva - DEINF-UFMA

Interpolação linear Prof. Anselmo C. de Paiva - DEINF-UFMA

Interpolação com múltiplas chaves Prof. Anselmo C. de Paiva - DEINF-UFMA

Sintaxe: Nodo Time Prof. Anselmo C. de Paiva - DEINF-UFMA

Nodo PositionInterpolator Prof. Anselmo C. de Paiva - DEINF-UFMA

Nodo OrientationInterpolator Prof. Anselmo C. de Paiva - DEINF-UFMA

http://www.wiley.com/legacy/compbooks/vrml2sbk/ch08/08fig03.wrl Prof. Anselmo C. de Paiva - DEINF-UFMA

Prof. Anselmo C. de Paiva - DEINF-UFMA

Animação de tamanho pode ser feita usando um nodo PositionInterpolator ligado com o eventIn set_scale de um objeto. Prof. Anselmo C. de Paiva - DEINF-UFMA

10 - Aparência de Materiais Nodos Appearance, Material, ColorInterpolator e ScalarInterpolator

Prof. Anselmo C. de Paiva - DEINF-UFMA

Sombreamento Prof. Anselmo C. de Paiva - DEINF-UFMA

Prof. Anselmo C. de Paiva - DEINF-UFMA

Nodo Shape Prof. Anselmo C. de Paiva - DEINF-UFMA

Nodo Appearance Prof. Anselmo C. de Paiva - DEINF-UFMA

Nodo Material Prof. Anselmo C. de Paiva - DEINF-UFMA

Exemplo Group { children [ Shape { appearance Appearance { material Material { diffuseColor 1.0 0.0 0.0 } } geometry Sphere { } }, appearance Appearance { material Material { diffuseColor 0.5 0.25 1.0 } } geometry Cylinder { radius 2.0 height 0.05 } appearance Appearance { material Material { diffuseColor 0.75 0.0 1.0 } } geometry Cylinder { radius 0.15 height 5.0 } } ] Prof. Anselmo C. de Paiva - DEINF-UFMA

Nodo ColorInterpolator Prof. Anselmo C. de Paiva - DEINF-UFMA

Nodo ScalarInterpolator Prof. Anselmo C. de Paiva - DEINF-UFMA

11 - Grupos

Nodo Group Prof. Anselmo C. de Paiva - DEINF-UFMA

Nodo Switch Prof. Anselmo C. de Paiva - DEINF-UFMA

Nodo Billboard Prof. Anselmo C. de Paiva - DEINF-UFMA

12 - Importação de Arquivos

Nodo Inline Prof. Anselmo C. de Paiva - DEINF-UFMA

Prof. Anselmo C. de Paiva - DEINF-UFMA

13 - Construindo formas com pontos linhas e faces PointSet, IndexedLineSet, IndexedfaceSet, CoordinateInterpolator

Prof. Anselmo C. de Paiva - DEINF-UFMA

Prof. Anselmo C. de Paiva - DEINF-UFMA

Prof. Anselmo C. de Paiva - DEINF-UFMA

0, 1, 2, 3, 0, -1, 4, 5, 6, 7, 4, -1, 0, 4, -1, 1, 5, -1, 2, 6, -1, 3, 7 Prof. Anselmo C. de Paiva - DEINF-UFMA

Prof. Anselmo C. de Paiva - DEINF-UFMA

0, 1, 2, 3, -1, 7, 6, 5, 4, -1, 0, 4, 5, 1, -1, 1, 5, 6, 2, -1, 2, 6, 7, 3, -1, 3, 7, 4, 0 Prof. Anselmo C. de Paiva - DEINF-UFMA

Prof. Anselmo C. de Paiva - DEINF-UFMA

Bordas suaves Prof. Anselmo C. de Paiva - DEINF-UFMA

Prof. Anselmo C. de Paiva - DEINF-UFMA

Prof. Anselmo C. de Paiva - DEINF-UFMA

Prof. Anselmo C. de Paiva - DEINF-UFMA

Prof. Anselmo C. de Paiva - DEINF-UFMA

Prof. Anselmo C. de Paiva - DEINF-UFMA

Prof. Anselmo C. de Paiva - DEINF-UFMA

Prof. Anselmo C. de Paiva - DEINF-UFMA

Prof. Anselmo C. de Paiva - DEINF-UFMA

14 - Superfícies ElevationGrid

Prof. Anselmo C. de Paiva - DEINF-UFMA

Prof. Anselmo C. de Paiva - DEINF-UFMA

Prof. Anselmo C. de Paiva - DEINF-UFMA

Prof. Anselmo C. de Paiva - DEINF-UFMA

15 - Toróides Extrusion

Características-chave Perfil (cross section) Caminho (spine) Escala Orientação Prof. Anselmo C. de Paiva - DEINF-UFMA

Prof. Anselmo C. de Paiva - DEINF-UFMA

Prof. Anselmo C. de Paiva - DEINF-UFMA

Prof. Anselmo C. de Paiva - DEINF-UFMA

Prof. Anselmo C. de Paiva - DEINF-UFMA

Prof. Anselmo C. de Paiva - DEINF-UFMA

17 - Texturas

Prof. Anselmo C. de Paiva - DEINF-UFMA

Prof. Anselmo C. de Paiva - DEINF-UFMA

Prof. Anselmo C. de Paiva - DEINF-UFMA

Prof. Anselmo C. de Paiva - DEINF-UFMA

Prof. Anselmo C. de Paiva - DEINF-UFMA

Prof. Anselmo C. de Paiva - DEINF-UFMA

Prof. Anselmo C. de Paiva - DEINF-UFMA

Prof. Anselmo C. de Paiva - DEINF-UFMA

Prof. Anselmo C. de Paiva - DEINF-UFMA

23 - Neblina Nodo Fog

Atributos da neblina Cor (default: branco) Espessura Tipo: Linear ou Exponential Prof. Anselmo C. de Paiva - DEINF-UFMA

Modo de criação de neblina Não simula partículas em suspensão Quanto mais longe do usuário, mais a cor dos objetos se aproxima da cor da neblina Prof. Anselmo C. de Paiva - DEINF-UFMA

Background Não é afetado pela neblina Prof. Anselmo C. de Paiva - DEINF-UFMA

Prof. Anselmo C. de Paiva - DEINF-UFMA

Prof. Anselmo C. de Paiva - DEINF-UFMA

24 - Sons

Formatos de Som Wave - Representação real do som Midi - Instruções para tocar o som em um instrumento digital Midi é muito mais compacto do que Wave Prof. Anselmo C. de Paiva - DEINF-UFMA

Prof. Anselmo C. de Paiva - DEINF-UFMA

Prof. Anselmo C. de Paiva - DEINF-UFMA

Prof. Anselmo C. de Paiva - DEINF-UFMA

Prof. Anselmo C. de Paiva - DEINF-UFMA

25 - Controlando o Nível de Detalhe Nodo LOD

Prof. Anselmo C. de Paiva - DEINF-UFMA

Prof. Anselmo C. de Paiva - DEINF-UFMA

Prof. Anselmo C. de Paiva - DEINF-UFMA

26 - Controlando o Ponto de Vista Nodos Viewpoint e NavigationInfo

Viewpoint Como qualquer objeto, o ponto de vista pode ser movido sendo colocado como “child” de um nodo “Transform”. Prof. Anselmo C. de Paiva - DEINF-UFMA

Campo de Visão Prof. Anselmo C. de Paiva - DEINF-UFMA

Viewpoint “jump” e “no-jump” Jump - quando o ponto de vista é mudado, a visão do usuário também muda No-Jump - não há mudança da visão com a troca do viewpoint, mas apenas quando esse se movimentar depois da troca. Exemplo: elevador Prof. Anselmo C. de Paiva - DEINF-UFMA

Avatar Representação do usuário no mundo virtual Características: aparência / dimensões como se move Prof. Anselmo C. de Paiva - DEINF-UFMA

Modos de movimentação Walk Fly Examine None Prof. Anselmo C. de Paiva - DEINF-UFMA

Dimensões de um avatar width - quão perto um avatar pode chegar de um objeto antes de colidir com ele height - a que distância do chão o avatar fica quando caminha sobre ele step height - especifica a altura máxima de um obstáculo que um avatar pode passar quando estiver caminhando Prof. Anselmo C. de Paiva - DEINF-UFMA

Prof. Anselmo C. de Paiva - DEINF-UFMA

Prof. Anselmo C. de Paiva - DEINF-UFMA

Prof. Anselmo C. de Paiva - DEINF-UFMA

VisibilitySensor, ProximitySensor, Collision 27 - Sensores de Usuário VisibilitySensor, ProximitySensor, Collision

Prof. Anselmo C. de Paiva - DEINF-UFMA

Prof. Anselmo C. de Paiva - DEINF-UFMA

Prof. Anselmo C. de Paiva - DEINF-UFMA

Prof. Anselmo C. de Paiva - DEINF-UFMA

28 - Portais Anchor

Prof. Anselmo C. de Paiva - DEINF-UFMA

Seleção de pontos de vista: # http://www.somewhere.org/myworld.wrl#CoolView Prof. Anselmo C. de Paiva - DEINF-UFMA

29 - Informações sobre o mundo WorldInfo

Prof. Anselmo C. de Paiva - DEINF-UFMA

30 - Scripts

Nodo Script tem seus próprios campos, eventos de entrada e de saída, conforme definido pelo programador Prof. Anselmo C. de Paiva - DEINF-UFMA

Campos Script { } ... field tipoDoCampo nomeDoCampo valorInicial Prof. Anselmo C. de Paiva - DEINF-UFMA

Exemplos Prof. Anselmo C. de Paiva - DEINF-UFMA

Mais Exemplos Prof. Anselmo C. de Paiva - DEINF-UFMA

Prof. Anselmo C. de Paiva - DEINF-UFMA

Evento de Entrada Script { } ... eventIn tipoDoEvento nomeDoEvento Prof. Anselmo C. de Paiva - DEINF-UFMA

Prof. Anselmo C. de Paiva - DEINF-UFMA

Evento de Saída Script { } ... eventOut tipoDoEvento nomeDoEvento Prof. Anselmo C. de Paiva - DEINF-UFMA

Usando Campos e Eventos em uma Definição de Interface Script { field SFFloat gravity -9.8 field SFVec3f velocity 1.0 0.0 0.0 field SFVec3f position 0.0 0.0 0.0 eventIn SFVec3f set_position eventOut SFVec3f position_changed eventIn SFFloat set_fraction } Prof. Anselmo C. de Paiva - DEINF-UFMA

Para definir um exposed field Defina o field (ex. position) Defina o eventIn (ex. set_position) Defina o eventOut (ex. position_changed) Prof. Anselmo C. de Paiva - DEINF-UFMA

Scripts podem ser escritos em Java ou JavaScript url “myscript.js” field ... eventIn ... eventOut ... } Prof. Anselmo C. de Paiva - DEINF-UFMA

Incluindo scripts no nodo url “javascript: function set_position (pos,time) { position = pos ; } “ field ... eventIn ... eventOut ... Prof. Anselmo C. de Paiva - DEINF-UFMA

Controle de execução tipicamente um script executa sempre que um eventIn recebe um valor, computa alguma coisa e coloca o resultado em um ou mais eventOuts Prof. Anselmo C. de Paiva - DEINF-UFMA

mustEvaluate se a avaliação do script não pode ser postergada, então o campo mustEvaluate deve ser true. Prof. Anselmo C. de Paiva - DEINF-UFMA

directOutput quando um script precisa manipular mais do que suas variáveis de entrada, deve-se deixar directOutput true. neste caso, perde-se performance, mas é possível manipular a estrutura do mundo vrml Prof. Anselmo C. de Paiva - DEINF-UFMA

API - Application Programming Interface Características: acesso aos campos da interface e eventOut’s do nodo script conversão entre os tipos VRML e os da linguagem habilidade de iniciar e terminar um script e responder a eventos acesso ao browser para mudar a estrutura de um mundo ou carregar um novo mundo Prof. Anselmo C. de Paiva - DEINF-UFMA

Acessando Campos e eventOut’s Em Java a API fornece classes para acessar os campos e eventOut’s: getField e getEventOut Em JavaScript a API automaticamente cria uma interface para cada campo ou eventOut. Prof. Anselmo C. de Paiva - DEINF-UFMA

Eventos Eventos recebidos tem dois componentes: Event value - um valor, como uma coordenada 3d. Event time stamp - o valor de tempo absoluto no qual o evento foi gerado. Prof. Anselmo C. de Paiva - DEINF-UFMA

Conversão entre tipos Em Java a API fornece um conjunto de classes para os tipos VRML Em javaScript a API automaticamente converte os tipos VRML para tipos JavaScript Prof. Anselmo C. de Paiva - DEINF-UFMA

Prof. Anselmo C. de Paiva - DEINF-UFMA

Criando um Interpolador DEF Mover Script { url “move1.js” eventIn SFFloat set_fraction eventOut SFVec3f value_changed } Prof. Anselmo C. de Paiva - DEINF-UFMA

Rotina para mover em linha function set_fraction(fraction,eventTime) { value_changed[0] = fraction; value_changed[1] = 0.0; value_changed[2] = 0.0; } Prof. Anselmo C. de Paiva - DEINF-UFMA

Rotina para interpolador senoidal function set_fraction(fraction,eventTime) { value_changed[0] = fraction; value_changed[1] = Math.sin(fraction*6.28); value_changed[2] = 0.0; } Prof. Anselmo C. de Paiva - DEINF-UFMA

Rotina para um interpolador helicoidal function set_fraction(fraction,eventTime) { value_changed[0] = fraction; value_changed[1] = Math.sin(fraction*6.28); value_changed[2] = Math.cos(fraction*6.28); } Prof. Anselmo C. de Paiva - DEINF-UFMA

Interpolador helicoidal parametrizado Prof. Anselmo C. de Paiva - DEINF-UFMA