viernes, 24 de mayo de 2013

SOFTWARE TRUESPACE


SOFTWARE TRUESPACE
Es un software para animación 3D contiene todas las herramientas para desarrollar los diseños. Permite crear y modelar cualquier tipo de objeto, colorearlo, añadirle atributos físicos, animarlo.


Probé varias opciones, entre unas de ellas Library donde  encontramos la herramienta Characters,  de esta herramienta escogí una imagen  donde pude observar que si presiona unos puntos que  salen al rededor del cuerpo del modelado, podemos darle diferentes movimientos como profundidad, girar, mover hacia atrás, adelante, a la izquierda a la derecha.


Tenemos Scale, trasladarse a Oriente selector, trasladarse, también al momento que damos un clic en una de las opciones me parece un botón de colores  (rojo, azul, amarillo)  que se llama Control, esta me indica que arrastre para mover el control o haga clic para restablecer su posición en si me permite rotar el modelado de un lado a otro.

Puedo cambiar en Scene (escena) la opción de Surface (superficie) poner opacidad  y cambiar el área de trabajo.


En la opción Panel di  clic para darle movimiento  al modelado con Mouth mouse = cierra la boca,  Mouth Open= abre la boca, Blink= abre y cierra los ojos.
Es decir puedo darle el movimiento o posición que desee, cambiar color y hacer diferentes cambios al modelado.



TIPOS DE FORMATO


SWF
#VRML V2.0 utf8

Shape {
    appearance Appearance {
        texture    MovieTexture {
            loop FALSE
            speed 1
            url    ["video 1.swf"]
        }

    }

    geometry Box {size 3 3 0.6}
}

FLV
#VRML V2.0 utf8

Shape {
    appearance Appearance {
        texture    MovieTexture {
            loop TRUE
            speed 1
            url    ["video 1.flv"]
        }

    }

    geometry Box {size 3 3 0.6}
}




wmv
#VRML V2.0 utf8

Shape {
    appearance Appearance {
        texture    MovieTexture {
            loop TRUE
            speed 1
            url    ["video 1.wmv"]
        }

    }

    geometry Box {size 3 3 0.6}
}



APARIENCIAS

Concepto:
En VRML podemos cambiar la apariencia de los objetos que creamos en nuestro mundo, es decir, podemos hacer que un objeto concreto tenga una determinada textura y color.
La apariencia de un objeto se define mediante un campo denominado appearance que contiene un nodo Appearance. La modificación de las apariencias de un objeto se realiza antes o después de crear el objeto, eso sí, dentro del nodo Shape.
El nodo de apariencia Appearance contiene a su vez un campo material –entre otros campos distintos- (que contiene un nodo Material) dentro del cual podremos definir el color del objeto que estamos creando. De esta forma nos quedaría:
                        Shape{
                    appearance Appearance{
                            material Material{
                                   # aquí es donde se especifican los campos de color.
                        } }
                }

Los campos que contiene el nodo material son:
  • diffuseColor: color que tiene el objeto por naturaleza.
  • specularColor: color de brillo, es decir, el que se resalta en los objetos que son brillantes.
  • emissiveColor: color que emite el objeto sin llegar a conseguir que se ilumine el resto de objetos del mundo.
  • ambientIntensity: cantidad de luz ambiental que puede reflejar el objeto.
  • shininess: indica cuánto brilla el objeto.
  • transaparency: cómo de transparente es el objeto.
Los tres primeros campos indicados contienen, cada uno, tres valores, que son las componentes R (rojo), G (verde) y B (azul) del color. El resultado de combinar estos tres colores en la cantidad indicada (se indica un valor entre 0 y 1 para cada componente) es el color que se aplicará. Los tres últimos campos, al indicar un valor cuantitativo, contienen un único valor numérico (que va entre cero –poco- y uno –mucho-).
Veamos un ejemplo acerca de la combinación de colores.
Si ponemos, por ejemplo, el color 1 0 0 le estamos indicando el color rojo (tan sólo tiene componente roja); sin embargo, si especificamos 1 1 0, le estamos diciendo que mezcle el rojo y el verde y que ese color (en este caso el color resultante es el amarillo) se aplique al campo correspondiente. Podemos indicar también valores decimales: 1 0.5 0 (mucha componente roja, ni mucha ni poca verde y ninguna azul) –en este caso, el color resultante es el azul-.

