Вы находитесь на странице: 1из 50

Guia de Consulta Rpida

VRML

Ezequiel R. Zorzal (UNIFESP) Luciano F. Silva (UFRR)

Guia de Consulta Rpida VRML, Ezequiel R. Zorzal e Luciano F. Silva

Introduo
VRML (Virtual Modeling Language) uma linguagem, independente de plataforma, voltada para modelagem de ambientes tridimensionais de Realidade Virtual. Estes ambientes so interfaces avanadas para aplicaes computacionais, onde o usurio pode navegar e interagir, em tempo real, em um ambiente 3D gerado por computador. A linguagem VRML trabalha com geometrias 3D, transformaes geomtricas, texturas, iluminao, nveis de detalhe, movimentos, entre outros. Sua sintaxe descrita por meio de uma srie de comandos textuais no formato ASCII que devem ser salvos em arquivos com extenso .wrl. Desse modo, por meio de qualquer processador de textos, um desenvolvedor pode criar ambientes virtuais independente de plataformas, tanto para o desenvolvimento, quanto para a execuo. Este guia evidencia, por meio de definies e exemplos, comandos da linguagem VRML, que permitem a modelagem, animao e interao do usurio nestes ambientes virtuais.

Instalao e visualizao
Para visualizar, interagir e navegar em ambientes virtuais criados com VRML necessrio utilizar navegadores Web (browsers) que suportem a linguagem, ou, realizar, a instalao de um plug-in compatvel para a visualizao. Existem vrios plug-ins disponveis, dentre eles o Cortona, um dos mais utilizados recentemente. Este plug-in, desenvolvido pela Parallel Graphics, pode ser baixando gratuitamente pelo site: http://www.parallelgraphics.com/products/cortona/. Aps a instalao do plug-in o navegador Web, ao ler um arquivo .wrl, ir interpretar a sintaxe a ele imposta gerando o ambiente virtual relacionado. O fato de ser interpretado por navegadores garante a portabilidade da linguagem. importante ressaltar que a instalao do plug-in no interfere no funcionamento do sistema, ela apenas atribui a funo de interpretar arquivos no formato VRML.

Arquivos VRML
Um arquivo VRML se caracteriza por uma srie de elementos tpicos, como por exemplo, cabealho, formas, interpoladores, sensores, scripts, rotas, etc. Sendo que o cabealho, composto pela instruo #VRML V2.0 utf8, obrigatrio, e a sua omisso impossibilita o plug-in do navegador de ler o arquivo em questo. Apesar de iniciar com o smbolo #, que determina uma linha comentada, o cabealho de extrema importncia, devendo aparecer sempre na primeira linha do arquivo textual. Os elementos que constituem a linguagem VRML so chamados de ns. A grande diversidade destes ns uma das principais caractersticas e qualidades da linguagem. So 54 ns predefinidos, incluindo primitivas geomtricas, propriedades de aparncia, sons e vrios tipos de ns para agrupamentos. Abaixo segue um exemplo do formato de um arquivo .wrl. Exemplo:
#VRML V2.0 utf8 #Comentrios - Exemplo de um arquivo VRML Shape {appearance Appearance { material Material { diffuseColor 0 0 1 ambientIntensity 0 shininess 0 emissiveColor 0 0 .14 }

Guia de Consulta Rpida VRML, Ezequiel R. Zorzal e Luciano F. Silva

} geometry Sphere { radius 2 } }

Modelagens geomtricas
Inicialmente, em qualquer concepo de um ambiente virtual, gera-se suas formas tridimensionais de maneira esttica, no atribuindo a elas animaes e interaes, preocupando-se apenas com a criao e a transformao destas formas. Shape Permite a criao de formas tridimensionais. No n Shape so definidos dois atributos essenciais para a gerao de uma forma, a sua aparncia e a sua geometria.
Shape { appearance Appearance { Atributos } geometry Objeto { Atributos } }

Elementos Appearance Geometry

Descrio Possibilita a escolha da aparncia de uma forma. Define a geometria da forma.

Appearance Possibilita a escolha da aparncia de uma forma. Sendo que, pode-se optar pelo desenvolvimento do material ou pela utilizao de uma textura. Deve ser inserido dentro do n Shape.
appearance Appearance { Elementos }

Elementos Material Texture TextureTransform

Descrio Permite definir cores, escolher a luminosidade, a transparncia, etc. Adiciona texturas aos objetos virtuais com figuras de extenso GIF, JPEG, PNG ou vdeos no formato MPEG, AVI e SWF. Permite escalonar, rotacionar e transladar as coordenadas da textura.

Material Permite selecionar a opo de desenvolvimento do material, sendo possvel criar cores, escolher a luminosidade, a transparncia, etc. Estas funcionalidades so desempenhadas por alguns parmetros que so usados para determinar a forma como a luz ir refletir sobre os objetos. Deve ser inserido dentro do n appearance. Se os atributos do n material no forem definidos, por padro, os objetos virtuais se apresentaro com a cor branca.
appearance Appearance { material Material { ambientIntensity diffuseColor emissiveColor Shininess specularColor transparency } }

Valor Valor1 Valor2 Valor3 Valor1 Valor2 Valor3 Valor Valor1 Valor2 Valor3 Valor

Parmetros ambientIntensity

Descrio Especifica quanto da luz ambiente um objeto deve refletir.

Guia de Consulta Rpida VRML, Ezequiel R. Zorzal e Luciano F. Silva

diffuseColor

Define a reflexo da luz que estiver incidindo sobre um objeto. Quanto mais diretamente a luz incidir sobre a superfcie do objeto, mais luz ser refletida. Este fator utilizado para dar cores aos objetos, com base no formato RGB (Red, Green, Blue). Ou seja, preenchido um vetor com trs posies, cada uma delas variando de 0 a 1 e representando a quantidade de suas respectivas cores. Usado para representar objetos incandescentes. Define o brilho do objeto. Determina a luminosidade de pontos de reflexo com maior quantidade de luz. Determina o grau de transparncia do objeto, que varia de 0.0 (totalmente opaco) a 1.0 (totalmente transparente).

emissiveColor Shininess specularColor transparency

Exemplo:
#VRML V2.0 utf8 Shape { appearance Appearance { material Material { diffuseColor 0.32 0.54 0.26 specularColor 0.46 0.46 0.46 ambientIntensity 0.0933 shininess 0.51 transparency 0 emissiveColor 0 0 0 } } geometry Box { size 1 1 1 } }

Esta seqncia de cdigo permite a criao do seguinte objeto.

Figura 1 Exemplo: material

Texture Permite cobrir objetos virtuais com figuras de extenso GIF, JPEG, PNG ou vdeos no formato MPEG, AVI e SWF.
appearance Appearance { texture Elemento { Parmetros } }

Elementos ImageTexture MovieTexture PixelTexture

Descrio Permite cobrir objetos virtuais com figuras de extenso GIF, JPEG, PNG. Permite mapear uma textura animada para um objeto. Os formatos suportados so: MPEG, AVI e SWF. Especifica uma imagem, ou atributos de mapeamento da textura.

ImageTexture Permite cobrir objetos virtuais com figuras de extenso GIF, JPEG e PNG.
appearance Appearance { texture ImageTexture { repeatS TRUE|FALSE repeatT TRUE|FALSE url "Caminho" } }

Parmetros

Descrio

Guia de Consulta Rpida VRML, Ezequiel R. Zorzal e Luciano F. Silva

repeatS repeatT url

Se o valor for TRUE, a textura repetida dentro do sistema de coordenadas da textura na vertical, caso contrrio se FALSE. Se o valor for TRUE, a textura repetida dentro do sistema de coordenadas da textura na horizontal, caso contrrio se FALSE. Especifica o caminho da figura a ser utilizada na textura.

Exemplo
#VRML V2.0 utf8 Shape { appearance Appearance { texture ImageTexture { url "Brick.jpg" } } geometry Box { size 1 1 1 } }

Esta seqncia de cdigo permite a criao do seguinte objeto.

Figura 2 Exemplo: ImageTexture

MovieTexture Permite cobrir objetos virtuais com vdeos de extenso MPEG, AVI e SWF.
appearance Appearance { texture MovieTexture { loop TRUE|FALSE repeatS TRUE|FALSE repeatT TRUE|FALSE speed Valor startTime Valor stopTime Valor url "Caminho" } }

Parmetros loop repeatS repeatT speed startTime stopTime url

Descrio Habilita a repetio do filme se o valor for TRUE. Se o valor for TRUE, a textura repetida dentro do sistema de coordenadas da textura na vertical, caso contrrio se FALSE. Se o valor for TRUE, a textura repetida dentro do sistema de coordenadas da textura na horizontal, caso contrrio se FALSE. Controla a velocidade de exibio do filme. Determina o tempo de incio de reproduo dentro do filme. Valor dado em segundos. Determina o tempo do final da reproduo dentro do filme. Valor dado em segundos. Especifica o caminho do vdeo a ser utilizado na textura.

PixelTexture Especifica uma imagem ou atributos de mapeamento da textura.


appearance Appearance { texture PixelTexture { image Valor1 Valor2 Valor3 repeatS TRUE|FALSE repeatT TRUE|FALSE } }

Guia de Consulta Rpida VRML, Ezequiel R. Zorzal e Luciano F. Silva

Parmetros image repeatS repeatT

Descrio Determina o tamanho da imagem e valores de pixel para uma textura. Se o valor for TRUE, a textura repetida dentro do sistema de coordenadas da textura na vertical, caso contrrio se FALSE. Se o valor for TRUE, a textura repetida dentro do sistema de coordenadas da textura na horizontal, caso contrrio se FALSE.

TextureTransform Permite escalonar, rotacionar e transladar as coordenadas da textura.


appearance Appearance { textureTransform TextureTransform { center Valor1 Valor2 rotation Valor scale Valor1 Valor2 translation Valor1 Valor2 } }

Parmetros center rotation scale translation

Descrio Define o centro de translao e rotao. Determina a rotao da textura. Determina a escala da textura na imagem. Permite a translao da textura.

Geometry Define a geometria da forma, tais como: cones, cilindros, caixas, polgonos, etc.
geometry Elemento { Parmetros }

Elementos Box Cone Cylinder ElevationGrid Extrusion IndexedFaceSet IndexedLineSet PointSet Sphere Text

Descrio Cria uma caixa. Desenha um cone. Cria um cilindro. Desenha uma elevao com base em uma grade de pontos. Cria uma forma por meio de extruso. Desenha objetos por meio de faces poligonais. Cria polgonos por meio de linhas. Cria pontos no espao virtual. Desenha uma esfera. Permite escrever um texto.

Box Cria uma caixa.


geometry Box { size Valor1 Valor2 Valor3 }

Parmetro Size

Descrio Vetor de trs posies, contendo respectivamente as dimenses da caixa em X, Y e Z.

Exemplo:
#VRML V2.0 utf8 Shape { appearance Appearance { material Material { diffuseColor 0 0 0 specularColor 0 .92 1 ambientIntensity 0

Guia de Consulta Rpida VRML, Ezequiel R. Zorzal e Luciano F. Silva

shininess .03 emissiveColor 0 0 1 } } geometry Box { size 1.0 1.0 1.0 } }

Cone Desenha um cone.


geometry Cone { bottom bottomRadius height side } TRUE|FALSE Valor Valor TRUE|FALSE

Parmetros bottom bottomRadius height side

Descrio Permite desenhar a parte do fundo do cone, caso o valor seja TRUE. Especifica o raio do cone. Determina a altura do cone. Desenha a parte lateral do cone.

Exemplo:
#VRML V2.0 utf8 Shape { appearance Appearance { material Material { diffuseColor .9 .41 0 ambientIntensity .11 shininess .08 specularColor .1 .1 .1 emissiveColor .1 .04 0 } } geometry Cone { bottom TRUE bottomRadius 2 height 4 side TRUE } }

Esta seqncia de cdigo permite a criao do seguinte objeto.

Figura 3 Exemplo: Cone

Cylinder Cria um cilindro.


geometry Cylinder { bottom TRUE|FALSE height Valor radius Valor

Guia de Consulta Rpida VRML, Ezequiel R. Zorzal e Luciano F. Silva

side top }

TRUE|FALSE TRUE|FALSE

Parmetros bottom height radius side top

Descrio Permite desenhar a parte do fundo do cilindro, caso o valor seja TRUE. Determina a altura do cilindro. Especifica o raio do cilindro. Desenha a parte lateral do cilindro. Desenha a parte superior do cilindro, caso o valor seja TRUE.

Exemplo:
#VRML V2.0 utf8 Shape { appearance Appearance { material Material { diffuseColor 1 .8 0 ambientIntensity 0 shininess 0 emissiveColor .28 .22 0 } } geometry Cylinder { bottom TRUE height 7 radius 2 side TRUE top TRUE } }

Esta seqncia de cdigo permite a criao do seguinte objeto.

Figura 4 Exemplo: Cylinder

ElevationGrid Desenha uma elevao com base em uma grade de pontos.


