viernes, 24 de mayo de 2013

AMBIENTE O ENTORNO DE CINEMA 4D


AMBIENTE O ENTORNO DE CINEMA 4D
FIGURAS PRIMITIVAS TODAS TRIDIMENCIONALES







La textura es la posibilidad que se tiene de envolver un objeto con:
·         Una imagen existente, usando el campo ImageTexture.
·         Una película, usando el campo MovieTexture.
·         Una imagen creada pixel a pixel, usando el campo PixelTexture.
A continuación se detallará cada uno de los campos.


Esté indica una textura, referenciada por un URL, así como dos parámetros que dicen si la textura se ha de repetir vertical u horizontalmente a lo largo de todas las caras del objeto.
La sintaxis del nodo ImageTexture es la siguiente:

Shape {
appearance Appearance {
texture ImageTexture {
url [ ... ]
repeatS Valor_lógico
repeatT  Valor_lógico
}
}
geometry ...
}

url [ ]
Define la localización de la imagen. Los formatos aceptados son JPEG, GIF y PNG.

#VRML V2.0 utf8
# Ejemplo de caja con textura de una imagen

Shape {
appearance Appearance {
texture ImageTexture {
url ["Utn.jpg "]
repeatS FALSE
repeatT FALSE
}
}
geometry Box {
size 1.5 2.2 0.5
}
}             

De tal forma que el objeto que se crea tendrá un gráfico como textura en todas sus caras.

Para adicionar texturas a las diferentes caras de un objeto, se sigue un tratamiento diferente así, si se desea hacer una lata se realizaran las siguientes operaciones.
Se define el cilindro con la imagen etiqueta.jpg, pero se anulan las superficies superior (top) e inferior (bottom). A continuación se define otro cilindro idéntico con la imagen fondo.jpg, pero se anula la superficie lateral (side).
Por medio del nodo Group se agrupan ambos cilindros y el resultado es aparentemente un cilindro con imágenes distintas.
Realizando estas operaciones el resultado esta en el Progra26.wrl y es el siguiente:

#VRML V2.0 utf8
       #Progra26.wrl
#Ejemplo del nodo ImageTexture
#imagen Lateral
Shape {
appearance Appearance {
texture ImageTexture {
url [“etiqueta.jpg”]
}
}
#Nodo Cylinder
geometry Cylinder {
height 2
radius 0.6
top FALSE
bottom FALSE
}
}
Shape {
appearance Appearance {
texture ImageTexture {
url [“fondo.jpg”]
}
}
geometry Cylinder {
height 2
radius 0.6
side FALSE
}
}

ESTRUCTURA DE LOS DOCUMENTOS VRML


ESTRUCTURA DE LOS DOCUMENTOS VRML



VRML es un lenguaje de descripción de escenas en el que cada escena se compone de un número de objetos. Los objetos pueden ser formas sólidas situados y orientados de determinada forma u elementos intangibles que afectan a la escena como luces, sonido y distintos puntos de vista.
Para crear estos escenarios de realidad virtual se utilizan ficheros de texto, cuya extensión será siempre .wrl o wrz, los cuales pueden ser desarrollados mediante cualquier editor o procesador de textos.
Además, existe la posibilidad de utilizar programas de diseño gráfico, los cuales generan automáticamente ficheros en formato VRML.
En líneas generales, un documento VRML contiene los siguientes elementos:
·         Línea de cabecera.
·         Comentarios al código.
·         Nodos.


