Upload
salaz192533
View
156
Download
8
Tags:
Embed Size (px)
Citation preview
VRMLLENGUAJE DE MODELAMIENTO DE
REALIDAD VIRTUAL
Tecnología multimedia y Realidad virtual
Ing. CIP Dany Montoya Negrillo
Semana 01 Nodos Primitivos
Ing. Dany Montoya Negrillo
OBJETIVOSEstructura General de VRMLNodos Primitivos :
Shape Appearance Box Cylinder Sphere Cone Text
Transformaciones:
Nodo Trasform – translation - rotation - scale DEF-USE Nodo Group
EjerciciosPropuestos
Ing. Dany Montoya Negrillo
Estructura General
Shape { appearance Appearance {
material Material {diffuseColor 0 0 0
}}
geometry Cone {height 3 bottomRadius 0.5}
}
Ing. Dany Montoya Negrillo
SHAPE
Nodo básico para generar las escenas dentro de VRML A través de este nodo conseguimos que el resto de los nodos tengan visibilidad Su estructura sería la siguiente:
Shape{appearancegeometry
}
Ing. Dany Montoya Negrillo
Parámetros del Nodo Shape
appearance: este parámetro tomará como valor un nodo Appearance, el cual identificará la apariencia que pueda mostrar el nodo. geometry: el cual podrá tomar como valor los diferentes nodos básicos de vrml (box, cone, cylinder y sphere)
Ing. Dany Montoya Negrillo
Nodo Appearance
Mediante este nodo podemos configurar las características de visualización o de apariencia de los nodos. Su estructura es la siguiente:
Appearance{materialtexture
}
Ing. Dany Montoya Negrillo
Campos del Nodo Appearance
material: a través de este campo indicaremos los valores de color del nodo. Para ello el valor de este campo será un nodo Material.
texture: es el campo que nos da la posibilidad de envolver a un nodo con una imagen ya creada. Las posibilidades son: nodo ImageTexture, nodo PixelTexture o nodo MovieTexture respectivamente
Ing. Dany Montoya Negrillo
BOX
Nodo que representa un cubo Tiene la siguiente estructura:
Box { size x,y,z }size: tamaño del cubo indicando su ancho, alto y largo mediante valores reales.
Ing. Dany Montoya Negrillo
CYLINDER
Este nodo representa un cilindro Tiene la siguiente estructura:Cylinder{
height 5radius 2side TRUEtop TRUEbottom TRUE
}
Ing. Dany Montoya Negrillo
CONE
Un nodo que representa un cono Tiene la siguiente estructura:Cone{height 1bottomRadius 0.5bottom TRUEside TRUE}
Ing. Dany Montoya Negrillo
SPHERE
Nodo que representa una esfera Tiene la siguiente estructura:Sphere{
radius 0.5}
Ing. Dany Montoya Negrillo
NODO TEXT Estructura general del nodo Text :Text {String ...fontStyle ...}
string: En en este campo se escribe el texto que se quiere mostrar.fontStyle: En este campo se pone el estilo de fuente que tendra el texto.
Ing. Dany Montoya Negrillo
NODO TEXT
Estructura del Nodo FontStyle:FontStyle {family “SERIF”.style “BOLD”,syze 1.0spacing 1.0}
Ing. Dany Montoya Negrillo
Nodo Text completoText {string [“Esta es la primera fila de texto”,“Esta es la segunda fila”, “etc.”]fontStyle Font Style {
family “SERIF”,style “BOND”,size 1.0spacing 1.0}
} Ejm: texto.wrl
Ing. Dany Montoya Negrillo
NODO GROUP Eestructura general es la siguiente:
Group {children [Shape { ... },Shape { ... },.....
]}
Ing. Dany Montoya Negrillo
Nombres Propios a los Nodos
Uso de los comandos DEF y USE. DEF : este comando da el nombre al
Nodo. USE : Permite hacer usoi del Nodo
definido.
Ejm: DEF_USE.wrl
Ing. Dany Montoya Negrillo
NODO TRANSFORM
Su estructura general es la siguiente: Transform {translation ...rotation ...scale ...children [ ... ]}
Ing. Dany Montoya Negrillo
NODO TRANSFORM
Poniendo sólo el campo translation, queda el nodo Transform de esta manera:
Transform {translation 2 0 0children [ ... ]}
Ing. Dany Montoya Negrillo
NODO TRANSFORMPoniendo ahora sólo el campo rotation, queda el nodo Transform de esta manera:
Transform {rotation 1.0 0.0 0.0 1.57children [ ... ]}
Rotation alrededor del eje X: 1.0 0.0 0.0 Rotation alrededor del eje Y: 0.0 1.0 0.0 Rotation alrededor del eje Z: 0.0 0.0 1.0
Ejm : TraslaciónRotación.wrl
Ing. Dany Montoya Negrillo
NODO TRANSFORM
Poniendo ahora en el nodo Transform sólo el campo scale, para variar la escala, de los objetos, queda de la siguiente forma:
Transform {scale 0.5 2.0 0.5children [ ... ]}
Ejm : TraslacionRotacionEscala.wrl
Ing. Dany Montoya Negrillo
Ejercicios
Peón de AjedrezMesaEje de CoordenadasLibrero
Ing. Dany Montoya Negrillo
Propuestos
PerritoTienda de abarrotesLaboratorio PC’s
Ing. Dany Montoya Negrillo
ANEXO
Semana 02
Ing. Dany Montoya Negrillo.
Ing. Dany Montoya Negrillo
OBJETIVOSNodo Inline.AGRUPAMIETO DE OBJETOS
Nodo Anchor.
COLOR Y TRANSPARENCIA Nodo Material
Practica Dirigida: Ejercicios.
Ing. Dany Montoya Negrillo
Estructura del Nodo Inline : Inline {url "mesa.wrl"}
Transform { translation 5 0 0 children[
Inline {url"mesa.wrl"} ]}
NODO INLINE
Ing. Dany Montoya Negrillo
Devuelve el contenido de una url cuando el usuario activa (clicks) alguno de los nodos hijos contenidos en children .Estructura del Nodo Anchor : Anchor {
url "..indice.htm" description “html" children [ Shape {...}
] }
Anchor { url "temple.wrl"
description “wrl" children [...] } Ejm :
Link.wrl
NODO ANCHOR
Ing. Dany Montoya Negrillo
COLOR Y TRANSPARENCIA
Color y transparencia con el nodo Material :Material {
diffuseColor ...emissiveColor ...transparency ...specularColor ...shininess ...
}
Ing. Dany Montoya Negrillo
NODO MATERIALdiffuseColor: determina el color externo (o difuso) del objeto.emissiveColor: determina el color interno (o emisivo), para los objetos iluminados desde dentro.transparency: determina el grado de transparencia.specularColor: define el color de reflejos brillantes del objeto.shininess: controla la intensidad del resplandecer del brillo, valores pequeños representan un brillo suave y grande, con valores altos define brillos pequeños y forma luces altas.
Su valor es una única cifra que varía desde 0.0 a 1.0.
Ing. Dany Montoya Negrillo
Shape {appearance Appearance {
material Material {#diffuseColor 1.0 0.0 0.0emissiveColor 1.0 0.0 0.0
} }
geometry Cone {height 3.0bottomRadius 1 }
}
COLOR Y TRANSPARENCIA
Ing. Dany Montoya Negrillo
TransparenciaMaterial {Transparency 0.5}
Ejm: Transparencia.wrlIluminación.wrl
COLOR Y TRANSPARENCIA
Ing. Dany Montoya Negrillo
Ejercicios
Peon de AjedresMesaSillaEje de CoordenadasLampara
Semana 03 Nodos Avanzados
Ing. CIP Dany Montoya Negrillo.
Ing. Dany Montoya Negrillo
Nodos Avanzados : PointSet IndexedLineSet IndexedFaceSet
OBJETIVOS
Ing. Dany Montoya Negrillo
Nodo PointSet Se utiliza para poder mostrar puntos en el espacio, sus parámetros son: coord Coordinate {point[]}: En la
cual se colocan la ubicación de cada punto en los tres parámetros del espacio, pueden haber más de un punto especificado.
color Color { color [] }: La cual es opcional y es donde se puede asignar colores diferentes a los diferentes puntos especificados sin necesidad de crear nuevas estructuras, o una estructura para cada punto.
Ing. Dany Montoya Negrillo
Nodo PointSetShape { appearance Appearance { material Material{...} } geometry PointSet { coord Coordinate { point [ 1.0 1.0 0.0, 2.0 4.0 0.0, . . . ] } color Color { color [ 0.0 1.0 0.0, 1.0 1.0 0.0, ...] } } } Ejm: TresPuntos.wrl
Ing. Dany Montoya Negrillo
Nodo IndexedLineSetEste nodo nos permite crear una línea, siguiendo una secuencia de puntos predeterminados en el espacio, cuenta con los siguientes parámetros principales: coord Coordinate {point []} cada
punto tiene que contar con sus tres parámetros X, Y y Z además estar separados de punto en punto por una coma (,).
coordIndex [] Sirve para determinar la secuencia de puntos con la cual se va ha unir la línea.
color Color { color []}. Sirve para determinar un conjunto de colores, determinando sus tres campos RGB, separado uno de otro por comas.
Ing. Dany Montoya Negrillo
Nodo IndexedLineSet colorIndex [ ] Determina la secuencia
de colores que se va ir colocando en cada segmento de línea.
colorPerVertex. Puede tomar el valor (TRUE FALSE),
con el primero activará el parámetro de colorIndex en n-1 valores en relación al número de vértices que están definidos, dando la apariencia de degradencia de segmento en segmento, con el segundo simplemente activará un color para todo el polígono y se deben definir la misma cantidad de veces como vértices estén definidas.
Ing. Dany Montoya Negrillo
Nodo IndexedLineSetShape { appearance Appearance { material Material{...} } geometry IndexedLineSet { coord Coordinate { point [ 1.0 1.0 0.0, 2.0 4.0 0.0, . . .] } coordIndex [0, 1, 2,-1, 3, ..., -1,] } }
Ing. Dany Montoya Negrillo
Color Nodo IndexedLineSet
Shape { geometry IndexedLineSet { coord Coordinate { . .} coordIndex [ N índices ] color Color { color [...] }
colorIndex[ N índices ] colorPerVertex TRUE } } Shape { geometry IndexedLineSet { . . .
color Color { color [ ...] } colorIndex[ N
índices=nro.líneas ] colorPerVertex FALSE
} } Ejm :
LineSet.wrl CuboLineSet.wrl LineasMulticolores.wrl
Ing. Dany Montoya Negrillo
Nodo IndexedFaceSet
solid indica si la forma es sólida, es decir, si las caras internas no se dibujan.
ccw indica si las caras son en sentido antihorario (counter-clockwise), es decir, si las caras son externas.
convex indica si las caras son convexas. Las caras cóncavas se parten en múltiples caras convexas.
Ing. Dany Montoya Negrillo
Nodo IndexedFaceSetShape { appearance Appearance { material Material{...}
} geometry IndexedFaceSet {
coord Coordinate { point [ 0.0 0.0 0.0,
5.5 5.0 0.88, . . .] } coordIndex [ 0, 1,..., -1, 0, 12,..., 7, -1, .... ] solid TRUE ccw TRUE convex FALSE }
}
Ing. Dany Montoya Negrillo
Color Nodo IndexedFaceSet
Shape { geometry IndexedFaceSet { coord Coordinate {... }
coordIndex [ N índices ] color Color { color [...] } colorIndex[ N índices ] colorPerVertex TRUE
} } Shape { geometry IndexedFaceSet {
... color Color { color [ ...] } colorindex[ N índices=nro.caras ] colorPerVertex FALSE
... } } Ejm :
FaceSet1.wrl CuboMultiColor.wrl
Semana 04 Nodos Avanzados
Ing. CIP Dany Montoya Negrillo.
Ing. Dany Montoya Negrillo
Nodos Avanzados : Extrusion ElevationGrid
OBJETIVOS
Ing. Dany Montoya Negrillo
Nodo Extrusión Es uno de los nodos más importantes que nos ayuda a crear diversas figuras irregulares, pudiendo ser sólidas o no. Sus principales parámetros son: cross-section[..] Determina la orientación de los
puntos con respecto a su origen. spine[..] Determina los puntos en los cuales se va
ha extruir los puntos determinados en el croossSection (sigue el recorrido de los puntos trazados).
beginCap and endCap indican si la forma se cierra. solid, ccw y convex se usan como en el nodo
IndexedFaceSet. scale[...] y orientation[...] indican la escala y
rotación de la sección de corte realizados por cada punto de spine.
Ing. Dany Montoya Negrillo
Nodo ExtrusiónShape { appearance Appearance { material Material{...}
} geometry Extrusion {
crossSection [ 0.75 0.00, 0.69 -0.285,...]
spine [ 2.00 0.00 -0.00, 1.85 0.12 -0.77,...]
scale [ 0.1 0.1, 0.15 0.11,...]
endCap TRUE beginCap FALSE solid FALSE
} } Ejm : Extrusion1.wrl
Extrusion2.wrl
Ing. Dany Montoya Negrillo
Nodo ElevationGridEs este nodo sirve para construir terrenos. El tamaño se especifica en xDimension y
zDimension. La separación de la grilla se especifica en xSpacing
y zSpacing. El campo height especifica las elevaciones en cada
punto de la grilla solid y ccw se usan como en el nodo IndexedFaceSet.
color toma como valor un nodo Color colorPerVertex TRUE: cada color se asocia con cada punto de
height FALSE: cada color se asocia con cada cuadrado de
la grilla
Ing. Dany Montoya Negrillo
Nodo ElevationGridShape { appearance Appearance { material Material{...} } geometry ElevationGrid { xDimension 128 zDimension 128 xSpacing 0.02 zSpacing 0.02 solid TRUE height [ 0.019608, 0.015686, . . . ] } } Ejm : ElevationGrid1.wrl
ElevationGrid2.wrl
Ing. Dany Montoya Negrillo
Propuestos IndexedFaceSet
Crear los siguientes modelos:Sombrilla de 6 caras tanto en el interior como en el exterior. Cada cara debe tener un color diferenteSe tiene dos cajas abiertas (azul y verde). Dichas cajas están separadas en D unidades y están unidas mediante cuerdas.
Ing. Dany Montoya Negrillo
Propuestos Extrusion
Crear los siguientes modelos:La letra A (la parte pequeña se debe visualizar primero).Una jarra.Marco de una puerta.
Ing. Dany Montoya Negrillo
Propuestos ElevationGrid
Crear los siguientes modelos:Un avión de papel.Una montaña.
Semana 05
PRIMERA PRÀTICA CALIFICADA
Semana 05 TEXTURAS
Ing. CIP Dany Montoya Negrillo.
Ing. Dany Montoya Negrillo
TEXTURAS : ImageTexture MovieTexture PixelTexture TextureCoordinate TextureTransform
OBJETIVOS
Ing. Dany Montoya Negrillo
TEXTURASLa textura es la posibilidad que tenemos de envolver un objeto con una imagen determinada. Nodo ImageTexture Con este nodo es que podemos hacer dichas envolturas (texturizadas), de la siguiente manera:Shape {
appearance Appearance {texture ImageTexture { url “monalisa.jpg”} }geometry} Ejm: TexturtaFICS.wrl
Textura2.wrl
2_Imagenes_1_Objeto.wrl
Ing. Dany Montoya Negrillo
Nodo MovieTextureloop: Indica si la película va encontrarse estática (FALSE) o se va encontrar en movimiento(TRUE).startTime: indica el tiempo en que inicia la película basándose en el 1 de Junio de 1970.stopTime: indica el tiempo en que se termina la película basándose en el 1 de Junio de 1970. Cuando el valor del loop es TRUE si el startTime es > ó = al stopTime la película se correrá pero si no fuera así ocurrirá un error. A mi preferencia es mejor poner 0 en ambas sentencias.Speed: Si tiene el valor 1 la película se correrá a su velocidad normal, pero si tiene el valor 2 se correrá al doble de su velocidad normal. url “”: Dentro de las comillas debe colocarse el nombre de la película a texturizarse.repeatS: para especificar que la película se repita horizontalmente.
Ing. Dany Montoya Negrillo
Nodo MovieTextureTexturiza películas con la extensión “mpg”.
Shape { appearance Appearance { texture MovieTexture { url "t-rex.mpg" loop TRUE speed 1.0 startTime 0.0 stopTime 0.0 } } geometry Cylinder { height 2.7 }
} Ejm : MovieTextura1.wrl
Ing. Dany Montoya Negrillo
Nodo PixelTexture Sirve para texturizar una imagen de colores degradantes de un valor a otro, en forma vertical u horizontal alrededor de una figura esto con el repeatS y el repeatT respectivamente. Su estructura es la que sigue: appearance Appearance { texture PixelTexture {
image 0 0 0 0 0
repeatS TRUE
repeatT TRUE
}} Ejm:
Pixeltexture.wrl
Ing. Dany Montoya Negrillo
Nodo TextureCoordinate
Este tipo de nodo solamente se aplica a los nodos IndexedFaceSet y ElevationGrid y sirve para indicar que parte de la figura se va a texturizar .Las imagenes de textura tienen un sistema de coordenadas bidimensional : S direccción horizontal y T dirección vertical, con (0,0) abajo-izquierda. El nodo TextureCoordinate se usa como valor del campo texCoord de los nodos IndexedFaceSet o ElevationGrid. El campo point contiene una lista de
coordenadas de textura que especifican la parte de la imagen a extraer.
El campo texCoordIndex del nodo IndexedFaceSet lista los índices de las coordenadas de textura seleccionadas, y cada cual se asocia con cada índice de coordIndex.
Ing. Dany Montoya Negrillo
Nodo TextureTransform
Similar al nodo Transform que afecta al nodo Shape, el nodo textureTransform afecta a la imagen a texturizar, por consiguiente solamente debe trabajarse con las coordenadas X, Y siguiendo la misma lógica que el TextureCoordinate pero de una forma más simple.
Ing. Dany Montoya Negrillo
Nodo TextureTransformShape { appearance Appearance { texture ImageTexture { url "cookie.jpg" } textureTransform TextureTransform {
translation 0.0 0.0 rotation 0 scale 1.0 1.0
} }
geometry IndexedFaceSet { coord Coordinate {... } coordIndex [ N1 índices porción, -1, N2 índices porción, -1,] texCoord TextureCoordinate { point [...]
} texCoordIndex[ N1 índices porción, -1, N2 índices porción, -1, ] } }
Semana 06
EVENTOS EN VRMLY
ANIMACIONES USANDO INTERPOLAIÓN
Primer avance calificado del proyecto final
Ing. Dany Montoya Negrillo
SENSORES DE ARRASTRE NODOS : TimeSensor PlaneSensor CylinderSensor SphereSensor
ANIMACIONES USANDO INTERPOLAIÓN ColorInterpolator CoordinateInterpolator PositionInterpolator
OBJETIVOS
Ing. Dany Montoya Negrillo
EVENTOS
Un evento es un mensaje enviados entre nodos, con : El valor de un dato. El instante de tiempo en que
se envía el evento.
Ing. Dany Montoya Negrillo
EVENTOSCada nodo tiene eventIn <tipo> <nombre_eventIn>
evento de entrada eventOut <tipo>
<nombre_eventOut> evento de salida exposedField <tipo>
<nombre_campo> campo que equivale a eventIn <tipo> set_<nombre_campo>
eventOut <tipo> <nombre_campo>_changed
Ing. Dany Montoya Negrillo
EVENTOSPara hacer un circuito de animación se necesitan: Un nodo nombrado (DEF
<nombre_nodo_sender>) que envíe un eventOut
Un nodo nombrado (DEF <nombre_nodo_receiver>) que reciba un eventIn
Una sentencia ROUTE que conecte los dos nodos
ROUTE <nombre_nodo_sender>.<nombre_eventOut> TO <nombre_nodo_receiver>.<nombre_eventIn>
Ing. Dany Montoya Negrillo
EVENTOSEjemplos de eventos de entrada: Un nodo Transform tiene set_translation,
set_rotation, set_scale. Un nodo Material tiene set_diffuseColor,
set_emissiveColor, set_transparency.
Ejemplos de eventos de salida: Un nodo OrientationInterpolator tiene
value_changed para enviar valores de rotación. Un nodo PositionInterpolator tiene
value_changed para enviar valores de traslación.
Un nodo TimeSensor tiene time para enviar valores de tiempo.
Ing. Dany Montoya Negrillo
Nodo TimeSensor Una animación requiere control del tiempo Un nodo TimeSensor es similar a un cronómetro TimeSensor { cycleInterval 1.0 loop FALSE startTime 0.0 stopTime 0.0 }startTime y stopTime determinan cuando comenzar y terminar. enabled determina si está habilitado o deshabilitado. TimeSensor genera eventos de tiempo
Ing. Dany Montoya Negrillo
Nodo TimeSensor
... deben conectarse con otros nodos para realizar una animación. Ejemplo: Conectar el evento de salida
fraction_changed de tipo SFFloat con los eventos de entrada set_transparency, set_shininess de tipo SFFloat de un nodo Material
TimeSensor.wrl
Ing. Dany Montoya Negrillo
Nodo PlaneSensor Un nodo sensor PlaneSensor genera traslaciones, como si se deslizara un plano, cuando el usuario arrastra el mouse sobre un nodo.Los eventos de salida isActive envía TRUE/FALSE cuando se
presiona/suelta el botón del mouse. translation_changed envía la traslación
durante el arrastre del mouse.
PlaneSensor01.wrl
Ing. Dany Montoya Negrillo
Nodo CylinderSensor Un nodo sensor CylinderSensor genera rotaciones, como si se rotara un cilindro, cuando el usuario arrastra el mouse sobre un nodo. Los eventos de salida isActive y rotation_changed se usan
como en el nodo SphereSensor .
CylinderSensor01.wrl
Ing. Dany Montoya Negrillo
Nodo SphereSensor
Un nodo sensor SphereSensor genera rotaciones, como si se rotara una esfera, cuando el usuario arrastra el mouse sobre un nodo. Los eventos de salida isActive envía TRUE/FALSE cuando se
presiona/suelta el botón del mouse. rotation_changed envía la rotación
durante el arrastre del mouse.
SphereSensor01.wrl
Ing. Dany Montoya Negrillo
Nodo ColorInterpolator
Un nodo interpolador de colores ColorInterpolator convierte una fracción de tiempo en un color. keyValue es de tipo MFColor y especifica colores claves. El evento de salida value_changed, de tipo SFColor, típicamente se conecta con el evento de entrada set_diffuseColor o set_emissiveColor de un nodo Material .
ColorInterpolator01.wrl ColorInterpolator02.wrl
Ing. Dany Montoya Negrillo
Nodo CoordinateInterpolator
Un nodo interpolador de coordenadas CoordinateInterpolator convierte una fracción de tiempo en una lista de coordenadas. keyValue es de tipo MFVec3f y especifica una lista de n x m coordenadas claves (siendo n el nro. de claves en key). El evento de salida value_changed, de tipo MFVec3f, devuelve m coordenadas claves (total / nro. claves) que típicamente se conectan con el evento de entrada set_point de un nodo Coordinate.
CoordinateInterpolator01.wrl
Ing. Dany Montoya Negrillo
Nodo PositionInterpolator
Un nodo interpolador de posiciones PositionInterpolator convierte una fracción de tiempo en una posición.keyValue es de tipo MFVec3f y especifica posiciones claves El evento de salida value_changed, de tipo SFVec3f, típicamente se conecta set_translation o set_scale de un nodo Transform.
PositionInterpolator01.wrl
Semana 7
INTERPOLACIÓN, NODO DE ILUMINACIÓ Y
AMBIENTE
Ing. CIP Dany Montoya Negrillo.
Ing. Dany Montoya Negrillo
ANIMACIONES USANDO INTERPOLAIÓN ScalarInterpolator OrientationInterpolator
ANIMACIÓN CONTROLADA POR EVENTOS
TouchSensor
NODOS DE LUCES PointLight DirectionalLight SpotLight
NODO DE AMBIENTE Background
OBJETIVOS
Ing. Dany Montoya Negrillo
Nodo ScalarInterpolator
Un nodo interpolador de posiciones ScalarInterpolator convierte una fracción de tiempo en un número keyValue es de tipo MFFloat y especifica números claves El evento de salida value_changed,de tipo SFFloat,puede conectarse con set_transparency, set_shinines o set_ambientIntensity de Material set_intensity o set_ambientIntensity de un nodo de luces
ScalarInterpolator.wrl
Ing. Dany Montoya Negrillo
Nodo OrientationInterpolator
Un nodo interpolador de orientaciones OrientationInterpolator convierte una fracción de tiempo en una orientación.keyValue es de tipo MFRotation y especifica orientaciones claves El evento de salida value_changed, de tipo SFRotation, típicamente se conecta con el evento de entrada set_rotation de un nodo Transform
OrientationInterpolator.wrl
Ing. Dany Montoya Negrillo
Nodo TouchSensor Un nodo sensor TouchSensor genera eventos cuando el usuario toca el mouse sobre un nodo.Los eventos de salida isActive envía TRUE/FALSE cuando se
presiona/suelta el botón del mouse isOver envía TRUE/FALSE cuando el mouse
está o no sobre la forma touchTime envía el tiempo en el que se suelta
el mouse sobre la forma, siempre que haya sido presionado sobre esta previamente.
TouchSensor01.wrl
Ing. Dany Montoya Negrillo
Nodo PointLight El nodo PointLight define una luz en un punto que irradia radialmente
location indica la posición radius indica la máxima distancia de iluminación attenuation indica 3 valores que se usan en una fórmula
de atenuación.
ESTRUCTURA GENERALPointLight {
location 0.0 0.0 0.0 radius 12.0 Color 1.0 0.0 0.0 intensity 2 on TRUE } Inline { url "spheres.wrl" }
PointLight.wrl
Ing. Dany Montoya Negrillo
Nodo DirectionalLight El nodo DirectionalLight define una luz que ilumina en una dirección desde el infinito direction especifica la dirección de la luz
o ESTRUCTURA GENERALo DirectionalLight {
direction -1.0 0.0 0.0 color 0.0 1.0 0.5 intensity 2 on TRUE } Inline { url "spheres.wrl" }
o DirectionalLight.wrl
Ing. Dany Montoya Negrillo
Nodo SpotLight El nodo SpotLight define una luz en un punto que irradia en forma cónica
location, radius, attenuation se usan como en el nodo PointLight
direction se usa como en el nodo DirectionalLight cutOffAngle especifica el máximo ancho del cono beamWidth especifica una región del cono con brillo
constante SpotLight { cutOffAngle 0.785 beamWidth 0.52 location 0.0 0.0 0.0 radius 12.0 color 0.2 0.4 1.0 intensity 2 on TRUE } Inline { url "spheres.wrl" } SpotLight.wrl
Ing. Dany Montoya Negrillo
Nodo Background En lugar de usar formas para definir el fondo de una escena, resulta más rápido y eficiente usar el nodo bindable BackgroundCrea tres formas especiales: Una esfera para el cielo Una semiesfera para la tierra dentro de la
esfera del cielo Una caja panorámica dentro de la semiesfera
de la tierra
Ing. Dany Montoya Negrillo
Nodo BackgroundBackground { skyColor [ 0.0 0.2 0.7, 0.0 0.5 1.0, 1.0 1.0 1.0 ] skyAngle [ 1.309, 1.571 ] groundColor [ 0.1 0.10 0.0, 0.4 0.25 0.2, 0.6 0.60 0.6, ] groundAngle [ 1.309, 1.571 ] frontUrl "mountns.png" backUrl "mountns.png" leftUrl "mountns.png" rightUrl "mountns.png" }
Sesión 8
POSICIONAMIENTO,SONIDO y WWW
Segundo avance calificado del proyecto final
Ing. Dany Montoya Negrillo
NODO DE POSICIONAMIENTO Viewpoint
NODO PARA EFECTOS DE SONIDO Sound
VRML en la WEB
OBJETIVOS
Ing. Dany Montoya Negrillo
Nodo Viewpoint Por defecto, el usuario ve el mundo desde el punto (0.0, 0.0, 10.0) El nodo Viewpoint se usa para especificar otros puntos de vista El primer punto de vista encontrado en un archivo es el inicial Se puede cambiar a otros puntos de vista favoritos definidos position y orientation determinan la ubicación del
punto de vista fieldOfView especifica el ángulo del lente de la
cámara description especifica el nombre del punto de
vista, el cual aparece en el menú del browser y puede ayudar a no perderse en el mundo
Ing. Dany Montoya Negrillo
Nodo ViewpointViewpoint { position 0.0 1.65 35.0 orientation 1.0 0.0 0.0 0.2 description "Entry View" } Viewpoint { position 0.0 1.65 15.0 orientation 1.0 0.0 0.0 0.5 description "Close-up" } Viewpoint { position 7.05 1.65 7.05 orientation 0.0 1.0 0.0 0.785 description "Front door" } Viewpoint { position 35.0 1.65 -35.0 orientation 0.0 1.0 0.0 2.356 description "Far away" } Viewpoint { position 0.0 14.43 2.0 orientation 0.00128 0.959 0.282 3.1503 description "Roof top" }
Ing. Dany Montoya Negrillo
SONIDO
Un nodo Sound describe un sonido location y direction especifican el lugar de emisión intensity especifica el volumen spatialize especifica si el sonido se percibe
conisderando la dirección con el usuario priority especifica una prioridad usada cuando hay
varios sonidos minFront, minBack definen una elipsoide interna
alineada con direction donde el volumen de sonido es máximo
maxFront, maxBack definen una elipsoide externa alineada con direction donde el volumen de sonido disminuyendo hasta cero
Ing. Dany Montoya Negrillo
# Aire Transform { translation 0.0 8.0 0.0 scale 40.0 9.0 40.0 children [ Sound { minFront 1.0 minBack 1.0 maxFront 1.0 maxBack 1.0 spatialize FALSE source AudioClip { loop TRUE url "air.wav" } } ] } # Splash Transform { translation 0.0 0.0 0.0 scale 25.0 1.0 25.0 children [ Sound { minFront 1.0 minBack 1.0 maxFront 1.0 maxBack 1.0
spatialize FALSE source AudioClip { loop TRUE url "paddle.wav" } } ] }
Ing. Dany Montoya Negrillo
SONIDO
Sound { source AudioClip { url "willow1.wav" loop TRUE startTime 1.0 stopTime 0.0 } minFront 5.0 minBack 5.0 maxFront 10.0 maxBack 10.0 }
Ing. Dany Montoya Negrillo
VRML en la WEBLos archivos .wrl pueden usarse en una página Web:
Llenar la página entera: abrir el archivo .wrl Embebido dentro de la página: <EMBED SRC="boxes.wrl" HEIGHT=300 WIDTH=300> Llenar un frame de la página: <FRAME NAME="FrameVRML" SRC="boxes.wrl"> Embebido dentro de un frame: <FRAME NAME="FrameVRMLemb" SRC="boxes3a.htm"> y en puerta.htm se aplica la segunda opción Embebido muchas veces: <EMBED SRC="boxes.wrl" HEIGHT=200 WIDTH=100>
<EMBED SRC="boxes.wrl" HEIGHT=100 WIDTH=200>
Ing. Dany Montoya Negrillo
Ejemplo 01:
<html><body><EMBED SRC="mesa.wrl" HEIGHT=300
WIDTH=300> <EMBED SRC="mesa.wrl" HEIGHT=200
WIDTH=400> <EMBED SRC="mesa.wrl" HEIGHT=300
WIDTH=500></body></html>
Ing. Dany Montoya Negrillo
Ejemplo 02:<HTML><BODY BGCOLOR=#000000 text=#ffffff link=#aaaaff
alink=#000000 vlink=#ff7070><br><table border=0 bgcolor=aqua width=100%><tr><td valign=middle><H2><font color=#b46a00><center>(LABORATORIO
DE COMPUTACION GRAFICA)<center></font></H2></td> </table><P class=noindent><table border=0 width=100%><tr><td bgcolor=#EDE7BF><font color=maroon><pre>Nodo "Ambiente.wrl";
Ing. Dany Montoya Negrillo
</pre></font> </td></tr></table><EMBED SRC="EjemploAmbiente.wrl" WIDTH=600
HEIGHT=400><table border=0 width=100%><tr><td bgcolor=#EDE7BF><font color=maroon><pre>EjemploTextura01.wrl</pre> </font></td></tr></table><EMBED SRC="EjemploTextura01.wrl" WIDTH=600
HEIGHT=400></BODY></HTML>
Ing. Dany Montoya Negrillo
EJERCICIOS PROPUESTOSENUNCIADO 1:
Implementar un parque de diversiones, el cual debe tener como mínimo 2 juegos mecánicos por ejemplo :silla voladora, montaña rusa, carrusel, etc y su ambiente particular ( cerco, casillas de venta de boletos, banderolas ). Cada juego mecánico debe tener una animación diferente o combinada. El ambiente debe estar iluminado según su criterio, y animaciones según su creatividad por ejemplo: banderolas en movimiento, etc.
ENUNCIADO 2:Construir una casa de dos pisos en 3 dormitorios con todos sus ambientes mínimos de una casa estándar, implementando como mínimo: Ropero, Cama , Mesa de noche, Lámpara, Ventilador, Escritorio, TV, Radio, Cuadro y Porta fotos de su persona.
ENUNCIADO 3:Implementar un dormitorio, el cual debe contener como mínimo: Ropero, Cama, Mesa de noche, Lámpara, Ventilador, Escritorio, TV y Porta fotos de su persona.
ENUNCIADO 4:Construir un escenario de carrera de carros donde se visualizará el inicio de la carrera, considerar semáforo especificando el momento de la partida y los autos deberán desplazarse.
Semana 09
EXAMEN PARCIAL
Semana 12
PRESENTACION Y SUSTENTACION DE
PROYECTOS FINALES