geometry ElevationGrid creaseAngle color colorPerVertex height normal normalPerVertex solid texCoord xDimension xSpacing zDimension zSpacing } { ccw TRUE|FALSE Valor Parmetros TRUE|FALSE [Valor1, Valor2, ..., ValorN] Parmetros TRUE|FALSE TRUE|FALSE Parmetros Valor Valor Valor Valor

Parmetros ccw

Descrio Define se os pontos da malha esto ordenados no sentindo anti-horrio, TRUE, ou sentido horrio, FALSE. O valor default deste atributo TRUE.

Guia de Consulta Rpida VRML, Ezequiel R. Zorzal e Luciano F. Silva

creaseAngle color colorPerVertex height normal normalPerVertex solid texCoord xDimension xSpacing zDimension zSpacing

Especifica um limiar para o ngulo de encontro entre as faces, caso o ngulo seja maior que o limiar ser formada uma quina, caso contrrio ser forma uma superfcie lisa. Permite criar uma lista contento a cor de cada face. O seu uso opcional, por default este n encontra-se vazio. Define se as cores criadas para cada face sero aplicadas a cada vrtice, causando um o efeito gradiente, TRUE, ou no, FALSE. Determina uma lista contendo valores que especificam a altura de cada ponto da grade. Estes valores so ordenados de acordo com os pontos da grade, que so dispostos da direita para esquerda e de cima para baixo. Permite especificar por vrtice ou por quadriltero as normais para o n ElevationGrid. Caso o campo normal seja NULL o browser gera automaticamente as normais utilizando o campo creaseAngle para determinar a suavizao da superfcie. Determina se as normais criadas sero aplicadas a cada vrtice, caso o seu valor seja TRUE, ou a cada quadriltero, no caso de FALSE. Este campo ser ignorado caso o campo normal seja NULL. Define um objeto slido, TRUE, ou um objeto no slido, FALSE. Esse atributo recebe, por padro, o valor TRUE. Permite aplicar texturas por meio de coordenadas, com o uso do n TextureCoordinate. Define o nmero de pontos da grade no eixo X. Especifica a distncia entre dois pontos adjacentes na direo do eixo X. Define o nmero de pontos da grade no eixo Z. Especifica a distncia entre dois pontos adjacentes na direo do eixo Z.

Exemplo:
#VRML V2.0 utf8 Shape { appearance Appearance { material Material { diffuseColor .32 .54 .26 specularColor .46 .46 .46 ambientIntensity .0933 shininess .51 } } geometry ElevationGrid { xDimension 3 zDimension 3 xSpacing 2 zSpacing 2 height [0.5 0.1 0.3 0.2 2.0 0.2 0.3 0.1 0.5] creaseAngle 1 } }

Esta seqncia de cdigo permite a criao do seguinte objeto.

Figura 5 Exemplo: ElevationGrid

color Permite criar uma lista contento a cor de cada face. O seu uso opcional, por default este n encontra-se vazio.
color Color { color [Valor1, Valor2, ..., ValorN] }

Parmetro color

Descrio Cria uma lista contento a cor de cada face.

Guia de Consulta Rpida VRML, Ezequiel R. Zorzal e Luciano F. Silva

normal Permite especificar por vrtice ou por quadriltero as normais para o n ElevationGrid.
normal Normal { vector [Valor1, Valor2, ..., ValorN] }

Parmetro vector

Descrio Cria uma lista contento o vetor normal de cada face.

TextureCoordinate Define como uma textura aplicada ao IndexedFaceSet e ao ElevationGrid por meio de pontos.
texCoord TextureCoordinate { point [Valor1, Valor2, ..., ValorN] }

Parmetro point

Descrio Define as coordenadas (2D) de aplicao de uma textura.

Extrusion Cria formas por meio de extruso.


geometry Extrusion beginCap ccw convex creaseAngle crossSection endCap orientation scale solid spine } { TRUE|FALSE TRUE|FALSE TRUE|FALSE Valor [Valor1, Valor2, ..., ValorN] TRUE|FALSE Valor1 Valor2 Valor3 Valor4 Valor1 Valor2 TRUE|FALSE [Valor1, Valor2, ..., ValorN]

Parmetros beginCap ccw convex creaseAngle crossSection endCap orientation scale solid spine

Descrio Determina se uma forma aberta, caso o valor seja TRUE, ou fechada, para o valor FALSE. Define se os pontos da malha esto ordenados no sentindo anti-horrio, TRUE, ou sentido horrio, FALSE. Determina se um objeto ser convexo, TRUE, ou cncavo, FALSE. Esse atributo recebe, por padro, o valor TRUE. Especifica um limiar para o ngulo de encontro entre as faces, caso o ngulo seja maior que o limiar ser formada uma quina, caso contrrio ser forma uma superfcie lisa. Determina uma seco 2D sobre a qual ser aplicada a extruso. Especifica se uma forma aberta, TRUE, ou fechada, FALSE.. Define a orientao da extruso em cada ponto. Determina o escalonamento da extruso em cada ponto. Define um objeto slido, TRUE, ou um objeto no slido, FALSE. Esse atributo recebe, por padro, o valor TRUE. Especifica um caminho em 3D que ser percorrido pela seco.

Exemplo:
#VRML V2.0 utf8 Shape { appearance Appearance { material Material { diffuseColor .54 .05 .25 specularColor .81 .77 .75 ambientIntensity .487 shininess .83 } } geometry Extrusion {

Guia de Consulta Rpida VRML, Ezequiel R. Zorzal e Luciano F. Silva

10

ccw FALSE crossSection [0 0, 1 0, 1 1, 0 1, 0 0] spine [-2 2 0, 0 -1 0, 2 2 0] } }

Esta seqncia de cdigo permite a criao do seguinte objeto.

Figura 6 Exemplo: Extrusion

IndexedFaceSet Desenha objetos por meio de faces poligonais.


geometry IndexedFaceSet { ccw TRUE|FALSE creaseAngle Valor color Parmetros colorIndex [Valor1, Valor2, colorPerVertex TRUE|FALSE convex TRUE|FALSE coord Parmetros coordIndex [Valor1, Valor2, normal Parmetros normalIndex [Valor1, Valor2, normalPerVertex TRUE|FALSE texCoord Parmetros solid TRUE|FALSE texCoordIndex [Valor1, Valor2, }

..., ValorN]

..., ValorN] ..., ValorN]

..., ValorN]

Parmetros ccw creaseAngle color colorIndex colorPerVertex convex coord coordIndex normal normalIndex normalPerVertex solid texCoord

Descrio Define se os pontos da malha esto ordenados no sentindo anti-horrio, TRUE, ou sentido horrio, FALSE. O valor default deste atributo TRUE. Especifica um limiar para o ngulo de encontro entre as faces, caso o ngulo seja maior que o limiar ser formada uma quina, caso contrrio ser forma uma superfcie lisa. Permite criar uma lista contento a cor de cada face. O seu uso opcional, por default este n encontra-se vazio. Especifica uma lista contendo os ndices das cores que pintam as faces a serem desenhadas. Caso este campo no seja preenchido as cores sero organizadas de acordo com o coordIndex. Define se as cores criadas para cada face sero aplicadas a cada vrtice, causando um o efeito gradiente, caso o seu valor seja TRUE, ou a cada face, caso o seu valor seja FALSE. Determina se um objeto ser convexo, TRUE, ou cncavo, FALSE. Esse atributo recebe, por padro, o valor TRUE. Determina coordenadas 3D por meio de uma malha de pontos, com o uso do n Coordinate. Define uma lista dos ndices dos vrtices que constituem as faces a serem desenhadas. O valor -1 significa que a face corrente terminou e a prxima comea. Permite especificar por vrtice ou por quadriltero as normais para o n IndexedFaceSet. Caso o campo normal seja NULL o browser gera automaticamente as normais utilizando o campo creaseAngle para determinar a suavizao da superfcie. Define uma lista dos ndices das normais aplicadas as faces a serem desenhadas. Determina se as normais criadas sero aplicadas a cada vrtice, caso o seu valor seja TRUE, ou a cada quadriltero, no caso de FALSE. Este campo ser ignorado caso o campo normal seja NULL. Define um objeto slido, TRUE, ou um objeto no slido, FALSE. Esse atributo recebe, por padro, o valor TRUE. Permite aplicar texturas por meio de coordenadas, com o uso do n TextureCoordinate.

Exemplo:
#VRML V2.0 utf8

Guia de Consulta Rpida VRML, Ezequiel R. Zorzal e Luciano F. Silva

11

Shape { geometry IndexedFaceSet { coord Coordinate { point [ -1 -1 1, 1 -1 1, 1 1 1, -1 1 1, 1 -1 -1, 1 1 -1, -1 1 -1 ] } coordIndex [ 0 1 2 3 -1 2 1 4 5 -1 3 2 5 6 ] convex TRUE ccw TRUE solid FALSE colorPerVertex FALSE color Color { color [ 1 0 0, 0 1 0, 0 0 1 ] } colorIndex [ 0 1 2 ] } }

Esta seqncia de cdigo permite a criao do seguinte objeto.

Figura 7 Exemplo: IndexedFaceSet

color Permite criar uma lista contento a cor de cada face. O seu uso opcional, por default este n encontra-se vazio.
color Color { color [Valor1, Valor2, ..., ValorN] }

Parmetro color

Descrio Cria uma lista contento a cor de cada face.

Coordinate Define uma malha de pontos 3D.


coord } Coordinate { point [Valor1, Valor2, ..., ValorN]

Parmetro point

Descrio Define as coordenadas (3D) de aplicao de uma textura.

normal Permite especificar por vrtice ou por quadriltero as normais para o n ElevationGrid.
Guia de Consulta Rpida VRML, Ezequiel R. Zorzal e Luciano F. Silva

12

normal Normal { vector [Valor1, Valor2, ..., ValorN] }

Parmetro vector

Descrio Cria uma lista contento o vetor normal de cada face.

TextureCoordinate Define como uma textura aplicada ao IndexedFaceSet e ao ElevationGrid por meio de pontos.
texCoord TextureCoordinate { point [Valor1, Valor2, ..., ValorN] }

Parmetro point

Descrio Define as coordenada (2D) de aplicao de uma textura.

IndexedLineSet Cria polgonos por meio de linhas.


geometry IndexedLineSet { color Parmetros colorIndex [Valor1, Valor2, ..., ValorN] colorPerVertex TRUE|FALSE coord Parmetros coordIndex [Valor1, Valor2, ..., ValorN] }

Parmetros color colorIndex colorPerVertex coord coordIndex

Descrio Permite criar uma lista contento a cor de cada face. O seu uso opcional, por default este n encontra-se vazio. Especifica uma lista contendo os ndices das cores que pintam os lados a serem desenhados. Caso este campo no seja preenchido as cores sero organizadas de acordo com o coordIndex. Define se as cores criadas para cada lado sero aplicadas a cada vrtice, causando um o efeito gradiente, caso o seu valor seja TRUE, ou a cada lado, caso o seu valor seja FALSE. Permite determina as coordenadas dos pontos, em 3D, pelos quais ir passar a linha, com o uso do n Coordinate. Define uma lista dos ndices dos vrtices que constituem o polgono a ser desenhado. O valor -1 significa que um lado corrente terminou e comea o prximo.

Exemplo:
#VRML V2.0 utf8 Shape { geometry IndexedLineSet { color Color { color [ 1 0 0, 0 1 0, 0 1 0 ] } colorIndex [ 0 1 2 0 ] colorPerVertex TRUE coord Coordinate { point [ -1 1 0, 1 1 0, -1 -1 0, 1 -1 0 ] } coordIndex [ 0 1 2 3 ] } }

Esta seqncia de cdigo permite a criao do seguinte objeto:


Guia de Consulta Rpida VRML, Ezequiel R. Zorzal e Luciano F. Silva

13

Figura 8 Exemplo: IndexedLineSet

color Permite criar uma lista contento a cor de cada face. O seu uso opcional, por default este n encontra-se vazio.
color Color { color [Valor1, Valor2, ..., ValorN] }

Parmetro color

Descrio Cria uma lista contento a cor de cada face.

Coordinate Define uma malha de pontos 3D.


coord } Coordinate { point [Valor1, Valor2, ..., ValorN]

Parmetro point

Descrio Define as coordenadas (3D) de aplicao de uma textura.

PointSet Cria pontos no espao virtual.


geometry PointSet { color Parmetros coord Parmetros }

Parmetros coord color

Descrio Determina as coordenadas do ponto em 3D, por meio do n Coordinate. Especifica a cor do ponto. O seu uso opcional, por default este n encontra-se vazio.

Exemplo:
#VRML V2.0 utf8 Shape { geometry PointSet { color Color { color [ 0 0 1 ] } coord Coordinate { point [ 0 0 0 ] } } }

color Permite criar uma lista contento a cor de cada face. O seu uso opcional, por default este n encontra-se vazio.
color Color { color [Valor1, Valor2, ..., ValorN]

Guia de Consulta Rpida VRML, Ezequiel R. Zorzal e Luciano F. Silva

14

Parmetro color

Descrio Cria uma lista contento a cor de cada face.

Coordinate Define uma malha de pontos 3D.


coord } Coordinate { point [Valor1, Valor2, ..., ValorN]

Parmetro point

Descrio Define as coordenadas (3D) de aplicao de uma textura.

Sphere Desenha uma esfera.


geometry Sphere { radius Valor }

Parmetro radius

Descrio Especifica o raio da esfera.

Exemplo:
#VRML V2.0 utf8 Shape { appearance Appearance { material Material { diffuseColor .32 .54 .26 specularColor .46 .46 .46 ambientIntensity .0933 shininess .51 } } geometry Sphere { radius 0.75 } }

Esta seqncia de cdigo permite a criao do seguinte objeto:

Figura 9 Exemplo: Sphere

Text Permite escrever um texto.


geometry Text { fontStyle Parmetros length [Valor1, Valor2, ..., ValorN] maxExtent Valor string [Valor1, Valor2, ..., ValorN] }

Parmetros

Descrio

Guia de Consulta Rpida VRML, Ezequiel R. Zorzal e Luciano F. Silva

15

fontStyle length maxExtent string

Determina a fonte do texto, ou seja, como o texto ser apresentado. Cria uma lista de valores que especifica o comprimento de cada string. Limita o comprimento do campo string. Define o texto que ser exibido pelo browser. Este texto pode aparecer em uma ou mais linhas, sendo que no caso de mltiplas linhas cada string impressa em uma linha.

FontStyle Permite determinar a fonte do texto, ou seja, como o texto ser apresentado.
FontStyle { family horizontal justify language leftToRight size spacing style topToBottom } "SERIF|SANS|TYPEWRITER" TRUE|FALSE "BEGIN|FIRST|MIDDLE|END" "Descrio" TRUE|FALSE Valor Valor "PLAIN|BOLD|ITALIC|BOLDITALIC" TRUE|FALSE

Parmetros family horizontal justify language leftToRight size spacing style topToBottom

Descrio Especifica a famlia da fonte do texto. Podendo ser SERIF, SANS ou TYPEWRITER. Define se o texto aparecer horizontalmente, caso o seu valor seja TRUE, ou verticalmente, caso o seu valor seja FALSE. Determina o alinhamento do texto. Podendo ser FIRST ou BEGIN, alinhamento esquerda, MIDDLE, centralizado, ou END, alinhamento direita. Por default o texto alinhado a esquerda. Especifica um conjunto de caracteres. Por exemplo, en para um conjunto de caracteres do idioma ingls, zh para um conjunto chins, etc. Determina se o texto ser apresentado da esquerda para a direita, caso o seu valor seja TRUE, ou da direita para a esquerda, caso o seu valor seja FALSE. Define o tamanho do carter. Determina o tamanho do espaamento entre linhas. Determina o estilo da fonte do texto. Podendo ser PLAIN, BOLD, ITALIC ou BOLDITALIC. Define se o texto ser apresentado de cima para baixo, caso o seu valor seja TRUE, ou de baixo para cima, caso o seu valor seja FALSE.

Exemplo:
#VRML V2.0 utf8 Shape { appearance Appearance { material Material {} } geometry Text { string [ "VRML","Realidade Virtual" ] fontStyle FontStyle { family "SANS" justify "MIDDLE" style "bold" size 0.75 spacing 1.5 } } }

Agrupamentos e suas funcionalidades


Um importante artifcio da linguagem VRML permitir o agrupamento de vrios ns. Por meio deste agrupamento podese, por exemplo, colocar sensores ou aplicar transformaes geomtricas em um conjunto de objetos ao mesmo tempo, detectar colises, etc.
Guia de Consulta Rpida VRML, Ezequiel R. Zorzal e Luciano F. Silva

16

Anchor Permite agrupar um conjunto de objetos aos quais ser conectada uma ligao para uma url. Quando um destes objetos clicado a url ser buscada pelo browser.
Anchor { bboxCenter bboxSize children description parameter url } Valor1 Valor2 Valor3 Valor1 Valor2 Valor3 [Elementos do Grupo] "Descrio" "Descrio" "Caminho"

Parmetros bboxCenter bboxSize children description parameter url

Descrio Especifica o centro de uma caixa que conter o conjunto de objetos ancorados. O valor deste campo preenchido por um ponto 3D que por default recebe os valores de 0 0 0. Determina as dimenses da caixa que conter o conjunto de objetos ancorados. O seu valor default -1 -1 -1, que indica a inexistncia da caixa. Define um campo onde devem ser includos os objetos a serem ancorados. Especifica uma descrio textual para o url. Ela aparecer apenas quando o mouse estiver sobre os objetos ancorados. Permite fornecer informao adicional para o browser, como por exemplo, se a url ser aberta em uma nova janela ou no. Especifica uma string contendo a url a ser buscada pelo browser.

Exemplo:
#VRML V2.0 utf8 Anchor { children [ Shape { appearance Appearance { material Material {} } geometry Sphere {} } ] url "http://www.novateceditora.com.br" description "Novatec" parameter ["target=my_frame"] }

Billboard Permite agrupar ns e escolher o eixo de rotao para o agrupamento.


Billboard { axisOfRotation bboxCenter bboxSize children } Valor1 Valor2 Valor1 Valor2 Valor1 Valor2 [Elementos do Valor3 Valor3 Valor3 Grupo]

Parmetros axisOfRotation bboxCenter bboxSize children

Descrio Especifica um vetor 3D que ser usado para a rotao. Especifica o centro de uma caixa que conter o conjunto de ns agrupados. O valor deste campo preenchido por um ponto 3D que por default recebe os valores de 0 0 0. Determina as dimenses da caixa que conter o conjunto de ns. O seu valor default -1 -1 -1, que indica a inexistncia da caixa. Define um campo onde devem ser includos os ns a serem agrupados.

Exemplo:
#VRML V2.0 utf8 Billboard { axisOfRotation 1.0 0.0 0.0 children [

Guia de Consulta Rpida VRML, Ezequiel R. Zorzal e Luciano F. Silva

17

Shape{ appearance Appearance { material Material {} } geometry Cone {} } ] }

