unidad_iv

Upload: yohan-yangales

Post on 02-Mar-2016

2 views

Category:

Documents


0 download

DESCRIPTION

clace computein graphic

TRANSCRIPT

  • Computacin Grfica - Unidad IV Jessica Delgado F. / Pedro Carpio F.

    78 Sistema a Distancia

    CUARTA UNIDAD

    NODOS AVANZADOS EXTRUIR, ILUMINACION

    OBJETIVOS

    Ensear conceptos generales del nodo extruir Aplicar deformaciones a los objetos que forman parte del mundo virtual Describir el uso de luces a los objetos virtuales

  • Computacin Grfica - Unidad IV Jessica Delgado F. / Pedro Carpio F.

    79 Sistema a Distancia

    LECCIN VI

    NODOS AVANZADOS: EXTRUIR, ILUMINACIN

    6.1. Qu entendemos por Extruir?

    Definicin 1: En VRML extruir, es obtener un objeto 3D, al desplazar el dibujo de un polgono 2D normalmente cerrado (seccin) en una direccin determinada en el espacio (direccin).

    Definicin 2: Es obtener una figura 3D a partir de una figura 2D, teniendo una direccin en el espacio.

    6.2. Cmo podemos extruir en VRML?

    Para poder realizar una extrusin en VRML se tiene que utilizar el nodo Extrusin. En una forma extruida se obtiene de la siguiente manera:

    Se visualiza el plano XZ (horizontal) y se define, mediante un conjunto de puntos, un polgono cerrado: la seccin transversal o crossSection.

    Esta rea es, por tanto, plana. A travs de otra serie de puntos, se define un recorrido en el espacio tridimensional: Que se define como la espina dorsal o spine.

    Luego el objeto extruido se obtiene desplazando la seccin transversal a lo largo de la espina dorsal. A lo largo de este desplazamiento, la seccin transversal puede ser invariable, o bien se pueden ir modificando tanto su escala (tamao), como su orientacin. Este nodo permite definir un objeto al desplazar su seccin por una trayectoria.

  • Computacin Grfica - Unidad IV Jessica Delgado F. / Pedro Carpio F.

    80 Sistema a Distancia

    Extrusion { crossSection [ 1 0, 0 6.5, .......

    ] spine [ 10 0 3, 15 1 5, ............

    ] solid FALSE

    }

    Si el observador desea mostrar el modelo como una caja, debe desactivar la tapa, con el campo endCap y activar el valor FALSE (la que corresponda a la segunda coordenada del campo spine), y si desea colocar las dos tapas, entonces tanto endCap como beginCap, en FALSE.

    Se pueden observar los campos:

    crossSection, Es un argumento que est formado por una serie de puntos que definen la seccin transversal. Estos puntos estn definidos por dos coordenadas, y no por tres, que es lo habitual.

    spine, Es un argumento que est formado por una serie de puntos que definen la espina dorsal del objeto extruido. En donde cada uno de estos puntos estn definido por tres coordenadas, como no poda ser menos, puesto que la espina dorsal es un recorrido en el espacio tridimensional.

    solid, Es un campo tiene dos opciones: TRUE (la opcin por defecto) con la que se ven slo un lado de las caras. Si colocamos el campo FALSE: se vern ambos lados.

  • Computacin Grfica - Unidad IV Jessica Delgado F. / Pedro Carpio F.

    81 Sistema a Distancia

    Ejemplo 6.2.1

    Ahora vamos a cambiar la direccin (espina). Se observa a continuacin con ms detalle cmo se har la definicin de la seccin transversal. Como se ha mencionado antes, se encuentra en el plano XZ, es decir, en el plano horizontal formado por los ejes coordenados X y Z.

    La seccin transversal es una superficie plana, definida en el el plano XZ. Por tanto, se van a utilizar slo dos coordenadas (x,z).

    Para comprender mejor este concepto veamos un ejemplo: un cubo. (Recurdese que existe el nodo Box para conseguirlo directamente)

    Figura 23. Cubo

    Entonces lo que se debe definir la seccin transversal, para ello se tiene que sealar un polgono cerrado, es decir, se comienza desde un vrtice cualquiera (p. ej. 20,20), y se sigue el sentido de las agujas del reloj, el siguiente ser:

    (-20,20), luego (-20,-20), a continuacin (20,-20) y finalmente (20,20) de nuevo, con lo que el polgono se ha cerrado.

    X

    Z

    (20,-20) (-20,-20)

    (20,20) (-20,20)

  • Computacin Grfica - Unidad IV Jessica Delgado F. / Pedro Carpio F.

    82 Sistema a Distancia

    crossSection [ 20 20, -20 20, -20 -20, 20 -20, 20 20 ]

    Ahora se tiene que definir la espina dorsal. La espina dorsal define el recorrido que la seccin transversal deber efectuar para crear le forma extruida. Lo que vamos a hacer que la seccin transversal comience en el punto (0,-20,0) y se mueva hasta el punto (0,20,0).

    A continuacin en las siguientes figuras se muestra la espina dorsal para el cubo y el camino recorrido por la seccin transversal a lo largo de ella (negro mas remarcado):

    Figura 24. Espina Dorsal

    Z

    (0,20,0)

    (0,-20,0)

    X

    (0,-20,0)

    (0, 20,0)

    X

    Z

  • Computacin Grfica - Unidad IV Jessica Delgado F. / Pedro Carpio F.

    83 Sistema a Distancia

    Figura 25. Espina Dorsal(camino recorrido por la seccin transversal) El campo spine queda de la siguiente manera: spine [ 0 -10 0, 0 10 0 ] Nota : Como ya se ha mencionado varias veces, para que un nodo defina una forma (como es el caso del nodo Extrusin) es decir que sea visible, lo que se debe hacer es incluir el cdigo dentro del nodo Shape.

    Por tanto, el documento VRML de este ejemplo quedar de esta forma: Shape { appearance Appearance { material Material {} } geometry Extrusion { crossSection [ 20 20, -20 20, -20 -20, 20 -20, 20 20 ] spine [ 0 -20 0, 0 20 0 ] solid FALSE } }

  • Computacin Grfica - Unidad IV Jessica Delgado F. / Pedro Carpio F.

    84 Sistema a Distancia

    Figura 26. Cubo

    En la figura puede observarse que se han aadido unos ejes coordenados y modificado el punto de vista inicial.

    Nota: Hay que Verificar que el campo solid debe estar en FALSE para que se pueda ver las caras del volumen sin problemas. Tambin Cambiar el valor a TRUE y vera la diferencia

    6.3 Cmo podemos lograr aberturas en la superficie extruida?

    Para poder tener un cubo por ejemplo sin caras, hay que usar dos campos que determinan si la forma extruida est abierta o cerrada en los extremos:

    beginCap: En este campo, si se establece como FALSE, no existir la seccin transversal inicial (en el ejemplo del cubo, la cara inferior).

    endCap: En este campo si se establece como FALSE, no existir la seccin transversal final (en el ejemplo del cubo, la cara superior). El resultado al aplicar estos campos es: Solo se obtiene, aadiendo estos dos campos al nodo Extrusin, al ejemplo anterior:

  • Computacin Grfica - Unidad IV Jessica Delgado F. / Pedro Carpio F.

    85 Sistema a Distancia

  • Computacin Grfica - Unidad IV Jessica Delgado F. / Pedro Carpio F.

    86 Sistema a Distancia

    Ejemplo 6.3.1

    VRML V2.0 utf8 #Ejemplo de extrusin: cubo Shape { appearance Appearance { material Material {} } geometry Extrusion { crossSection [ 20 20, -20 20, -20 -20, 20 -20, 20 20 ] spine [ 0 -20 0, 0 20 0 ] beginCap FALSE endCap FALSE solid FALSE } }

    Figura 27. Cubo sin caras

  • Computacin Grfica - Unidad IV Jessica Delgado F. / Pedro Carpio F.

    87 Sistema a Distancia

    Existen otras maneras para obtener un objeto sin cerrar, se puede dejar deliberadamente sin cerrar el polgono que determina la superficie transversal. Por ejemplo de la seccin transversal del cubo, si se comienza por el vrtice inferior izquierdo (-20,10), y siguiendo segn el sentido de las agujas del reloj obtenemos:

    Figura 28. Cubo sin cerrar

    crossSection [ -20 10, -20 -10, 20 -10, 20 20 ]

    Entonces, revisemos el resultado:

    El cubo queda sin cerrar, con lo que el cubo se ha extruido carece de la cara frontal, como se puede ver en la imagen.

    x

  • Computacin Grfica - Unidad IV Jessica Delgado F. / Pedro Carpio F.

    88 Sistema a Distancia

    Ejemplo 6.3.2 VRML V2.0 utf8 #Ejemplo de extrusin: cubo Shape { appearance Appearance { material Material {} } geometry Extrusion { crossSection [ 20 20, -20 20, -20 -20, 20 -20, ] spine [ 0 -20 0, 0 20 0 ]

    solid FALSE } }

    Figura 28. Cubo sin cerrar en VRML

  • Computacin Grfica - Unidad IV Jessica Delgado F. / Pedro Carpio F.

    89 Sistema a Distancia

    6.4 Vamos a complicar la espina dorsal Se puede entender que despus de revisar los ejemplos vistos anteriormente, la espina dorsal siempre es perpendicular a la seccin transversal y adems justa en su centro. Pero esto no quiere decir que siempre tiene qu ser as necesariamente. Al crear la espina dorsal se le puede situar en cualquier sitio, formar una recta inclinada, o estar formada por ms de dos puntos o tener cualquier forma espacial que el observador desee.

    Entonces ahora veamos una espina dorsal que sea una recta inclinada con respecto a la seccin transversal. Se ha representado en el ejemplo a la espina dorsal en negro remarcado y la seccin transversal es la seccin plana ubicada en el centro de los ejes xz.

    Ejemplo 6.4.1 Cubo inclinado Shape { appearance Appearance { material Material {} } geometry Extrusion { crossSection [ 2 2, -2 2, -2 -2, 2 -2, 2 2 ] spine [ -10 0 0, 10 20 0 ] solid FALSE } }

  • Computacin Grfica - Unidad IV Jessica Delgado F. / Pedro Carpio F.

    90 Sistema a Distancia

    Figura 29. Cubo inclinado en el plano

    Figura 30. Cubo inclinado

    Ejemplo 6.4.2 : Uve invertida: espina dorsal de tres puntos. Shape { appearance Appearance { material Material {} } geometry Extrusion { crossSection [ 2 2, -2 2, -2 -2, 2 -2, 2 2 ] spine [ -20 0 0, 0 20 0, 20 0 0 ] solid FALSE } }

    Y

    X

    Z

  • Computacin Grfica - Unidad IV Jessica Delgado F. / Pedro Carpio F.

    91 Sistema a Distancia

    Figura 31. Uve invertida

    Figura 32. Uve invertida.wrl

    6.5 Vamos a complicar ms: veamos si la espina dorsal es un crculo

    Tomando en cuenta construir una espina dorsal en forma de un crculo, entonces el cuerpo engendrado es una superficie de revolucin. Entonces Veamos un ejemplo: un dona definida por 8 puntos.

    En el lado derecho podemos ver la imagen que representa la seccin transversal (crculo central pequeo) y que est situada, como debe ser, en plano horizontal XZ. Como podemos darnos cuenta esta seccin transversal es un crculo de radio 5 y est representada por 8 puntos.

    Tambin podemos observar que est representada (en blanco) una espina dorsal formada por otros ocho puntos que forman un crculo de radio 10, y que

    Z

    Y

    X

  • Computacin Grfica - Unidad IV Jessica Delgado F. / Pedro Carpio F.

    92 Sistema a Distancia

    tambin est situada en el plano XZ, porque as lo hemos lo estamos planteando. El campo crossSection es el siguiente:

    crossSection [

    5 0, 3.53 3.53, 0 5, -3.53 3.53, -5 0, -3.53 -3.53, 0 -5, 3.53 -3.53, 5 0

    ]

    Figura. 33. Dona de 8 puntos

    Hay que tomar en cuenta que en el campo crossSection los puntos se expresan con dos coordenadas (xz), y que hay que repetir al final el primer punto, para cerrar la seccin transversal.

    X

  • Computacin Grfica - Unidad IV Jessica Delgado F. / Pedro Carpio F.

    93 Sistema a Distancia

    El campo spine es el siguiente:

    spine [ 10 0 0, 7.07 0 7.07, 0 0 10, -7.07 0 7.07, -10 0 0, -7.07 0 -7.07, 0 0 -10, 7.07 0 -7.07, 10 0 0

    ]

    Entonces, los puntos vienen expresados por tres coordenadas (x,y,z). Y tambin tenemos que repitir el ltimo para cerrar la dona.

    Figura 34. Dona.wrl

  • Computacin Grfica - Unidad IV Jessica Delgado F. / Pedro Carpio F.

    94 Sistema a Distancia

    Ejemplo 6.5.1 Background {skyColor 1 1 1} Shape { appearance Appearance { material Material {} } geometry Extrusion { crossSection [ 5 0, 3.53 3.53, 0 5, -3.53 3.53, -5 0, -3.53 -3.53, 0 -5, 3.53 -3.53, 5 0 ] spine [ 10 0 0, 7.07 0 7.07, 0 0 10, -7.07 0 7.07, -10 0 0, -7.07 0 -7.07, 0 0 -10, 7.07 0 -7.07, 10 0 0 ]

    solid FALSE } }

  • Computacin Grfica - Unidad IV Jessica Delgado F. / Pedro Carpio F.

    95 Sistema a Distancia

    Es obvio que los ocho puntos que se han trazado para definir los dos crculos (el de la seccin transversal y el de la espina dorsal) no son suficientes, pues ms que crculos son octgonos. Se tiene que considerar que haran falta muchos ms puntos para conseguir una dona mas real.

    6.6 Vamos a variar la escala de la seccin transversal

    Hasta el momento lo que hemos hecho hasta ahora, en todos los ejemplos, la seccin transversal permaneca inalterable en su forma y tamao a lo largo de la espina dorsal.

    Hay un el campo que es el scale que permite modificar la escala de la seccin transversal en cada uno de los puntos a lo largo de toda la espina dorsal.

    En el caso del primer ejemplo del cubo, la espina dorsal estaba formada por dos puntos. Se puede hacer que en el segundo punto, la escala de la seccin transversal sea la mitad, con lo que lograramos una figura resultante que sera una estructura de un prisma. Solo hay que aadir el campo scale de la siguiente forma:

    scale [ 1 1, 0.5 0.5

    ] Los valores del campo scale hay par de parmetros (que varan de 0 a 1) y que son la variacin de las coordenadas x z. Hay que mencionarlo por cada punto que hay en la espina dorsal. Quiere decir que en el ejemplo anterior en el primer punto de la espina dorsal, se quiere que permanezcan inalterables las medidas de las x (factor 1), as como de las z (factor 1). En el caso del segundo punto de la espina dorsal, se quiere que las x se reduzcan a la mitad (factor 0.5), as como las z (factor 0.5). Entonces lo que se poda haber modificado slo uno, pasando en vez de a un cuadrado menor, a un rectngulo.

  • Computacin Grfica - Unidad IV Jessica Delgado F. / Pedro Carpio F.

    96 Sistema a Distancia

    Ejemplo 6.6.1

    Background {skyColor 1 1 1} #Ejemplo de extrusin: cubo Shape { appearance Appearance { material Material {} } geometry Extrusion { crossSection [ 20 20, -20 20, -20 -20, 20 -20, 20 20 ] spine [ 0 -20 0, 0 20 0 ] scale [ 1 1, 0.5 0.5 ]

    solid FALSE } }

  • Computacin Grfica - Unidad IV Jessica Delgado F. / Pedro Carpio F.

    97 Sistema a Distancia

    Figura 35. Cubo escalado.wrl

    6.7 Vamos a variar la orientacin de la seccin transversal

    Lo que se ha hecho en los todos los casos vistos es considerar que la seccin transversal se traslade paralelamente a s misma (variando o no su tamao).

    Hay un campo orientation que hace que gire la seccin transversal en cada punto de la espina dorsal un ngulo determinado. Entonces ahora veamos un ejemplo: en el caso del cubo vamos a hacer que la seccin transversal gire 45 en el segundo punto de la espina dorsal, con lo que tendremos un cubo "retorcido". Para lograrlo, vamos a aadir el campo orientation de la siguiente manera:

    orientation [ 0 1 0 0, 0 1 0 0.875 ]

    En los valores del campo orientation se est formando un grupo de 4 parmetros. Entonces logramos que los tres primeros indiquen el eje alrededor del cual se va a girar la seccin transversal. Finalmente el cuarto parmetro indica el ngulo girado, expresado en radianes hay que especificarlo por cada punto de la espina dorsal. En el caso del ejemplo anterior en el primer punto de la espina dorsal se hizo que la rotacin alrededor del eje Y (parmetros 0 1

  • Computacin Grfica - Unidad IV Jessica Delgado F. / Pedro Carpio F.

    98 Sistema a Distancia

    0) sea nula (cuarto parmetro 0). En el caso del segundo punto de la espina dorsal, se quiere que la rotacin alrededor del eje Y (parmetros 0 1 0) sea de 45 (cuarto parmetro, que es 3.14/4=0.875)

    Ejemplo 6.7.1 [Background {skyColor 1 1 1} Viewpoint { position 20 10 50 orientation 0 1 0 0.35 } Shape { appearance Appearance { material Material {} } geometry Extrusion { crossSection [ 10.0 10.0, -10.0 10.0, -10.0 -10.0, 10.0 -10.0, 10.0 10.0 ] spine [ 0.0 -10.0 0.0, 0.0 10.0 0.0 ] solid FALSE orientation [ 0.0 1.0 0.0 0.0, 0.0 1.0 0.0 0.875 ] } }

  • Computacin Grfica - Unidad IV Jessica Delgado F. / Pedro Carpio F.

    99 Sistema a Distancia

    Figura 36. Cubo girado.wrl

    Background {skyColor 1 1 1} Viewpoint { position 20 10 50 orientation 0 1 0 0.35 } Shape { appearance Appearance { material Material {} } geometry Extrusion { crossSection [ 10.0 10.0, -10.0 10.0, -10.0 -10.0, 10.0 -10.0, 10.0 10.0 ] spine [ 0.0 -10.0 0.0, 0.0 10.0 0.0 ] solid FALSE scale [ 1.0 1.0,

  • Computacin Grfica - Unidad IV Jessica Delgado F. / Pedro Carpio F.

    100 Sistema a Distancia

    0.5 0.5 ] orientation [ 0.0 1.0 0.0 0.0, 0.0 1.0 0.0 0.875 ] } }

    Figura 37. Cubo girado y escalado.wrl

    Ejercicio 6.7.2 En este ejercicio prctico mostramos un espiral de seccin transversal cuadrada.

    Hay que considerar las dimensiones de la seccin transversal deben ser 2x2. En tonces , los cuatro puntos que definen a la seccin transversal en el plano XZ sern (1,1), (-1,1), (-1,-1) y (1,-1).

    Ahora la espina dorsal va a estar definida por 17 puntos.

  • Computacin Grfica - Unidad IV Jessica Delgado F. / Pedro Carpio F.

    101 Sistema a Distancia

    Figura 38. Espiral.wrl

    Background {skyColor 1 1 1}

    Viewpoint { position 20 10 50 orientation 0 1 0 0.35 } Shape { appearance Appearance { material Material {} } geometry Extrusion { crossSection [ 1.0 1.0, -1.0 1.0, -1.0 -1.0, 1.0 -1.0, 1.0 1.0 ] spine [ 10.0 0.0 0.0, 7.07 1.0 7.07, 0.0 2.0 10.0,

  • Computacin Grfica - Unidad IV Jessica Delgado F. / Pedro Carpio F.

    102 Sistema a Distancia

    -7.07 3.0 7.07, -10.0 4.0 0.0, -7.07 5.0 -7.07, 0.0 6.0 -10.0, 7.07 7.0 -7.07, 10.0 8.0 0.0, 7.07 9.0 7.07, 0.0 10.0 10.0, -7.07 11.0 7.07, -10.0 12.0 0.0, -7.07 13.0 -7.07, 0.0 14.0 -10.0, 7.07 15.0 -7.07, 10.0 16.0 0.0 ] solid FALSE } }

    6.8 Es posible saltar a otro lugar en un escenario virtual o hacia otro mundo virtual almacenado en otro archivo?

    En VRML hay nodo llamado Anchor que sirve para crear un grupo ya que si se selecciona cualquier objeto que pertenece a dicho grupo se salta hacia otro lugar del escenario virtual o hacia otro mundo virtual almacenado en un fichero VRML (al cual accedemos a travs de su direccin URL). Existe la posibilidad de que cualquier objeto o grupo de objetos se puede convertir en un enlace.

    As mismo estos enlaces son los equivalentes en el mundo tridimensional a los enlaces existentes en las pginas Web realizadas mediante HTML.Es decir para entenede mejor este nodo nos permite establecer un nexo o link para acceder a otro fichero por ejemplo si tenemos una puerta al darle clic a la manija nos llevara a otro objeto que esta en otro fichero a travs del URL.

  • Computacin Grfica - Unidad IV Jessica Delgado F. / Pedro Carpio F.

    103 Sistema a Distancia

    El nodo Anchor posee un campo denominado description en el que mediante una cadena de texto se describe brevemente el objeto.

    Sintaxis:

    Anchor{ url"direccin_URL" description "descripcin_del_enlace" children[...] }

    Ejemplo 6.8.1

    Anchor { children Shape { geometry Sphere { radius 2 } appearance Appearance { material Material { diffuseColor 0.8 0.5 0 } } } url "http://www.uigv.edu.pe }

    Nota: Este enlace nos llevar hasta la pgina de la UIGV

    Group { children [

    # escalones

    DEF escalon Shape { appearance Appearance {

  • Computacin Grfica - Unidad IV Jessica Delgado F. / Pedro Carpio F.

    104 Sistema a Distancia

    material Material { diffuseColor 1.0 1.0 1.0 } } geometry Box { size 4.0 0.25 1.0 } }, Transform { translation 0.0 0.5 -1.0 children USE escalon }, Transform { translation 0.0 1.0 -2.0 children USE escalon },

    Ejemplo 6.8.2 Puerta

    Transform { translation 0.0 4.125 -2.6 children [ Anchor { url "cilindro.wrl" description "cilindro" children [

    # puerta Shape { appearance Appearance { material Material { diffuseColor 0.6 0.4 0.0 }

  • Computacin Grfica - Unidad IV Jessica Delgado F. / Pedro Carpio F.

    105 Sistema a Distancia

    } geometry Box { size 3.0 6.0 0.2 } },

    #manija de la puerta Transform { translation 1.18 -0.0 0.2 children [ Shape { appearance Appearance { material Material { diffuseColor 0.3 0.3 0.3 } } geometry Sphere { radius 0.15 } } ] } ] } ] } ] }

  • Computacin Grfica - Unidad IV Jessica Delgado F. / Pedro Carpio F.

    106 Sistema a Distancia

    Figura 40. Enlace cilindro.wrl

    Figura 39. Enlace puerta.wrl

    El ejemplo anterior, nos enlaza a un fichero llamado cilindro.wrl que ya sido creado antes, para que el enlace funcione se deber hacer clic en la manija de la puerta, y automticamente nos llevara al otro fichero (cilindro), considerando que ambos fichero debern estar en una misma carpeta.

  • Computacin Grfica - Unidad IV Jessica Delgado F. / Pedro Carpio F.

    107 Sistema a Distancia

    LECCIN VII

    CONSTRUCCIONES BSICAS: CONCEPTOS

    7.1 Es posible iluminar nuestro escenario virtual?

    Cuando se crea una escena virtual hay que considerar la colocacin de luces en un mundo para permitir obtener un mayor grado de realismo, pudiendo convertir una misma escena virtual en un lugar clido, en un lugar tenebroso y sombro, en un paisaje, poder darle efectos de la cada de los rayos del sol etc. A si como tambin hay que tomar en cuenta la ambientacin, que juega un importante papel a la hora de determinar que objetos visualizar el visitante con mayor claridad. Hay tres clases de fuentes de iluminacin, a cada una de las cuales se les asocia un nodo:

    7.1.1. Vamos a definir la posicin exacta de la luz

    El nodo pointlight es el nodo que define la posicin de una luz que ilumina por igual en todas direcciones.

    Sintaxis:

    PointLight{ color color_RGB location Eje_X Eje_Y Eje_Z radius valor_real attenuation coeficiente1 coeficiente2 coeficiente3 on valor_lgico intensity valor_real ambientIntensity valor_real }

  • Computacin Grfica - Unidad IV Jessica Delgado F. / Pedro Carpio F.

    108 Sistema a Distancia

    Descripcin de los campos y argumentos: Color: Indica el color de luz. Location: Determina la posicin que va a ocupar el foco de luz dentro del

    escenario tridimensional. Radius: Limita la zona (en metros) que va a ser iluminada. Attenuation: Almacena tres valores que se utilizan para calcular la

    atenuacin de la luz conforme nos alejamos del foco. El factor de atenuacin viene dado por la siguiente ecuacin: 1/(coef1+(coef2*radio)+ (coef3*radio*radio))

    On: Indica si los campos intensity y ambientIntensity estn activos (TRUE) o no (FALSE).

    Intensity: Establece la intensidad con la que la luz brilla, siendo el valor 1 la mxima intensidad y 0 la mnima.

    ambientIntensity: Determina la luminosidad del entorno del foco.

    Ejemplo 7.7.1: Luz Azul Sin Atenuacin PointLight { # luz azul sin atenuacion location 8 -3 -10 radius 15 ambientIntensity 0.5 color 0 0 1 intensity 1 attenuation 1 0 0 # sin atenuacin } Transform { translation 0 -5 -10 children Shape { appearance Appearance { material Material { ambientIntensity 1 diffuseColor 1 1 1 } } geometry Box { size 20 1 10 } } }

  • Computacin Grfica - Unidad IV Jessica Delgado F. / Pedro Carpio F.

    109 Sistema a Distancia

    Figura 41. Enlace luz sin atenuacin

    Ejemplo 7.1.2: Luz Azul Con Atenuacin

    PointLight { # luz azul con atenuacion location 8 -3 -10 radius 15 ambientIntensity 0.5 color 0 0 1 intensity 1 attenuation 1 0.5 0 # posee algo de atenuacion } Transform { translation 0 -5 -10 children Shape { appearance Appearance { material Material { ambientIntensity 1 diffuseColor 1 1 1 } } geometry Box { size 20 1 10 } } }

  • Computacin Grfica - Unidad IV Jessica Delgado F. / Pedro Carpio F.

    110 Sistema a Distancia

    Figura 12. Enlace luz con atenuacin

    7.1.2 Vamos a orientar nuestra luz ahora

    El nodo DirectionalLight es el que hace posible definir una de luz orientable que ilumina con rayos paralelos a un determinado vector tridimensional. Permite desplazar el dibujo de un polgono 2D normalmente cerrado en una direccin determinada en el espacio.

    Sintaxis: DirectionalLight{ color color_RGB on valor_lgico intensity valor_real ambientIntensity valor_real direction Eje_X Eje_Y Eje_Z }

    Descripcin de los campos:

    Tenemos el campo direction contiene el vector que determina la orientacin de la luz emitida dentro del espacio virtual. El resto de campos tienen la misma misin que en el nodo PointLight.

  • Computacin Grfica - Unidad IV Jessica Delgado F. / Pedro Carpio F.

    111 Sistema a Distancia

    Ejemplo 7.1.2.1: DirectionalLight

    Background {skyColor 1 1 1} DirectionalLight { ambientIntensity 0.5 color 1 1 1 intensity 1 direction -0.5 -0.5 0 } Shape { appearance Appearance { material Material { ambientIntensity 1 diffuseColor 0 0 1 } } geometry Sphere {radius 2} }

    Transform { translation 2 5 -5 children [ Shape { appearance Appearance { material Material { ambientIntensity 1 diffuseColor 1 1 0 } } geometry Cone {bottomRadius 2 height 3 } } ] }

  • Computacin Grfica - Unidad IV Jessica Delgado F. / Pedro Carpio F.

    112 Sistema a Distancia

    Figura 43. DirectionalLight

    Ejemplo 7.1.2.2 Definicin de tres luces paralelas con tres colores diferentes sobre una esfera blanca

    DirectionalLight { # luz roja ambientIntensity 0.5 color 1 0 0 intensity 1 direction -0.5 -0.5 -0.1 } DirectionalLight { # luz azul ambientIntensity 0.5 color 0 0 1 intensity 1 direction 0 -0.5 -0.1 } DirectionalLight { # luz roja ambientIntensity 0.5 color 1 0 0 intensity 1 direction 0 0.5 -0.1

  • Computacin Grfica - Unidad IV Jessica Delgado F. / Pedro Carpio F.

    113 Sistema a Distancia

    } Shape { appearance Appearance { material Material { ambientIntensity 1 diffuseColor 1 1 1 } } geometry Sphere {radius 2} }

    Figura 44. Tres luces paralelas con tres colores diferentes sobre una esfera blanca

    7.1.3 Vamos a definir una fuente de luz tipo foco

    Para definir una fuente de luz de tipo foco, se coloca en una posicin fija del espacio tridimensional e ilumina en forma de cono a lo largo de una direccin determinada. As mismo, la intensidad de la iluminacin desciende de forma exponencial segn diverge el rayo de luz desde esa direccin hacia los bordes del cono.Ahora el rgimen de descenso y el ngulo del cono se controlan mediante los campos beamWidth y cutOffAngle. Podemos lograrlo con el Nodo SpotLight.

    Descripcin de los campos:

    Campo: beamWidth almacena el radio (en radianes) de la base de un cono en donde la luz que emite es uniforme y tiene su mxima intensidad. Este cono

  • Computacin Grfica - Unidad IV Jessica Delgado F. / Pedro Carpio F.

    114 Sistema a Distancia

    tendra como base este campo, como altura el campo radius (orientado segn el campo direction) y como vrtice el punto indicado en el campo location. Campo cutOffAngle almacena el radio (en radianes) de la base de un cono que contiene al cono mencionado arriba. Adems pose las mismas caractersticas a excepcin de su radio, el cual ha de ser mayor. Este radio determina el lugar donde la luminosidad es nula. Entre el radio almacenado en beamWidth y el almacenado en este campo, la intensidad de la luz va decreciendo conforme nos alejamos del primero de los conos.

    Ejemplo 7.1.3.1 Definicin de un spot de luz sin atenuacin sobre una superficie blanca.

    SpotLight { # Spot rojo location 0 0 -10 radius 3 ambientIntensity 0.5 color 1 0 0 intensity 1 attenuation 1 0 0 #esta combinacin no presenta atenuacin direction 0 -1 0 # punta hacia abajo cutOffAngle 1.0472 #60 grados beamWidth 0.785398 # 45 grados } Transform { translation -10 -4 -15 children Shape {appearance Appearance { material Material{ ambientIntensity 1 diffuseColor 1 1 1 }} geometry ElevationGrid { colorPerVertex FALSE

  • Computacin Grfica - Unidad IV Jessica Delgado F. / Pedro Carpio F.

    115 Sistema a Distancia

    xDimension 20 zDimension 10 xSpacing 1 zSpacing 1 height [ 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ] } } }

    Figura 45. Spot de luz sin atenuacin sobre una superficie blanca.

    7.2 Es posible crear puntos y lneas en el mundo virtual?

    Hemos visto ya en las unidades anteriores como mediante la superposicin y unin de diferentes nodos geomtricos bsicos es posible construir objetos ms complejos. As mismo, si la nica manera de generar formas complejas fuese sta, entonces la construccin de mundos virtuales ser bastante ardua.

  • Computacin Grfica - Unidad IV Jessica Delgado F. / Pedro Carpio F.

    116 Sistema a Distancia

    Entonces e s por ello por lo que aparecen una serie de nuevos nodos, los cuales, poseen la facilidad del diseo (al tener ms control sobre ellos y al ser ms flexibles), generan mundos VRML de una forma ms eficiente. Lo que se debe hacer a la hora de disear un objeto es describir su geometra en dos pasos aislados:

    Especificacin de las coordenadas: Aqu vamos el indicar mediante el nodo Coordinate la posicin de los puntos que se van a utilizar para construir el objeto. Es decir, estos puntos no son visibles en el escenario virtual.

    Nodo Coordinate: Sintaxis: Coordinate { point [ Eje_x Eje_Y Eje_Z, Eje_x Eje_Y Eje_Z, ...

    Eje Eje_Y Eje_Z ] }

    El campo point puede poseer varios puntos, cuyas coordenadas estn separadas por comas.

    Coordinate { point [ 12.0 11.0 17.1, 20.5 13.8 5.3, 14.0 6.1 22.9 ] }

  • Computacin Grfica - Unidad IV Jessica Delgado F. / Pedro Carpio F.

    117 Sistema a Distancia

    7.3 Vamos a crear una forma geomtrica:

    Primero se define los puntos que forman el esqueleto del objeto, una vez que se haga ello se han de conectar. Existen tres maneras de unir estos puntos, cada una de las cuales est asociada a un nodo diferente:

    Nodo PointSet Nodo IndexedLineSet Nodo IndexedFaceSet

    Los tres nodos poseen un campo denominado coord que acepta como valor un nodo Coordinate.

    Nodo PointSet:

    Este nodo representa un conjunto de puntos situados en las coordenadas indicadas dentro del sistema de coordenadas del nodo padre. PointSet { coord Coordinate { point [ 1 1 1 -1 -1 -1 1 -1 1 ]

    Descripcin de campos:

    Coord toma como valor un nodo de tipo Coordinate, el cual define los puntos que se desean representar.

    El campo color sirve para definir el color de cada uno de los puntos. Este campo toma como valor un nodo Color, que a su vez contiene un campo de tipo color de nuevo. Este ltimo campo describe una lista de colores RGB, de forma que el primer color corresponde al primer punto descrito por el nodo

  • Computacin Grfica - Unidad IV Jessica Delgado F. / Pedro Carpio F.

    118 Sistema a Distancia

    Coordinate del campo coord; el segundo color corresponde al segundo punto y as sucesivamente.

    Ejemplo 7.3.1 PointSet:

    PointSet { coord Coordinate { point [ 12.0 11.0 17.1, #1 punto 20.5 13.8 5.3, #2 punto 14.0 6.1 22.9 #3 punto ] } color Color { color [ 1.0 0.0 0.0, # 1 punto rojo 0.0 1.0 1.0, # 2 punto verde 1.0 1.0 0.0 # 3 punto amarillo ] }

    Adems, si se incluyese este cdigo, tal como est, en un documento VRML, no podramos ver ninguno de estos puntos, ya que como se ha visto anteriormente, para crear un objeto visible se debe utilizar el nodo Shape.

    El observador tiene tomar en cuenta que se ha prescindido del campo appearance del nodo Shape ya que no es necesario, pues los puntos no van a tener la apariencia por defecto, sino la que se determina en el campo color.

  • Computacin Grfica - Unidad IV Jessica Delgado F. / Pedro Carpio F.

    119 Sistema a Distancia

    Ejemplo 7.3.2 PointSet: Ejemplo de un grupo de tres puntos con colores Shape { geometry PointSet { coord Coordinate { point [ 12.0 11.0 17.1, #1 punto 20.5 13.8 5.3, #2 punto 14.0 6.1 22.9 #3 punto ] } color Color { color [ 1.0 0.0 0.0, # 1 punto rojo 0.0 1.0 1.0, # 2 punto verde 1.0 1.0 0.0 # 3 punto amarillo ] } }

    Nodo IndexedLineSet: Este nodo permite unir los diferentes puntos especificados en su campo coord mediante lneas poligonales. Sintaxis: IndexedLineSet{ coord Coordinate { point [ . . . ] } coordIndex [...] colorPerVertex valor_lgico color Color { color [ . . . ] } colorIndex [...] }

  • Computacin Grfica - Unidad IV Jessica Delgado F. / Pedro Carpio F.

    120 Sistema a Distancia

    Descripcin de campos:

    coord toma como valor un nodo de tipo Coordinate, el cual define los puntos que sirven como esqueleto de la figura.

    coordIndex se utiliza para especificar entre qu puntos se han de trazar las lneas. Asimismo si desea una lnea puede ser trazada utilizando ms de dos puntos, de forma que se dibuja una lnea entre el primer y el segundo punto, otra entre el segundo y el tercer punto, y as sucesivamente.

    Un ndice con valor -1 indica que ha finalizado la lnea actual y que comienza la siguiente. Para indicar el primer punto definido en el nodo Coordinate se utiliza el 0, para el segundo el 1 y as sucesivamente. El campo colorPerVertex indica como se han de aplicar los colores sobre las lneas:

    Nodo IndexedFaceSet:

    Permite unir los diferentes puntos especificados en su campo coord mediante caras poligonales.

    Sintaxis: IndexedFaceSet{ coord Coordinate { point [ . . . ] } coordIndex [...] colorPerVertex valor_lgico color Color { color [ . . . ] } colorIndex [...] }

  • Computacin Grfica - Unidad IV Jessica Delgado F. / Pedro Carpio F.

    121 Sistema a Distancia

    El campo coord toma como valor un nodo de tipo Coordinate, el cual define los puntos que sirven como esqueleto de la figura. Utiliza los ndices de su campo coorIndex para especificar las caras poligonales. Un ndice con valor -1 indica que ha finalizado la cara actual y comienza la siguiente. El campo colorPerVertex indica como se han de aplicar los colores:

  • Computacin Grfica - Unidad IV Jessica Delgado F. / Pedro Carpio F.

    122 Sistema a Distancia

    EJERCICIOS PROPUESTOS Como ejercicio prctico se propone crear una espiral de seccin transversal circular.

    Las dimensiones de la seccin transversal deben ser 2x2. Por tanto, los cuatro puntos que definen a la seccin transversal en el plano XZ sern (1,1), (-1,1), (-1,-1) y (1,-1).

    La espina dorsal va a estar definida por 17 puntos, que se pueden obtener en el Ejemplo anterior del espiral cuadrado, hay que tomar en cuenta los cantidad de puntos que se le tiene que aadir para logre ser circular el espiral Guardar el fichero resultante con el nombre de espiral1.wrl

    RESUMEN

    En la presente unidad se ha visto el desarrollo de objetos ms complejos, lo que implica el uso del nodo extrusin que nos ha permitido quitarle caras a un objeto, dando un aspecto de huecos, de torcidos y altorrelieve acercndonos ms a la realidad.

    Por ejemplo, hicimos una dona en la que se aprendi a determinar la cantidad de puntos que permite darle forma.

    As como tambin hemos aprendido a diferenciar cmo se aplica una determinada luz a la escena, dependiendo de donde se origina, de un punto o de una determinada direccin, lo que nos ensea darle efectos de los rayos de sol o mejor an darle la apariencia de una foco de luz que emite luces de un punto en especial, lo que nos permitir ms adelante crear lmparas o cualquier objeto que emita luz. Finalmente, no solo se puede armar escenas con objetos sino tambin con puntos y lneas.

  • Computacin Grfica - Unidad IV Jessica Delgado F. / Pedro Carpio F.

    123 Sistema a Distancia

    AUTOEVALUACIN

    1. Permite desplazar el dibujo de un polgono 2D normalmente cerrado en una direccin determinada en el espacio.

    a. Directionlight b. Poincet c. Extrusion d. crossection e. spine

    2. Es un argumento que est formado por una serie de puntos que definen.

    a. Espina dorsal b. Seccin Transversal c. Spine d. Crossection e. a y b

    3. Determina si la forma extruida est abierta o cerrada en los extremos. a. Extrusion-Crossection-Spine b. Extrusion- beginCap- endCap c. EndCap d. BeginCap e. EndCap-Extrusion

    4. Hay un campo que hace que gire la seccin transversal en cada punto de la espina dorsal un ngulo determinado.

    a. Orientation -Type b. Orientation-scale c. Orientation d. Anchor e. Type

  • Computacin Grfica - Unidad IV Jessica Delgado F. / Pedro Carpio F.

    124 Sistema a Distancia

    5. Define la posicin de una luz que ilumina por igual en todas direcciones. a. Pointlight b. DirectionalLight c. Location d. Spotlight e. ambientIntensity

    CLAVES: 1A. 2D. 3B. 4C. 5A.

    GLOSARIO

    Solid: Campo que tiene dos opciones: TRUE (la opcin por defecto) con la que se ven slo un lado de las caras. FALSE: se vern ambos lados.

    beginCap: Campo que si se establece como FALSE, no existir la seccin transversal inicial (en el ejemplo del cubo, la cara inferior).

    endCap: Campo que si se establece como FALSE, no existir la seccin transversal final (en el ejemplo del cubo, la cara superior).

    PointLight: Define la posicin de una luz que ilumina por igual en todas direcciones.

    Ambientintensity: Determina la luminosidad del entorno del foco. Attenuation: Almacena tres valores que se utilizan para calcular la

    atenuacin de la luz conforme nos alejamos del foco. SpotLight: Define una fuente de luz de tipo foco, que se coloca en una

    posicin fija del espacio tridimensional e ilumina en forma de cono a lo largo de una direccin determinada

    Coordinate: El cual define los puntos que sirven como esqueleto de la figura.

  • Computacin Grfica - Unidad IV Jessica Delgado F. / Pedro Carpio F.

    125 Sistema a Distancia

    LECTURA

    VRLM Mundos Virtuales en Internet

    El paradigma de Internet permite adentrarse en uno de los puntos de discusin que ms se acercan a la ciencia-ficcin a travs de los mundos virtuales . Navegar e interactuar a travs de una red que no conoce lmites .No hay que estar muy familiarizado con las nuevas tecnologas para haber odo hablar de la Realidad Virtual (VR: Virtual Reality ) . De hecho, slo tiene que darse una vuelta por una sala de juegos recreativos de un centro comercial para encontrar una mquina con un casco algo extrao que, tras introducir las monedas correspondientes, le permitir adentrarse en un nuevo mundo . Quiz ya ha experimentado la realidad virtual a travs de estas mquinas, aunque lo que realmente importa son las nuevas posibilidades que ofrece esta tecnologa en relacin con la vida cotidiana. Obviamente desde casa y conectado a la Red, la experiencia no va a ser la misma que en la mquina recreativa, pero s ms enriquecedora.

    En el mundo de la informtica y ms an en el campo tecnolgico, todo avanza demasiado rpido . En el caso de VRML, el hardware ha mejorado tanto que los programas desarrollados no utilizan todas las posibilidades que ofrecen los nuevos perifricos . Ahora podr disfrutar desde el hogar de un nuevo mundo con un ordenador a 200 MHz, mucha memoria RAM y una aceleradora 3-D . Aunque esto no quiera decir que con un Pentium/100, o Mac equivalente, no se pueda andar por un espacio virtual . Los requisitos indispensables son disponer de una cantidad generosa de RAM y una aceleradora 2D/3D . Lgicamente, para navegar en Internet por los mundos virtuales, deber aadir el navegador preferido, un mdulo de mundos virtuales como Cosmo Player ( otro estndar de facto creado por Silicom Graphics ) y agradecer el esfuerzo de muchos individuos que han hecho posible un estndar para la creacin de mundos virtuales en Internet. Un pilar que ha derivado en el lenguaje VRML ( Virtual Reality Model Language, Modelo de Lenguaje para Realidad Virtual ) ya en su versin 2.0.

  • Computacin Grfica - Unidad IV Jessica Delgado F. / Pedro Carpio F.

    126 Sistema a Distancia

    Conceptos bsicos

    Los archivos de VRML son archivos de texto interpretados por el mdulo de realidad virtual que se tenga instalado en el navegador . Los archivos VRML contienen nodos que describen formas geomtricas y sus propiedades ( aspecto, colores, luces, animaciones y otras ) .

    Las primitivas son formas geomtricas bsicas y tridimensionales que sirven para construir cajas, conos, cilindros y esferas. Todas ellas deben ir asociadas al nodo que indica la construccin de formas ( shape ) .

    Cada uno de los nodos de primitivas bsicas tiene sus propias caractersticas, dadas por su estructura geomtrica ( altura, anchura, radio ) . As, partiendo de la primitiva box (caja ) se puede construir un cubo o un rectngulo perfecto; y a partir de la primitiva Cylinder ( cilindro ) se puede obtener un bonito cilindro, un disco, o una tubera ( simplemente quitando la parte superior e inferior ) .

    Las formas bsicas se pueden agrupar para formar estructuras ms complejas . De esta manera surgen los conceptos de grupo ( group) y los hijos ( children ) . Los hijos conforman una estructura compleja, el grupo, de tal manera que pueda modificarse su posicin, tamao y otros atributos, como si se tratara de un nico objeto.

    Otra de las formas consideradas como bsicas son los textos ( text ) . En ellos se definen las familias ( arial, courier ) , los estilos ( cursiva, negrita ) , espaciados, justificacin, orientacin, longitud del texto, etc .

    Formas y Texturas

    Obtener formas complejas como caras o cuerpos es una tarea imposible cuando se trata de combinar primitivas . Esta es la razn por la que en VRML se dispone adems de puntos (PointSet) , lneas (IndexedLineSet) y caras

  • Computacin Grfica - Unidad IV Jessica Delgado F. / Pedro Carpio F.

    127 Sistema a Distancia

    (IndexedFaceSet). Las caras (faces) requieren una mencin especial, ya que son formas planas (cuadrados, crculos, etc.) y que, por poner ejemplos sencillos, les falta esa tercera dimensin para convertirse en un cubo o una esfera . Mediante la inclusin de mltiples caras en el nodo (IndexedFaceSet) se puede recrear un objeto lo ms realista posible . Las caras son reas poligonales cerradas, que el navegador oscurece por omisin para ofrecer una apariencia de solidez.

    Tambin es posible mejorar el aspecto de una cara y, por tanto, ofrecer una mayor sensacin de realidad mediante el empleo de tcnicas de sombreado y construccin de caras cncavas o convexas. Con la tcnica del sombreado se elimina la necesidad de dibujar muchas lneas, dejando que las sombras suavicen las formas y aportando continuidad. De esta manera se obtienen unos mejores resultados estticos, un archivo de menor tamao y, en consecuencia, un menor tiempo de redibujado.

    Tanto los puntos, como las lneas y las caras, se construyen respecto a un eje imaginario que representa las tres coordenadas espaciales: ancho, alto y profundidad (x,y,z) y dentro de un centro imaginario (0,0,0).

    http://www.idg.es/iworld/impart.asp?id=60699

    BIBLIOGRAFA

    http://wwwdi.ujaen.es/~rsegura/igai/web3d/web3d/docs/apend-c.html