M%&ica Mari a Bra'ors(i e E)erli& i*hera Mar+,es ntroduo VRML uma Linguagem para Modelao de Realidade Virtual usada para criar mundo de trs di menses. Trata- se de um formato de arqui vo objeto de 3D, anlogo ao HTML (para objetos tridi mensi onais). Usando- se formas pr- defini das e se especificando novas formas a parti r dessas, pode- se atribui r cor, forma, luz e outros a um documento VRML. H um tempo, surgi u a idia de levar a Realidade Virtual para a internet . Dessa idia surgi u o VRML, que a abreviao de Virtual Reality Modeling Language . VRML uma linguagem independente de plataforma que permi te a criao de ambientes virtuais por onde se pode navegar, visualizar objetos por ngul os diferentes e at interagi r com eles. Hoje, graas ao crescente investi mento de grandes empresas, o VRML o padro para desenvol vi mento de aplicaes de realidade virtual mul ti- usurio na internet . O objeti vo da linguagem este mesmo: levar a realidade virtual para o usurio comum, atravs da internet . Com o rpido avano da tecnologi a, os computadores pessoais esto cada vez mais rpidos e poderosos, e isto faz com que a realidade virtual deixe de ser objeto de estudo dos grandes centros de pesquisa e possa ser utilizada por usurios comuns. A linguagem possui toda a estrutura necessria para o desenvol vi ment o de aplicaes de realidade virtual. A pri mei ra verso ( VRML 1.0), com exceo de algumas extenses, no possibili ta mui ta interao do usurio com o mundo virtual, mas verses recentes acrescentam caractersticas como ani mao, som, movi mentos de objetos e interao entre usurios. A lti ma verso a 2.0, chamada Moving Worlds VRML 2.0. Por ser independente de plataforma, uma aplicao VRML roda em qualquer mqui na que tenha um browser VRML, ou seja, uma aplicao que roda no PC, roda numa Silicon Graphics, numa Sun, etc. sem nenhuma alterao. A indstria do entreteni ment o a que mais tem se beneficiado com os recursos da RV. Muitas tecnologi as tambm so desenvol vi das parti ndo da necessidade que certos filmes tm em passar para a tela as idias no papel. Um exempl o a empresa Industri al Light & Magic de George Lucas que pretende num futuro prxi mo desenvol ver atores humanos virtuais mais realistas para interagi r com atores reais (como no fil me pionei ro Roger Rabbit ). Na World Wide Web, a RV usada princi pal mente em jogos interati vos criando ambientes em que o nvel de realidade dos cenrios se aproxi ma do mundo real. Exempl os so os jogos M!. Sociedades virtuais juntam em mesmo espao humanos, avatares e objetos em 3D. Servindo como foco de estudo para comportamento humano em casos concretos. Mundos em VRML so adotados por usurios que desejam interao mais face a face. O Brasil Virtual um exempl o onde criou- se uma espcie de cidade tridi mensi onal na qual habi tantes podem construi r, comuni car- se e votar. Na medici na virtual, a RV possibili ta construo de ambientes tridi mensionais para operaes delicadssi mas a serem efetuadas, sem prejuzo para o paciente. a maneira de praticar as aulas tericas e ainda consul tar a distncia atravs da telemedi ci na. O projeto 'Homem Visvel ' foi pioneiro ao mapear todo o corpo humano montando uma gigantesca base de dados de imagens virtuais. Este projeto foi desenvol vi do pela "atinal Library Medicine #"LM$, a maior biblioteca mdica do mundo e ponto de refernci a da medici na mundi al. O processo baseou- se em escanear e digi tal izar cadveres perfei tos de ambos sexos - obtendo- se as imagens Apostila de VRML Bsico LI!-A . P*i&a " Apostila de VRML Bsico The Cyclops Project INE/CTC/U!C/"##$ M%&ica Mari a Bra'ors(i e E)erli& i*hera Mar+,es tomogrfi cas de ambos, cada corpo foi seccionado em fatias de % && de espessura e fotografado por cmara digi tal colori da de alta resoluo. No total 56 Gbytes de espao que consti tuem a 19 000 imagens produzidas. O pri mei ro projeto a utilizar esta base de dados foi a 'nalyse da Clnica Mayo, em Rochester , Estados Unidos. O software 'nalyse permi te uma viagem virtual pelo corpo humano. A Arqui tetura e a Construo Civil ainda usaro a RV para que o usurio escolha e determi ne o ambiente em que vai morar. Mas j possvel o cliente andar pela planta antes de aprovar o projeto, tudo isso feito por simul aes virtuais como a Faculdade de Arqui tetura de tah . Nessa facul dade, criou- se um modelo de hospi tal em VRML na W(), onde se permi te crticas e interao com o projeto. Em design projetam- se roupas pelo MIT (nsti tuto de Tecnologi a), esta a funo do Wearabl e co&puter . O MIT tambm desenvol veu *hoto )oo+, um amplo banco de dados de faces onde pode- se procurar rostos conheci dos entre os disponveis no sistema - particul arment e til para a polcia, jornalistas, etc. O so,t-are capaz de notar pequenas mudanas no rosto (na face ou um corte de cabelo). Histrico de VRML
VRML foi exposto na pri mavera de 1994 na Primei ra Confernci a de World Wide Web anual, rm Genebra- Suca. Tim Berners- Lee e Dave Raggett organizaram uma sessao de )irds. o,.a. /eather - Penas de um Pssaro - (BOF) para discuti r interfaces de VR para a World Wide Web. Vrios freqentadores das discusses descreveram projetos ainda em planejamento para construi r ferramentas de visualizao grfica para 3D que interagissem com a Web. Todos concordaram com a necessidade dessas ferramentas para ter uma linguagem comum de especificao de descrio de cenrios 3D e hiperl i n+s WWW - um anlogo ao HTML para VR. O termo VRML foi forjado, e o grupo resol ver comear com especificaes de trabal ho depois da confernci a. A palavra Mar+p foi posteri ormente modi ficada para Modelao para refleti r a natureza grfica do VRML. Logo aps a Genebra, as listas de discusso ---. vr&l foram criadas para o desenvol vi ment o de uma especificao para a pri mei ra verso de VRML. A adeso foi excepcional: aps uma semana havia mais de mil membros. Aps se estabelecer, Mar+ *esce do Labyrinth Group anunciou que desejava aprontar um esboo da especificao para a Conferncia de Outono de WWW de 1994, em apenas 5 meses. Era um calendri o mui to difcil: mas a pri mei ra verso no era mui to ambici osa e o VRML poderia ser adaptado de uma soluo existente. A lista rapidamente acatou que um grupo de regras para a pri mei ra verso, e comeou a procurar por tecnologi as compatveis com as necessidades do VRML. A procura por tecnologi as existentes envol veu vrios tipo de candi datos no mundo. Depois de mui to deliberar a lista chegou a um consenso: o 0pen Inventor 'S1II /ile /or&at da Silicon Graphics Inc2 O Inventor /ile /or&at suportava descries completas de cenrios de 3D com polgonos representando objetos, ilumi nao, materiais, propriedades de ambientes e efeitos realistas. Um subconj unto do nventor File Format, com extenses com suportes para redes, formas para base de VRML. Apostila de VRML Bsico LI!-A . P*i&a / Apostila de VRML Bsico The Cyclops Project INE/CTC/U!C/"##$ M%&ica Mari a Bra'ors(i e E)erli& i*hera Mar+,es Gavin Bell da Silicon Graphics adaptou para a lista de &ail o Inventor /ile /or&at para VRML, com design de acordo com lista de discusso. SG tem publici dade estabeleci da que o formato de arqui vo est disponvel para uso do mercado aberto, e tem contri budo para um parser de formato de arqui vo num domnio pblico para bootstrap (mecanismo de boot ) para desenvol vi ment o de visualizador de VRML. Aplicaes A realidade virtual forma de interface mais natural entre o computador e o ser humano. Por isso, o nmero de aplicaes mui to grande, em diversas reas do conheci mento. A seguir esto alguns exempl os de aplicao : na rea de visualizao de dados, podemos usar o VRML para criar grficos tridi mensionais, por exempl o. fcil visualizar os nmeros de um grfico 3D. Fica mais fcil ainda quando podemos visualizar este grfico por vrios ngulos diferentes. Veja um exempl o desta aplicao: 1'! - VRML permi te que o projetista ou desenhista veja seu modelo 1'! em um ambi ente 3D virtual interati vo, podendo mani pul ar e visualizar o modelo de forma livre. Ou seja, o projetista pode acompanhar o desenvol vi ment o do projeto usando VRML para visualizar seu modelo em trs dimenses. Passos Bsicos uma linguagem interpretada composta por n, campo e comentri o. Usa-se : #VRML V1.0 ascii para que o interpretador reconhea este documento como VRML (*.wrl). * N: comando que define formas e propriedades em VRML . Ex. de Primiti vas: cubo, esfera, cilindro e cone, => Trans,or& (move, di mensiona e rotaciona objeto) => 'sciiTe3t (define texto ascii a ser mostrados) => Groupi nd "odes (agrupa informaes juntas - para reuso) * Campo: atributos que os ns tem. Ex.: Um cubo descri to pelas propriedades LARGURA, ALTURA e PROFUNDDADE. * Comentri o: " # " precede todo comentri o. Um comentri o pode ser feito em qual quer posio na linha. O ESPAO Todas coordenadas em VRML so expressas em X,Y,Z. O eixo X representa o eixo horizontal do moni tor, o eixo Y verti cal e o eixo Z, entra e sai. Medidas lineares so em metros e angul ares, em radianos. Um forma criada a princpio vazia, oca, sem cor e tem origem (0,0,0). Por isso, esses atri butos devem ser modi ficados conforme a convenincia. Por exempl o, Apostila de VRML Bsico LI!-A . P*i&a 0 Apostila de VRML Bsico The Cyclops Project INE/CTC/U!C/"##$ M%&ica Mari a Bra'ors(i e E)erli& i*hera Mar+,es ao se representar- se um quarto, conveni ente que seja uma forma oca. possvel especificar ilumi nao dentro de uma forma ( *oint Light ). Os ns so basicamente quatro: cubo, esfera, cilindro, cone. E exceto, pelo cubo, os outros ns so formas triviais. O CUBO Constitui uma forma de 6 faces e pode dispensar altura, largura e profundi dade equi val entes. #VRML V1.0 ascii /* A sintaxe para construo de um cubo : */ Cube { width 2 height 2 depth 2 }
/* no lugar de 2 deve haver sempre um nmero real qual quer */ GRFCOS 3D necessrio alguma fami li ari dade com internet e HTML. Para isso, exempl i fi caremos instrues bsicas para a criao de mundos VRML. Usaremos um editor de texto ascii e o bro-ser de VRML Live4!. Eventual mente pode- se acrescentar textura aos arqui vos de imagem criados. H trs elementos neste contexto: o observador, o objeto e a luz. Um objeto mais compl exo pode ser defini do nas trs coordenadas: X, Y e Z. E pode- se atribui r certas propriedades como: * materi al : como o objeto interage com a luz. * translati on : tradicional mente identi ficado como centro do objeto, modi ficando esta propri edade, modi fica- se o centro do objeto (metros). * rotation : muda a orientao de um objeto em cena (radianos). * scaling : muda a dimenso dos objetos. * lighti ng : aplica luz a cena. * te3ture &appi ng : aplica imagem a superfcie de um objeto.
Grficos 3D definem espaos tridi mensi onais, como o sistema de trs eixos: * X, que corresponde a largura; * Y, a altura; * Z , a profundi dade.
Eixos XYZ Apostila de VRML Bsico LI!-A . P*i&a 1 Apostila de VRML Bsico The Cyclops Project INE/CTC/U!C/"##$ M%&ica Mari a Bra'ors(i e E)erli& i*hera Mar+,es Assumi ndo um ponto no centro, a discrio de objetos em espao tridi mensi onal expresso com as coordenadas representando com pontos absolutos num sistemas de coordenadas tridi mensi onais relati vos ao ponto central. Cada eixo tem direo positi va e negati va entendendo- se o ponto central como cenrio. VRML padroniza o eixo Y positi vo aponta para cima, o eixo X positi vo aponta para a direi ta e o eixo Z aponta direto para o usurio. Objetos com cenrio podem ser rotacionados, provocando a orientao dos seus eixos mudem de acordo. Uma vez que a locao do objeto estabeleci da, relati va ao centro absoluto, pode ser orientada em uma ou mais de trs direes: * 5a-: rotao sobre o eixo Y; 5a-, Rotao Y * *itch: rotao sobre o eixo X; *itch, Rotao X * Roll : rotao sobre o eixo Z. Roll , Rotao Z Os trs eixos (X,Y,Z) e as trs rotaes ( 5a-, *itch, Roll ) juntos, so referenci ados como seis graus de liberdade. O referencial e a orientao de objetos em espao tridi mensi onal so determi nados por estas seis informaes. COMO OS COMPUTADORES REPRESENTAM OBJETOS 3D Quando um objeto grfico tridi mensi onal criado, um conjunto de pontos normal mente costuma representar a forma. Desde que difcil ver a forma de um objeto claramente quando somente alguns pontos so designados, este conjunto chamado *oint 1loud - Nuvem de Pontos. Os pontos, ento, so ligados por linhas para formar uma mal ha (&esh ou -ire,ra&e ). O -ire,ra&e mostra nitidamente um grupo de polgonos (tipicamente tringul os, desde que possam ser rapidamente gerados). importante lembrar que polgonos so tipicamente lados ou faces 2 Uma face de polgono o lado da qual sua normal (um raio de luz atravessa o polgono Apostila de VRML Bsico LI!-A . P*i&a 2 Apostila de VRML Bsico The Cyclops Project INE/CTC/U!C/"##$ M%&ica Mari a Bra'ors(i e E)erli& i*hera Mar+,es no ngulo reto) distancia- se do polgono. Assim, os polgonos so visveis de fora e invisveis por dentro. Nuvem de Pontos Apostila de VRML Bsico LI!-A . P*i&a 3 Apostila de VRML Bsico The Cyclops Project INE/CTC/U!C/"##$ M%&ica Mari a Bra'ors(i e E)erli& i*hera Mar+,es Malha (Wire,ra&e$ Uma vez que os polgono foram criados, o computador pode ento escurecer polgonos indi vi duais para produzir a aparnci a de um objetos slido. Opcional mente o computador acresce a textura ao objeto. Texturizar torna possvel criar rapidamente objetos de superfcies bastante compl exas. Objeto Slido Objeto Texturizado CRANDO MUNDOS VRML: TCNCAS PADRES Descrio de Cenrio e *arsers VRML uma linguagem de descrio de cenrios. Embora seja um linguagem computaci onal, no uma linguagem de programao. Arqui vos VRML no so compi lados, mas apenas arqui vos texto ascii que podem ser parsed por um interpretador VRML. Os *arsers (programas interpretadores) so conheci dos tambm como bro-sers VRML . Se voc j escreveu documentos HTML, ento Apostila de VRML Bsico LI!-A . P*i&a 4 Apostila de VRML Bsico The Cyclops Project INE/CTC/U!C/"##$ M%&ica Mari a Bra'ors(i e E)erli& i*hera Mar+,es conveniente trabal har num bro-ser HTML para ver os resultados desde trabal ho. O mesmo acontece para VRML: escreve- se o cdigo no editor de texto asciii , salva o arqui vo e se v o cenrio ou mundo VRML com o bro-ser VRML. Sendo o cdigo VRML interpretado, os resultados visveis do cdigo variam de um bro-ser para o outro. Alm do mais, VRML extendvel, isto , que desenvol vedores do bro-ser podem adicionar funcionali dades no padro linguagem. Cenrio Grfico e Ns Um bro-ser VRML deve reconhecer um arqui vo como cdigo VRML para interpret- lo (*arser ). Este acoplado com um simples cabealho string no incio do arqui vo: #VRML V1.0 ascii Este cabeal ho deve estar na pri mei ra linha do arqui vo VRML para ser interpretado corretamente. Note que em mui tos casos o smbolo ' # ' indica comentri o, exceto aqui. Os objetos em um arqui vo VRML so chamados ns ou nodos. Quando organizados hierarqui camente, os ns compe um cenrio grfico. Cada mundo VRML , por mais simples que seja, um cenrio grfico. Os ns so de trs tipos: * ns de forma: descreve geometri a real; * ns de propri edade: que modifica geometri a; * ns de grupo: podendo modi ficar um grupo de objetos como se fosse apenas um objeto. O efeito cumul ati vo dos ns em um cenrio grfico chamado estado (state). Para mui tos propsi tos o nodo mais importante de grupo o node Separator , cujo uso : Separator { outros ns aqui } O n separador (Separator ) mantm encerrados os efeitos de modi ficao da propriedade dos ns com ele. Assim, somente ns com separador podem ser modi ficados por propri edades de ns com o mesmo separador; ns fora daquel e separador no sero afetados por aquelas propri edades de ns. Unidades de Medida VRML assume os segui ntes valores para unidades de mensuramento: * distnci a e tamanho: metro (&); * ngulo: radianos; * outros valores: porcentagem (expressa em fraes de 1). Material A propri edade material para qualquer forma pode ser especificada como N Material, cujo uso : Apostila de VRML Bsico LI!-A . P*i&a $ Apostila de VRML Bsico The Cyclops Project INE/CTC/U!C/"##$ M%&ica Mari a Bra'ors(i e E)erli& i*hera Mar+,es #VRML V1.0 ascii Separator { Material { ambi entColor 0.2 0.2 0.2 diffuseColor 0.8 0.8 0.8 specularColor 0 0 0 emissiveColor 0 0 0 shini ness 0.2 transparency 0 } } Cada documento de n Material que especifica um tipo de cor usa valores RG) (ntensi dades Red, Green and )lue$ , o valor vermel ho o mais esquerdo, o valor verde central e o azul o valor mais da direi ta. Teoricamente, qual quer cor (nuana, saturao, valor) podem ser criados combi nando vermel ho, verde e azul em diferentes intensidades. Deseja- se uma esfera azul. Usam- se alguns componentes bsicos do VRML: cabealho, Separator , Material , Sphere . Vai- se criar um arqui vo VRML que quando traduzi do por um bro-ser VRML , ser descri to um mundo VRML que contm uma esfera azul: #VRML V1.0 ascii Separator { Material { emissiveColor 0 0 1 } Sphere { } } Esfera Azul Note que o argumento radius (radianos) no foi usado no n sphere . Logo foi assumi do um valor padro. Textura Apostila de VRML Bsico LI!-A . P*i&a # Apostila de VRML Bsico The Cyclops Project INE/CTC/U!C/"##$ M%&ica Mari a Bra'ors(i e E)erli& i*hera Mar+,es Qualquer forma pode ter a textura aplicada na sua superfcie. A textura pode vir de um arqui vo externo de imagem para um arqui vo mundo VRML ou especificado com o arqui vo mundo como uma srie de coordenadas. Exemplo: usaremos arqui vos imagem, desde que seja a manei ra mais fcil para envol ver rapidamente a forma de um objeto VRML numa textura. Uma textura de um arqui vo de imagem pode ser aplicada a uma forma como n Te3ture6 : #VRML V1.0 ascii Separator { Texture2 { filename " " image 0 0 0 wrapS REPEAT wrapT REPEAT } } Para nossos propsitos, somente o argumento ,ilena&e ser usado nesses exempl os. Vamos dizer que queremos fazer uma tora de pedra. Usando somente os componentes: cabeal ho, Separator , Te3ture6 , 1ube. Vamos criar um arqui vo VRML , que quando interpretado descreve o mundo VRML um objeto assemel hado a uma tora de pedra . #VRML V1.0 ascii Separator { Texture2 { filename "stone.j pg } Cube { width 1 height 2 depth 0.15 } } Apostila de VRML Bsico LI!-A . P*i&a "5 Apostila de VRML Bsico The Cyclops Project INE/CTC/U!C/"##$ M%&ica Mari a Bra'ors(i e E)erli& i*hera Mar+,es Cubo Texturizado (Stone Slab) Transformaes Por de,aul t, objetos num cenrio VRML : * tem como local do centro, o centro do cenrio; * tem como orientao, a orientao padro do cenrio; * tem como dimenses, as pri mi ti vas, isto , as dimenses especificadas. Exceto quando necessrio modi ficar alguns dessas convenes para um objeto, uma ou mais transformaes sero usadas. Os nodos de transformaes so um tipo de n propriedade. Termos especiais costumam descrever as funes executadas pelos ns de transformao so: * translate7 muda a locao do centro do objeto; * rotate : muda a orientao dos eixos do objeto; * scale: muda di menses do objeto. O n Trans,or& contm todas as funes de transformaes mencionadas acima. Exempl o: #VRML V1.0 ascii Separator { Transform { translation 0 0 0 rotati on 0 0 1 0 scaleFactor 1 1 1 scaleOrientati on 0 0 1 0 center 0 0 0 } } Para o propsi to de simplici dade e melhor esclareci mento o relacionamento de hierrqui co de ns no cenrio VRML , trs outros ns de transformao, que Apostila de VRML Bsico LI!-A . P*i&a "" Apostila de VRML Bsico The Cyclops Project INE/CTC/U!C/"##$ M%&ica Mari a Bra'ors(i e E)erli& i*hera Mar+,es executam somente um tipo de transformao cada, sero usadas nesses exempl os. Os ns so Translation , Rotation e Scale. O n Translati on como um objeto de um ou mais de trs eixos. Seu uso : #VRML V1.0 ascii Separator { Transform { translation 0 0 0 } } Digamos que se queira inclui r uma esfera vermel ha num mundo j existente que contm uma esfera azul. Usando os ns VRML , podemos criar um mundo VRML que contenha ambas. Entretanto, por conveno, ambas esferas sero colocadas no centro exato do cenrio. Por isso, usaremos n Translation para transformar o local de uma das esferas, a azul, situando- as lado a lado. Exempl o: #VRML V1.0 ascii Separator { Separator { # esfera vermel ha, de,aul t o centro do cenrio Material { emissiveColor 1 0 0 } Sphere { } } Separator { # esfera azul, deslocada pelo eixo X positi vo Translati on { translation 2.25 0 0 } Material { emissiveColor 0 0 1 } Sphere { } } } Apostila de VRML Bsico LI!-A . P*i&a "/ Apostila de VRML Bsico The Cyclops Project INE/CTC/U!C/"##$ M%&ica Mari a Bra'ors(i e E)erli& i*hera Mar+,es Esfera Vermel ha e Esfera Azul Deslocada Note que cada nodo Sphere foi situada com um diferente nodo Separator com as propri edades que influenci am cada uma. Assim os efeitos de cada ns de propriedade (Material , Translati on , nesse exempl o) para que cada uma somente afete os ns de forma (por exempl o: Sphere ) cujas propriedades desejamos modi ficar. Note que o Separator contm todos os outros ns do cenrio grfico. Embora no seja obrigatri o, aconselhvel usar " Separator Cenrio " em cada cenrio grfico. O n Rotation pode rotacionar um objeto em um ou mais de trs eixos, mas usado normal mente para fazer rotao somente de um eixo por vez. O n Rotation afeta a orientao: #VRML V1.0 ascii Separator { Rotation { rotati on 0 0 1 0 } } Digamos que se deseja um mundo com dois cones, um sobre o outro, um apontando para cima e um para o lado. Usando ns de propriedade de VRML e o n de forma Cone, poderemos criar um mundo VRML que contm um cone marrom e um azul, um sobre o outro. Entretanto, por conveno, ambos cones devem apontar para cima. Portanto, usaremos o n Rotation para mudar a orientao de um dos cones, o azul, inclinando- o 90 para o lado. #VRML V1.0 ascii Separator { Separator { # brown cone, translated along the negati ve Y axis Translati on { translation 0 -2 0 } Apostila de VRML Bsico LI!-A . P*i&a "0 Apostila de VRML Bsico The Cyclops Project INE/CTC/U!C/"##$ M%&ica Mari a Bra'ors(i e E)erli& i*hera Mar+,es Material { emissiveColor 1 0.6 0.44 } Cone { height 2 bottomRadi us 0.5 } } Separator { # blue cone, rotated 90 degrees on the Z axis Rotation { rotati on 0 0 1 1.57 } Material { emissiveColor 0.4 0 1 } Cone { height 2 bottomRadi us 0.5 } } }
Cone Marrom e Cone Azul Rotacionado N Scale atri bui escala ao objeto ao longo de um ou mais dos seus trs eixos. #VRML V1.0 ascii Separator { Scale { scaleFactor 1 1 1 } } Apostila de VRML Bsico LI!-A . P*i&a "1 Apostila de VRML Bsico The Cyclops Project INE/CTC/U!C/"##$ M%&ica Mari a Bra'ors(i e E)erli& i*hera Mar+,es Este n pode criar uma verso das esferas em que pode se ver as duas sem que uma compri ma a outra. #VRML V1.0 ascii Separator { Separator { # red sphere Material { emissiveColor 1 0 0 } Sphere { } } Separator { # blue sphere, scaled down on the X and Z axes Translati on { translation 2.25 0 0 } Scale { scaleFactor 0.6 1 0.6 } Material { emissiveColor 0 0 1 } Sphere { } } } Esfera Vermel ha e Esfera Azul Escalada O n Scale foi situado aps o n Translation com o Separator da esfera azul. O estado do cenrio varia de acordo com a ordem dos seus ns, o efeito de " Scale, Translati on diferente de " Translati on , Scale ". nstancializao Apostila de VRML Bsico LI!-A . P*i&a "2 Apostila de VRML Bsico The Cyclops Project INE/CTC/U!C/"##$ M%&ica Mari a Bra'ors(i e E)erli& i*hera Mar+,es Uma maneira de reduzir o nmero de ns que so usados no arqui vo mundo que descreve mui tas formas, reutil izar definies de objetos em cenrios. Esse processo a instancializao. As sentenas !(/ e S( permi tem o processo: #VRML V1.0 ascii Separator { DEF name shape node or DEF name Material { } or DEF name Separator { groupi ng, property and shape nodes } Separator { USE name } } Exempl o do siri no fundo do mar, com partes instanci adas: #VRML V1.0 ascii Separator { Separator { # viewpoi nts DEF Cameras Switch { whichChild 0 DEF "Crab!" Perspecti veCamera { position 0 0 7 } } } Separator { Rotation { rotati on 0 1 0 1.57 } Separator { # body Scale { Apostila de VRML Bsico LI!-A . P*i&a "3 Apostila de VRML Bsico The Cyclops Project INE/CTC/U!C/"##$ M%&ica Mari a Bra'ors(i e E)erli& i*hera Mar+,es scaleFactor 1 0.3 1 } Material { diffuseColor 0.8 0.8 1 } DEF Ball Sphere { radius 2 } } DEF 3Legs Separator { # 3 legs 1 DEF Leg Separator { # leg 1 Material { diffuseColor 1 0.3 0.3 } Separator { # upper leg Translati on { translation 0 0.55 2.3 } Rotation { rotati on 1 0 0 0.9 } DEF LegSegment Cylinder { height 2 radius 0.13 } } Separator { # joint Translati on { translation 0 1.26 3.15 } Scale { scaleFactor 0.095 0.095 0.095 } USE Ball } Separator { # lower leg Translati on { translation 0 0.7 3.85 } Rotation { rotati on 1 0 0 -0.9 } Scale { Apostila de VRML Bsico LI!-A . P*i&a "4 Apostila de VRML Bsico The Cyclops Project INE/CTC/U!C/"##$ M%&ica Mari a Bra'ors(i e E)erli& i*hera Mar+,es scaleFactor 0.8 0.8 0.8 } USE LegSegment } } Separator { # leg 2 Translati on { translation 0.62 0.2 -0.2 } Rotation { rotati on 0 1 0 0.65 } USE Leg } Separator { # leg 3 Translati on { translation -0.62 0.2 -0.2 } Rotation { rotati on 0 1 0 -0.65 } USE Leg } } Separator { # 3 legs 2 Rotation { rotati on 0 1 0 3.14 } USE 3Legs } DEF Eye Separator { # eye 1 Material { diffuseColor 1 1 1 Translati on { translation -1.95 0 -0.45 } Rotation { rotati on 0 0 1 -1.9 } Cone { # eyebal l height 0.4 bottomRadi us 0.2 } Material { diffuseColor 0 0 0 } Apostila de VRML Bsico LI!-A . P*i&a "$ Apostila de VRML Bsico The Cyclops Project INE/CTC/U!C/"##$ M%&ica Mari a Bra'ors(i e E)erli& i*hera Mar+,es Translati on { translation 0 -0.015 0 } Cone { # iris parts BOTTOM height 0.4 bottomRadi us 0.1 } }
Separator { # eye 2 Translati on { translation 0 0 0.9 } USE Eye } } } Siri no Fundo do Mar com Partes nstanciadas nlines uma outra forma de instanciar objetos. Esta forma acoplada com o n WWWInline : #VRML V1.0 ascii Separator { WWWnline { name "" bboxSize 0 0 0 bboxCenter 0 0 0 } } Apostila de VRML Bsico LI!-A . P*i&a "# Apostila de VRML Bsico The Cyclops Project INE/CTC/U!C/"##$ M%&ica Mari a Bra'ors(i e E)erli& i*hera Mar+,es O campo "a&e o cami nho do arqui vo World a ser usado. Os campos bbo3Si8e e bbo31enter opcional mente descrevem caixa limi tada (boundi ng bo3 ), que dados ao usurio como indicati vo da locao do objeto e tamanho antes de ser interpretado. Caixas limi tadas podem ser bastante teis para a construo de mundos mui to grandes ou mui to complexos. lumi nao possvel tambm prover ilumi nao para os mundos VRML. Caso no se especifi que as propriedades referentes a ilumi nao, o mundo VRML assume o padro do bro-ser de VRML . Para isso usa- se ns de ilumi nao, isto , para criar fonte de ilumi nao. Basicamente dependendo da sua posio no cenrio grfico e tipo, ns de ilumi nao afetam outras formas no cenrio e podem ser transformadas. Como outros ns de propri edade se um n de ilumi nao est num Separator no afetar formas externas a este Separator . Os ns de ilumi nao de VRML so: !irecti onalLight , *ointLight e SpotLight . O n !irectionalLight cria uma fonte de ilumi nao que afeta a todas formas na direo especificada: DirectionalLi ght { on TRUE intensi ty 1 color 1 1 1 direction 0 0 -1 } Alguns bro-sers VRML assumem uma luz de centro por conveno, que brilha no cenrio, ao longo do eixo Z negati vo. Definiremos fonte de luz para ilumi nar o eixo X: #VRML V1.0 ascii Separator { DirectionalLi ght { on TRUE intensi ty 0.4 direction -1 0 0 } DirectionalLi ght { on TRUE intensi ty 0.4 direction 1 0 0 } Separator { # brown cone, translated along the negati ve Y axis Translati on { translation 0 -2 0 } Material { emissiveColor 1 0.6 0.44 Apostila de VRML Bsico LI!-A . P*i&a /5 Apostila de VRML Bsico The Cyclops Project INE/CTC/U!C/"##$ M%&ica Mari a Bra'ors(i e E)erli& i*hera Mar+,es } Cone { height 2 bottomRadi us 0.5 } } Separator { # blue cone, rotated 90 degrees on the Z axis Rotation { rotati on 0 0 1 1.57 } Material { emissi veColor 0.4 0 1 } Cone { height 2 bottomRadi us 0.5 } } } Dois Cones lumi nados Cameras (Pontos de Vista) Um ponto de vista (vie-poi nt ) a posio exata da qual o mundo VRML visto: defini da no cenrio grfico do arqui vo -orld . Nos exempl os anteri ores o vie-poi nt padro, tambm conhecido como entry vie- , foi o nico considerado. O entry vie- a posio da qual vemos o cenrio quando o mundo VRML representado no bro-ser , se nenhum outro ponto de vista foi defini do no mundo. Para ver os exempl os anteri ores de novos pontos de vista, necessrio navegar manual mente para aquela posio. O que se faz para o usurio ver um mundo VRML de uma posio especial, alm da padro, assim que o cenrio carregado o pri mei ro momento? Apostila de VRML Bsico LI!-A . P*i&a /" Apostila de VRML Bsico The Cyclops Project INE/CTC/U!C/"##$ M%&ica Mari a Bra'ors(i e E)erli& i*hera Mar+,es VRML ns ca&era para defini r posies exatas para visualizar um cenrio. Alm da dificul dade de precis- lo, ns ca&era podem ser vistos como ns propriedade (property nodes ), desde que: 1. eles paream transformar as formas em um cenrio; 2. alguns dos seus parmetros, comportando- se como lentes de efeitos especiais, criem a iluso de distanciamento das formas, mesmo depois do usurio ter- se afastado da posio da ca&era . Dois ns ca&era , *erspecti ve1a&era e 0rthographi c1a&era , so defini dos em VRML . Mas apenas o *erspecti ve1a&era normal mente suportado por bro-sers VRML : #VRML V1.0 ascii Separator { Perspecti veCamera { position 0 0 1 orientati on 0 0 1 0 focalDistance 5 heightAngl e 0.785398 } } Usa-se o n de agrupamento S-itch para mel hor defini rmos ml ti pl os vie-poi nts : #VRML V1.0 ascii Separator { Switch { whichChild -1 } } Usando o exempl o do siri no fundo do mar (deep sea crab ), demonstramos ns WWWInline , *erspecti ve1a&era e S-itch : #VRML V1.0 ascii Separator { Separator { # viewpoi nts DEF Cameras Switch { whichChild 0 DEF "Front" Perspecti veCamera { position 0 0 7 } DEF "Back" Perspecti veCamera { position 0 0 -7 orientati on 0 1 0 3.14 Apostila de VRML Bsico LI!-A . P*i&a // Apostila de VRML Bsico The Cyclops Project INE/CTC/U!C/"##$ M%&ica Mari a Bra'ors(i e E)erli& i*hera Mar+,es } DEF "Side" Perspecti veCamera { position 7 0 0 orientati on 0 1 0 1.57 } DEF "Top" Perspecti veCamera { position 0 10 0 orientati on 1 0 0 -1.57 } DEF "Bottom" Perspecti veCamera { position 0 -10 0 orientati on 1 0 0 1.57 } } } Separator { # crab WWWnline { name "1crab1.wrl " } } } Siri no Fundo do Mar com Ponto de Vista Nvel de Detal hes #VRML V1.0 ascii LOD { range [ ] center 0 0 0 } Apostila de VRML Bsico LI!-A . P*i&a /0 Apostila de VRML Bsico The Cyclops Project INE/CTC/U!C/"##$ M%&ica Mari a Bra'ors(i e E)erli& i*hera Mar+,es Usando trs nodos forma pri mi ti va, instancializao e o n L0!, ser possivel defini r trs nveis de detalhe, contendo um grupo de formas pri mi ti vas, cada grupo contendo uma cor diferente: #VRML V1.0 ascii Separator { Perspecti veCamera { position 0 0 102 } DirectionalLi ght { on TRUE intensi ty 0.7 direction 0 0 -1 } LOD { # level- of- detail range [ 50,70 ] Separator { # third level, red Material { emissiveColor 1 0 0 } DEF ObjectSet Separator { Separator { # Cube Translati on { translation -2 0 0 } Cube { width 1 height 1 depth 1 } } # end of Cube Separator
Separator { # Cone Translati on { translation 0 -2 0 } Cone { height 1.5 bottomRadi us 0.5 } } # end of Cone Separator Separator { # Cylinder Translati on { translation 2 0 0 Apostila de VRML Bsico LI!-A . P*i&a /1 Apostila de VRML Bsico The Cyclops Project INE/CTC/U!C/"##$ M%&ica Mari a Bra'ors(i e E)erli& i*hera Mar+,es } Cylinder { height 1.5 radius 0.65 } } # end of Cylinder Separator } # end of ObjectSet defini ti on Separator
Translati on { translation 0 0 25 } Rotation { rotati on 0 1 1 0.4 } Rotation { rotati on 0 1 0 3.14 } USE ObjectSet
} # end of third level Separator Separator { # second level, green Translati on { translation 0 0 50 } Material { emissiveColor 0 1 0 } USE ObjectSet
Translati on { translation 0 0 10 } Rotation { rotati on 0 1 1 0.4 } Rotation { rotati on 0 1 0 3.14 } USE ObjectSet } # end of second level Separator Separator { # first level, blue Translati on { translation 0 0 70 } Material { Apostila de VRML Bsico LI!-A . P*i&a /2 Apostila de VRML Bsico The Cyclops Project INE/CTC/U!C/"##$ M%&ica Mari a Bra'ors(i e E)erli& i*hera Mar+,es emissiveColor 0 0 1 } USE ObjectSet Translati on { translation 0 0 25 } Rotation { rotati on 0 1 1 0.4 } Rotation { rotati on 0 1 0 3.14 } USE ObjectSet
} # end of first level Separator } # end of level- of-detail } Primi ti vas com Nvel de Detal hes CRANDO MUNDOS VRML Cores de Fundo Live4! permi te definir cor para fundos de mundos VRML , com extenso )ac+ground1olor do Live4! de VRML : DEF BackgroundColor nfo { string "" } Apostila de VRML Bsico LI!-A . P*i&a /3 Apostila de VRML Bsico The Cyclops Project INE/CTC/U!C/"##$ M%&ica Mari a Bra'ors(i e E)erli& i*hera Mar+,es Criaremos uma verso do siri no fundo do mar (!eep Sea 1rab) que tenta mostra- se no oceano. Criando um mundo que importa (por Inlines ) o modelo do siri e usando o n )ac+ground1olor , um siri ser mostrado no campo azul esverdeado: #VRML V1.0 ascii Separator { DEF BackgroundColor nfo { string "0.15 0.6 0.7" } Separator { # viewpoi nts DEF Cameras Switch { whichChild 0 DEF "Crab!" Perspecti veCamera { position 0 0 7 } } } Separator { # crab WWWnline { name "1crab1.wrl " } } } Siri no Fundo do Mar com Cor de Fundo magem de Fundo Live4! permi te usar imagens para fundos nos mundos VRML . Extenses )ac+groundI&age VRML possibili tam isso: DEF Backgroundmage nfo { string "" } Para criar uma verso mais realista do siri no fundo do mar tenta se mostrar no oceano, modifica- se exempl o usado para rever o n )ac+ground1olor Apostila de VRML Bsico LI!-A . P*i&a /4 Apostila de VRML Bsico The Cyclops Project INE/CTC/U!C/"##$ M%&ica Mari a Bra'ors(i e E)erli& i*hera Mar+,es substi tui ndo o n )ac+groundI&age no Live4!. Assim d- se a impresso da vibrao da gua do mar atrs do model o do siri: #VRML V1.0 ascii Separator { DEF Backgroundmage nfo { string "baki mage.j pg" } Separator { # viewpoi nts DEF Cameras Switch { whichChild 0 DEF "Crab!" Perspecti veCamera { position 0 0 7 } } } Separator { # crab WWWnline { name "1crab1.wrl " } } } Siri no Fundo do Mar com magem de Fundo Apostila de VRML Bsico LI!-A . P*i&a /$ Apostila de VRML Bsico The Cyclops Project INE/CTC/U!C/"##$ M%&ica Mari a Bra'ors(i e E)erli& i*hera Mar+,es Referncias Bibliogrficas http://www.netscape.com/eng/l i ve3d/howto/vrml_pri mer_index.ht ml http://apertos0.csc.uvic.ca/ ~brycerw/vrml_tutori al /tutf rame.ht m http://www- ipf.bau- verm.uni- karlsruhe.de/Personen/l andes/book.ht ml http://www.dc.ufscar.br/ ~grv/ vrml / t utori ais/vrml 10/ # nt roduo http://tom.di .umi nho.pt/vrml / http://www.sdsc.edu/vrml / http://www.eecs.tul ane.edu/www/Benetz/ mai npage.ht ml http://www.ezi nfo.ethz.ch/general_info/WWW5/tutori al_2.ht ml http://www.sdsc.edu/vrml /cgi- bin/displ ay.cgi?category=Tut ori al s+- +VRML http://www.i webmasters.com/HTML%20Links.ht ml http://www.sdsc.edu/vrml Apostila de VRML Bsico LI!-A . P*i&a /#