Collision Permite agrupar objetos virtuais e detectar colises entre o usurio e estes objetos.
Collision { bboxCenter bboxSize children collide proxy } Valor1 Valor2 Valor3 Valor1 Valor2 Valor3 [Elementos do Grupo] TRUE|FALSE Forma

Parmetros bboxCenter bboxSize children collide proxy

Descrio Especifica o centro de uma caixa que conter o conjunto de objetos agrupados. O valor deste campo preenchido por um ponto 3D que por default recebe os valores de 0 0 0. Determina as dimenses da caixa que conter o conjunto de objetos agrupados coliso. O seu valor default -1 -1 -1, que indica a inexistncia da caixa. Define um campo onde devem ser includos os objetos aos quais ser verificada a coliso. Especifica se os objetos agrupados sero utilizados para verificao de coliso, TRUE, ou no, FALSE. Permite especificar uma representao geomtrica alternativa para verificar a descoberta de colises. Caso no seja declarada nenhuma geometria ser utilizada uma caixa com as dimenses do usurio.

Exemplo:
#VRML V2.0 utf8 DEF Colisao Collision { children [ Sound { source DEF Som AudioClip { loop FALSE pitch 1.0 url "som.wav" } } Shape { appearance Appearance { material Material {} } geometry Sphere {} } ] } ROUTE Colisao.collideTime TO Som.set_startTime

Group Permite agrupar um conjunto de ns.


Group { bboxCenter bboxSize children } Valor1 Valor2 Valor3 Valor1 Valor2 Valor3 [Elementos do Grupo]

Parmetros bboxCenter bboxSize

Descrio Especifica o centro de uma caixa que conter o conjunto de ns agrupados. O valor deste campo preenchido por um ponto 3D que por default recebe os valores de 0 0 0. Determina as dimenses da caixa que conter o conjunto de ns. O seu valor default -1 -1 -1, que indica a inexistncia da caixa.

Guia de Consulta Rpida VRML, Ezequiel R. Zorzal e Luciano F. Silva

18

children

Define um campo onde devem ser includos os ns a serem agrupados.

Exemplo:
#VRML V2.0 utf8 Group { children [ Shape { appearance Appearance {} geometry Sphere {} } Shape { appearance Appearance {} geometry Cone {} } ] }

Switch Permite agrupar objetos e optar se eles iro aparecer no cenrio naquele momento ou no.
Switch { choice [Elementos do Grupo] whichChoice Valor }

Parmetros choice whichChoice

Descrio Define um campo onde devem ser includos os objetos a serem agrupados. Determina se os objetos agrupados aparecero, caso seu valor seja 0, ou no, caso seu valor seja -1.

Exemplo:
#VRML V2.0 utf8 Switch { whichChoice -1 choice [ Shape { appearance Appearance { material Material {} } geometry Sphere {} } ] }

Transform Permite agrupar ns e realizar transformaes geomtricas, como rotao, escalonamento e translao, em um conjunto de objetos virtuais.
Transform { bboxCenter bboxSize center children rotation scale scaleOrientation translation } Valor1 Valor2 Valor3 Valor1 Valor2 Valor3 Valor1 Valor2 Valor3 [Elementos do Grupo] Valor1 Valor2 Valor3 Valor4 Valor1 Valor2 Valor3 Valor1 Valor2 Valor3 Valor4 Valor1 Valor2 Valor3

Parmetros bboxCenter bboxSize

Descrio Especifica o centro de uma caixa que conter o conjunto de ns agrupados. O valor deste campo preenchido por um ponto 3D que por default recebe os valores de 0 0 0. Determina as dimenses da caixa que conter o conjunto de ns. O seu valor default -1 -1 -1, que indica a inexistncia da caixa.

Guia de Consulta Rpida VRML, Ezequiel R. Zorzal e Luciano F. Silva

19

center children rotation scale scaleOrientation translation

Especifica um vetor de trs posies contendo o centro de rotao e translao do conjunto de ns agrupados. O seu valor default 0 0 0. Define um campo onde devem ser includos os ns a serem agrupados. Define um vetor de quatro posies que permite realizar rotaes em um grupo de objetos virtuais. As trs primeiras posies especificam o eixo de rotao e a quarta posio contm o valor do ngulo de rotao em radianos. Determina um vetor de trs posies contendo, respectivamente, os fatores de escalonamento em X,Y e Z, do conjunto de ns agrupados. Define um vetor de quatro posies que permite realizar uma rotao dos eixos para a operao de escalonamento. Determina um vetor de trs posies contendo, respectivamente, a medida da translao em X,Y e Z, a ser realizada no conjunto de ns agrupados. O seu valor default 0 0 0.

Exemplo:
#VRML V2.0 utf8 Transform { translation 0 2 0 rotation 0 0 1 1.57 scale 1 2 1 children [ Shape { appearance Appearance { material Material { diffuseColor .23 .39 .19 specularColor .2 .3 .29 ambientIntensity .06 shininess .39 } } geometry Sphere { radius 0.75 } } Shape { appearance Appearance { material Material { diffuseColor .8 .51 .09 specularColor .92 .43 .01 ambientIntensity .117 shininess .4 } } geometry Cylinder { radius 0.25 } } ] }

Esta seqncia de cdigo permite a criao do seguinte objeto:

Figura 10 Exemplo: Transform

Escolhendo o plano de fundo


O ambiente virtual totalmente circundado por um plano de fundo, que encontra-se inicialmente na cor preta, no entanto sua aparncia pode ser escolhida pelo usurio, e o sucesso desta escolha esta diretamente ligado qualidade de todo o ambiente virtual.

Guia de Consulta Rpida VRML, Ezequiel R. Zorzal e Luciano F. Silva

20

Background Permite a escolha da aparncia do plano de fundo.


Background { backUrl bottomUrl frontUrl groundAngle groundColor leftUrl rightUrl skyColor skyAngle topUrl } "Caminho" "Caminho" "Caminho" [Valor1, Valor2, [Valor1, Valor2, "Caminho" "Caminho" [Valor1, Valor2, [Valor1, Valor2, "Caminho"

..., ValorN] ..., ValorN]

..., ValorN] ..., ValorN]

Parmetros backUrl bottomUrl frontUrl groundAngle groundColor leftUrl rightUrl skyColor skyAngle topUrl

Descrio Possibilita utilizar uma imagem como plano de fundo na parte que se encontra atrs do usurio no ambiente virtual. Possibilita utilizar uma imagem como plano de fundo na parte que se encontra abaixo do usurio no ambiente virtual. Permite utilizar uma imagem como plano de fundo na parte que se encontra a frente do usurio no ambiente virtual. Determina fatores de efeito gradiente para serem aplicados s cores definidas no campo groundColor. Considera o ambiente virtual circundado por uma esfera, e permite escolher uma ou mais cores para a metade inferior desta esfera. Permite utilizar uma imagem como plano de fundo na parte que se encontra a esquerda do usurio no ambiente virtual. Possibilita utilizar uma imagem como plano de fundo na parte que se encontra a direita do usurio no ambiente virtual. Considera o ambiente virtual circundado por uma esfera, e permite escolher uma ou mais cores para a metade superior desta esfera. Determina fatores de efeito gradiente para serem aplicados s cores definidas no campo skyColor. Permite utilizar uma imagem como plano de fundo na parte que se encontra acima do usurio no ambiente virtual.

Exemplo:
#VRML V2.0 utf8 Background { skyColor[ 0 .2 .8, .3 .5 .6, .9 .9 .8 ] skyAngle [ 1.309, 1.571 ] }

Esta seqncia de cdigo permite a criao do seguinte plano de fundo:

Figura 11 Exemplo: Background

Definindo a atmosfera do ambiente virtual