Líneas de Cabecera
Todo documento VRML debe comenzar necesariamente con la siguiente línea:
#VRML V2.0 utf8
Con esta línea inicial se hace la declaración de que el estándar empleado es el VRML 2.0. El identificativo utf8 sirve para permitir el uso de caracteres internacionales.
No se debe dejar ningún espacio en blanco antes del comienzo de la línea (antes del símbolo #), pues en caso contrario el visualizador no la reconocería, y daría error al interpretar o ejecutar el documento VRML.

Comentarios al código
En todos los lenguajes se utilizan comentarios, no visibles en la pantalla, que son muy útiles como recordatorio de lo realizado, facilitando los cambios futuros.
En este lenguaje los comentarios se escriben en una sola línea que comienza con el símbolo #. Ejemplo:
# Este es un comentario al código

Nodos
Los nodos son bloques de información que definen las características de un objeto concreto (su forma, su apariencia, etc.), o la relación entre distintos objetos. Sirven también para crear sonidos, el panorama de fondo, enlaces a otros escenarios o a páginas Web, etc.
Es decir, son las unidades básicas que forman el escenario virtual, y pueden ser afinadas hasta el detalle deseado.
La sintaxis (reglas para la correcta escritura) de los nodos, desde un punto de vista general es:
Nombre {
campo1 x y z
campo2 x
...
}
·      El nodo es un bloque de información que tiene un Nombre (Box, Cone, etc.). Obsérvese que comienzan siempre por una letra mayúscula.
  • Englobados entre los símbolos { y } el nodo tiene uno o varios campos (size para el nodo Box, height y bottomRadius para el nodo Cylinder, etc.). Los campos son los atributos variables del nodo. Obsérvese que comienzan con una letra minúscula.
  • A continuación está el valor que le asigna a ese campo, que es un número (o conjunto de números) Estos números se escriben con punto flotante (es decir, con decimales).
En ocasiones, en lugar de colocar como valor un número (o conjunto de números) se coloca todo un nodo. Esta noción, que puede parecer confusa de momento, se verá con detalle más adelante.

  NODOS PRIMITIVOS


Los nodos son los bloques de información básicos con los que se construye un escenario virtual. Ahora se verá la sintaxis de los nodos, partiendo de los más sencillos, los nodos de geometría primitiva, o nodos primitivos, que son:

·         Box                       caja
·         Cone                    cono
·         Cylinder              cilindro
·         Sphere                esfera

Con estas figuras geométricas básicas, agrupándolas y modificándolas convenientemente se pueden construir formas de gran detalle.
Para formas realmente complejas, hay otros procedimientos para crear objetos, partiendo de puntos, líneas o caras.


La estructura más general de este nodo es:

Box {
size anchura altura profundidad
}

·         Se escribe el nombre del nodo, en este caso Box, seguido del símbolo de apertura {.
  • Luego se escribe el campo, que es un atributo del nodo que se puede cambiar a voluntad, poniendo los valores que se desee. En este caso servirá para establecer las dimensiones de la caja, como se verá a continuación.
  • Posteriormente se escribe el símbolo de cierre }.
Con respecto a los nombres, y en general cualquier otro comando usado en este lenguaje, se debe tener muy en cuenta que son sensibles a las mayúsculas y minúsculas, es decir, se debe escribir Box y no box, o fontStyle y no fontstyle, etc.
Sustituyendo ahora los campos que define este nodo, que es size (tamaño) con sus valores correspondientes (las dimensiones), queda el nodo completo de esta forma:

Box { size 2 0.5 3 }

Los números representan respectivamente la anchura, la altura y el fondo. Son dimensiones abstractas, pero es conveniente, aunque no obligatorio, suponer que son metros. El nodo, por tanto, define una caja de 2 m de ancho, 0.5 m de alto y 3 m de fondo.
Se ha escrito el nodo en una sola línea, debido a su sencillez y a que sólo tiene un campo, pero se podría haber escrito de esta otra forma:

Box {
      size 2 0.5 3
}




Sintaxis:
Cone {
height altura
bottomRadius radio_de_la_base
bottom valor_lógico
side valor_lógico
}


Mediante los campos bottom y side se indican si se desea dibujar la base y la superficie lateral respectivamente. Por defecto estos campos toman el valor TRUE, lo cual indica que se dibuja el cono completo.
Un ejemplo de este nodo, que define la geometría de un cono:

Cone {
height 3
bottomRadius 0.75
}        

     
Como se puede observar, tiene dos campos: height (altura), a la que se le ha puesto el valor de 3, y bottomRadius (radio de la base) el de 0.75. Con estos dos valores queda perfectamente definido el cono.


Sintaxis:

Cylinder {
height altura
radius radio
bottom valor_lógico
side valor_lógico
top valor_lógico
}


Mediante los campos bottom, side y top se indica si se desea dibujar la base inferior, la superficie lateral y la base superior del cilindro. Por defecto estos campos toman el valor TRUE, lo cual indica que se dibuja el cilindro completo.
Ejemplo del nodo que define un cilindro:

Cylinder {
height 3
radius 1.5
}        
     
Tiene sus dos campos: height (altura) y radius (radio)



Sintaxis:
Sphere {
radius radio
}

Ejemplo del nodo que define una esfera:

Sphere {
radius 2
}      
       
Tiene un solo campo, radius (radio) este es suficiente para definir con él una esfera.
Estos cuatro nodos de geometría primitiva, no se pueden utilizar directamente ellos solos, sino que son parte de otro nodo más general, el nodo Shape (forma).
El motivo de esto es que, definen únicamente la geometría de estos cuerpos, pero no dan ninguna indicación de cuál deberá ser su apariencia, es decir, su color, textura, iluminación, etc.
El nodo Shape se encarga de ambas cosas, ya que tiene dos campos: la apariencia y la geometría, en donde utiliza precisamente estos nodos que se acaba de ver, es decir, estos nodos irán incrustados (o como parte) en el nodo Shape.


EVOLUCION DE LOS LENGUAJES DE LA REALIDAD VIRTUAL

La historia de la realidad virtual en Internet se inició con el Gopher VR, un navegador que creaba una interfaz al gopher espacio generando mundos virtuales al vuelo. El interés en este sistema decayó en 1993, con la llegada del World Wide Web (www).
El lenguaje de realidad virtual empleado actualmente en la red es el VRML (Virtual Reality Modeling  Language), cuya historia se inició en 1994, con la Primera Conferencia Internacional en el World Wide Web realizada en Mayo de ese año. En ella Mark Pesce y Tony Parisi presentaron una herramienta de visualización llamada Labyrinth.

1992, el concepto de una habitación con gráficos proyectados desde detrás de las paredes y suelo, apareciendo CAVE (Cave Automatic Virtual Environment).  

En 1993, Silicon Graphics (SGI) anunció un motor de Realidad Virtual. En 1994, Antena 3 es la primera cadena de televisión española en introducir espacios virtuales en sus programas.

En 1995, aparece la primera formulacion del VRML (Virtual Reality Modeling Language. “Lenguaje para Modelado de Realidad Virtual”). En Mayo de 1995 se presentó VRML 1.0, un lenguaje para definir mundos virtuales estáticos con la anchura de la red, basados en el formato de archivo OpenInventor ideado por Silicon Graphics. En Agosto de ese mismo año se introdujo VRML 2.0, un lenguaje mucho más poderoso para definir mundos virtuales dinámicos, con animación, interacción con el usuario y scripts para programas. Posteriormente apareció VRML 97, una revisión del VRML 2.0

En 1997, se desarrolla para la US Army's STRICOM un dispositivo que permite caminar, correr y moverse en un reducido espacio en todas las direcciones posibilitando experimentar el movimiento real en un cabina.

En 2003, se crea el famoso mundo virtual en 3D "Second Life" donde por medio de un programa pc, los usuarios o residentes, pueden moverse por él, relaccionarse, modificar su entorno y participar en su economía.

En 2004, Google compra Earthview, un programa desarrollado en 2001, para crear el Google Earth, una representación del mundo que  combina la potencia de las búsquedas de Google con imágenes de satélites, mapas, terrenos y edificios 3D.

En 2005, se anuncia el lanzamiento de WII de la empresa Nintendo, (con el nombre en clave de "Revolution") la videoconsola que nace con la idea de conseguir una interacción antes nunca experimentada en una videoconsola entre el jugador y el videojuego. Así como "Virtual Boy" fue un fracaso, WII a día de hoy ha sido un éxito rotundo.-

VRML es un acrónimo para Virtual Reality Modeling Language (Lenguaje para Modelado de Realidad Virtual). En realidad, técnicamente hablando, VRML no es realidad virtual inmersiva ni un lenguaje de modelado. Realidad virtual inmersiva implica una experiencia tridimensional inmersiva y dispositivos externos como cascos o guantes digitales para lograr capturar otros sentidos diferentes al oído y a la vista. VRML no requiere ni provee una inmersión sensorial total.

SQL (que se pronuncia deletreando en inglés las letras que lo componen, es decir "ese-cu-ele" y no "siquel" como se oye a menudo) empieza en 1974 con la definición, por parte de Donald Chamberlin y de otras personas que trabajaban en los laboratorios de investigación de IBM, de un lenguaje para la especificación de las características de las bases de datos que adoptaban el modelo relacional. Este lenguaje se llamaba SEQUEL (Structured English Query Language) y se implementó en un prototipo llamado SEQUEL-XRM entre 1974 y 1975. Las experimentaciones con ese prototipo condujeron, entre 1976 y 1977, a una revisión del lenguaje (SEQUEL/2), que a partir de ese momento cambió de nombre por motivos legales, convirtiéndose en SQL. El prototipo (System R), basado en este lenguaje, se adoptó y utilizó internamente en IBM y lo adoptaron algunos de sus clientes elegidos. SGL se compone de un conjunto de plataformas cruzadas bibliotecas de C + +, construido en la cima de OpenGL, que implementa la funcionalidad de gráfico de la escena 3D (SGL), algunos cargadores de modelos 3D simples (sgldb, sglobj, sgl3ds), y algunas utilidades diversas (sglu). Un escenario gráfico es un gráfico a cíclico dirigido que organiza y almacena todos los datos necesarios para hacer una escena 3D. Todos los datos de vértice y el estado de OpenGL se almacenan en los nodos hoja en el gráfico, y la colocación de todos los nodos de control interno (a través de matrices de transformación) y selección (a través de interruptores, discriminadores, rangos de nivel de detalle, etc.)



 XML proviene de un lenguaje inventado por IBM en los años setenta, llamado GML (Generalized Markup Language), que surgió por la necesidad que tenía la empresa de almacenar grandes cantidades de información. Este lenguaje gustó a la ISO, por lo que en 1986 trabajaron para normalizarlo, creando SGML (Standard Generalized Markup Language), capaz de adaptarse a un gran abanico de problemas. A partir de él se han creado otros sistemas para almacenar información.-

El lenguaje HTML nace en 1991 de manos de Tim Berners-Lee del Laboratorio Europeo de Física de Particulas (CERN, por sus siglas en francés) como un sistema hipertexto con el único objetivo de servir como medio de transmisión entre físicos de alta energía como parte de la iniciativa WWW. En 1993 Dan Connelly escribe el primer DTD (Document Type Definition) de SGML describiendo el lenguaje.

El lenguaje XHTML es muy similar al lenguaje HTML.
De hecho, XHTML no es más que una adaptación de HTML al lenguaje XML.
Técnicamente, HTML es descendiente directo del lenguaje SGML, mientras que

XHTML lo es del XML (que a su vez, también es descendiente de SGML).
La primera versión de JavaScript fue un completo éxito y Netscape Navigator 3.0 ya incorporaba la siguiente versión del lenguaje, la versión 1.1. Al mismo tiempo, Microsoft lanzó JScript con su navegador Internet Explorer 3. JScript era una copia de JavaScript al que le cambiaron el nombre para evitar problemas legales. Para evitar una guerra de tecnologías, Netscape decidió que lo mejor sería estandarizar el lenguaje JavaScript. De esta forma, en 1997 se envió la especificación JavaScript 1.1 al organismo ECMA European Computer Manufacturers Association).