Apariencias.

Si queremos que los objetos de nuestro mundo tengan una textura diferente a la que tiene VRML por defecto tenemos una forma de cambiarla.
Al igual que dentro del nodo Appearance podíamos, gracias al campo que contiene el  nodo Material, cambiar el color de los objetos, existe también un  campo que nos permite ponerle una determinada textura a nuestro objeto. Este campo se llama textura, y contiene un nodo ImageTexture. Dentro de este nodo tenemos el campo url. Este campo deberá contener un String (entre comillas) que es el nombre de un fichero de imagen .jpg o .png (deben tener necesariamente una de estas dos extensiones, sino puede que no funcione). El fichero imagen debe estar, además, en el mismo directorio donde se encuentra guardado el fichero de texto donde implementamos el mundo VRML. Otra opción sería poner, entre corchetes, una lista de ficheros de imagen. De esta forma, el navegador utilizaría la primera imagen de esa lista que encuentre.
¿Cuál es el resultado?. El resultado de aplicar de esta forma una textura en el objeto es poder ver en dicha textura en las caras de nuestro objeto.
Dentro del nodo ImageTexture existen también el campo repeatS(si queremos que la textura se repita horizontalmente) y repeatT(si queremos que se repita verticalmente –en la dirección vertical), que toman valores booleanos (TRUE/FALSE).

Texturas en movimiento.

Al igual que a un objeto le añadíamos una textura que era un fichero de imagen .jpg o .png, podemos añadirles texturas en movimiento, es decir, archivos de vídeo.
La única variación con respecto al anterior es que, en lugar de contener un nodo ImageTexture en el campo textura del nodo Appearance, contiene un nodo MovieTexture, que tiene también un campo url que funciona igual que con las imágenes, pero además tiene cuatro campos más:
  • speed: velocidad a la que corre la película. El valor predefinido se pone con un 1, el doble de ese valor con 2,… Poner el valor cero equivale a mostrar el primer fotograma de la película.
  • loop: indica si la película se repite (indefinidamente) o no (sólo aparece una vez). Contiene, por tanto, un valor booleano.
  • startTime: indica, en segundos medidos desde las 0h:0min:0seg del 1 de enero de 1970, cuándo comienza la película.
  • stopTime: indica cuándo finaliza la película, medido en segundos desde las 0h, 0min, 0seg del 1 de enero de 1970.

Definición de las texturas.

En VRML también podemos definir nuestras propias texturas.
En este caso, el campo textura contenido en el nodo Appearance contiene un campo denominado image. Este campo contiene varios valores numéricos (no separados por comas): primero van dos números que indican el alto y el ancho de la textura que queremos crear, luego otro número aporta el número de los componentes de la textura, es decir, si ponemos con una sola componente le estaremos indicando que se trata de una escala de grises, si ponemos dos se trataría de una escala de grises con transparencia, tres serían los colores RGB y cuatro sería RGB con transparencia. Después le sigue una lista de valores numéricos escritos en hexadecimal (empezando por 0x) que indica la cantidad de cada color en ese componente de la textura. Los pixeles se ordenan de abajo-izquierda hacia arriba-derecha. Por ejemplo, si queremos tener una textura que es un cuadrado dividido en cuatro partes, como la de la figura tendríamos que poner lo siguiente:

 image 3 4 (=alto y ancho de la textura) 3 (=RGB) 0xFF0000(=rojo) 0x00FF00(=verde) 0x0000FF(=azul) 0xFFFF00(=naranja). (El formato de poner los colores así en hexadecimal es utilizado también en otros lenguajes).