A linguagem VRML nos permite definir como ser a atmosfera do espao virtual, por meio da criao de uma nevoa no ambiente. Existem diferentes tipos de nevoas que podem colaborar para o realismo do ambiente. Fog Permite criar uma nevoa.
Fog { color Valor1 Valor2 Valor3 fogType "LINEAR|EXPONENTIAL" visibilityRange Valor

Guia de Consulta Rpida VRML, Ezequiel R. Zorzal e Luciano F. Silva

21

Parmetros color fogType

Descrio Especifica a cor da nevoa. Determina como a densidade da nvoa aumenta com a distncia. Os valores permitidos so "LINEAR" e "EXPONENTIAL". A nvoa "LINEAR" aumenta linearmente com a distncia, isto prov algum grau de percepo de profundidade, porm a nvoa "EXPONENTIAL" prov resultados mais realsticos. Define uma distncia qual os objetos so totalmente obscurecidos pela nvoa. O valor 0 indica que no haver nvoa.

visibilityRange

Exemplo:
#VRML V2.0 utf8 Fog { color 0 1 1 fogType "EXPONENTIAL" visibilityRange 50 } Shape { appearance Appearance { material Material {} } geometry Sphere {} }

Definio e Reutilizao de Objetos e Atributos


Uma importante caracterstica da linguagem VRML permitir a definio de objetos e atributos internos, ou seja, possvel nome-los. Aps feita esta definio abre-se a possibilidade de reutilizar estes objetos, ou atributos, sem a necessidade de recri-los. Pode-se tambm reutilizar objetos .wrl externos a um determinado arquivo VRML, por meio de url. Esta definio e reutilizao de objetos e atributos, alm de tornar a programao mais prtica, ainda contribui para a criao de arquivos pequenos, e consequentemente facilita o compartilhamento destes arquivos via Web. DEF Permite definir e nomear objetos ou atributos.
DEF nome objeto

Exemplo:
#VRML V2.0 utf8 DEF cubo Shape { geometry Box {} }

USE Permite reutilizar os objetos ou atributos predefinidos.


USE nome

Exemplo:
#VRML V2.0 utf8 DEF cubo Shape { geometry Box {} } Transform { translation 2 0 0 children [ USE cubo ] }

Inline

Guia de Consulta Rpida VRML, Ezequiel R. Zorzal e Luciano F. Silva

22

Permite utilizar um arquivo .wrl externo sem a necessidade de recri-lo internamente, ou seja, em suma o comando Inline possibilita incluir um arquivo VRML dentro de outro arquivo VRML.
Inline { bboxCenter Valor1 Valor2 Valor3 bboxSize Valor1 Valor2 Valor3 url "Caminho" }

Parmetros bboxCenter bboxSize url

Descrio Especifica o centro de uma caixa que conter o conjunto de ns agrupados. O valor deste campo preenchido por um ponto 3D que por default recebe os valores de 0 0 0. Determina as dimenses da caixa que conter o conjunto de ns. O seu valor default -1 -1 -1, que indica a inexistncia da caixa. Define o endereo do arquivo VRML a ser incluso.

Exemplo:
#VRML V2.0 utf8 Inline { url "Arquivo.wrl" }

Iluminao
Os navegadores Web, que interpretam a linguagem VRML, predispem de um determinado tipo de iluminao que acompanha a cmera do usurio, conhecida como Headlight. No entanto, possvel determinar novos tipos de iluminao, que contribuem significativamente para a qualidade e o realismo do ambiente virtual. DirectionalLight Cria uma luz cujos seus raios so gerados paralelamente direo de um determinado vetor, conforme a Figura 12. importante destacar que para os efeitos desta luz aparecerem sobre objetos virtuais, estes devem estar agrupados junto ao n DirectionalLight.
DirectionalLight { ambientIntensity color direction intensity on } Valor Valor1 Valor2 Valor3 Valor1 Valor2 Valor3 Valor TRUE|FALSE

Parmetros ambientIntensity color direction intensity on

Descrio Especifica o quanto a luz influencia na iluminao do ambiente. O seu valor varia entre 0 e 1. Define a cor da luz, por meio de um vetor de trs posies no padro RGB. Determina o vetor 3D ao qual os raios luminosos sero paralelos. Determina a intensidade da luz. Seu valor varia entre 0 e 1, sendo quanto maior o seu valor mais forte ser a luz. Especifica se a luz est ativa, caso o seu valor seja TRUE, ou inativa, caso seu valor seja FALSE.

Exemplo:
#VRML V2.0 utf8 Group { children [ Shape { appearance Appearance { material Material {} } geometry Sphere {} } DirectionalLight { color 0 1 1 on TRUE

Guia de Consulta Rpida VRML, Ezequiel R. Zorzal e Luciano F. Silva

23

direction 1 0 0 } ] }

Figura 12 Modelo de iluminao DirectionalLight

PointLight Define uma fonte luminosa em um ponto especfico do ambiente virtual. Os raios desta fonte incidem em todas as direes do ambiente.
PointLight { ambientIntensity attenuation color intensity location radius on } Valor Valor1 Valor2 Valor3 Valor1 Valor2 Valor3 Valor Valor1 Valor2 Valor3 Valor TRUE|FALSE

Parmetros ambientIntensity attenuation color intensity location radius on

Descrio Especifica o quanto a luz influencia na iluminao do ambiente. O seu valor varia entre 0 e 1. Determina um vetor de trs posies contendo, respectivamente, a intensidade em X, Y e Z. Define a cor da luz, por meio de um vetor de trs posies no padro RGB. Determina a intensidade da luz. Seu valor varia entre 0 e 1, sendo quanto maior o seu valor mais forte ser a luz. Especifica a localizao da fonte de luz no ambiente, por meio de uma coordenada 3D. Define a distncia mxima de alcance dos raios luminosos. Especifica se a luz est ativa, se caso o seu valor for TRUE, ou inativa, caso seu valor seja FALSE.

Exemplo:
#VRML V2.0 utf8 PointLight { location 0 0 0 radius 5 color 1 0 0 } Transform { translation 4 0 0 children [ DEF Esfera Shape { appearance Appearance { material Material {} } geometry Sphere { radius 0.5 } } ] } Transform { translation -4 0 0 children [ USE Esfera ]

Guia de Consulta Rpida VRML, Ezequiel R. Zorzal e Luciano F. Silva

24

} Transform { translation 0 4 0 children [ USE Esfera ] } Transform { translation 0 -4 0 children [ USE Esfera ] } Transform { translation 0 0 -4 children [ USE Esfera ] }

SpotLight Define uma fonte de luz em um local especfico. Seus raios so propagados com direo e sentido predefinido. O conjunto de raios transmitido no formato de um cone, sendo que a fonte luminosa encontra-se na ponta deste cone, conforme a Figura 13.
SpotLight { ambientIntensity attenuation beamWidth color cutOffAngle direction intensity location on radius } Valor Valor1 Valor2 Valor Valor1 Valor2 Valor Valor1 Valor2 Valor Valor1 Valor2 TRUE|FALSE Valor

Valor3 Valor3 Valor3 Valor3

Parmetros ambientIntensity attenuation beamWidth color cutOffAngle direction intensity location radius on

Descrio Especifica o quanto a luz influencia na iluminao do ambiente. O seu valor varia entre 0 e 1. Determina um vetor de trs posies contendo, respectivamente, a intensidade em X, Y e Z. Especifica o ngulo entre as geratrizes contidas na seco meridiana de um cone a ser formado por raios de luz de maior intensidade. Seu valor varia entre 0 e180, sendo que deve ser inserido em radianos. Define a cor da luz, por meio de um vetor de trs posies no padro RGB. Especifica o ngulo entre as geratrizes contidas na seco meridiana do cone formado pelos raios de luz, ou seja, ngulo mximo de sua abertura. Seu valor varia entre 0 e180, sendo que deve ser inserido em radianos. Define a direo e o sentido que ser propagada, por meio de um vetor 3D. Determina a intensidade da luz. Seu valor varia entre 0 e 1, sendo quanto maior o seu valor mais forte ser a luz. Especifica a localizao da fonte de luz no ambiente, por meio de uma coordenada 3D. Define a distncia mxima de alcance dos raios luminosos. Especifica se a luz est ativa, se caso o seu valor for TRUE, ou inativa, caso seu valor seja FALSE.

Exemplo:
#VRML V2.0 utf8 SpotLight { location 0 0 0 radius 5.25 color 1 0 0 direction 0 0 -1 cutOffAngle 0.25 }

Guia de Consulta Rpida VRML, Ezequiel R. Zorzal e Luciano F. Silva

25

DEF T0 Transform { children [ Transform { translation 0 0 -4 children [ DEF Esfera Shape { appearance Appearance { material Material {} } geometry Sphere { radius 0.25 } } ] } Transform { translation -1 0 -4 children [ USE Esfera ] } Transform { translation 1 0 -4 children [ USE Esfera ] } ] } Transform { translation 0 -1 0 children [ USE T0 ] } Transform { translation 0 1 0 children [ USE T0 ] }

Figura 13 Modelo de iluminao SpotLight

Gerando efeitos sonoros


O VRML no apenas suporta grficos tridimensionais como tambm permite a utilizao de sons em 3D. Sound Especifica a localizao e as propriedades espaciais de uma fonte de som.
Sound { direction intensity location Valor1 Valor2 Valor3 Valor Valor1 Valor2 Valor3

Guia de Consulta Rpida VRML, Ezequiel R. Zorzal e Luciano F. Silva

26

maxBack maxFront minBack minFront priority source spatialize }

Valor Valor Valor Valor Valor Parmetros TRUE|FALSE

Parmetros direction intensity location maxBack maxFront minBack minFront priority source spatialize

Descrio Define a direo e o sentido que o som ser propagado, por meio de um vetor 3D. Define o volume do som, deve estar entre 0 e 1, se o valor for prximo 0 o volume abaixa, caso contrrio, o volume aumenta. Especifica a localizao da fonte de som na coordenada 3D. Determina a distncia mxima que o som vai se propagar no ambiente. Define a distncia mxima que o som vai se propagar no ambiente. Especifica a distncia mnima que o som vai se propagar no ambiente. Determina a distncia mnima que o som vai se propagar no ambiente. Define a prioridade de execuo do som. Esse atributo s ser usado caso exista outros sons no ambiente. Deve receber um valor entre 0 e 1, sendo que, quanto maior esse valor, maior a sua prioridade. Especifica o uso do n AudioClip, para sons no formato wave, wma, mp3 e midi, ou o uso do n MovieTexture, para a execuo de um som no formato mpeg. Indica se o som deve ser tratado como som 3D (TRUE) ou como som ambiente (FALSE).

AudioClip Especifica a localizao e as propriedades espaciais de uma fonte de som.


source AudioClip { description loop pitch startTime stopTime url } "Descrio" TRUE|FALSE Valor Valor Valor "Caminho"

Parmetros description loop pitch startTime stopTime url

Descrio Permite a descrio do som por meio de uma cadeia de caracteres. Habilita a repetio do som se o valor for TRUE. Especifica a velocidade em que o som ir reproduzir. Determina o tempo de inicio de reproduo do som. Valor dado em segundos. Determina o tempo final de reproduo do som. Valor dado em segundos. Especifica o caminho do som a ser utilizado. Pode ser no formato wave, wma, mp3 e midi.

Exemplo:
#VRML V2.0 utf8 Group { children [ Sound { source AudioClip { url "Beatle21.wav" loop TRUE startTime 1 } spatialize TRUE intensity 1.0 location 0.0 0.0 0.0 minBack 1 maxBack 10 minFront 1 maxFront 10

Guia de Consulta Rpida VRML, Ezequiel R. Zorzal e Luciano F. Silva

27

priority 0 } Shape { appearance Appearance { material Material {} } geometry Sphere{ radius 0.5 } } ] }

Animao e interao nos ambientes criados


Apenas o desenvolvimento de um ambiente esttico com formas modeladas tridimensionalmente no o caracteriza como um ambientes em realidade virtual. O principal diferencial entre as verses 1.0 e 2.0 da linguagem VRML a possibilidade de inserir animaes e interaes nos ambientes criados. Sendo assim, a criao da verso 2.0 da linguagem VRML, no ano 1997, colocou um marco no desenvolvimento de ambientes compartilhados via Web. Pois foi aberta a possibilidade de criar no somente modelagens em 3D, mas sim a criao de ambientes em realidade virtual, a forma mais avanada de interao entre homem e mquina.

Colocando sensores
Os sensores so colocados no ambiente virtual para permitir formas diversas de interao, como, por exemplo, movimentar objetos, criar tempos de animao, disparar estes tempos por meio de toques, etc. CylinderSensor Este sensor mapeia os movimentos do mouse no formato cilndrico em torno do eixo Y e permite rotacionar objetos. Para aplicar o sensor em um objeto especfico deve-se agrup-los. Para selecionar quais objetos sero rotacionados deve-se utilizar rotas, que sero descritas posteriormente.
CylinderSensor{ autoOffset diskAngle enabled maxAngle minAngle offset } TRUE|FALSE Valor TRUE|FALSE Valor Valor Valor

Parmetros autoOffset diskAngle

Descrio Determina se a cada uso do sensor, ou seja, a cada clique do mouse sobre um objeto com sensor, este objeto voltar para a sua posio inicial, FALSE, ou no, TRUE. Define um ngulo entre o eixo Y e um vetor imaginrio. O cilindro invisvel tratado como um disco colocado paralelamente a este vetor. Caso vetor esteja na direo do usurio a rotao ser realizada por meio de movimentos do mouse de um lado a outro da tela, caso contrrio a rotao ser realizada por movimentos circulares do mouse. Especifica se o sensor iniciar habilitado, TRUE, ou no, FALSE. Especifica, em radianos, o valor mximo de rotao. Especifica, em radianos, o valor mnimo de rotao. Determina uma rotao inicial para o sensor.

enabled maxAngle minAngle offset

Exemplo:
#VRML V2.0 utf8 Group { children [ Shape { appearance Appearance { material Material {}

Guia de Consulta Rpida VRML, Ezequiel R. Zorzal e Luciano F. Silva

28

} geometry Box {} } DEF Sensor CylinderSensor { autoOffset FALSE diskAngle 1 enabled TRUE minAngle 0.50 maxAngle 5.00 offset 1 } ] }

PlaneSensor Este sensor mapeia os movimentos do mouse no plano XY e permite transladar objetos. Para aplicar o sensor em um objeto especfico deve-se agrup-los. Para selecionar quais objetos sero transladados deve-se utilizar rotas, que sero descritas posteriormente.
PlaneSensor { autoOffset enabled maxPosition minPosition offset } TRUE|FALSE TRUE|FALSE Valor1 Valor2 Valor1 Valor2 Valor1 Valor2 Valor3

Parmetros autoOffset enabled maxPosition minPosition offset