SGML: SGML (Standard Generalized Markup Language) o Lenguaje de Etiquetado Generalizado Estándar es una norma ISO que permite que la estructura de un documento pueda ser definida en base a la relación lógica de sus partes. Esta estructura puede ser validada por una Definición de Tipo de Documento (DTD - Document Type Definition). La norma SGML define la sintaxis del documento y la sintaxis y semántica de DTD.

En 1969 IBM ideó el lenguaje GML o Generalized Markup Language con el objetivo de crear un sistema general que permitiera la compatibilidad entre los documentos. En 1978, el Instituto Nacional Americano de Normalización (ANSI) comenzó a trabajar en las especificaciones para los procesadores de textos y el resultado fue el lenguaje SGML, que se convirtió en la Norma ISO 8879 en 1986. 

¿Qué es X3D?

X3D (extensible 3D) es la próxima-generación del estándar abierto para la Web. Este es un estándar extensible que puede ser soportado fácilmente por herramientas de creación, browsers propietarios, y otras aplicaciones 3D, sea para importar y exportar. Reemplaza VRML, pero también proporciona compatibilidad con los contenidos y browsers VRML existentes. El contenido actual VRML podrá ser usado sin modificación en cualquier browser X3D-2, el contenido nuevo X3D-a y X3D-2 lo es en aplicaciones VRML existentes. 
X3D es un formato de archivo abierto estándares derechos de autor y de la arquitectura en tiempo de ejecución para representar y comunicar escenas y objetos que utilizan XML 3D. Es un estándar ratificado ISO que proporciona un sistema para el almacenamiento, recuperación y reproducción de contenido de gráficos embebido en tiempo real en las aplicaciones, todo dentro de una arquitectura abierta para soportar una amplia gama de dominios y escenarios de usuario.