Ténganse en cuenta que las letras de estos valores que indican números en hexadecimal son en mayúsculas.
Como veremos en una sección posterior, podremos variar las texturas para los objetos de nuestro mundo, es decir, que la textura de nuestro objeto no sea exactamente la imagen del fichero de imagen.

El color de los objetos

Anteriormente se ha comentado que el nodo Shape contenía dos campos, appearance y geometry, de los cuales el segundo indicaba el tipo de objeto a representar y del que se ha hablado ya ampliamente. Sin embargo la misión del campo appearanceapenas se ha comentado, por lo que procederemos a analizarla con más detalle en este punto.  
El campo appearance va a permitir seleccionar el color y la textura del objeto que va a ser representado dentro del escenario virtual. Este campo toma como valor un nodo de  tipo Appearance, el cual a su vez, posee un campo denominado material que toma como valor un nodo de tipo Material.   
El nodo Material es el que controla las propiedades del color (selección del color, del brillo, del grado de transparencia, etc.) que se van a dar al objeto.   
Los colores que se le dan a los objetos son colores RGB, es decir, vienen dados por tres valores en coma flotante, cada uno de los cuales representa uno de los colores primarios (Red, Green, Blue ) [ Rojo, Verde y Azul]. El valor 0.0 representa la ausencia de color y el 1.0 la máxima intensidad.
  Muchos programas de dibujo darán un valor para cada color RGB en un formato 256x256x256. Para poder utilizar estos colores en  VRML es preciso convertirlos, dividiendo cada valor por 256 y colocando el resultado en su campo correspondiente dentro del nodo Material. 

Nodo Material:  

Con este nodo vamos a determinar el color y grado de transparencia de los objetos.