Descrio Determina se a cada uso do sensor, ou seja, a cada clique do mouse sobre um objeto com sensor, este objeto voltar para a sua posio inicial, FALSE, ou no, TRUE. Especifica se o sensor iniciar habilitado, TRUE, ou no, FALSE. Especifica o valor mximo de translao respectivamente em X e Y. Especifica o valor mnimo de translao respectivamente em X e Y. Determina uma posio inicial para o sensor.

Exemplo:
#VRML V2.0 utf8 Group { children [ DEF esfera Transform { children [ Shape { appearance Appearance { material Material {} } geometry Sphere {} } ] } DEF Sensor PlaneSensor { enabled TRUE autoOffset TRUE minPosition -5 -3 maxPosition 5 3 } ] }

ProximitySensor

Guia de Consulta Rpida VRML, Ezequiel R. Zorzal e Luciano F. Silva

29

Este sensor cria uma caixa invisvel e gera um evento, ou seja, o sensor disparado toda vez que o usurio entra nesta caixa. Para utilizar o evento gerado em alguma funcionalidade especfica, como, por exemplo, ligar uma luz, deve-se utilizar rotas, que sero descritas posteriormente.
ProximitySensor{ center Valor1 Valor2 Valor3 enabled TRUE|FALSE size Valor1 Valor2 Valor3 }

Parmetros center enabled size

Descrio Especifica o centro da caixa invisvel. O valor deste campo preenchido por um ponto 3D que por default recebe os valores de 0 0 0. Especifica se o sensor iniciar habilitado, TRUE, ou no, FALSE. Determina as dimenses da caixa que conter o conjunto de ns. O seu valor default -1 -1 -1, que indica a inexistncia da caixa.

Exemplo:
#VRML V2.0 utf8 DEF Sensor ProximitySensor{ size 1 1 1 }

SphereSensor Este sensor mapeia os movimentos do mouse no formato de uma esfera e permite rotacionar objetos em torno de um ponto no espao tridimensional. Para aplicar o sensor em um objeto especfico deve-se agrup-los. Para selecionar quais objetos sero rotacionados deve-se utilizar rotas, que sero descritas posteriormente.
SphereSensor { autoOffset enabled offset } TRUE|FALSE TRUE|FALSE Valor1 Valor2 Valor3 Valor4

Parmetros autoOffset enabled offset

Descrio Determina se a cada uso do sensor, ou seja, a cada clique do mouse sobre um objeto com sensor, este objeto voltar para a sua posio inicial, FALSE, ou no, TRUE. Especifica se o sensor iniciar habilitado, TRUE, ou no, FALSE. Determina o eixo e a rotao inicial do sensor.

Exemplo:
#VRML V2.0 utf8 Group { children [ DEF esfera Transform { children [ Shape { appearance Appearance { material Material {} } geometry Cylinder {} } ] } DEF Sensor SphereSensor { enabled TRUE autoOffset TRUE } ] }

TimeSensor

Guia de Consulta Rpida VRML, Ezequiel R. Zorzal e Luciano F. Silva

30

Permite a criao de um relgio que gera eventos com o passar do tempo. Estes eventos podem, por exemplo, ser usados para executar animaes.
TimeSensor { cycleInterval enabled loop startTime stopTime } Valor TRUE|FALSE TRUE|FALSE Valor Valor

Parmetros cycleInterval enabled loop startTime stopTime

Descrio Especifica o nmero de segundos em que sero gerados eventos. Especifica se o tempo ser iniciado automaticamente, para o valor TRUE, ou no, para FALSE. Por default este valor FALSE. Habilita a repetio do tempo caso o seu valor seja TRUE. Determina quando o tempo iniciar. Valor dado em segundos. Determina quando o tempo ser finalizado. Valor dado em segundos.

Exemplo:
#VRML V2.0 utf8 TimeSensor { cycleInterval 5 enabled FALSE loop TRUE }

TouchSensor Este sensor mapeia se o cursor do mouse esta sobre algum objeto especfico, ou se o usurio clicou neste objeto. Para aplicar o sensor em um objeto especfico deve-se agrup-los. Para utilizar o toque do mouse em alguma funcionalidade especfica, como, por exemplo, iniciar um som, ligar uma luz, etc, deve-se utilizar rotas, que sero descritas posteriormente.
TouchSensor { enabled TRUE|FALSE }

Parmetro enabled

Descrio Especifica se o sensor iniciar habilitado, TRUE, ou no, FALSE.

Exemplo:
#VRML V2.0 utf8 Group { children [ DEF esfera Transform { children [ Shape { appearance Appearance { material Material {} } geometry Sphere {} } ] } DEF Sensor TouchSensor {} ] }

VisibilitySensor

Guia de Consulta Rpida VRML, Ezequiel R. Zorzal e Luciano F. Silva

31

Este sensor cria uma caixa invisvel e gera um evento, ou seja, o sensor disparado toda vez que esta caixa torna-se visvel para o usurio. Para utilizar o evento gerado em alguma funcionalidade especfica, como, por exemplo, iniciar um som, deve-se utilizar rotas, que sero descritas posteriormente.
VisibilitySensor { center Valor1 Valor2 Valor3 enabled TRUE|FALSE size Valor1 Valor2 Valor3 }

Parmetros center enabled size

Descrio Especifica o centro da caixa invisvel. O valor deste campo preenchido por um ponto 3D que por default recebe os valores de 0 0 0. Especifica se o sensor iniciar habilitado, TRUE, ou no, FALSE. Determina as dimenses da caixa que conter o conjunto de ns. O seu valor default -1 -1 -1, que indica a inexistncia da caixa.

Exemplo:
#VRML V2.0 utf8 DEF Sensor VisibilitySensor { size 1 1 1 }

Criando rotas
Uma importante caracterstica dos ns VRML que eles podem enviar e receber eventos. A criao de rotas um modo simples de definir um caminho entre um evento gerado por um n e um outro n que receber este evento. ROUTE Cria uma rota. Este comando obedece a seguinte sintaxe:
ROUTE Node.eventOut TO Node.eventIn

Onde eventOut um evento de sada ou enviado e eventIn um evento de entrada ou a ser recebido.

Criando interpoladores
A linguagem VRML possui um conjunto de ns denominados interpoladores, estes ns permitem definir chaves (key), variando de 0 a 1, que associam-se a valores (keyValue). O tipo destes valores, por exemplo, um nmero ou um vetor de trs posies, depende do tipo de interpolador que se est usando. Apesar dos interpoladores tratarem diferentes tipos de dados, seus campos e eventos so iguais para todo interpolador, s o tipo de valores varia. Por meio de rotas, as chaves so associadas a um tempo, passando a representar propores deste tempo. Em resumo os interpoladores formam chaves de tempo que mediam a execuo de determinados valores. Ao associar os interpoladores a objetos, estes valores podem alterar algumas de suas propriedades como posio, cor, rotao, etc. ColorInterpolator Cria um interpolador que permite incrementar uma lista de valores RGB no campo keyValue. Estes valores so utilizados para modificar parmetros de cor do campo Material como diffuseColor, emissiveColor e specularColor.
ColorInterpolator { key [Valor1, Valor2, ..., ValorN] keyValue[Valor1, Valor2, ..., ValorN] }

Exemplo:
#VRML V2.0 utf8 Shape { appearance Appearance { material DEF Cor Material {} } geometry Sphere {}

Guia de Consulta Rpida VRML, Ezequiel R. Zorzal e Luciano F. Silva

32

} DEF Interpolador ColorInterpolator { key [0 0.5 1 ] keyValue[1 0 0, 0 1 0, 0 0 1 ] } DEF Tempo TimeSensor { cycleInterval 2 loop TRUE enabled TRUE } ROUTE Tempo.fraction_changed TO Interpolador.set_fraction ROUTE Interpolador.value_changed TO Cor.diffuseColor

CoordinateInterpolator Cria um interpolador que permite incrementar uma lista de coordenadas 3D no campo keyValue. Estes valores so utilizados para modificar o parmetro Coordinate dos ns IndexedFaceSet, IndexedLineSet e PointSet.
CoordinateInterpolator { key [Valor1, Valor2, ..., ValorN] keyValue[Valor1, Valor2, ..., ValorN] }

Exemplo:
#VRML V2.0 utf8 Shape{ geometry IndexedLineSet { coord DEF Coord Coordinate { point [-1 1 0, 1 1 0, -1 -1 0, 1 -1 0] } coordIndex [0 1 2 3] } } DEF Interpolador CoordinateInterpolator { key [0 0.5 1] keyValue [-1 1 0, 1 1 0, -1 -1 0, 1 -1 0 -1 1 0, 3 3 0, -3 -3 0, 1 -1 0 -1 1 0, 1 1 0, -1 -1 0, 1 -1 0 ] } DEF Tempo TimeSensor { cycleInterval 2 loop TRUE enabled TRUE } ROUTE Tempo.fraction_changed TO Interpolador.set_fraction ROUTE Interpolador.value_changed TO Coord.point

NormalInterpolator Cria um interpolador que permite incrementar uma lista de vetores 3D no campo keyValue. Estes valores so utilizados para modificar o parmetro Normal dos ns IndexedFaceSet e ElevationGrid.
NormalInterpolator { key [Valor1, Valor2, ..., ValorN] keyValue[Valor1, Valor2, ..., ValorN] }

Exemplo:
#VRML V2.0 utf8 Shape { appearance Appearance { material Material { diffuseColor .32 .54 .26 specularColor .46 .46 .46 ambientIntensity .0933 shininess .51 } } geometry ElevationGrid {

Guia de Consulta Rpida VRML, Ezequiel R. Zorzal e Luciano F. Silva

33

xDimension 2 zDimension 2 xSpacing 2 zSpacing 2 height [ 0.5 0.1 0.2 2.0 ] creaseAngle 1 normal DEF VecsNorma Normal { vector [ 1 0 0, 0 1 0, 0 0 1 ] } } } DEF Interpolador key [ 0 0.5 1 ] keyValue [ 1 0 0, 0 1 1 1 0, 0 1 1 0 0, 0 1 ] } NormalInterpolator {

0, 0 0 1 1, 1 0 1 0, 0 0 1

DEF Tempo TimeSensor { cycleInterval 2 loop TRUE enabled TRUE } ROUTE Tempo.fraction_changed TO Interpolador.set_fraction ROUTE Interpolador.value_changed TO VecsNorma.vector

OrientationInterpolator Cria um interpolador que permite incrementar uma lista de rotaes no campo keyValue, estas rotaes so representadas por quatro posies, onde as trs primeiras contm um vetor 3D que indica o eixo de rotao e o quarto campo contm o ngulo de rotao.Estes valores so utilizados para modificar o parmetro rotation do n Transform.
OrientationInterpolator{ key [Valor1, Valor2, ..., ValorN] keyValue[Valor1, Valor2, ..., ValorN] }

Exemplo:
#VRML V2.0 utf8 DEF Esf Transform { center -2 0 0 children [ Shape { appearance Appearance { material Material {} } geometry Sphere {} } ] } DEF Interpolador OrientationInterpolator { key [ 0 0.5 1 ] keyValue [ 0 0 1 0.00 0 0 1 3.14

Guia de Consulta Rpida VRML, Ezequiel R. Zorzal e Luciano F. Silva

34

0 0 1 6.28 ] } DEF Tempo TimeSensor { cycleInterval 2 loop TRUE enabled TRUE } ROUTE Tempo.fraction_changed TO Interpolador.set_fraction ROUTE Interpolador.value_changed TO Esf.rotation

PositionInterpolator Cria um interpolador que permite incrementar uma lista de coordenadas 3D no campo keyValue. Estes valores so utilizados para modificar os parmetros center, scale e translation do n Transform.
OrientationInterpolator{ key [Valor1, Valor2, ..., ValorN] keyValue[Valor1, Valor2, ..., ValorN] }

Exemplo:
#VRML V2.0 utf8 DEF Esf Transform { translation -2 0 0 children [ Shape { appearance Appearance { material Material {} } geometry Sphere {} } ] } DEF Interpolador PositionInterpolator { key [ 0 0.5 1 ] keyValue [ -2 0 0 2 0 0 -2 0 0 ] } DEF Tempo TimeSensor { cycleInterval 2 loop TRUE enabled TRUE } ROUTE Tempo.fraction_changed TO Interpolador.set_fraction ROUTE Interpolador.value_changed TO Esf.translation

ScalarInterpolator Cria um interpolador que permite incrementar uma lista de valores floats no campo keyValue. Estes valores so utilizados para modificar os parmetros floats dos ns, como por exemplo, alterar os parmetros shininess e transparency do campo Material ou mudar o parmetro speed em vdeos e sons.
ScalarInterpolator { key [Valor1, Valor2, ..., ValorN] keyValue[Valor1, Valor2, ..., ValorN] }

Exemplo:
#VRML V2.0 utf8 Shape { appearance Appearance { material DEF cor Material {} } geometry Sphere {} } DEF Interpolador ScalarInterpolator {

Guia de Consulta Rpida VRML, Ezequiel R. Zorzal e Luciano F. Silva

35

key [ 0 0.5 1 ] keyValue [ 0 0.75 0 ] } DEF Tempo TimeSensor { cycleInterval 2 loop TRUE enabled TRUE } ROUTE Tempo.fraction_changed TO Interpolador.set_fraction ROUTE Interpolador.value_changed TO cor.transparency

Criando animaes e interaes com scripts