¿Por qué X3D es más extensible que VRML?


Un componente puede contener muchos nodos (es decir el perfil Nurbs contiene todos los nodos del nurbs relacionados). También, un componente puede agregar otras áreas de funcionalidad, como el soporte de un nuevo lenguaje de scripting, o requisitos de la interface del usuario, etc. Un componente también puede ser simplemente una colección de externprotos.
VRML tiene sólo el mecanismo de Externproto para la extensibilidad, pero ningún mecanismo real por crear grupos de extensiones de funcionalidad. El componente, nivel, y los mecanismos del perfil X3D permiten esto. Y mientras los browsers individuales pueden llevar a cabo perfiles usando protos y externprotos, no se fuerza a las compañías de browser hacer esto.
Más, los componentes pueden ser más que sólo nodos. Puede ser áreas funcionales enteras. Por
Ejemplo, podríamos decidir que necesitamos en-línea ECMAScript dentro del archivo X3D en algún punto. El mecanismo del componente permite este tipo de extensión.


EDITORES

X3D-Edit 3.1 es un editor de archivos de gráficos de 3D Extensible (X3D) que permite la edición simple libre de errores, edición y validación de archivos de escena-gráfico X3D o VRML. Información sobre herramientas contextuales proporcionan resúmenes concisos de cada nodo VRML y atributo.