Sintaxis: 
Shape{ 
   appearance Appearance{ 
      material Material{ 
         diffuseColor           color_RGB
         emissiveColor        color_RGB
         specularColor        color_RGB
         ambientIntensity   valor
         transparency         valor
         shininess               valor
      } 
   } 
   geometry ... 

 Cada uno de los seis campos del nodo Material tiene su propio efecto específico sobre un objeto.Todos son opcionales.  
   

 diffuseColor: 

El campo diffuseColor representa  lo que la mayoría de los usuarios llamarían como el color del objeto.
  

emissiveColor: 


El campo emissiveColor se utiliza para fijar el color del brillo del objeto, cuando dicho objeto necesite ser visible en la oscuridad. De esta forma se consigue un efecto en donde la figura representada parece iluminada desde el interior mediante una luz de un determinado color.
La configuración por defecto de este campo es el negro, ya que la mayoría de los objetos normalmente no brillan.  

specularColor: 

El campo specularColor es un parámetro avanzado que permite indicar qué color de luz refleja el objeto. Por ejemplo, una cama roja no refleja un color rojo, pero una olla rojiza  si puede reflejar su color.  

ambientIntensity: 

Este campo es otro parámetro avanzado que indica la cantidad de luz ambiental (producida por los diferentes focos de luz del escenario virtual) es reflejada por el objeto.
Toma valores en coma flotante entre 0.0 y 1.0.  

 shininess: 

El campo shininess controlan el brillo de un objeto. Toma valores en coma flotante entre 0.0 y 1.0.

transparency: 


El campo transparency indica el nivel de transparencia del objeto. Toma valores en coma flotante entre 0.0 y 1.0, siendo el 1.0 el nivel máximo de transparencia (objeto invisible) y el 0.0 el nivel mínimo (objeto totalmente opaco). 
El valor por defecto es el 0.0. 

APARIENCIAS



APARIENCIAS

Concepto:
En VRML podemos cambiar la apariencia de los objetos que creamos en nuestro mundo, es decir, podemos hacer que un objeto concreto tenga una determinada textura y color.
La apariencia de un objeto se define mediante un campo denominado appearance que contiene un nodo Appearance. La modificación de las apariencias de un objeto se realiza antes o después de crear el objeto, eso sí, dentro del nodo Shape.
El nodo de apariencia Appearance contiene a su vez un campo material –entre otros campos distintos- (que contiene un nodo Material) dentro del cual podremos definir el color del objeto que estamos creando. De esta forma nos quedaría:
                        Shape{
                    appearance Appearance{
                            material Material{
                                   # aquí es donde se especifican los campos de color.
                        } }
                }

Los campos que contiene el nodo material son:
  • diffuseColor: color que tiene el objeto por naturaleza.
  • specularColor: color de brillo, es decir, el que se resalta en los objetos que son brillantes.
  • emissiveColor: color que emite el objeto sin llegar a conseguir que se ilumine el resto de objetos del mundo.
  • ambientIntensity: cantidad de luz ambiental que puede reflejar el objeto.
  • shininess: indica cuánto brilla el objeto.
  • transaparency: cómo de transparente es el objeto.
Los tres primeros campos indicados contienen, cada uno, tres valores, que son las componentes R (rojo), G (verde) y B (azul) del color. El resultado de combinar estos tres colores en la cantidad indicada (se indica un valor entre 0 y 1 para cada componente) es el color que se aplicará. Los tres últimos campos, al indicar un valor cuantitativo, contienen un único valor numérico (que va entre cero –poco- y uno –mucho-).
Veamos un ejemplo acerca de la combinación de colores.
Si ponemos, por ejemplo, el color 1 0 0 le estamos indicando el color rojo (tan sólo tiene componente roja); sin embargo, si especificamos 1 1 0, le estamos diciendo que mezcle el rojo y el verde y que ese color (en este caso el color resultante es el amarillo) se aplique al campo correspondiente. Podemos indicar también valores decimales: 1 0.5 0 (mucha componente roja, ni mucha ni poca verde y ninguna azul) –en este caso, el color resultante es el azul-.

Apariencias.

Si queremos que los objetos de nuestro mundo tengan una textura diferente a la que tiene VRML por defecto tenemos una forma de cambiarla.
Al igual que dentro del nodo Appearance podíamos, gracias al campo que contiene el  nodo Material, cambiar el color de los objetos, existe también un  campo que nos permite ponerle una determinada textura a nuestro objeto. Este campo se llama textura, y contiene un nodo ImageTexture. Dentro de este nodo tenemos el campo url. Este campo deberá contener un String (entre comillas) que es el nombre de un fichero de imagen .jpg o .png (deben tener necesariamente una de estas dos extensiones, sino puede que no funcione). El fichero imagen debe estar, además, en el mismo directorio donde se encuentra guardado el fichero de texto donde implementamos el mundo VRML. Otra opción sería poner, entre corchetes, una lista de ficheros de imagen. De esta forma, el navegador utilizaría la primera imagen de esa lista que encuentre.
¿Cuál es el resultado?. El resultado de aplicar de esta forma una textura en el objeto es poder ver en dicha textura en las caras de nuestro objeto.
Dentro del nodo ImageTexture existen también el campo repeatS(si queremos que la textura se repita horizontalmente) y repeatT(si queremos que se repita verticalmente –en la dirección vertical), que toman valores booleanos (TRUE/FALSE).

Texturas en movimiento.

Al igual que a un objeto le añadíamos una textura que era un fichero de imagen .jpg o .png, podemos añadirles texturas en movimiento, es decir, archivos de vídeo.
La única variación con respecto al anterior es que, en lugar de contener un nodo ImageTexture en el campo textura del nodo Appearance, contiene un nodo MovieTexture, que tiene también un campo url que funciona igual que con las imágenes, pero además tiene cuatro campos más:
  • speed: velocidad a la que corre la película. El valor predefinido se pone con un 1, el doble de ese valor con 2,… Poner el valor cero equivale a mostrar el primer fotograma de la película.
  • loop: indica si la película se repite (indefinidamente) o no (sólo aparece una vez). Contiene, por tanto, un valor booleano.
  • startTime: indica, en segundos medidos desde las 0h:0min:0seg del 1 de enero de 1970, cuándo comienza la película.
  • stopTime: indica cuándo finaliza la película, medido en segundos desde las 0h, 0min, 0seg del 1 de enero de 1970.

Definición de las texturas.

En VRML también podemos definir nuestras propias texturas.
En este caso, el campo textura contenido en el nodo Appearance contiene un campo denominado image. Este campo contiene varios valores numéricos (no separados por comas): primero van dos números que indican el alto y el ancho de la textura que queremos crear, luego otro número aporta el número de los componentes de la textura, es decir, si ponemos con una sola componente le estaremos indicando que se trata de una escala de grises, si ponemos dos se trataría de una escala de grises con transparencia, tres serían los colores RGB y cuatro sería RGB con transparencia. Después le sigue una lista de valores numéricos escritos en hexadecimal (empezando por 0x) que indica la cantidad de cada color en ese componente de la textura. Los pixeles se ordenan de abajo-izquierda hacia arriba-derecha. Por ejemplo, si queremos tener una textura que es un cuadrado dividido en cuatro partes, como la de la figura tendríamos que poner lo siguiente:

 image 3 4 (=alto y ancho de la textura) 3 (=RGB) 0xFF0000(=rojo) 0x00FF00(=verde) 0x0000FF(=azul) 0xFFFF00(=naranja). (El formato de poner los colores así en hexadecimal es utilizado también en otros lenguajes).
Ténganse en cuenta que las letras de estos valores que indican números en hexadecimal son en mayúsculas.
Como veremos en una sección posterior, podremos variar las texturas para los objetos de nuestro mundo, es decir, que la textura de nuestro objeto no sea exactamente la imagen del fichero de imagen.

El color de los objetos

Anteriormente se ha comentado que el nodo Shape contenía dos campos, appearance y geometry, de los cuales el segundo indicaba el tipo de objeto a representar y del que se ha hablado ya ampliamente. Sin embargo la misión del campo appearanceapenas se ha comentado, por lo que procederemos a analizarla con más detalle en este punto.  
El campo appearance va a permitir seleccionar el color y la textura del objeto que va a ser representado dentro del escenario virtual. Este campo toma como valor un nodo de  tipo Appearance, el cual a su vez, posee un campo denominado material que toma como valor un nodo de tipo Material.   
El nodo Material es el que controla las propiedades del color (selección del color, del brillo, del grado de transparencia, etc.) que se van a dar al objeto.   
Los colores que se le dan a los objetos son colores RGB, es decir, vienen dados por tres valores en coma flotante, cada uno de los cuales representa uno de los colores primarios (Red, Green, Blue ) [ Rojo, Verde y Azul]. El valor 0.0 representa la ausencia de color y el 1.0 la máxima intensidad.
  Muchos programas de dibujo darán un valor para cada color RGB en un formato 256x256x256. Para poder utilizar estos colores en  VRML es preciso convertirlos, dividiendo cada valor por 256 y colocando el resultado en su campo correspondiente dentro del nodo Material. 

Nodo Material:  

Con este nodo vamos a determinar el color y grado de transparencia de los objetos.

Sintaxis: 
Shape{ 
   appearance Appearance{ 
      material Material{ 
         diffuseColor           color_RGB
         emissiveColor        color_RGB
         specularColor        color_RGB
         ambientIntensity   valor
         transparency         valor
         shininess               valor
      } 
   } 
   geometry ... 

 Cada uno de los seis campos del nodo Material tiene su propio efecto específico sobre un objeto.Todos son opcionales.  
   

 diffuseColor: 

El campo diffuseColor representa  lo que la mayoría de los usuarios llamarían como el color del objeto.
  

emissiveColor: 


El campo emissiveColor se utiliza para fijar el color del brillo del objeto, cuando dicho objeto necesite ser visible en la oscuridad. De esta forma se consigue un efecto en donde la figura representada parece iluminada desde el interior mediante una luz de un determinado color.
La configuración por defecto de este campo es el negro, ya que la mayoría de los objetos normalmente no brillan.  

specularColor: 

El campo specularColor es un parámetro avanzado que permite indicar qué color de luz refleja el objeto. Por ejemplo, una cama roja no refleja un color rojo, pero una olla rojiza  si puede reflejar su color.  

ambientIntensity: 

Este campo es otro parámetro avanzado que indica la cantidad de luz ambiental (producida por los diferentes focos de luz del escenario virtual) es reflejada por el objeto.
Toma valores en coma flotante entre 0.0 y 1.0.  

 shininess: 

El campo shininess controlan el brillo de un objeto. Toma valores en coma flotante entre 0.0 y 1.0.

transparency: 


El campo transparency indica el nivel de transparencia del objeto. Toma valores en coma flotante entre 0.0 y 1.0, siendo el 1.0 el nivel máximo de transparencia (objeto invisible) y el 0.0 el nivel mínimo (objeto totalmente opaco). 
El valor por defecto es el 0.0. 

Nodo Transform.
Por defecto todos los objetos son creados en el centro del escenario de realidad virtual. El primer paso es conocer el sistema de coordenadas usado por el lenguaje, para poder colocar un objeto en otro punto.
En VRML tenemos:
  • Eje X derecha (+), izquierda (-)
  • Eje Y arriba (+), abajo (-)
  • Eje Z delante (+), atrás (-)



Un mundo virtual tiene su sistema de coordenadas situado en el centro. Con el nodo Transform, se determina un nuevo sistema de coordenadas para un grupo de objetos.
Este nuevo sistema de coordenadas sufre unas transformaciones: puede ser trasladado a un punto determinado, puede ser girado un determinado ángulo y puede tener una escala distinta a la original. El grupo de objetos especificados en el nodo sufrirán las mismas transformaciones, es decir, serán trasladados, girados y variados de escala.
La estructura general del nodo Transform es:
Transform{
translation x y z
rotation x y z Radianes
scale x y z
children[
]
}
En este nodo nos encontramos los campos de translación, rotación y escala. El campo children, es donde se especifican los objetos que sufrirán esas transformaciones. No es necesario que estén los tres términos en una transformación.
Escalado (Scale): 
Sirve para cambiar de tamaño a los objetos. Podemos hacerlos más grandes o más pequeños, rescaldando respecto a cada eje (es decir, multiplicando el tamaño del objeto por un factor respecto a cada eje. 
Nota: Los factores no pueden ser negativos. 
            scale factor_x factor_y factor_z
                     Ejemplo:
                     Transform{
                            scale 2 0.5 1 #Establecemos que los objetos de children doblen su extensión en   
                                                   #el eje x, la reduzcan a la mitad en el  eje y y no la varíen en el eje z.
                            children[
                               Shape{
                                  geometry Box{}
                                    } ]
                          }

Traslación:
Es una transformación muy simple. Desplaza el centro de los objetos.
translation dx dy dz
Si el centro de un objeto está en el punto (x,y,z), tras esta translation pasará a estar en (x + dx, y + dy, z + dz)
Ejemplo:
Transform{
translation 3 -1 2   # suponiendo que estamos mirando en la dirección del eje z y en su sentido
# negativo, estaríamos desplazando los objetos 3 unidades la derecha,
                                                             # 1hacia  abajo y 2 hacia nosotros. 
                                children[ Shape{
                                          geometry Box{} #El nodo Shape deja los objetos en el 0,0,0 por defecto.
                                            }]
                                   }


Rotación: 
Las rotaciones se definen por un vector y por un ángulo de giro. Si no indicamos nada más, los objetos giran alrededor de su centro.
         rotation v1 v2 v3 angulo 
            (v1, v2, v3) son las coordenadas del vector, y angulo los radianes que giramos respecto al vector
                  Ejemplo:
                           Transform{
                                        rotation 0 1 0 0.79 #Giramos lo que esté dentro del nodo children
                                        children[ Shape{
                                              geometry Box{} #El nodo Shape deja los objetos en el 0,0,0 por defecto.
                                        } ]                               
}



Otras transformaciones: el nodo Billboard:
Además de todas las transformaciones vistas existen otro tipo de transformaciones, quizás más interesantes que las vistas hasta ahora.
Este nodo es realmente un nodo Transform, puesto que lo que hace es mostrar siempre la misma cara al usuario aunque se considera distinto. Lo que se está haciendo es que, según va moviéndose el observador (usuario) por el mundo, el nodo Billboard rota sobre un mismo eje (en función de los movimientos que haga el usuario).
 Los campos que posee este nodo Billboard son:
 · addChildren: permite añadir un hijo (children).
· removeChildren: permite eliminar un hijo (children).
 · axisOfRotation: eje de rotación del objeto (nodo).Tiene tres coordenadas (por defecto es 0 1 0).
 · children: contiene los objetos que queremos en el Billboard.
 · bboxCenter (se utiliza para los scripts).
 · bboxSize (se utiliza para los scripts).
                    Ejemplo:
                            Billboard  {
                             
                                    axisOfRotation 0 0 0
                                    children
                                            [
                                                Shape
                                                   {
                                                                geometry Text
                                                         {
                                                            string "Hola"
                                                         }
                                                  } ]
                                    }

Nota: Composición de transformaciones.
Una transformación puede representarse por una matriz. Las transformaciones pueden componerse, multiplicando matrices. Dado que el producto de matrices no es conmutativo, tampoco lo son las transformaciones. (Ejemplo: no es lo mismo rotar y trasladar que trasladar y rotar) Por lo tanto, hay que tener cuidado. Las transformaciones que se aplican primero son las más cercanas al objeto que se va a transformar, y luego se retrocede en el código. (En general)


 ¿Qué es VRML?


VRML (Virtual Reality Modeling Language – Lenguaje de modelado de realidad virtual) es un formato de archivo para definir mundos interactivos y objetos en 3D, que puede ser utilizado en Internet, a través de páginas Web. Puede utilizarse para crear representaciones en tres dimensiones de escenas complejas como ilustraciones, definiciones de productos y presentaciones de realidad virtual.

Los ángulos en VRML se miden en radianes

v Para convertir de grados a radianes, sólo hay que multiplicar el número de grados por PI/180.
      Algunas conversiones:
         90º son aproximadamente 1.57 radianes (PI/2).
       180º son aproximadamente 3.14 radianes (PI).      
v VRML diferencia entre mayúsculas y minúsculas.
v VRML utiliza el modelo de color RGB, es decir, un color se define a partir de sus tres componentes:
Cantidad de rojo, verde y azul.  Cada cantidad va desde 0.0 hasta 1.0. 

Colores primarios y secundarios:

0 0 0 Negro
0 0 1 Azul
0 1 0 Verde
0 1 1 Cyan
1 0 0 Rojo
1 0 1 Magenta
1 1 0 Amarillo
1 1 1 Blanco

¿Qué es Case Sensitive?

Que algo sea sensible a las mayúsculas y minúsculas, abreviado a veces como sensible a mayúsculas, es una expresión usada en informática que se aplica a los textos en los que tiene alguna relevancia escribir un carácter en mayúsculas o minúsculas.

Uso del modelo RGB
La descripción RGB (del inglés Red, Green, Blue; "rojo, verde, azul") de un color hace referencia a su composición de la intensidad de los colores primarios con que se forma: el rojo, el verde y el azul. Este un modelo de color basado en lo q se conoce como síntesis aditiva, en el cual estos colores se agregan o mezclan de varias maneras para producir una amplia cantidad de colores.

Colores Primarios
·         rojo: #FF0000 donde el canal rojo esta al máximo y los otros al mínimo: FF, 00, 00.
·         verde: #00FF00 donde el canal verde esta al máximo y los otros al mínimo: 00, FF, 00.
·         azul: #0000FF donde el canal azul esta al máximo y los otros al mínimo: 00, 00, FF.
El propósito principal del modelo de color RGB está para la detección, la representación, y la exhibición de imágenes en sistemas electrónicos o informáticos, tales como televisores y computadoras.