Os interpoladores VRML so excelentes ferramentas de animao e interao, no entanto, para animaes ou interaes de alta complexidade, o uso destas ferramentas torna-se invivel. Por exemplo, suponha a situao onde se deseja criar uma trajetria helicoidal para um determinado objeto, por meio de um interpolador faz-se necessrio descrever uma grande quantidade de pontos deste helicide, e mesmo assim esta trajetria no ser cumprida com perfeio. Para soluo destes casos a linguagem VRML nos oferece o n script, que prov a possibilidade de programao na linguagem javascript ou java. Para construo de uma trajetria helicoidal com scripts poderia ser declarada a funo matemtica que rege este movimento. O n script possibilita o desenvolvimento de animaes e interaes impossveis de serem construdas sem o seu uso. Eles permitem receber eventos, processar a informao recebida, e logo aps produzir eventos de sada baseados nos resultados obtidos. Scripts Permite a criao de um script.
Script { directOutput eventIn eventOut field Tipo mustEvaluate url } TRUE|FALSE Tipo Nome_do_evento Tipo Nome_do_evento Name_do_campo Valor_inicial TRUE|FALSE "Caminho"

Parmetros directOutput

Descrio Especifica um valor booleano que permite escolher como o script ir influenciar a hierarquia do sistema VRML. Caso o seu valor seja TRUE, o script poder mudar a hierarquia da cena diretamente, e estabelecer ou remover rotas dinamicamente, caso o seu valor seja FALSE, o script poder apenas se comunicar com o ambiente virtual por meio de eventos. Permite a criao de eventos de entrada que passam parmetros para o script. Estes eventos utilizaro dados de tipos possveis de serem escolhidos. Permite a criao de eventos de sada que retornam valores computados pelo script. Estes eventos utilizaro dados de tipos possveis de serem escolhidos e funcionam como variveis globais. Permite a criao de um campo de entrada e sada que funciona como uma varivel global do sistema. Dever ser atribudo um valor inicial a este campo. Especifica se o browser deve enviar eventos ao script mesmo quando no estiver esperando que o script retorne uma sada, TRUE, ou no, FALSE. Permite definir a URL de um script a ser executado, ou pode conter o texto do script em si.

eventIn eventOut field mustEvaluate url

eventIn Permite a criao de eventos de entrada que passam parmetros para o script. Estes eventos utilizaro dados de tipos possveis de serem escolhidos.
eventIn Tipo Nome_do_evento

Tipos

Descrio

Guia de Consulta Rpida VRML, Ezequiel R. Zorzal e Luciano F. Silva

36

MFColor MFFloat MFInt32 MFNode MFRotation MFString MFTime MFVec2f MFVec3f SFBool SFColor SFFloat SFImage SFInt32 SFNode SFRotation SFString SFTime SFVec2f SFVec3f

Define uma lista de vetores com trs posies, no formato RGB, que representam um conjunto de cores. Define uma lista de nmeros reais. Define uma lista de nmeros inteiros de 32 bits, representados no formato decimal ou hexadecimal, quando precedidos por 0x. Define uma lista de ns do VRML. Especifica uma rotao em torno de um eixo arbitrrio, por meio de 4 valores, em que os 3 primeiros definem o eixo de rotao e o ltimo o ngulo em radianos. Define uma seqncia de caracteres no formato de codificao UTF-8. Define uma lista de valores de tempo. Define uma lista de vetores 2D representado por dois nmeros reais que equivalem as coordenadas de um ponto no plano cartesiano x e y. Define uma lista de vetores 3D representado por trs nmeros reais que equivalem as coordenadas de um ponto no espao cartesiano x, y e z. Contm um nico valor Booleano. Pode ser preenchido com as palavras TRUE ou FALSE. Define um vetor com trs posies, no formato RGB, que representa uma cor. Define um nmero real de preciso simples. Define uma imagem bidimensional. Seu valor consiste sequencialmente em 3 inteiros, representando a largura, a altura e o nmero de componentes da imagem, seguido de sua matriz de pixels em hexadecimal. Define um nmero inteiro de 32 bits, representado no formato decimal ou hexadecimal, quando precedido por 0x. Define um n do VRML. Especifica uma rotao em torno de um eixo arbitrrio, por meio de 4 valores reais, em que os 3 primeiros definem o eixo de rotao e o ltimo o ngulo em radianos. Define uma seqncia de caracteres no formato de codificao UTF-8. Define valor de tempo. Define um vetor 2D representado por dois nmeros reais que equivalem as coordenadas de um ponto no plano cartesiano x e y. Define um vetor 3D representado por trs nmeros reais que equivalem as coordenadas de um ponto no espao cartesiano x, y e z.

Exemplo:
#VRML V2.0 utf8 Script { EventIn SFFloat ex_de_evento_entrada }

eventOut Permite a criao de eventos de sada que retornam valores computados pelo script. Estes eventos utilizaro dados de tipos possveis de serem escolhidos e funcionam como variveis globais.
eventOut Tipo Nome_do_evento

Tipos MFColor MFFloat MFInt32 MFNode MFRotation MFString MFTime MFVec2f MFVec3f SFBool SFColor SFFloat

Descrio Define uma lista de vetores com trs posies, no formato RGB, que representam um conjunto de cores. Define uma lista de nmeros reais. Define uma lista de nmeros inteiros de 32 bits, representados no formato decimal ou hexadecimal, quando precedidos por 0x. Define uma lista de ns do VRML. Especifica uma rotao em torno de um eixo arbitrrio, por meio de 4 valores, em que os 3 primeiros definem o eixo de rotao e o ltimo o ngulo em radianos. Define uma seqncia de caracteres no formato de codificao UTF-8. Define uma lista de valores de tempo. Define uma lista de vetores 2D representado por dois nmeros reais que equivalem as coordenadas de um ponto no plano cartesiano x e y. Define uma lista de vetores 3D representado por trs nmeros reais que equivalem as coordenadas de um ponto no espao cartesiano x, y e z. Contm um nico valor Booleano. Pode ser preenchido com as palavras TRUE ou FALSE. Define um vetor com trs posies, no formato RGB, que representa uma cor. Define um nmero real de preciso simples.

Guia de Consulta Rpida VRML, Ezequiel R. Zorzal e Luciano F. Silva

37

SFImage SFInt32 SFNode SFRotation SFString SFTime SFVec2f SFVec3f

Define uma imagem bidimensional. Seu valor consiste sequencialmente em 3 inteiros, representando a largura, a altura e o nmero de componentes da imagem, seguido de sua matriz de pixels em hexadecimal. Define um nmero inteiro de 32 bits, representado no formato decimal ou hexadecimal, quando precedido por 0x. Define um n do VRML. Especifica uma rotao em torno de um eixo arbitrrio, por meio de 4 valores reais, em que os 3 primeiros definem o eixo de rotao e o ltimo o ngulo em radianos. Define uma seqncia de caracteres no formato de codificao UTF-8. Define valor de tempo. Define um vetor 2D representado por dois nmeros reais que equivalem as coordenadas de um ponto no plano cartesiano x e y. Define um vetor 3D representado por trs nmeros reais que equivalem as coordenadas de um ponto no espao cartesiano x, y e z.

Exemplo:
#VRML V2.0 utf8 Script { eventOut SFRotation ex_de_evento_saida }

field Permite a criao de um campo de entrada e sada que funciona como uma varivel global do sistema. Dever ser atribudo um valor inicial a este campo.
field Tipo Name_do_campo Valor_inicial

Tipos MFColor MFFloat MFInt32 MFNode MFRotation MFString MFTime MFVec2f MFVec3f SFBool SFColor SFFloat SFImage SFInt32 SFNode SFRotation SFString SFTime SFVec2f SFVec3f

Descrio Define uma lista de vetores com trs posies, no formato RGB, que representam um conjunto de cores. Define uma lista de nmeros reais. Define uma lista de nmeros inteiros de 32 bits, representados no formato decimal ou hexadecimal, quando precedidos por 0x. Define uma lista de ns do VRML. Especifica uma rotao em torno de um eixo arbitrrio, por meio de 4 valores, em que os 3 primeiros definem o eixo de rotao e o ltimo o ngulo em radianos. Define uma seqncia de caracteres no formato de codificao UTF-8. Define uma lista de valores de tempo. Define uma lista de vetores 2D representado por dois nmeros reais que equivalem as coordenadas de um ponto no plano cartesiano x e y. Define uma lista de vetores 3D representado por trs nmeros reais que equivalem as coordenadas de um ponto no espao cartesiano x, y e z. Contm um nico valor Booleano. Pode ser preenchido com as palavras TRUE ou FALSE. Define um vetor com trs posies, no formato RGB, que representa uma cor. Define um nmero real de preciso simples. Define uma imagem bidimensional. Seu valor consiste sequencialmente em 3 inteiros, representando a largura, a altura e o nmero de componentes da imagem, seguido de sua matriz de pixels em hexadecimal. Define um nmero inteiro de 32 bits, representado no formato decimal ou hexadecimal, quando precedido por 0x. Define um n do VRML. Especifica uma rotao em torno de um eixo arbitrrio, por meio de 4 valores reais, em que os 3 primeiros definem o eixo de rotao e o ltimo o ngulo em radianos. Define uma seqncia de caracteres no formato de codificao UTF-8. Define valor de tempo. Define um vetor 2D representado por dois nmeros reais que equivalem as coordenadas de um ponto no plano cartesiano x e y. Define um vetor 3D representado por trs nmeros reais que equivalem as coordenadas de um ponto no espao cartesiano x, y e z.

Exemplo:
#VRML V2.0 utf8 Script { field SFVec3f ex_compo 1 2 3 }

Guia de Consulta Rpida VRML, Ezequiel R. Zorzal e Luciano F. Silva

38

url Permite definir a URL de um script a ser executado ou pode conter o texto do script em si. Ao optar por definir a URL do script deve-se inscrever os parmetros que sero utilizados neste script internamente, como no exemplo abaixo. Exemplo:
#VRML V2.0 utf8 DEF SC Script { field SFColor currentColor 0 0 0 eventIn SFColor colorIn eventOut SFBool isRed url "exemplo_script_externo.class" }

Para descrever o texto no prprio script deve-se declarar os parmetros, como field, eventIn, eventOut e url. Sendo que o cdigo de programao, inserido no parmetro url, deve estar entre aspas duplas e antecedido pela inscrio javascript: . As funes do cdigo javascript so declaradas pela inscrio function seguida do nome de um evento de entrada (eventIn). Estas funes possuem parmetros caractersticos do tipo do evento de entrada.
function Nome_evento_entrada(value,time) { Cdigo }

O primeiro parmetro, value, um valor referente ao tipo do evento de entrada, e o segundo parmetro, time, um valor do tipo SFTime, normalmente utilizado para disparar eventos deste tipo. importante ressaltar que o n script abrange vrios recursos de programao das linguagens javascript e java que no so descritos neste guia. Exemplo:
#VRML V2.0 utf8 Transform { children [ Shape { appearance Appearance { material DEF Cor Material {} } geometry Sphere {} } DEF Sensor TouchSensor {} ] } DEF Ex_script Script { eventIn SFBool toque eventOut SFColor Colore url "javascript: function toque(value, time){ if(value==true){ Colore[0] = Math.random() Colore[1] = Math.random() Colore[2] = Math.random() } }" } ROUTE Sensor. isActive TO Ex_script.toque ROUTE Ex_script.Colore TO Cor.diffuseColor

Gerando prottipos
A linguagem VRML possui uma srie de objetos predefinidos, chamados de ns, que suprem uma grande parte das necessidades para criar ambientes virtuais. No entanto, o VRML 2.0 permite a criao de novos ns a partir destes ns pr-definidos. Os novos ns podem ser utilizados da mesma maneira que os objetos pr-existentes da linguagem. Este processo possvel na linguagem VRML por meio da construo de prottipos. Os fundamentos da prototipao VRML assemelham-se consideravelmente s definies de classes em programao orientada a objetos.
Guia de Consulta Rpida VRML, Ezequiel R. Zorzal e Luciano F. Silva

39

PROTO Permite criar um prottipo. Aps determinar os parmetros eventIn, eventOut, exposedField e field deve-se definir os ns e parmetros que sero prototipados entre chaves, por meio do comando IS. Para utilizar o prottipo criado basta apenas instanci-lo.
PROTO Nome[ eventIn eventOut exposedField field ] Tipo Nome_do_evento Tipo Nome_do_evento Tipo Name_do_campo Valor_inicial Tipo Name_do_campo Valor_inicial {Descrio}

Parmetros eventIn eventOut exposedField field IS

Descrio Permite a criao de eventos de entrada que passam parmetros para o prottipo. Estes eventos utilizaro dados de tipos possveis de serem escolhidos. Permite a criao de eventos de sada que retornam valores computados pelo prottipo. Estes eventos utilizaro dados de tipos possveis de serem escolhidos e funcionam como variveis globais. Permite a criao de um campo que pode ser modificado por meio de eventos que funciona como uma varivel global do sistema. Dever ser atribudo um valor inicial a este campo. Permite a criao de um campo de entrada e sada que funciona como uma varivel global do sistema. Dever ser atribudo um valor inicial a este campo. Permite definir os ns e parmetros que sero prototipados.

eventIn Permite a criao de eventos de entrada que passam parmetros para o prottipo. Estes eventos utilizaro dados de tipos possveis de serem escolhidos.
eventIn Tipo Nome_do_evento

Tipos MFColor MFFloat MFInt32 MFNode MFRotation MFString MFTime MFVec2f MFVec3f SFBool SFColor SFFloat SFImage SFInt32 SFNode SFRotation SFString SFTime SFVec2f SFVec3f