X3D-Edit Instalador automático está disponible en línea para varios sistemas operativos (Windows, Mac, Linux, Solaris y otros Unix).

X3D-Edit 3.1 utiliza el X3D 3.1 conjunto de etiquetas definido por el X3D 3,1 Document Type Definition (DTD) en combinación con el Java de Sun, Xeena editor XML de IBM, y los archivos de configuración del perfil de editor.

X3D-Edit 3.1 implementa la (X3D) tagset Extensible 3D para la próxima generación de Virtual Reality Modeling Language (VRML 200x). X3D-Edit también ejerce diversos de representación de gráficos X3D y las implementaciones de traducción.
Las últimas actualizaciones de software y ejemplos, véase build.date.X3D-Edit.txt.
Versión 3.1 Especificación X3D partidos International 3.0 (verano 2004) y la adición de los componentes de la enmienda X3D 1 (Invierno 2005).
Completado componentes v3.1:
Actualizado X3D-3.1.dtd
Componente CAD
Programable componente shaders
Cube componente de correlación de textura medio ambiente
LocalFog y FogCoordinate
Componente Texture3D
Actualizaciones Miscellaneous

Mejoras funcionales:
Especificaciones para Web3D (X3D) Gráficos Extensible 3D, Animación Humanoide (H-Anim) y el Virtual Reality Modeling Language (VRML 97) están incluidos.


Herramienta X3D-Edit Autoría de Extensible 3D (X3D) Graphics proporciona un resumen de seis páginas de características X3D-Edit y su uso. También disponible en línea: diapositivas de

PowerPoint y las diapositivas en HTML. Este documento de posición se presentó en la ACM SIGGRAPH / Eurographics Campfire en Procesos de Producción para Computer 3D Aplicaciones de gráficos, Snowbird Utah, 2 a 4 jun 2002.

Capacidad de importación VRML para la conversión a X3D, utilizando el Vrml97ToX3d Traductor NIST.

Seleccione Archivo y luego en Importar para obtener una caja de diálogo de archivo:
Tan sólo necesitamos un editor de texto para crear un fichero X3D, y nuestro mundo podrá ser visto en cualquier plataforma.

Primeros pasos con X3D (II)

Un fichero X3D que emplee XML contiene:
Cabecera o  header, compuesta de:
Una línea de texto utf-8 identificando el fichero como XML:
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE X3D PUBLIC "ISO//Web3D//DTD X3D 3.0//EN“
"http://www.web3d.org/specifications/x3d-3.0.dtd">
La etiqueta raíz
<x3d>, con información opcional sobre el perfil:
<X3D profile="Interchange">
Dentro de la etiqueta raíz, una sección
Head optativa, y el necesario cuerpo de la escena:
<head>
<meta name="filename" content="box.x3d"/>
</head>
<Scene>
Un fichero X3D que emplee XML contiene (cont.):
Comentarios
– notas del autor.
<!-- Una caja -->
Etiquetas que representan los nodos de la escena, solas o pareadas, esto es, con etiqueta de inicio y cierre.
<Appearance>
<Material/>
</Appearance>
Campos de los nodos y sus valores, escritos como parámetros
de las anteriores etiquetas en la forma  campo="valor" o bien
campo='valor'
, siempre que los valores que reciban no sean
otros nodos.
<Box size="2 .5 3"/>

Primeros pasos con X3D (IV)
Un primer ejemplo.
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE X3D PUBLIC "ISO//Web3D//DTD X3D 3.0//EN"
"http://www.web3d.org/specifications/x3d-3.0.dtd">
<X3D profile="Interchange">
<head>
<meta name="filename" content="Box.x3d"/>
</head>
<Scene>
<!-- Una caja -->
<Shape>
<Appearance>
<Material/>
</Appearance>
<Box size="2 .5 3"/>
</Shape>
</Scene>
</X3D>