Descrio Define uma lista de vetores com trs posies, no formato RGB, que representam um conjunto de cores. Define uma lista de nmeros reais. Define uma lista de nmeros inteiros de 32 bits, representados no formato decimal ou hexadecimal, quando precedidos por 0x. Define uma lista de ns do VRML. Especifica uma rotao em torno de um eixo arbitrrio, por meio de 4 valores, em que os 3 primeiros definem o eixo de rotao e o ltimo o ngulo em radianos. Define uma seqncia de caracteres no formato de codificao UTF-8. Define uma lista de valores de tempo. Define uma lista de vetores 2D representado por dois nmeros reais que equivalem as coordenadas de um ponto no plano cartesiano x e y. Define uma lista de vetores 3D representado por trs nmeros reais que equivalem as coordenadas de um ponto no espao cartesiano x, y e z. Contm um nico valor Booleano. Pode ser preenchido com as palavras TRUE ou FALSE. Define um vetor com trs posies, no formato RGB, que representa uma cor. Define um nmero real de preciso simples. Define uma imagem bidimensional. Seu valor consiste sequencialmente em 3 inteiros, representando a largura, a altura e o nmero de componentes da imagem, seguido de sua matriz de pixels em hexadecimal. Define um nmero inteiro de 32 bits, representado no formato decimal ou hexadecimal, quando precedido por 0x. Define um n do VRML. Especifica uma rotao em torno de um eixo arbitrrio, por meio de 4 valores reais, em que os 3 primeiros definem o eixo de rotao e o ltimo o ngulo em radianos. Define uma seqncia de caracteres no formato de codificao UTF-8. Define valor de tempo. Define um vetor 2D representado por dois nmeros reais que equivalem as coordenadas de um ponto no plano cartesiano x e y. Define um vetor 3D representado por trs nmeros reais que equivalem as coordenadas de um ponto no espao cartesiano x, y e z.

Guia de Consulta Rpida VRML, Ezequiel R. Zorzal e Luciano F. Silva

40

Exemplo:
#VRML V2.0 utf8 PROTO Nome [ eventIn SFFloat ex_de_evento_entrada ]{}

eventOut Permite a criao de eventos de sada que retornam valores computados pelo prottipo. Estes eventos utilizaro dados de tipos possveis de serem escolhidos e funcionam como variveis globais.
eventOut Tipo Nome_do_evento

Tipos MFColor MFFloat MFInt32 MFNode MFRotation MFString MFTime MFVec2f MFVec3f SFBool SFColor SFFloat SFImage SFInt32 SFNode SFRotation SFString SFTime SFVec2f SFVec3f

Descrio Define uma lista de vetores com trs posies, no formato RGB, que representam um conjunto de cores. Define uma lista de nmeros reais. Define uma lista de nmeros inteiros de 32 bits, representados no formato decimal ou hexadecimal, quando precedidos por 0x. Define uma lista de ns do VRML. Especifica uma rotao em torno de um eixo arbitrrio, por meio de 4 valores, em que os 3 primeiros definem o eixo de rotao e o ltimo o ngulo em radianos. Define uma seqncia de caracteres no formato de codificao UTF-8. Define uma lista de valores de tempo. Define uma lista de vetores 2D representado por dois nmeros reais que equivalem as coordenadas de um ponto no plano cartesiano x e y. Define uma lista de vetores 3D representado por trs nmeros reais que equivalem as coordenadas de um ponto no espao cartesiano x, y e z. Contm um nico valor Booleano. Pode ser preenchido com as palavras TRUE ou FALSE. Define um vetor com trs posies, no formato RGB, que representa uma cor. Define um nmero real de preciso simples. Define uma imagem bidimensional. Seu valor consiste sequencialmente em 3 inteiros, representando a largura, a altura e o nmero de componentes da imagem, seguido de sua matriz de pixels em hexadecimal. Define um nmero inteiro de 32 bits, representado no formato decimal ou hexadecimal, quando precedido por 0x. Define um n do VRML. Especifica uma rotao em torno de um eixo arbitrrio, por meio de 4 valores reais, em que os 3 primeiros definem o eixo de rotao e o ltimo o ngulo em radianos. Define uma seqncia de caracteres no formato de codificao UTF-8. Define valor de tempo. Define um vetor 2D representado por dois nmeros reais que equivalem as coordenadas de um ponto no plano cartesiano x e y. Define um vetor 3D representado por trs nmeros reais que equivalem as coordenadas de um ponto no espao cartesiano x, y e z.

Exemplo:
#VRML V2.0 utf8 PROTO Nome [ eventOut SFRotation ex_de_evento_saida ]{}

exposedField Permite a criao de um campo que pode ser modificado por meio de eventos que funciona como uma varivel global do sistema. Dever ser atribudo um valor inicial a este campo.
exposedField Tipo Nome_do_campo Valor_inicial

Tipos MFColor MFFloat MFInt32 MFNode

Descrio Define uma lista de vetores com trs posies, no formato RGB, que representam um conjunto de cores. Define uma lista de nmeros reais. Define uma lista de nmeros inteiros de 32 bits, representados no formato decimal ou hexadecimal, quando precedidos por 0x. Define uma lista de ns do VRML.

Guia de Consulta Rpida VRML, Ezequiel R. Zorzal e Luciano F. Silva

41

MFRotation MFString MFTime MFVec2f MFVec3f SFBool SFColor SFFloat SFImage SFInt32 SFNode SFRotation SFString SFTime SFVec2f SFVec3f

Especifica uma rotao em torno de um eixo arbitrrio, por meio de 4 valores, em que os 3 primeiros definem o eixo de rotao e o ltimo o ngulo em radianos. Define uma seqncia de caracteres no formato de codificao UTF-8. Define uma lista de valores de tempo. Define uma lista de vetores 2D representado por dois nmeros reais que equivalem as coordenadas de um ponto no plano cartesiano x e y. Define uma lista de vetores 3D representado por trs nmeros reais que equivalem as coordenadas de um ponto no espao cartesiano x, y e z. Contm um nico valor Booleano. Pode ser preenchido com as palavras TRUE ou FALSE. Define um vetor com trs posies, no formato RGB, que representa uma cor. Define um nmero real de preciso simples. Define uma imagem bidimensional. Seu valor consiste sequencialmente em 3 inteiros, representando a largura, a altura e o nmero de componentes da imagem, seguido de sua matriz de pixels em hexadecimal. Define um nmero inteiro de 32 bits, representado no formato decimal ou hexadecimal, quando precedido por 0x. Define um n do VRML. Especifica uma rotao em torno de um eixo arbitrrio, por meio de 4 valores reais, em que os 3 primeiros definem o eixo de rotao e o ltimo o ngulo em radianos. Define uma seqncia de caracteres no formato de codificao UTF-8. Define valor de tempo. Define um vetor 2D representado por dois nmeros reais que equivalem as coordenadas de um ponto no plano cartesiano x e y. Define um vetor 3D representado por trs nmeros reais que equivalem as coordenadas de um ponto no espao cartesiano x, y e z.

Exemplo:
#VRML V2.0 utf8 PROTO Nome [ exposedField SFVec3f ex_compo 1 2 3 ]{}

field Permite a criao de eventos de sada, que retornam valores computados pelo script. Estes eventos utilizaro dados de tipos possveis de serem escolhidos.
field Tipo Name_do_campo Valor_inicial

Tipos MFColor MFFloat MFInt32 MFNode MFRotation MFString MFTime MFVec2f MFVec3f SFBool SFColor SFFloat SFImage SFInt32 SFNode

Descrio Define uma lista de vetores com trs posies, no formato RGB, que representam um conjunto de cores. Define uma lista de nmeros reais. Define uma lista de nmeros inteiros de 32 bits, representados no formato decimal ou hexadecimal, quando precedidos por 0x. Define uma lista de ns do VRML. Especifica uma rotao em torno de um eixo arbitrrio, por meio de 4 valores, em que os 3 primeiros definem o eixo de rotao e o ltimo o ngulo em radianos. Define uma seqncia de caracteres no formato de codificao UTF-8. Define uma lista de valores de tempo. Define uma lista de vetores 2D representado por dois nmeros reais que equivalem as coordenadas de um ponto no plano cartesiano x e y. Define uma lista de vetores 3D representado por trs nmeros reais que equivalem as coordenadas de um ponto no espao cartesiano x, y e z. Contm um nico valor Booleano. Pode ser preenchido com as palavras TRUE ou FALSE. Define um vetor com trs posies, no formato RGB, que representa uma cor. Define um nmero real de preciso simples. Define uma imagem bidimensional. Seu valor consiste sequencialmente em 3 inteiros, representando a largura, a altura e o nmero de componentes da imagem, seguido de sua matriz de pixels em hexadecimal. Define um nmero inteiro de 32 bits, representado no formato decimal ou hexadecimal, quando precedido por 0x. Define um n do VRML.

Guia de Consulta Rpida VRML, Ezequiel R. Zorzal e Luciano F. Silva

42

SFRotation SFString SFTime SFVec2f SFVec3f

Especifica uma rotao em torno de um eixo arbitrrio, por meio de 4 valores reais, em que os 3 primeiros definem o eixo de rotao e o ltimo o ngulo em radianos. Define uma seqncia de caracteres no formato de codificao UTF-8. Define valor de tempo. Define um vetor 2D representado por dois nmeros reais que equivalem as coordenadas de um ponto no plano cartesiano x e y. Define um vetor 3D representado por trs nmeros reais que equivalem as coordenadas de um ponto no espao cartesiano x, y e z.

Exemplo:
#VRML V2.0 utf8 PROTO Nome [ field SFVec3f ex_compo 1 2 3 ]{}

IS Permite definir os ns e parmetros que sero prototipados.


PROTO Nome [ eventIn Tipo Nome_do_evento eventOut Tipo Nome_do_evento exposedField Tipo Name_do_campo Valor_inicial field Tipo Name_do_campo Valor_inicial ]{ Parmetros_prototipado IS Nome_do_evento Parmetros_prototipado IS Nome_do_campo }

Exemplo:
#VRML V2.0 utf8 PROTO DuplaEsfera [ field SFColor Cor1 1 1 1 field SFColor Cor2 1 1 1 ]{ Transform { children[ Transform { translation -0.4 0 0 children [ Shape { appearance Appearance { material Material { diffuseColor IS Cor1 } } geometry Sphere { radius 0.5 } } ] } Transform { translation 0.4 0 0 children [ Shape { appearance Appearance { material Material { diffuseColor IS Cor2 } } geometry Sphere { radius 0.5 } } ] }

Guia de Consulta Rpida VRML, Ezequiel R. Zorzal e Luciano F. Silva

43

] } } #Realizando DuplaEsfera Cor1 1 1 Cor2 0 1 } a instncia do prottipo { 0 0

EXTERNPROTO Permite utilizar um prottipo definido em um arquivo externo. No entanto, ainda necessrio declarar a interface do prottipo e os valores default para cada campo. Em suma, o comando EXTERNPROTO uma referncia a um comando PROTO em um outro arquivo VRML.
EXTERNPROTO Nome[ eventIn eventOut exposedField field ] Tipo Nome_do_evento Tipo Nome_do_evento Tipo Name_do_campo Valor_inicial Tipo Name_do_campo Valor_inicial "Caminho"

Parmetros eventIn eventOut exposedField field

Descrio Permite a criao de eventos de entrada que passam parmetros para o prottipo. Estes eventos utilizaro dados de tipos possveis de serem escolhidos. Permite a criao de eventos de sada que retornam valores computados pelo prottipo. Estes eventos utilizaro dados de tipos possveis de serem escolhidos e funcionam como variveis globais. Permite a criao de um campo que pode ser modificado por meio de eventos que funciona como uma varivel global do sistema. Dever ser atribudo um valor inicial a este campo. Permite a criao de um campo de entrada e sada que funciona como uma varivel global do sistema. Dever ser atribudo um valor inicial a este campo.

eventIn Permite a criao de eventos de entrada que passam parmetros para o prottipo. Estes eventos utilizaro dados de tipos possveis de serem escolhidos.
eventIn Tipo Nome_do_evento

Tipos MFColor MFFloat MFInt32 MFNode MFRotation MFString MFTime MFVec2f MFVec3f SFBool SFColor SFFloat SFImage SFInt32 SFNode

Descrio Define uma lista de vetores com trs posies, no formato RGB, que representam um conjunto de cores. Define uma lista de nmeros reais. Define uma lista de nmeros inteiros de 32 bits, representados no formato decimal ou hexadecimal, quando precedidos por 0x. Define uma lista de ns do VRML. Especifica uma rotao em torno de um eixo arbitrrio, por meio de 4 valores, em que os 3 primeiros definem o eixo de rotao e o ltimo o ngulo em radianos. Define uma seqncia de caracteres no formato de codificao UTF-8. Define uma lista de valores de tempo. Define uma lista de vetores 2D representado por dois nmeros reais que equivalem as coordenadas de um ponto no plano cartesiano x e y. Define uma lista de vetores 3D representado por trs nmeros reais que equivalem as coordenadas de um ponto no espao cartesiano x, y e z. Contm um nico valor Booleano. Pode ser preenchido com as palavras TRUE ou FALSE. Define um vetor com trs posies, no formato RGB, que representa uma cor. Define um nmero real de preciso simples. Define uma imagem bidimensional. Seu valor consiste sequencialmente em 3 inteiros, representando a largura, a altura e o nmero de componentes da imagem, seguido de sua matriz de pixels em hexadecimal. Define um nmero inteiro de 32 bits, representado no formato decimal ou hexadecimal, quando precedido por 0x. Define um n do VRML.

Guia de Consulta Rpida VRML, Ezequiel R. Zorzal e Luciano F. Silva

44

SFRotation SFString SFTime SFVec2f SFVec3f

Especifica uma rotao em torno de um eixo arbitrrio, por meio de 4 valores reais, em que os 3 primeiros definem o eixo de rotao e o ltimo o ngulo em radianos. Define uma seqncia de caracteres no formato de codificao UTF-8. Define valor de tempo. Define um vetor 2D representado por dois nmeros reais que equivalem as coordenadas de um ponto no plano cartesiano x e y. Define um vetor 3D representado por trs nmeros reais que equivalem as coordenadas de um ponto no espao cartesiano x, y e z.

Exemplo:
#VRML V2.0 utf8 EXTERNPROTO Nome [ eventIn SFFloat ex_de_evento_entrada ] "Arquivo.wrl"

eventOut Permite a criao de eventos de sada que retornam valores computados pelo prottipo. Estes eventos utilizaro dados de tipos possveis de serem escolhidos e funcionam como variveis globais.
eventOut Tipo Nome_do_evento

Tipos MFColor MFFloat MFInt32 MFNode MFRotation MFString MFTime MFVec2f MFVec3f SFBool SFColor SFFloat SFImage SFInt32 SFNode SFRotation SFString SFTime SFVec2f SFVec3f

Descrio Define uma lista de vetores com trs posies, no formato RGB, que representam um conjunto de cores. Define uma lista de nmeros reais. Define uma lista de nmeros inteiros de 32 bits, representados no formato decimal ou hexadecimal, quando precedidos por 0x. Define uma lista de ns do VRML. Especifica uma rotao em torno de um eixo arbitrrio, por meio de 4 valores, em que os 3 primeiros definem o eixo de rotao e o ltimo o ngulo em radianos. Define uma seqncia de caracteres no formato de codificao UTF-8. Define uma lista de valores de tempo. Define uma lista de vetores 2D representado por dois nmeros reais que equivalem as coordenadas de um ponto no plano cartesiano x e y. Define uma lista de vetores 3D representado por trs nmeros reais que equivalem as coordenadas de um ponto no espao cartesiano x, y e z. Contm um nico valor Booleano. Pode ser preenchido com as palavras TRUE ou FALSE. Define um vetor com trs posies, no formato RGB, que representa uma cor. Define um nmero real de preciso simples. Define uma imagem bidimensional. Seu valor consiste sequencialmente em 3 inteiros, representando a largura, a altura e o nmero de componentes da imagem, seguido de sua matriz de pixels em hexadecimal. Define um nmero inteiro de 32 bits, representado no formato decimal ou hexadecimal, quando precedido por 0x. Define um n do VRML. Especifica uma rotao em torno de um eixo arbitrrio, por meio de 4 valores reais, em que os 3 primeiros definem o eixo de rotao e o ltimo o ngulo em radianos. Define uma seqncia de caracteres no formato de codificao UTF-8. Define valor de tempo. Define um vetor 2D representado por dois nmeros reais que equivalem as coordenadas de um ponto no plano cartesiano x e y. Define um vetor 3D representado por trs nmeros reais que equivalem as coordenadas de um ponto no espao cartesiano x, y e z.

Exemplo:
#VRML V2.0 utf8 EXTERNPROTO Nome [ eventOut SFRotation ex_de_evento_saida ] "Arquivo.wrl"

exposedField Permite a criao de um campo que pode ser modificado por meio de eventos que funciona como uma varivel global do sistema. Dever ser atribudo um valor inicial a este campo.
Guia de Consulta Rpida VRML, Ezequiel R. Zorzal e Luciano F. Silva

45

exposedField Tipo Name_do_campo Valor_inicial

Tipos MFColor MFFloat MFInt32 MFNode MFRotation MFString MFTime MFVec2f MFVec3f SFBool SFColor SFFloat SFImage SFInt32 SFNode SFRotation SFString SFTime SFVec2f SFVec3f

Descrio Define uma lista de vetores com trs posies, no formato RGB, que representam um conjunto de cores. Define uma lista de nmeros reais. Define uma lista de nmeros inteiros de 32 bits, representados no formato decimal ou hexadecimal, quando precedidos por 0x. Define uma lista de ns do VRML. Especifica uma rotao em torno de um eixo arbitrrio, por meio de 4 valores, em que os 3 primeiros definem o eixo de rotao e o ltimo o ngulo em radianos. Define uma seqncia de caracteres no formato de codificao UTF-8. Define uma lista de valores de tempo. Define uma lista de vetores 2D representado por dois nmeros reais que equivalem as coordenadas de um ponto no plano cartesiano x e y. Define uma lista de vetores 3D representado por trs nmeros reais que equivalem as coordenadas de um ponto no espao cartesiano x, y e z. Contm um nico valor Booleano. Pode ser preenchido com as palavras TRUE ou FALSE. Define um vetor com trs posies, no formato RGB, que representa uma cor. Define um nmero real de preciso simples. Define uma imagem bidimensional. Seu valor consiste sequencialmente em 3 inteiros, representando a largura, a altura e o nmero de componentes da imagem, seguido de sua matriz de pixels em hexadecimal. Define um nmero inteiro de 32 bits, representado no formato decimal ou hexadecimal, quando precedido por 0x. Define um n do VRML. Especifica uma rotao em torno de um eixo arbitrrio, por meio de 4 valores reais, em que os 3 primeiros definem o eixo de rotao e o ltimo o ngulo em radianos. Define uma seqncia de caracteres no formato de codificao UTF-8. Define valor de tempo. Define um vetor 2D representado por dois nmeros reais que equivalem as coordenadas de um ponto no plano cartesiano x e y. Define um vetor 3D representado por trs nmeros reais que equivalem as coordenadas de um ponto no espao cartesiano x, y e z.

Exemplo:
#VRML V2.0 utf8 EXTERNPROTO Nome [ exposedField SFVec3f ex_compo 1 2 3 ] "Arquivo.wrl"

field Permite a criao de eventos de sada, que retornam valores computados pelo prottipo. Estes eventos utilizaro dados de tipos possveis de serem escolhidos.
field Tipo Name_do_campo Valor_inicial

Tipos MFColor MFFloat MFInt32 MFNode MFRotation MFString MFTime MFVec2f MFVec3f SFBool

Descrio Define uma lista de vetores com trs posies, no formato RGB, que representam um conjunto de cores. Define uma lista de nmeros reais. Define uma lista de nmeros inteiros de 32 bits, representados no formato decimal ou hexadecimal, quando precedidos por 0x. Define uma lista de ns do VRML. Especifica uma rotao em torno de um eixo arbitrrio, por meio de 4 valores, em que os 3 primeiros definem o eixo de rotao e o ltimo o ngulo em radianos. Define uma seqncia de caracteres no formato de codificao UTF-8. Define uma lista de valores de tempo. Define uma lista de vetores 2D representado por dois nmeros reais que equivalem as coordenadas de um ponto no plano cartesiano x e y. Define uma lista de vetores 3D representado por trs nmeros reais que equivalem as coordenadas de um ponto no espao cartesiano x, y e z. Contm um nico valor Booleano. Pode ser preenchido com as palavras TRUE ou FALSE.

Guia de Consulta Rpida VRML, Ezequiel R. Zorzal e Luciano F. Silva

46

SFColor SFFloat SFImage SFInt32 SFNode SFRotation SFString SFTime SFVec2f SFVec3f

Define um vetor com trs posies, no formato RGB, que representa uma cor. Define um nmero real de preciso simples. Define uma imagem bidimensional. Seu valor consiste sequencialmente em 3 inteiros, representando a largura, a altura e o nmero de componentes da imagem, seguido de sua matriz de pixels em hexadecimal. Define um nmero inteiro de 32 bits, representado no formato decimal ou hexadecimal, quando precedido por 0x. Define um n do VRML. Especifica uma rotao em torno de um eixo arbitrrio, por meio de 4 valores reais, em que os 3 primeiros definem o eixo de rotao e o ltimo o ngulo em radianos. Define uma seqncia de caracteres no formato de codificao UTF-8. Define valor de tempo. Define um vetor 2D representado por dois nmeros reais que equivalem as coordenadas de um ponto no plano cartesiano x e y. Define um vetor 3D representado por trs nmeros reais que equivalem as coordenadas de um ponto no espao cartesiano x, y e z.

Exemplo:
#VRML V2.0 utf8 EXTERNPROTO DuplaEsfera [ field SFColor Cor1 1 1 1 field SFColor Cor2 1 1 1 ] "Arquivo_Esferas_Proto.wrl"

Comandos adicionais
A linguagem VRML permite desenvolver algumas funcionalidades especficas de interao com o usurio, como por exemplo, criar um link entre um ambiente virtual e uma pgina Web, definir formas de navegao no ambiente, etc. Abaixo sero descritos comandos que possibilitam estas funcionalidades. # Comentrios O smbolo # permite comentar uma linha do documento VRML. Exemplo:
#VRML V2.0 utf8 # Desenha uma esfera. Shape { appearance Appearance { material DEF Cor Material {} } geometry Sphere {} }

LOD Permite definir nveis de detalhes para objetos virtuais de acordo com a distncia do usurio a estes objetos.
LOD { center Valor1 Valor2 Valor3 level [Objetos] range [Valor1, Valor2, ..., ValorN] }

Parmetros center level range

Descrio Define um vetor 3D contendo o centro dos objetos contidos no n LOD. Este centro usado para calcular as distncias de detalhamento. Permite inserir objetos com diferentes nveis de detalhe, ordenados do mais complexo ao mais simples. Determina uma lista de distncias onde sero mostrados cada nvel de detalhe. Os seus valores devem estar em ordem crescente.

Exemplo:
#VRML V2.0 utf8 LOD { range [ 15,25 ]

Guia de Consulta Rpida VRML, Ezequiel R. Zorzal e Luciano F. Silva

47

center 0 0 0 level [ #Primeiro nvel Shape { appearance Appearance { material Material {} } geometry Sphere { radius 0.75 } } #Segundo nvel Shape { appearance Appearance { material Material { diffuseColor .33 .34 .6 specularColor .29 .29 .29 ambientIntensity .103 shininess .79 } } geometry Sphere { radius 0.5 } } ] }

NavigationInfo Permite especificar como ser a navegao do usurio.


NavigationInfo { avatarSize [ Valor1, Valor2, Valor3 ] headlight TRUE|FALSE speed Valor type ["WAKE","EXAMINE","FLY","NONE"] visibilityLimit Valor }

Parmetros avatarSize headlight speed type

Descrio Determina um vetor de trs posies contendo as dimenses fsicas do usurio respectivamente em X, Y e Z.. Estas dimenses so utilizadas para possveis deteces de coliso do usurio com objetos virtuais. Especifica se a luz da cmera do usurio, headlight, estar ligada, TRUE, ou no, FALSE. Define a velocidade, em metros por segundo, com que o usurio se move no ambiente virtual. Determina o tipo de navegao que o usurio exercer no ambiente virtual. Seus possveis valores so "WALK", "EXAMINE", "FLY", e "NONE". Podem ser definidos mais de um tipo de navegao ao mesmo tempo, exceto "NONE", que retira a navegao no ambiente. Caso este parmetro no seja preenchido o browser habilita os tipos "WALK", "EXAMINE" e "FLY" a mesmo tempo. Determina a distncia mxima qual o usurio pode ver. O valor 0.0 ou sua falta indica que esta distncia infinita.

visibilityLimit

Exemplo:
#VRML V2.0 utf8 NavigationInfo { avatarSize [ 1 1 1 ] headlight TRUE speed 1.0 type [ "WALK", "FLY" ] visibilityLimit 30.0

Guia de Consulta Rpida VRML, Ezequiel R. Zorzal e Luciano F. Silva

48

Viewpoint Permite especificar os parmetros para a viso do usurio como posio e orientao, ou criar novos pontos de viso no ambientes virtual. Para criar diferentes pontos de viso deve-se declarar diferentes Viewpoints, sendo que a cmera a qual ir iniciar no ambiente virtual a primeira declarada.
Viewpoint { description "Descrio" fieldOfView Valor jump TRUE|FALSE position Valor1 Valor2 Valor3 orientation Valor1 Valor2 Valor3 Valor4 }

Parmetros description

Descrio Permite atribuir uma descrio textual para o ponto de vista. A maioria dos browsers oferece uma lista dos pontos de vista, o contedo desta lista constitudo das descries criadas por meio do parmetro description. A ordem com que os pontos de vista so listados a mesma ordem que eles so declarados no documento VRML. Especifica um ngulo, em radiano, para a viso perspectiva do usurio. Possibilita a visualizao do ambiente como se o usurio estivesse usando uma lente e o ngulo determinado corresponde abertura desta lente. Determina como ser a transio de um ponto de vista ativo para um novo ponto de vista. Caso seu valor seja FALSE o usurio ser movido ao longo do caminho entre o ponto de vista atual e o novo ponto de vista, caso contrrio, com valor TRUE, o ponto de vista simplesmente mudado sem movimento. Determina uma coordenada 3D correspondente a localizao do ponto de vista do usurio no ambiente. Define uma rotao que especifica a direo para onde o usurio esta olhando.

fieldOfView jump

position orientation

Exemplo:
#VRML V2.0 utf8 Viewpoint { description "1" position 0 0 10 jump FALSE } Viewpoint { description "2" position 0 0 50 jump FALSE } Shape { appearance Appearance { material Material {} } geometry Sphere {} }

WorldInfo Este n no tem nenhum impacto visual no ambiente virtual, o seu uso restringe-se s finalidades da documentao e a dar um ttulo ao ambiente.
WorldInfo { info ["Lista de Palavras"] title "Ttulo" }

Parmetros info title

Descrio Permite definir uma lista de strings, que podem servir para documentar o ambiente virtual. Permite definir uma string, que pode corresponder ao titulo do ambiente virtual.

Exemplo:
#VRML V2.0 utf8

Guia de Consulta Rpida VRML, Ezequiel R. Zorzal e Luciano F. Silva

49

WorldInfo { info [ "Exemplo do comando WorldInfo","Realidade Virtual com VRML" ] title "O comando WorldInfo" }

Guia de Consulta Rpida VRML, Ezequiel R. Zorzal e Luciano F. Silva

50