cenidet...cenidet centro nacional de lnvestigacion y desarroilo tecnológico sistema nacional de...

149
SEP SElT DGlT CENTRO NACIONAL DE INVESTIGACIÓN Y DESARROLLO TECNOL~GICO Cenidet ENTORNO DE GRAFICACIÓN Y GENERACIÓN DE MODELOS 2D Y 3D PARA APLICACIONES DE VISIÓN ARTIFICIAL (Graf03D) T E S I S PARA OBTENER EL GRADO DE MAESTRO EN CIENCIAS EN CIENCIAS COMPUTACIONALES PRESENTA: ARIADNA JUDITH DíAZ BARRITA DIRECTORES DE TESIS: DR. RAÚL PINTO ELIAS DRA. AZUCENA MONTES RENDÓN CENTRO CE INFORMACION SEP CENIDET - 84-0568 CUERNAVACA, MORELOS AGOSTO DE 2004

Upload: others

Post on 26-Apr-2020

1 views

Category:

Documents


0 download

TRANSCRIPT

  • SEP SElT DGlT

    CENTRO NACIONAL DE INVESTIGACIÓN Y DESARROLLO TECNOL~GICO

    Cenidet

    ENTORNO DE GRAFICACIÓN Y GENERACIÓN DE MODELOS 2D Y 3D PARA APLICACIONES DE VISIÓN ARTIFICIAL

    (Graf03D)

    T E S I S PARA OBTENER EL GRADO DE MAESTRO EN CIENCIAS EN CIENCIAS COMPUTACIONALES

    PRESENTA: ARIADNA JUDITH DíAZ BARRITA

    DIRECTORES DE TESIS: DR. RAÚL PINTO ELIAS

    DRA. AZUCENA MONTES RENDÓN

    CENTRO CE INFORMACION SEP CENIDET

    - 8 4 - 0 5 6 8 CUERNAVACA, MORELOS AGOSTO DE 2004

  • Centro Nacional de Invesiigacion y cenidet Desarrollo Tecnológico Sistema Nacional de Institutos Tecnológicos

    ANEXO No.11 M10

    ACEFTACI~N DEL DOCUMENTO DE TESIS

    Cuemavaca, Mor, a 27 de Julio del 2004

    Dr. Gerard0 Reyes Salgado Jefe del departamento de Ciencias Computacionales Presente.

    At'n: René Santaolaya Salgado Presidente de la Academia de Ciencias Computacionales

    Nos es grato comunicarle, que conforme a S ieamier s para la obtención del grado de Maestro en Ciencias de este Centro, y después de haber sometido a revisión académica la tesis titulada: Entorno de graficación y generación de modelos 2D y 3D para aplicaciones devisión Artificial, realizada por la C. Ariadna Judith Díaz Barrita, y dirigida por el Dr. Raúl Pinto E h s y la Dra. Azucena Montes Rendón, y habiendo realizado las correcciones que le fueron indicadas, acordamos ACEPTAR el documento final de tesis, así mismo le solicitamos tenga a bien extender el correspondiente oficio de autorización de impresión.

    Atentamente La Comisión de Revisión de Tesis

    Revisor Revisor

    C.C.P. Subdirección Academia Deparramento de SeMcios Escolares Direnores de tesis Estudiante

    Programa Académico. Reglam- y Pmsedimientos ACadémlCD- Admini-Pvos de 1- programar de Ma& en ciencias del CENIDET

  • Centro Nacional de lnvestigacion y cenidet Desarroilo Tecnológico Sistema Nacional de Institutos Tecnológicos

    m E X O No. 12 h l l l

    AUTORIZACI~N DE IMPRESI~N DE,TESIC

    Cuemavaca, Mor., a 27 de Julio del 2004

    C. Anadna Judith Díaz Barrita Candidato a1 grado de Maestro en Ciencias en Computación Presente.

    Después de haber atendido las indicaciones sugeridas por la Comisión Revisora de la Academia de Ciencias de la Computación en relación a su trabajo de tesis cuyo titulo es: Entorno de graficación y generación de modelos 2D y 3D para aplicaciones de Visión Artificial, me es grato comunicarle que conforme a los lineamientos establecidos para la obtención del grado de Maestro en Ciencias en este centro se le concede la autorización para que proceda con la impresión de su tesis.

    Jefe del Departamento de Ciencias C&putacionales

    C.C.P. Subdirección Academia Presidente de la Awdeinia de Ciencias Cornputacioiiales Departamento de Senicios Escolares ExQediente

  • DEDICATORIAS

    A Dios:

    Por darme la vida y la salud para llegar a este momento tan especial.

    A mis padres Fidencio y Judith:

    Por el amor incondicional que siempre me han dado, por sus enseñanzas, consejos y ayuda, que permitieron que lograra este importante sueño en mi vida. A ustedes les debo todo. Los amo.

    A mis hermanas Wendy, Aymara e Ivett:

    Por apoyarme y estar a mi lado siempre, además de ser, ante todo, mis mejores amigas. Las amo.

    A Ximena y Samantha:

    Por alegrarme cada uno de los momentos que comparto con ustedes con SUS ocurrencias y travesuras. Las adoro peques.

    A Pepe:

    Por tu cariño, paciencia y apoyo incondicional. Gracias por todos los momentos felices que me has dado a tu lado y por ser parte de mí. Te amo.

  • ..* L .

    I . - . . . .1'1 ' y , . + I I . . : . , , ..

    . . .- .: ."o.

  • textual mediante un archivo de texto. Este archivo sigue una estructura definida conformada por los datos correspondientes a las características del objeto, y que conservan su apariencia, forma y relación con los demás objetos.

    Para llevar a cabo el desarrollo de Graf03D, se implementaron principalmente los módulos de: 1) definición de la estructura del archivo de texto, para 10 cual se tomó como referencia el estándar VRML; 2) creación de una gramática que valide la construcción correcta de un archivo Graf03D; 3) creación de los modelos gráficos a partir de la información leída en el archivo. E n este módulo se utilizó la biblioteca para gráficos OpenGL; 4) escritura de un archivo de texto con la información de la escena actual.

    Graf03D, como herramienta resultante del desarrollo de este tema de tesis, permite

  • ABSTRACT

    When some process of Artificial Vision (AV) is being made, for example, the characterization of an object, the generated result is displayed in numerical form, and in many occasions, this information is little comprehensible by the user. However, there is another form to represent these data, in such a way that for the user is easier and faster understand them, that is to say, by means of the generation of a graphical model.

    In the AV, three object types can be distinguished mainly: rigid, articulated and alfaflexibles objects, which can be represented through of a graphical model.

    Due to the importance of having a graphical model of the object or the objects under study, in the AV group of the National Center of Investigation and Technological Development (cenídet), a tool with graphical interface (Graf03D) was implemented, which allows to generate and to create graphical models in a 3D environment with predefined primitives, also, these models can be manipulated and modified to change their own characteristics as they are: color, size, position, among others.

    The models that conform a scene in Graf03D, can be described in textual form by means of a text file. This file follows a defined structure conformed by the data corresponding to the characteristics of the object, and that conserves their appearance, form and relationship with the other objects.

    In order to carry out the development of Graf03D, these modules were implemented mainly: 1) definition of the text file structure, for this, the standard VRML was taken like reference; 2) creation of a grammar that validates the correct construction of a

    1 Graf03D fde; 3) creation of the graphical models from the information read in the file. In this module the graphics library OpenGL was used; 4) writing of a text file with the information of the current scene.

    Graf03D, like resulting tool of the development of this thesis topic, allows that it can be used in applications like: pattern recognition, manufacturing processes modeled, among others, allowing its extension for the development of a more complex tool like a CAD/CAM tool.

    I

  • , ,,i *

    , : . . ' I . i . . 1'

  • CONTENIDO

    Lista de figuras Lista de tablas

    CAPITULO I. INTRODUCCIÓN

    1.1 Introducción . 1.2 Organización de la 1.3 Antecedentes ........................... 1.4 Descripción del problema ..... . . . . . . 1.5 Marco conceptual ... . . .. . . . . . . . . . . .. . . .

    .. .. . . . . . . . . . . . . . . . 1 S .1 .1 Graficación 3D .............. 1.5.1.2 Ilerramientas CAD/CAM (Conipiiter Aided Design/ Computer Aided

    . , , , , . . . . . . . . . . . . . . . . . , , . . . . . . . . . . . . . . . . .......................... ...... .......

    *

    . . . . . . . . , , , . . . . . . . . . . .

    1.5.1 Estado del arte

    1 S . 2 Estado de la práctica ..._................

  • CAPÍTULO III. IMPLEMENTACI~N

    3.1 Introducción 3.2 Especificación de 3.3 Persistencia y rec 3.4 Manipulación de 3.5 Procesos para tra 3 .6 Conclusiones

    . . . . . . . . . . . . . . . . . . . . . . . . . . .

    CAPÍTULO IV. PRUEBAS Y RESULTADOS

    4.1 Introducción 4.2 Especificación de 4.3

    . . . . . . . , . . , , . . . . . . . . . . , . , , , . . . . . . . . . . . . . . . . . . , . , . .

    Especificación del procedimiento de pruebas 4.3.1 4.3.2 4.3.3 Caso de prueba 3: visualización de los modelos: modelos sólidos, en alam

    en verlices .................................................................................... 4.3.4 Caso de prueba 4: generación de animación ............................................. 4.3.5 Caso de prueba 5: lectura de un archivo de texto con

    Caso de prueba 1: lectura de un archivo Graf03D Caso de prueba 2: aplicación de funciones de graficaci

    . . . . . . . . . . . . . . . ..

  • Figura 1.1 Figura 1.2 Figura 1.3 Figura 1.4 Figura 1.5 Figura 1.6 Figura 1.7 Figura 1.8 Figura 1.9

    Figura 2.1 Figura 2.2 Figura 2.3 Figura 2.4 Figura 2.5 Figura 2.6 Figura 2.7 Figura 2.8 Figura 2.9 Figura 2.1 O Figura 2.1 1

    Figura 3.1 Figura 3.2 Figura 3.3 Figura 3.4

    Figura 3.5

    Figura 3.6

    Figura 3.7 Figura 3.8

    Figura 4.1 Figura 4.2 Figura 4.3 Figura 4.4 Figura 4.5 Figura 4.6 Figura 4.7 Figura 4.8 Figura 4.9 Figura 4.1 O Figura 4.1 1 Figura 4.12

    LISTA DE FIGURAS

    Ejemplos de objetos rígidos ..................... i . Ejemplos de objetos articulados Ejemplos de objetos deformables Relación de Graf03D co Sistema de coordenadas en un espacio 3 D Niveles de abstracción de OpenGL Matrices de transformación lineal Interfaz de la herramie lnterfaz de la herramienta AC3D

    _......... ................... , ...... . ... . ...... .. ..

    ...................... ......................................

    ....._. ........ ........ , .... .. .... ... ...

    . . . . . . . . . . . . . . . , . . . . . . . . . . . . . . . . . . . .

    Diagrama de casos de uso general

    Tipos de transformaciones Tipos de proyección Diagrama de paquetes de Clases contenidas en el Clases contenidas en el Clases contenidas en el paquete Graf03D (continuación de la figura 2.7) ... Clases contenidas en el paquete Graf03D (continuaci6n de la figura 2.7) ... Relaciones de algunas clases abstractas con sus clases hijas .................. Diseño de la interfaz de usuario de Graf03D

    Proceso para el almacenamiento de los modelos en memoria Menú de opcioiies y barra de hcrrainientas del entorno páfico Editores de propiedades del entorno gráfico de Graf03D ..................... Controles para la manipulación de la cámara, luz, piso y ejes del entorno

    .... . , , . . . . . . . . . . . . . . . Modelo conceptual de Graf03D ................. .. .... ........

    . . . . . . . . . . . . . . . . . . . . . . . . . , . . . . . . . . . . . . . . . . . . . . , , , . , . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

    . , . , . . . . . . . . . . . . . . . . . . . . .

    gráfico de GrafO3D . . . . . . . . . . . . . . . . . . . . . . .

    Pantalla de generación de animación con nioviniienlo de traslación ....... Proceso para tratar archivos generados por la herramienta para el modelado automático de objetos alfaflexibles

    Archivo de texto y dalos almacenados en memoria

    Material del objeto Propiedades de la luz Modelo resuliante Modelos sólidos Modelos en alamb Modelos en vértices Frames capturado Frames generados por Graf03D correspondientes al modelo Frames geiicrados por Graf03D correspondieiites al inodclo de un brazo de un robot .............................

    . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

    ,... . . . . . . . . . . . . . . . . . . . . . . Visualización de lo Propiedades del modelo

    . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

    2 3 3 5 8

    14 1 4 16 19

    25 27 42 42 47 47 48 49 50 51 53

    61 62 6 3

    65

    66

    67 67

    70

    75 76 77 77 78 78 79 79 79 80 81

    82

    . < .

    111

  • Figura 4.13 Figura 4.14 Figura 4.15 Figura 4.16 Figura 4.17 Figura 4.18 Figura 4 .19 Figura 4 .20 Figura 4.21 Figura 4.22 Figura 4.23

    Figura D.l Figura E. 1 Figura F. 1

    Frames generados por Graf03D correspondientes al modelo de un gusano ... Pantalla de propiedades de la animación Frames generados por Graf03D .,. Pantalla de propiedades de la animación Frames generados por Graf03D Archivo de texto con la descripción del modelo de una boca Modelo gráfico generado por Graf03D Frames generados por Graf03D .... Archivo de texto con la descripción del modelo de una boca Modelo gráfico generado por Graf03D Frames generados por Graf03D _....

    Modelos descritos eii el archivo Grai03D Modelo descrito en términos de puntos en el Modelo resultante del archivo VRML ,.,._

    . , . . . . . . . . . . . . . . . . . , , , . . . . . . . . , . . . . . . . . , . . . . . . . . , , , . . . . . .,.l._.._.,,.._.._

    ....

    ...

    8 3 84 84 8 5 8 5 8 6 87 8 7 88 88 88

    111 112 113

    iv

  • LISTA DE TABLAS

    TalAa 2.1 Tabla 2.2 Tabla 2.3 Tabla 2 .4 Tabla 2.5 Tabla 2.6 Tabla 2.7 Tabla 2.8 Tabla 2.9 Tabla 2.10

    Tabla 3.1 Tabla 3.2 Tabla 3 .3 Tabla 3.4 Tabla 3.5 Tabla 3.6 Tabla 3.7 Tabla 3.8 Tabla 3.9 Tabla 3 .10 Tabla 3.1 1

    Descripción de los casos de uso del diagra Nodos de figura de VRML Nodos de geometría y material de VRML

    ..... ....... ... . . . . . . . . . . . . . . . . . , . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

    Nodos de transformación de VRML Nodos de cámara de VRML Nodos de iluminación de VRML Nodos de grupo de VRML Primitivas de línea de OpenGL Primitivas de polígonos de OpenGL Priniitivas de Graf031) .............................. ..

    Sínibolos para la definición de reglas en una gramática ANTLR Funciones de C+ + utilizadas para la creación del archivo de texto Componentes de C + + Builder .,.,_..... Instrucciones OpenGL Componentes de C + + Bu Instrucciones OpenGL Componentes de C + + Bu Instrucciones OpenGI, Componentes de C++ Bu Instrucciones OpenGL Otras instrucciones OpenGL . ........ .. ...............

  • CAP~TULO I

    INTRODUCCI~N

    CONTENIDO:

    Introducción Organización de la tesis Antecedentes Descripción del problema Marco conceptual Propuesta de solución Aplicaciones Conclusiones

    1

  • I . I INTRODUCCI~N

    Debido a los grandes logros que se han tenido en las ciencias computacionales, surge ell los aiios 50’s el concepto de Inteligencia Artificial, que es una ciencia que intenta la creación de programas para máquinas que imiten el comportamiento y la coinpreiisión liuniana. Esta ciencia está formada por varias ranias como lo son: Robótica, Sistemas Expertos, Lenguaje Natural, Algoritmos Genéticos y Visión Artificial (VA), por mencionar algunas.

    La mayor parte de la información que obtiene el hombre de su entorno, es por niedio del sentido de la vista, y en el intento por emular de alguna manera estos procesos de visión biológicos por medio de la computadora, surge la Visión Artificial, que pretende resolver problemas relacionados con la percepción del mundo real a través de imágenes digitales, es decir, lo importante, dada una imagen, es su posible interpretación, para lo cual es necesario identificar o reconocer correctamente los objetos en ella [Nalwa93].

    A pesar de que la Visión Artificial tiene ciertas limitaciones, el número de aplicaciones se ha venido incrementado en campos como la biología, la meteorología, la medicina, reconocimiento y clasificacióii de objetos y en la inspección y control de calidad, entre otras.

    Dentro de la VA, se pueden distinguir básicamente tres tipos de objetos de acuerdo a las características que presentan: los objetos rígidos. los objetos articulados y los objetos alfaflexibles o deformables [Magadán99], los cuales son percibidos coino imágenes que son fácilmente interpretadas y comprendidas por el hombre, sin embargo, en todo proceso de VA debe existir una buena representación o modelado’ de los objetos. A continuación se da una breve descripción de cada uno de los tres tipos de objetos mencionados:

    - Rígidos: son aquéllos en los cuales sin iniportar su posición o tamafio, sus características siempre presentan las mismas relaciones geométricas, por lo que los patrones están definidos, figura 1.2.

    Figura 1.1 Ejemplos de objetos rígidos

    ’ Ver glosario de términos en la página 97 2

  • Eotorno de@cauZny~erac¡6n dc moddm ZDy SDpara apliCSUooes de visido Artl%ónl Capltdo I. Iotmduc06~

    - Articulados: aquéllos que están constituidos de partes rígidas y de uno o varios puntos de articulación y/o de uno o varios ejes de desplazamiento, presentando variaciones en sus relaciones geométricas, figura 1.3.

    - Figura 1.2 Ejemplos de objetos articulados.

    - Flexibles o deformables: este tipo de objetos cuenta con una característica niuy importante, que es la capacidad de transformación, y por ende, se pueden obtener una gran cantidad de instancias del mismo objeto que lo describirían de diversas maneras, siendo difícil obtener una descripción única, ya que puede contener secciones rígidas, articuladas o deformables, figura 1.4.

    Figura 1.3 Ejemplos de objetos deformables.

    Al hablar del modelado en este documento, se hace referencia a un modelo gráfico del objeto. La importancia de un modelo dentro de un proceso de VA se da cuando se está trabajando con una descripción de los objetos de tal forma que esa información es poco entendible por el humano, coino puede ser con la información numérica que a simple vista su comprensión es casi nula, en cambio, con una imagen o modelo gráfico, los datos son interpretados de una manera más clara.

    Además, un inodelo representado en un entorno virtual 3D, podría ser aplicado a problemas coino: generación automática de casos de prueba para navegación con robots móviles, reconstrucción de escenas 3D a partir de imágenes 2D, reconstrucción y visualización de volumen partiendo de imágenes médicas (P.e. estudios eiidoscópicos no invasivos del corazón, arterias e intestinos), reconstrucción de escenas para estudios criminalísticos (aplicando leyes de la física al movimiento de los cuerpos para determinar trayectorias y posibles escenarios alternos de manera automática a partir de la información visual de una escena), entre otras.

    3

  • Caplhuo I. Iotmdurrido Enoforno de graücau'do y p e r a 0 6 0 de modelor ZD y 3Dpua apljcacfmu- de Visióo ArthKd

    De lo anterior, se desprende el objetivo de esta tesis, el cual consiste en llevar a cabo una generación automática, creación, edición y manipulación de los modelos de los objetos en estudio, los cuales están descritos en términos de sus características principales como lo son: su geometría, color, tamaño, posición, entre otros, de tal forma que puedan ser manipulados y utilizados en aplicaciones como el modelado de procesos de manufactura o el reconocimiento de patrones visuales.

    1.2 ORGANIZACIÓN DE LA TESIS

    El presente trabajo está organizado en cinco capítulos. En el capítulo I se presentan los antecedentes del tema de tesis, la descripción del problema, el marco conceptual que comprende el estado de arte y el estado de la práctica, y, finalmente, la propuesta de solución al problema. E n el capítulo I1 se detalla la etapa de análisis y diseño del desarrollo de Graf03D, en donde se establecen los requerimientos tanto para especificar objetos y obtener una recuperación y manipulación posterior, como para la manipulación de información generada por otras herramientas desarrolladas en el cenjdet. El capítulo I11 abarca la etapa de implementación de los requerimientos especificados en la etapa de análisis. En el capítulo IV se presentan las pruebas realizadas y los resultados generados, y, finalmente, en el capítulo V, se hace mención de las metas alcanzadas con el desarrollo del tema de tesis presentado, las conclusiones y los trabajos futuros que surgen a partir de la herramienta desarrollada.

    1.3 ANTECEDENTES

    E n el grupo de Visión Artificial del Centro Nacional de Investigación y Desarrollo Tecnológico (celiidef), se han desarrollado proyectos en dos áreas principales, que son el modelado de objetos alfaflexibles y la Visión Robótica, en las cuales se involucra el desarrollo de Graf03D. En la figura 1.1 se muestra la relación de Graf03D con las herramientas desarrolladas dentro del grupo.

    4

  • S

  • ~~t~~~ dcnafim&nyema"6n de malelos ZDy 3Dpar.a apliCaUooeS de virido Art¡fiCÍal C&do I Iovoducúbo

    La coilstrucción de un modelo gráfico de los objetos ayuda a interpretar de ulla iilejor mallera el concepto o la información que se desea proporcioilar al usuario, de tal manera que estas imágenes ilustren su forma y características que 10s componen.

    Además del tipo de objeto a procesar, existe una gran cantidad de factores que limitan el proceso de análisis de una imagen, tales como la rotación, traslación, escala e iluminación de los objetos. Si con estos problemas propios de todo sistema de Visión Artificial resulta difícil el realizar dicho proceso, el problema se agudiza cuando los objetos de trabajo tienen la propiedad de ser flexibles, en otras palabras, tienen la capacidad de cambiar de forma, tales como la mano, la boca, el cuerpo de una persona, etc., ya que no es posible conocer o determinar todos los posibles cambios o deformaciones que puede presentar dicho objeto, sobre todo cuando los cambios suelen ser variados e impredecibles por naturaleza

    Otro de los problemas que se presenta, es que es necesario contar con una gramática para la especificación de los objetos mediante un archivo de texto, de manera que la recuperación de los modelos gráficos se realice sin pérdidas de información y conservando las características principales como lo son: el tainafio, tipo de objeto, posición, color, entre otras.

    Además de contar con la definición de una gramática, se requieren algoritmos que permitan interpretar esa gramática proporcionada por el usuario para poder generar los modelos correspondientes, y en caso de que los objetos presenten alguna secuencia de movimiento o animación, se requieren también procedimientos que permitan generarla y almacenarla en algún dispositivo.

    Para volver a generar el modelo descrito en el archivo resultante de la Herramienta para el modelado automático de objetos alfaflexibles, es necesario que esa información sea proporcionada, a Graf03D, en términos de puntos (x,u), esto es, los puiitos que forman al objeto, de tal forma que se traduzcan nuevamente a su modelo gráfico, lo cual es posible con la aplicación de un módulo que permita leer un archivo de texto con esta estructura.

    Esta información, una vez generada y presentada al usuario, es necesario que pueda ser alinacenada nuevamente con los cambios actuales para una recuperación posterior, es decir, debe existir una persistencia de los datos, 10 cual se hará guardando esa información en un archivo de texto.

    Cabe mencionar que la implementación de los módulos mencionados ailterioriiieiite, requiere el uso de un hardware más potente para obtener resultados con mayor rapidez, o de lo contrario, se requerirá mayor tiempo para su ejecución.

    6

  • 1.5 MARCO CONCEPTUAL

    1.5.1 ESTADO DEL ARTE

    En el ámbito del modelado gráfico o graficación, existen tópicos relacionados como lo son: la graficación 3D, las herramientas CAD/CAM (Computer Aided DesigdCoinputer Aided Manufacturing), el lenguaje para modelado de realidad virtual (VRML/Virtual Reality Modeling Language) y la biblioteca para gráficos OpenGL (Open Graphics Library).

    Estos tópicos se tomaron como referencia en el proceso de desarrollo del entorno de graficación y generación de modelos 2D y 3D para aplicaciones de Visión Artificial (Graf03D).

    1. 5.1.1 Graficación 30

    La graficación es la creación y manejo de imágenes gráficas a través de una computadora. Aunque se inició como una técnica para resaltar la información mostrada y generada por una computadora, la graficación permite interpretar y representar datos numéricos en imágenes, con un significativo incremento en la forma en que las computadoras representan información al usuario en una forma clara y eiiteiidible.

    La evolución tecnológica y la rápida difusión de las computadoras determinaron que en la actualidad la Computación Gráfica es el medio de producción de imágenes más importante, superando a la fotografía, diseño y artes gráficas en general, y compitiendo con el cine y la televisión. Tiene la ventaja adicional de poder reproducir imágenes “virtuales” que no necesariamente existen o se pueden ver en la realidad [Delrieux03].

    La representación de gráficos en la computadora se puede realizar utilizando una vista ortogonal (bidimensional) o una vista tridimensioiial. E n el primer caso, los modelos se observan de forma plana, es decir, solamente se pueden apreciar el largo y ancho del modelo, y no la profundidad a la que se encuentran del observador. Debido a estas limitaciones, se han desarrollado varios métodos para la representación de la geometría usando esquemas cuya proyección no esté dentro de un espacio planar [Mcmalion98]. Estos esqueinas iiivolucran la coiistrucción de una sola representación de la geometría del componente en un espacio tridimensioiial. Mediante el uso de esta representación se puede evitar el posible error en el uso de múltiples vistas de un componente. Quizá sea más importante en aplicaciones que involucreii la extracción de información de un modelo para el análisis y la fabricación.

    7

  • Capltuio I. Iotmducuóo Entorno de p f i . 0 6 ~ yg~ocra060 dc moddm ZDy 3Dpara aplica0ooer de Visi6n Artifio'd

    Los métodos que han sido desarrollados para el modelado tridimensional, invoiucran la representación geométrica en el espacio como una colección de líneas, curvas, superficies o sólidos.

    Los modelos tridimensionales son construidos en un espacio 3D, típicamente en un sistema cartesiano de coordenadas. Normalmente será un sistema de coordenadas fijo que se usa en la definición global del modelo, es decir, un sistema de coordenadas global (SCG), y además, un sistema de coordenadas de trabajo (SCT) móvil que puede ser usado para ayudar en la construcción del modelo [Mcniahon98], ver figura 1.5.

    B r ; i s i e m a local

    Sistema de coordenadas

    Figura 1.5 Sistcmas de coordenadas en un espacio 3D.

    Las entidades geoniétricas, por sí mismas, son normalmente instancias de formas geométricas conocidas como primitivas, cuyas dimensiones y orientación están instanciadas para cada entidad en la representación.

    Dentro de la graficación en tres dimensiones, se encuentran varias técnicas para representar la forma tridimensional de los componentes, entre éstas predominan:

    - Modelo de alambre (rn>e-fiame), en el cual la geometría del componente es representada como una serie de líneas y curvas correspondientes a los arcos, o quizá secciones, del objeto. Superficies, en el cual la geometría del componente es representada como una colección de superficies, a menudo ligados a un modelo de alambre. Modelado sólido, en el cual la geometría del componente es representada, ya sea como una combinación de primitivas geométricas, o como una colección de caras, arcos y vértices que definen los límites de la partc.

    Con el uso del modelado geométrico 3D, se pueden obtener ventajas considerables para aquéllos casos donde [Mcmahon98]:

    -

    -

    - Las geometrías son intrínsecamente difíciles de representar usando técnicas convencionales, como lo son paneles del cuerpo de un vehículo y molduras para partes plásticas.

    8

  • - El modelo 3D forme una base natural para la fabricación o para el análisis a través de la generación automática de archivos de datos de análisis (procesos CAD/CAM). El modelo 3D pueda ser usado para la solución de problemas geométricos como lo es el diseño de partes que involucran geometrías no-rectilíneas o intersecciones de superficies complejas, tal como partes de láminas de metal.

    -

    I . 5.1.2 Herramientas CAD/CAM (Computer Aided Desi&Computer Aided Manufacturing)

    El diseño y la fabricación asistidos por computadora (CAD/CAM), son disciplinas que estudian el uso de sistemas informáticos como herramienta de soporte en todos los procesos iiivolucrados en el diseño y la fabricación de cualquier tipo de producto. Estas disciplinas se ha convertido en un requisito indispensable para la industria actual que se enfrenta a la necesidad de mejorar la calidad, disminuir los costos y los tiempos de diseño y producción. La única alternativa para conseguir este triple objetivo es la de utilizar la potencia de las herramientas infordt icas actuales e integrar todos los procesos, para reducir los costos (de tiempo y dinero) en el desarrollo de los productos y en su fabricación.

    El propósito de emplear las computadoras coiiio herramienta de ayuda en los procesos de desarrollo de productos, es el desarrollar los modelos correspondientes que forman las bases para las etapas de diseño, plaiieación y organización de la actividad de fabricación, así como para el control de máquinas que fabriquen los productos.

    Muchas propiedades de los productos tienen que ser modeladas, iiicluyendo forma, dimensión, tolerancia y estructura. En todas estas áreas, la geometría, las imágenes y la manipulación espacial son muy importantes, además de estar presentes en una herramienta CAD.

    Los enfoques que a menudo se le han dado a una herramienta de este tipo, son [Mciiiahon98]:

    - E n un nivel básico, usar las computadoras para automatizar o asistir tanto en tareas como en la producción de dibujos o diagramas y la generación de listas de partes en un diseño. E n un nivel más avanzado, para proporcioiiar nuevas técnicas que ofrezcan al diseñador un reforzamiento de las facilidades para apoyar en procesos de diseño.

    -

    Se trata de la tecnología implicada en el uso de las computadoras para realizar tareas de creación, modificación, análisis y optimización de un diseño. De esta forma, cualquier aplicación que incluya una interfaz gráfica y realice alguna tarea de ingeniería se considera software de CAD. Las herramientas de CAD abarcan

    9

  • desde herranlientas de modelado geométrico hasta aplicaciones a la medida para el análisis u optimización de un producto especifico. Entre estos dos extremos se encuentran herramientas de modelado y análisis de tolerancias, cálculo de propiedades físicas (masa, volumen, momentos, etc.), modelado y análisis de elementos finitos, ensamblado, etc. La función principal en estas herramientas es la definición de la geometría del diseño (pieza mecánica, arquitectura, circuito electrónico, etc.) ya que la geometría es esencial para las actividades subsecuentes del ciclo del producto.

    El término CAD se puede definir como el uso de sistemas informáticos para la creación, modificación, análisis u optimización de un producto. Dichos sistemas informáticos cuentan con un hardware y un software específicos.

    El término CAM se puede definir como el uso de sistemas informáticos para la planificación, gestión y control de las operaciones de una planta de fabricación mediante una interfaz directa o indirecta entre el sistema informático y los recursos de producción. Las aplicaciones de una herramienta CAM se dividen en dos categorías [Huerta04]:

    Interfaz directa: son aplicaciones en las que la computadora se conecta directamente con el proceso de producción para inonitorear su actividad y realizar tareas de supervisión y control. Estas aplicaciones se dividen en dos grupos:

    o Supervisión: implica un flujo de datos del proceso de producción proporcionado a la computadora, con el propósito de observar dicho proceso y los recursos asociados, así como para la recolección de datos.

    o Control: supone un paso inás allá que la supervisión, ya que no sólo se observa el proceso, sino que se ejerce un control basándose en dichas observaciones.

    Interfaz indirecta: se trata de aplicaciones en las que la computadora se utiliza como herramienta de ayuda para la fabricación, pero en las que no existe una conexión directa con el proceso de producción.

    Una de las técnicas más utilizadas en la fase de fabricación es el Control Numérico. Se trata de la tecnología que utiliza instrucciones programadas para controlar máquinas que cortan, doblan, perforan o transforman una materia prinia en un producto terminado. Las aplicaciones informáticas son capaces de generar, de forma automática, gran cantidad de instrucciones de control numérico utilizando la iníormación geoinétrica generada en la etapa de diseño junto con ,otra información referente a materiales, máquinas, etc., que también se encuentra en la base de datos. Los esfuerzos de investigación se concentran en la reducción de la intervención de los operarios [Huerta04].

  • Otra función significativa del CAM es la programación de robots que operan normalmente en células de fabricación seleccionando y posicionando herramientas y piezas para las máquinas de control numérico. Estos robots también pueden realizar tareas individuales tales como soldadura, pintura o transporte de equipos y piezas dentro del taller.

    I . 5. I . 3 VRML fliitual Reality Modeling Languagc)

    El Lenguaje para Modelado de Realidad Virtual (VRML), se utiliza para describir simulaciones interactivas de participantes múltiples, esto es, mundos virtuales enlazados de manera global vía internet e hiperenlazados con el World Wide Web lPesce961.

    La especificación VRML define los elementos necesarios para crear mundos virtuales 3D, accesibles vía internet, a través de los cuales es posible navegar con un programa del tipo Netscape Navigator o Microsoft Internet Explorer. Permite la iiiteracción con el usuario, animación, programación y un entorno 3D más rico y elaborado.

    VRML define un formato de archivo que integra gráficos 3D y multimedia. Conceptualniente, cada archivo VRML es un espacio 3 D basado en tiempo, que contiene gráficos y objetos auditivos que pueden ser modificados dinámicamente a través de varios mecanismos. Se define un conjunto primario de objetos con mecanismos que permitan la composición, encapsulado y extensión.

    Un archivo VRML consta de los siguientes componentes funcionales principales [Vrml03]:

    - Encabezado: sirve para identificar cada archivo VRML.

    Gráficos de la escena: contiene nodos que describen los objetos y SUS propiedades. Contiene una geometría agrupada jerárquicamente para proporcionar una representación audio-visual de los objetos, así como 10s nodos que participan en la generación de eventos y el mecanismo de ruteo.

    Prototipos: permite que el conjunto de tipos de nodos de VRML sea extendible para el usuario. La definición de prototipos puede ser incluida en el archivo en el cual son usados o definidos externamente. Pueden ser definidos en términos de otros nodos VRML o pueden ser definidos usando un mecanismo de extensión de un browser específico.

    -

    -

    - Ruteo de eventos: algunos nodos VRML generan eventos en respuesta a cambios ambientales o interacción del usuario. El ruteo de eventos da al autor un mecanismo, separado de la jerarquía de los gráficos en la escena, a través del cual estos eventos pueden ser propagados a efectuar cambios en otros nodos. Una vez generado, los eventos son enviados a su destino y

    ( 1 4 - 0 5 6 8 1 1

  • capftdo I. Ioimduc06n ,%torno dc gralíCaci6~ ygcoera06n de m d d m Z D y JDpara apliwooOcr de Vki6n htifidd

    procesados por el nodo receptor. Este procesamiento puede cambiar el estado del nodo, generar eventos adicionales o cambiar la estructura de 10s gráficos en la escena.

    Los contenidos de estos archivos son procesados para la representación e interacción por un progranla conocido como browser.

    VRML ha sido diseñado para cubrir los siguientes requerimientos [Vrml03]:

    - Authorability (autoría): permite el desarrollo de programas de computadora capaces de crear, editar y mantener archivos VRML, así coino la traslación automática de programas para convertir otros formatos de archivo 3D comúnmente usados, en archivos VRML.

    - Composability (composición): proporciona la habilidad de usar y combinar objetos 3D dinámicos en un mundo VRML y así permitir la reutilización.

    - Extensibility (extensibilidad): proporciona la habilidad de agregar nuevos tipos de objetos no definidos explícitamente en VRML.

    Be capable of implementa~on (capacidad de implementación): capaz de implementarse en un amplio rango de sistemas.

    Performance (desempeño): escalable, desempeño interactivo en una amplia variedad de plataformas de computadora.

    -

    -

    - Scalability (escalable): permite la creación de mundos dinámicos 3D arbitrariamente grandes.

    VRML es capaz de representar objetos dinámicos 3D y multimedia estáticos y dinámicos con ligas a otro medio como texto, sonido, películas e imágenes. Los visualizadores VRML, así como las herramientas para la creación de archivos VRML, están ampliamente disponibles para diferentes plataformas.

    f .5. f. 4 OpenGL

    OpenGL de Silicon Graphics, es una API (Application Programming InterfaceDnterface de Programación de Aplicaciones) portable y muy rápida escrita en lenguaje C. Es una interface de software para hardware de gráficos. La interface comprende un conjunto de cientos de procedimientos y funciones que permiten a un programador especificar los objetos y operaciones involucradas en la producción de imágenes gráficas de alta calidad, específicainente imágenes a color de objetos tridimensionales. Proporciona medios para el dibujado y renderizadd de objetos geométricos (por ejemplo puntos, segnentos de líneas y

    ’ Ver glosario de términos en la página 97 12

  • Caplhdo I. Iotmducu'6n Entorno d e m ~ o u ~ ó n y w e n c i 6 n demoddm ZDyJDpnra apliocioois de Visi60 Artjlíc'd

    polígonos) y especifica cómo debieran ser iluminados o coloreados y cómo debieran ser mapeados del espacio del modelo a la pantalla [Segal04].

    OpenGL no requiere hardware de desplegado de alto desempeño para presentar los gráficos, sino requiere un frame buffir (memoria que almacena el raster display bit ma^)^. OpenGL dibuja directamente en el frame buffer, pero también permite el uso de múltiples buffers donde, por ejemplo, un buffer es desplegado mientras un segundo está siendo actualizado (conocido como doble buffel-).

    OpenGL dibuja primitivas sujetas a un número de modos seleccionables. Cada primitiva es un punto, segmento de línea, polígono o un píxel. Cada modo puede ser cambiado independientemente; la configuración de uno no afecta la configuración de los otros. Los modos son conjuntos, primitivas especificadas y otras operaciones de OpenGL descritas mediante comandos de envío en forma de llamadas a funciones o procedimientos.

    Las primitivas son definidas por un grupo de uno o más vértices. Un vértice define un punto, el punto final de un arco, o una esquina de un polígono donde se encuentran dos arcos. Los datos (que constan de coordenadas posicionales, colores, normales y coordenadas de textura) son asociados con un vértice, y cada vértice es procesado independientemente, y además, en la misma forma. La única excepción para esta regla es, cuando el grupo de vértices debe ser dippeadd para que la primitiva indicada se ajuste dentro de una región especificada; en este caso, los datos del vértice deben ser modificados y crear nuevos vértices. El tipo de chppi112 depende de cuál primitiva del grupo de vértices representa [Sega104].

    Los comandos siempre son procesados en el orden en el que son recibidos, aunque puede haber una espera indeterminada antes de que los efectos de un comando sean realizados. Esto significa, por ejemplo, que una primitiva debe ser dibujada completamente antes de que cualquiera subsecuente pueda afectar el frame buffel-. Esto también significa que operaciones de consulta y lectura de píxeles regresan a un estado consistente con la ejecución completa de todos los comandos OpenGL invocados previamente, excepto cuando se especifica otra cosa explícitamente.

    OpenGL proporciona un control directo sobre las operaciones fundamentales de gráficos 2D y 3D. Esto incluye la especificación tanto de parámetros como de matrices de transformación, coeficientes de ecuación de iluminación, métodos de antializado3, y operadores de actualización de píxeles.

    Funcionamiento de OpenGL

    OpenGL hace uso de un componente llamado frame buffer, que es el área de memoria donde se construyen los gráficos antes de mostrarlos al usuario, es decir, que un programa en OpenGL escribe en esta área de memoria y automáticamente envía su contenido a la pantalla una vez que la escena está completamente

    Ver glosario de términos en la página 97

    13

  • Capitulo I. Iooadunido Entorno dcgaficacido ygu>craúbo de rnodclor ZDy 3Dpern aplicntiooes de V i d h Artifitid

    construida. La figura 1.6 muestra gráficamente cómo está constituida la estructura de abstracción de OpenGL [García04].

    Programa OpenGL

    OpenGL GLU GLUT

    frame buffer

    Figura 1.6 Niveles de abstracción

    mds allo Nivel de abstraccidn

    mds allo Programa OpenGL

    OpenGL GLU GLUT

    frame buffer

    Figura 1.6 Niveles de abstracción en OpenGL.

    Nivel de abstraccidn

    en OpenGL.

    Toda la geometría que se despliega en las aplicaciones OpenGL, está basada en los conceptos de matrices y vectores y las operaciones aritméticas aplicables a estas estructuras.

    E n OpenGL existen básicamente tres matrices principales [GarcíaO4]:

    - Una matriz de proyección llamada GL-PROJECTION, la cual permite determinar la perspectiva a usar para observar la escena generada, así como el tipo de proyección. Esta matriz tiene una gran relación con otro concepto llamado d~ppi~ig, que consiste en recortar u ocultar todo aquello que está pero no se ve, es decir, 10 que queda fuera del foco de la cámara o del campo visual activo. Este proceso se hace automáticaniente una vez que la matriz se ha inicializado pertinentemente.

    Una matriz de modelado llamada GL-MODELVIEW, la cual se usa para aplicar a la escena funciones de rotación, traslación o escalamiento, o bien para manipular la posición y orientación de la cámara para obtener así las animaciones. E n la figura 1.7 se muestran algunos ejemplos de matrices de transformación lineal para el caso de sistemas de tres dimensiones.

    -

    Figura 1.7 Matrices de transformación lineal

    14

  • Eotomo de 5afiaci6n ~geocraddo de modelos Z D y 3Dpara qdicadons de virió0 Artiljoal Caplttlllo I. lotmducudo

    - Una matriz para el manejo de texturas llamada GL-TEXTURE, sobre la cual se pueden aplicar transformaciones lineales de rotación, traslación y escalamiento para manipular las texturas a utilizar en las figuras de la escena.

    LOS vectores son un conjunto de valores que permiten definir dentro de la escena, desde los vértices de las figuras, hasta los colores, los materiales y las luces, entre otras. Existen básicamente dos formas de trabajar con vectores en OpenGL: con SUS elementos como variables independientes, o manejarlos como una estructura de datos. Cuando se trabaja con los elementos de forma independiente, cada vector es descompuesto en 3 o 4 valores según sea el caso, y cuando se maneja como una estructura, estos valores están contenidos en una estructura de datos que bien puede ser un arreglo o un registro. Los vectores pueden descomponerse en 3 o 4 valores, ya que en el caso de los colores, éstos están compuestos por tres que determinan el color codificados en RGB (Red, Green, Blue), y un elenlento extra en algunos casos, que determina el nivel de transparencia para el objeto, cara o vértice al 'cual corresponda dicho color. A esta característica de transparencia se le conoce como Alpha BJending. Todos estos valores (en el caso de los colores) tienen un dominio que fluctúa en el rango de O a 1. Los vectores están compuestos por números que pueden ser de tipo real, entero, byte, double, short, etc., estos tipos de datos son propios de OpenGL a los cuales se les antepone el prefijo GL (ver ejemplos en anexo B).

    Para declarar un vector como un vértice descomponiendo sus elementos, se usa la instrucción GLVertex3f(x;y,z), donde x, y y z son variables o constantes de tipo GLfloat, GLreal o GLsingle. La parte 3 fde la instrucción, indica que recibe como paráinetro tres valores de punto flotante.

    Cuando el vector está definido como una estructura de datos, lo que se hace es pasar la dirección de memoria de esa estructura en la llamada del procedimiento.

    OpenGL funciona a través de una serie de bibliotecas DLL que cubren funciones muy específicas, además de ser muy sencillas de identificar, éstas son íWright971:

    - OpenGL.DLL, OpenGL32,DLL ó simplemente GL.DLL (Open Graphics Library, BibJioteca de Gráficos Abierta). Comprende la mayoría de las funciones utilizadas con más frecuencia e inician con las letras gI (ver ejemplos en anexo A).

    - GLU.DLL o GLU32.DLL (Graphics Utility Library, Bjblioteca de Utilerías de Gráficos). Contiene funciones para objetos comunes a dibujar como esferas, donas, cilindros y cubos, así como funciones para el manejo de la cámara, entre muchas otras. Las funciones anteponen a su nombre las siglas gJu (ver ejemplos en anexo A).

    GLUT.DLL (GL Utility Toolkit, Equipo de Herramientas de UtiJería para el desarroIJo de Gráficos). Esta biblioteca permite crear objetos complejos

    -

  • Capítulo I. Iotmdum'dn Entoroo de graficacibo y@mraÚóo dc moddm ZDy J D p m apliC2cJbnes de viri6n Arti6úal

    como GLU aunque con la principal función de permitir que los programas se vuelvan interactivos, es decir, que posibilite la libre acción de ventanas, así como el acceso al ratón y al teclado. Las funciones contenidas en esta biblioteca inician con el prefijo glut (ver ejemplos en anexo A).

    1.5.2 ESTADO DE LA PRÁCTICA

    En esta sección se presentan algunas aplicaciones de software comercial que permiten crear gráficos en 3D, como lo son: Anim8or de R. Steven Glanville, 3D Studio Max de Discreet y AC3D de Inivis Corp. Cabe mencionar que el propósito de Graf03D no es competir con ninguna de estas herramientas, ni con otras existentes en el mercado, sino ser la base para la construcción de una herramienta más compleja, por lo que el análisis de estas aplicaciones comerciales se realizó con el fin de detectar las características principales que componen una herramienta de este tipo, con el propósito de tomarlas en cuenta para el desarrollo de Graf03D.

    I . 5.2.1 h i m Sor

    Aiiim8or es un programa de animación por computadora en 3D, diseñado para permitir una buena creación de animación [Anim80r031. Se pueden crear y editar interactivamente objetos, figuras y escenas directamente en la pantalla de la computadora. La interfaz básica es similar a la mayoría de los programas CAD y de animación en 3D, como se muestra en la figura 1.8

    *y '.> -.pP-,T..? :; .* Figura 1 .8 Interfaz de la herramienta Anim8or.

    16

  • capltdo I I~lOLmducUdo & m m O de gradcao'do ygcocraU6~ de modelos ZD y 3Dpara apli,oooes de ~ f i " 3

    Cuenta con las siguientes características [Anini8or03]:

    - Modelador 3D: crea Y modifica niodelos 3D. Construye sobre primitivas como esferas, cilindros, sólidos platónicos, etc.; edición de mallas y subdivisión; curvas splines4, extrusión4, lathing, modificadores, deformaciones y bevep. Soporta fuentes TrueType: extrusión de texto en 2D y 3D para cualquier fuente TrueType. Operación en tiempo. real basada en OpenGL. Importa y modifica archivos objeto 3DS (3DStudio), LWO (Lightwave) y OBJ (Wavefront).

    Construye sobre un visualizador de objetos 3D.

    -

    - -

    - Exporta archivos 3DS. - - Editor de caracteres articulado. - Software antializado para renderizado de alta calidad, producción de

    imágenes de calidad. - Crea escenas y animaciones 3D y como salida, archivos de video AV1 e

    imágenes JPG y BMP. Soporta texturas, sombras suaves, focos, niebla, etc. Soporte de texturas para formatos de archivo BMP, GIF y JPG. , I Imprime imágenes de escenas y modelos.

    - - -

    Dentro de la interfaz de Anini8or, se pueden controlar varios aspectos de trabajo usando el ratón de computadora ordinario o un pizarrón óptico. Se puede seleccionar y arrastrar, rotar, escalar y colocar objetos haciendo clic en las vistas de trabajo disponibles. Tiene dos barras de herramientas que se pueden usar para tareas comunes. La barra de la parte de arriba, tiene botones para comandos generales que son usados en cualquier parte de AnimSor, mientras que la barra de la izquierda permite cambiar el modo de operación para tareas comunes actuales.

    Se puede tener el control de la vista de los objetos para ver su apariencia de frente, de lado, arriba, en perspectiva, etc., y se pueden mostrar múltiples vistas O una sola vista en la pantalla.

    Tiene cuatro modos principales de trabajo, y un modo de visualización de objetos ( object-brorusing) :

    El primero, es un editor de objetos que es usado para construir, en la mayoría de los casos, objetos estáticos.

    El segundo, tiene un editor de caracter o figura. Se usa para definir la estructura de un caracter que se quiera animar por medio de la unión de huesos y de objetos a ellos.

    Ver glosario cle tériiiinos en la página 95 15

  • Capitdo I. IDtrCduCO60 ~~t~~~ dcgraficaÜ6n ygeocaci6n de moddm Z D y 3Dpara spl¡aubocr de visido Art¡fiUd

    El tercero, tiene un editor de secuencia o movimiento. Aquí, se pueden definir segmentos de movimiento como un ciclo o paseo. Éstos pueden ser enlazados en cadenas en un editor de escena para secuencias largas.

    E n el cuarto, se pueden poner juntas las escenas finales en un editor de escena. Aquí, se pueden colocar los objetos y lo construido en las otras partes de AnimSor, en el “mundo” final. Se puede controlar cómo se mueven y dónde está colocada la cámara. También se puede dar a la escena varios tipos de luces.

    .. . . .., -5 , !., . &, . i

    Una vez que se haya creado %modelo o escena se pueden obtener imágenes JPG (Joint Photographic .Experts Gr‘oup7.y BMP; (Mapa de Bits) de alta calidad y videos AV1 y almacenahos en disco para,su uso posterior.

    Finalmente, h organizar los o

    La;. &’, or de objetos que ‘ayudan a la visualización y a

    1.5.2.230 Studio

    Dentro de las principales características de 3D Studio Max, se encueiitran [Lamers96]:

    p. ..

    -

    - Permite crear objetos geoinétricos elementales, como esferas, conos y cubos, utilizando comandos. Estos objetos se manejan con facilidad (doblarse, comprimirse y cortarse) para crear el producto final.

    Se pueden crear objetos más complejos mediante el dibujado de una serie de secciones transversales bidimensionales de un objeto, que 3D Studio conecta para formar un objeto 3D.

    -

    - Permite la aplicación de materiales a los objetos para modificar la apariencia del objeto.

    - Se pueden definir y utilizar diferentes tipos de luces para crear un ambiente en la escena y llamar la atención del observador.

    Permite ajustar la posición y cambio visual de cada cámara incluida en la escena para aumentar o disminuir el tamaño aparente de los objetos.

    Crear animaciones que se reproducen en video, película o computadora, que exhiben entre 1 2 y 30 imágenes por segundo.

    -

    -

    18

  • 1.5.2.3 AC3D

    Esta herramienta permite ver, editar y crear gráficos 3D; disponible para Windows y Linux. AC3D es muy fácil de usar además de ser muy poderosa, ver figura 1.9.

    Figura 1.9 Interfaz de la herramienta AC3D

    AC3D es usado para una amplia variedad de propósitos, incluyeiido LAc3d041:

    Creación de modelos 3D para juegos. Producción de niodelos para realidad virtual y software de simulación de vuelos. Visualización de datos científicos, médicos y generales. Prototipado rápido de diseños 3D. Generación de niodelos 3D para una alta resolución de renderizado en 3D.

    Características [Ac3d041:

    Vistas (2D y 3D) de gráficos OpenGL de tiempo real. Interface de usuario simple: “pulsar y arrastrar” Extrusióii y revolución de superficies. Modelado de subdivisión de superficies. Operaciones booleanas. Fuente Truetype en 2D y generador de texto 3D. Un editor de coordenadas de textura de integrado gráfico. Soporte para varios formatos de archivo 3D incluyendo POV-Ray, VRML (1 y 2), RenderMan, 3D Studio 3DS, Lightwave, DXF, Alias triangle, Wavefront OBJ, Direct X, Milkshape, MD2, Quake 3 BSP, entre otros.

    19

  • 'f

    Capitdo I. IoLmduc06n ~ o l o m o depficacj6D ygeoera060 de modelor ZDY 3Dp-a a P k a ~ c m e s de

    Kit de desarrollo de software y una interfaz plugin. Rápido y memoria eficiente, programa binario Con1Pacto. Edición a una granularidad diferente: grupos, objetos, superficies, vértices. Edición de polígonos completos, por ejemplo, crear una esfera y mover fácilmente los puntos (vértices) para deformar la figura. Crear y editar polígonos multipunto y líneas, no solamente triángulos. Manipulación individual de superficies:

    o Insertar y eliminar vértices o Creación de huecos o Spikd o SpIine o Bevel o Triangulado o Flip' o Subdivisión

    Ventana 'de vista jerárquica.

    Programa multiplataforma.

    Agrupación de superficies en objetos nuevos. 4 vistas, 3 ortográficas y una 3D. Una vista o todas a la vez. Los objetos pueden ser buscados dentro de una escena. Navegaciódzooin sobre una vista 2D con teclas de cursor y otras teclas simples.

    Ocultamiento/aparición de objetos para una edición más fáciyrápida de escenas complicadas. Focos y hasta otros 7 focos posicionales. Paleta de colores de 24 bits con ajuste de las componentes: difusa, .ambiental, de emisión, especular, brillo y transparencia, Creación de nuevas superficies/objetos alrededor de cualquier selección.

    La documentación simple de formatos de archivo permite una fácil conversión de otras formas de datos.

    Ver glosario de tériiiinos en la piigina 97 ..

  • 1.6 PROPUESTA DE SOLUCIÓN

    En este apartado se presenta el objetivo general del tema de tesis y los beneficios que se obtienen con su desarrollo, además se puntualizan los alcances. y limitaciones del proyecto final. El modelo conceptual que comprende las etapas de desarrollo de Graf03D, se presenta en el capítulo 11, sección 2.4.

    I . 6. I OBjE TWO DE LA TESIS

    Diseñar e implementar un entorno para la creación, edición y visualización de modelos gráficos de objetos rígidos y flexibles en 2D y 3D.

    1.6.2 BENEFICIOS

    1.6.2. 1 Beneficios grnerdes

    Manejo de múltiples objetos en una inisina escena mediante un entorno visual de graficación. Aplicación en modelado de objetos para aplicaciones de Visión Artificial. Manejo de funciones básicas y avanzadas de graficación. Generación de animación con los objetos graficados, que pueda ser almacenada en un archivo de video (AVI). Servir de base para construir una herramienta de apoyo para procesos de manufactura con celdas flexibles que permita un entorno virtual para su especificación y detallado de tareas. Posibilidad de ser parte de un proyecto más grande semejante a una herramienta CAD/CAM.

    I . 6.2.2 Beneficios específicos para el grupo de Visión ArOZcid del cenidet

    Manipulación de modelos generados por otras herramientas realizadas dentro del grupo. Creación de nuevos modelos que puedan servir como datos de entrada para otra herramienta en desarrollo. Validación visual de que los modelos generados caractericen la forma de los objetos especificados en el archivo de texto y que tengan una correspondencia con la realidad.

    21

  • I. 6.3 ALCANCES Y LIMITACIONES

    ALCANCES

    Definición de primitivas para el modelado. Manejo de la especificación de los objetos mediante archivo de texto. Manejo de múltiples objetos en la misma escena (de 5 a 20 objetos), que puedan ser seleccionados por el usuario en tiempo de ejecución. Manejo de funciones básicas de graficación:

    o Cambio de perspectiva. o Cambio de escala. o Cambio del vector normal a nivel del objeto. o Cambio de color, por objeto y por secciones del objeto.

    o Modelos de alambre. o Modelos sólidos. o Superficie con texturas. o Ocultamiento de caras. o Animación. o Iluminación.

    Manejo de funciones avanzadas de graficación:

    Generación de animación mediante la interpretación de los datos numéricos generados por la herramienta de modelado. Generación de archivos AVI con la animación resultante. Generación de animación mediante la especificación de funciones de transformación de los objetos definidos.

    LIMITACIONES

    No se realiza un reconocimiento de objetos, solo permite modelarlos. La información de entrada es mediante un archivo de texto o a través de instrucciones proporcionadas en la interfaz gráfica de la herramienta. El niodelado se realiza a partir de ciertas primitivas definidas previamente. El número de objetos que pueden ser graficados en la herramienta, es de 5 a 20 objetos en una misma escena. La salida generada por la herramienta es el modelo gráfico de los objetos y un archivo de texto que contiene la descripción de sus características. En caso de haber animación, la salida es también un archivo de video tipo AVI. La animación resultante es almacenada en un archivo de video tipo AVI. La herramienta no permite la modificación de un archivo AVI que resulte de la misma o algún otro existente. Para el desarrollo de la herramienta, se hizo uso del entorno de desarrollo C + + Builder v5.0 y de la biblioteca para gráficos OpenGL v1.5, bajo una plataforma Windows X P .

    2 2

  • 1.6.4 DISCIPLINAS I M O L U C W A S

    - Analizadores y traductores. - Graficación en 3D. - Mundos virtuales tridimensionales.

    1.7 APLICACIONES

    E n el desarrollo de juegos. En la industria, para el modelado de procesos de manufactura, modelado de productos, etc. Generación de modelos para su utilización en el reconocimiento de patrones. Elaboración de casos de prueba que sirvan como entrada a otras herramientas en desarrollo en el cenidef. Generación de modelos mediante información arrojada por otras herramientas desarrolladas en el cenidet.

    1.8 CONCLUSIONES

    En este capítulo se presentó la información que conforma los antecedentes del tema de tesis, así como la problemática contenida en éste y la propuesta de solución, en la que se incluye: el objetivo general, los beneficios que se obtienen con el desarrollo de Graf03D y sus alcances y limitaciones. Se presentó el marco conceptual que constituyó la base para el desarrollo de las etapas para la creación de Graf03D, el cual está conformado por tópicos referentes al modelado de objetos en 3D como lo son: VRML, para la descripción de objetos a través de un archivo de texto; OpenGL para la creación de modelos 3D; graficación 3D y herramientas CAD/CAM como una aplicación de modelos tridimensionales. Además se presentaron algunas herramientas existentes en el mercado cuya aplicación es en el modelado de objetos 3D mediante un entorno gráfico, y que sirvieron de referencia para conocer las partes por las que está constituida una herramienta de este tipo.

    23

  • CAP~TULO II

    ANÁLISIS Y DISENO

    CONTENIDO:

    Introducción Requerimientos funcionales del sistema Otros requerimientos Modelo conceptual de Graf03D Definición y especificación de objetos Especificación de objetos en Graf03D Persistencia y recuperación de objetos Manipulación de objetos Procesos para tratar archivos producidos por otras herramientas Conclusiones

    24

  • --

    I

  • 2. I INTRODUCCI~N

    Debido a la importancia que tiene un modelo gráfico para representar información que ocasionalmente es poco entendible por el ser humano, y a la variedad de aplicaciones en que puede ser empleado un modelado de este tipo, se decidió crear una herramienta con un entorno gráfico que permita crear, editar y visualizar modelos en 2D y 3D de objetos rígidos y flexibles (Graf03D), con el fin de apoyar a procesos de Visión Artificial, Visión Robótica y Reconocimiento de Patrones.

    El presente capítulo comprende la etapa de análisis y diseiío del sistema, en la cual se hace una descripción del problema para identificar y especificar los requerimientos de Graf03D, y así, detallar la solución lógica para satisfacer dichos requerimientos.

    2.2 REQUERIMIENTOS FUNCIONALES DEL SISTEMA

    Diagrama de casos de uso general

    En la figura 2.1, se muestra el diagrama de casos de uso general del sistema, en el que se ilustra tanto al actor o persona que hará uso del sistema (usuario), como a las actividades o funciones que el usuario podrá realizar para manipularlo.

    Agisgar p h l k J ' Y:'""' 0 I

    Guardar escena u Elimiiiar un objeto o p n n ~ ~ n s

    Figura 2.1 Diagrama de casos de uso general.

    2 5

  • Capitdo IL A O ~ i s i y Diseño Entorno de grabcsu& ygroeracido de modelar ZDy 3Dpva apli~ooOcr de virido Amfiua

    En la tabla 2.1, se describen los casos de uso contenidos en el diagrama anterior.

    Tabla 2.1 Descripción de los casos de uso del diagrama ... ...... . .... ....-........_.._..I. ASODEUSO r ,~

    j Se inicia cuando el usuario desea crear una nueva escena y i ~ ~ Crear nueva ~ se elimina de la pantalla lo que se haya creado j escena" : anteriormente. ..

    Se inicia cuando el usuario desea abrir u11 archivo de texto ! .......... ........................ . .................. ... I

    -. *....,........_I Abrir escena desde archivo"

    ~ existente con la descripción de una escena y bajo la 1 gramática permitida por la herramienta. ~ -- ll." -

    ~ Importar archivo*

    Crear nuevo obieto"

    : < . . . . . . . . . . . . . . . . . . . . . . . . . . . . . j Modificar

    propiedades de un objeto o primitiva*

    . I" _.I_ Agregar primitiva"

    Guardar escena*

    ......... ..... ...... Manejo de iluminación* Cambio de

    : perspectiva*

    j Cambiar vista de ~ modelos"

    .. .__..-..-

    I . . "

    Eliminar objeto o primitiva*

    ~ Generar 1 animación* ..................................................

    . , .................................. l.",l_ . Se inicia cuando el usuario desea abrir un archivo de texto existente en donde se describa el objeto por medio de puntos (x,y). Se inicia cuando el usuario desea crear un nuevo objeto en la escena. Se inicia cuando el usuario desea modificar las características de un objeto o de una primitiva, como lo son: nombre, color, rotación, traslación, escala, textura. Si las modificaciones son hechas a un objeto, todas las primitivas que contenga este objeto son también modificadas. Se inicia cuando el usuario desea agregar una nueva primitiva a un objeto existente. Se inicia cuando el usuario desea almacenar en un archivo de texto, la información de la escena actual. Este archivo de texto será escrito bajo la gramática permitida por la herramienta. Se inicia cuando el usuario desea modificar las propiedades de la luz, como lo son: nombre, posición y color. Se inicia cuando el usuario desea hacer un movimiento con la cámara en las direcciones de adelante, atrás, izquierda y derecha. Se inicia cuando el usuario desea cambiar el tipo d los modelos en la escena, como lo son: modelos de alambre, sólidos o vértices. Se inicia cuando el usuario desea eliminar primitiva existente. En caso de eliminarse un objeto, todas i las primitivas que c Se inicia cuando el usuario desea generar animación con los objetos de la escena actual. El usuario proporcionará los 1

    _li-..-l_.._ ~ .... ...........................

    .,,. ....... ., . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

    ........... ................___..................._--__..11....... .

    .............. ....................................................................... , .......................................................

    ..............................................................................................................

    . ____-

    .._.__._....I.......--I" ....

    , .... . ................. , . . . . ,,,, . . . . ., . . . . , . . ,, , . . . . . . . . . . . . .

    enga serán también eliminadas. .__ ... . -. 1 __" ............................................................................................................. ",. ........................

    26

  • ---- ._ ... r____. j parámetros de: nombre del archivo de animación, número ; de frames6 que formarán la secuencia, el tiempo de espera I entre cada uno de ellos y el número de veces o ciclos que la i secuencia será repetida. ' Se inicia cuando el usuario desea salir completamente de la ' aplicación.

    ___._.._ .......................................... *.--* .- j Cerrar aplicación*

    ....... ~ _..... " ~ " ................ ..... ~~~ .__ "

    * Ver anexo C para su documentación.

    2.3 OTROS REQUEIUMIENTOS

    Para que el sistema trabaje de manera adecuada, es necesario que se cumplan al menos las siguientes condiciones externas:

    Hardware - - - -

    Procesador de la familia pentium I1 o posterior. Memoria de al menos 128 Mb. Espacio en disco para su instalación y ejecución de al menos 50 Mb. Espacio extra para el almacenamiento de archivos de textura y de animación.

    Software - Sistema operativo Windows 98 o posterior.

    2.4 MODELO CONCEPTUAL DE GrafO3D

    Para llevar a cabo el desarrollo de Graf03D, se diseñó el modelo conceptual con las diferentes etapas a realizar para obtener un producto final que cumpla con el objetivo planteado inicialmente. En la figura 2.2 se muestran las etapas por las que está compuesto el desarrollo de Graf03D.

    MODELOS GRAFICOS dstos a archivo

    de texfol

    mediante la interm grhfica

    Entradas Salidas

    Figura 2.2 Modelo conceptual de Graf03D.

    Ver glosario de términos en la página 97 6

    27

  • CapIhdo II. Andliriry Djseüo Entorno de gahca06n ygenersódo de moddm ZDy 3Dpara aplic.mones de vjsj6n Arti60.d

    El modelo conceptual de la figura 2.2, está dividido básicamente en las siguientes partes, las cuales se describen en el resto de este capítulo:

    + Entradas: la información de entrada al sistema será mediante la ejecución de instrucciones de la interfaz gráfica o a través de un archivo de texto con un formato predefinido, es decir, ya sea un archivo Graf03D (ver ejemplo en el anexo D) o un archivo que contenga la descripción del objeto en términos de puntos (x,v) (ver ejemplo en anexo E).

    t Interpretación de la información: la información proporcionada por el usuario debe ser interpretada para generar los modelos de acuerdo a las características especificadas.

    t Generación de los modelos gráficos: el resultado de la interpretación de la información textual será la representación gráfica de los modelos, los cuales podrán ser manipulados por el usuario.

    t Traducción de información a archivo de texto: una vez que el usuario haya creado los modelos y desee almacenarlos en un archivo de texto, el sistema traducirá la información correspondiente a la escena, a su representación textual.

    t Salidas: el sistema generará como salida un archivo de texto con las especificaciones de la escena que haya creado el usuario, y en caso de haber creado algún tipo de animación, la salida será también un archivo de video tipo AVI.

    2.5 DEFINICIÓN Y ESPECIFICACIÓN DE OBJETOS

    Una escena, dentro de un entorno virtual, está compuesta por objetos los cuales son manipulados por el usuario. Un objeto es aquél que está formado por una serie de primitivas y que contiene un conjunto de Características propias coino nombre, posición, color, entre otras, Una primitiva es un elemento gráfico con el que se pueden formar figuras de mayor complejidad, conteniendo también sus características propias.

    Uno de los problemas al crear un mundo virtual, es saber cómo describir los objetos con la información necesaria, de tal manera que se conserven sus principales características para obtener el modelo correcto, y una vez teniendo esa descripción, es necesario que sea proporcionada a la computadora y que a su vez genere el resultado deseado.

    Uno de los principales alcances de la tesis, es que el usuario pueda crear los objetos mediante primitivas, ya sea a través de un archivo de texto o a través de la interfaz gráfica, y que además puedan ser almacenados en un archivo de texto para que exista la posibilidad de una recuperación posterior.

    28

  • Para llevar a cabo la especificación de objetos en Graf03D, se analizaron las características que componen un entorno virtual en 3D, la definición de primitivas tanto en VRML como en OpenGL, así coino la estructura de un archivo VRML, para tomarla como base en la definición de la estructura del arcliivo de texto que será leído por Graf03D, y definir las primitivas que permitirán construir los objetos. Estas características se describen en los siguientes apartados.

    2.5. I MUNDO VIRTUAL TXLDIMENSIONAL

    Para crear un entorno 3D con un mayor realismo, es necesario incluir diversos componentes que en conjunto permiten observar un resultado de mayor calidad. E n este apartado, se presentan las características principales que se deben tomar en cuenta.

    E n el mundo de las gráficas 3D, la computadora utiliza puntos y enlaces que relacionan estos puntos para crear la estructura de los objetos. El conjunto de puntos que estructuran un objeto se denomina nube depuntos, porque al eliminar las líneas que conectan tales puntos, el esquema adquiere la apariencia de una nube punteada que flota en el espacio. De hecho, casi todos los objetos generados por computadora empiezan por ser una nube de puntos [PesceOó].

    En el siguiente paso hacia el realismo, la computadora enlaza los puntos para crear la estructura del objeto. Ahora el elemento empieza a parecer real, pero su interior está vacío. Esto se conoce como el acabado dehneado de un objeto.

    Después de crear la estructura, es necesario aplicar la piel (superficie) del objeto. La superficie puede tener diferentes características: al igual que la pintura de un automóvil, el acabado puede ser opaco, brillante, de cualquier color e incluso presentar franjas y otros elementos decorativos. La superficie da una apariencia de solidez al objeto (aunque el interior de éste permanezca vacío) y, si se utiliza un diseño creativo, el objeto puede llegar a tener una apariencia bastante realista.

    En el mundo real es posible observar los objetos debido a que éstos emiten o reflejan una luz [Pesce96]. Es por eso que la computadora debe iluminar el objeto por medio de una luz generada por ella misma a fin de presentar una visión más realista. Después de iluminar el objeto, la computadora le asigna un sombreado. Cada superficie refleja la luz de manera diferente y la computadora debe calcular el sombreado en las caras del elemento,

    Cualquier proceso gráfico en 3D debe iniciar con un lugar, es decir, el sitio donde se localizan los objetos. Todo en el mundo tiene una posición, un lugar donde cada objeto se encuentra y que define las relaciones, asociaciones y posibilidades.

    29

  • Entorno de m f i a U 6 ~ ~ g c o c r ~ ó b n de moddm ZLJy 3Dpars apliamhm de vis

  • Capftdo IL A d i s i s y Dire170 ~~t~~~ &p,7~0’6ny~nerac i6n dc moddm ZDy 3Dpva a p l i ~ ~ o o e s de vi3i6n Mfic¡aI

    Luces fijas: son una variante de las luces direccionales. Además de contar con una dirección hacia la que proyectan sus rayos lumiiiosos, incluye un enfoque denominado umbra. La umbra determina la anchura del rayo de luz y la velocidad con que cruza el espacio del mundo generado por la computadora. Un rayo láser es un ejemplo objetivo, pues permanece en línea recta desde que sale del punto emisor. Las luces que se utilizan en los escenarios de los teatros son, por io general, fuentes fijas cuya orientación es ajustable.

    La forma en cómo el objeto se despliega en pantalla, es mediante las líneas que unen la nube de puntos, sin embargo, si se desea observar las caras de un objeto, se deberá utilizar un acabado sólido. E n este caso, los polígonos se “colorean” para que su superficie sea visible.

    LOS objetos sólidos se coinponen de varias caras poligonales; la normal de estas caras determina cómo se refleja la luz en las mismas. La computadora trata de calcular la cantidad de luz reflejada en las caras del objeto, proveniente de las fuentes luminosas en la escena tridimensional; este proceso se conoce como sombreado.

    El sombreado puede ser alguno de los siguientes tipos [Pesce96]:

    Sombreado plano: se basa en la normal, es decir, el rayo luminoso que se proyecta hacia el exterior de la cara del polígono. La computadora calcula el valor del ángulo entre la normal y la fuente de luz, y usa la información obtenida para sombrear la cara del polígono. Este tipo de sombreado, aunque es muy rápido, crea una apariencia artificial en los objetos.

    Sombreado Gouraud: utiliza la normal de la cara del primer polígono y la normal de las caras principales en los polígonos contiguos para establecer un sombreado promedio entre todas las caras. Esta labor requiere de niuchos cálculos matemáticos, por lo que demora casi diez veces más que el sombreado plano. Este tipo de sombreado da una apariencia más realista a los objetos, aunque a veces se muestra una especie de franjas, esto se debe a una falta de precisión en los cálculos matemáticos que se realizan.

    Sombreado Phong: toma la normal de la cara del primer polígono y determina normales adicionales para cada esquina de la cara, a fin de promediar los valores obtenidos con los valores de las normales de los polígonos adyacentes. El proceso es diez veces más lento que el sombreado Gouraud, pero produce resultados espectaculares en algunos casos. Subsana algunas de las deficiencias del sombreado Gouraud.

    Rastreo de rayos de luz: se utiliza en comerciales de televisión, superproducciones cineniatográficas e imágenes fijas muy realistas, pues representa un proceso de sombreado de alta calidad. La computadora calcula casi todos los rayos de luz (rastrea sus trayectorias) que se incluyen

    31

  • &torno de p f i c a C j 6 0 ypcrao’bo de modclos ZDy 3Dpva aplicaaciooe de Vhi6.0 Artifiioal Capilulo II. llodliriry Dkem

    en la escena y, a partir de los datos obtenidos, genera una visualización “realista” del mundo en tercera dimensión.

    Para crear. un mundo más rico y detallado, se puede hacer uso de los mapas de textura. Estos mapas se asemejan a un ‘‘papel tapiz” que se aplican a las caras de los polígonos. A menudo, un solo mapa de textura “envuelve” todo un objeto.

    2.5.2 ESPECIFICACIÓN DE OBJETOS EN VRML

    En este apartado, se describe la estructura de un archivo VRML, la cual fue tomada como referencia para definir la estructura de un archivo Graf03D. E n general, los aspectos tomados de dicha estructura son los siguientes, los cuales se detallan en la sección 2.6:

    La secuencia para la definición de una escena, es decir, el orden en que los elementos que la constituyen (encabezado, cámara, iluminación, objetos, etc.), aparecen en el archivo de texto. La sintaxis para definir: encabezado (#Grafo vlO), cámara (Perspectivecamera), transformaciones (Transform), material (Material), primitivas (Cone, Cube, Cylinder, Sphere) y objetos (Separator). Se tomaron como primitivas las figuras geométricas: cono, cubo, cilindro y esfera.

    A continuación se describe cómo se especifican los objetos en un archivo VRML.

    VRML es el acrónimo de Virtual Reality Modelihg Language. Este lenguaje contiene un conjunto básico de primitivas para el modelado geométrico tridimensional y tiene la capacidad de modelar el comportaniiento de los objetos y asignar diferentes animaciones que pueden ser activadas por eventos generados por diferentes usuarios [SuárezOS].

    Un punto central en el concepto del VRML, es el manejo de mundos o documentos VRML. No obstante, cada mundo se debe considerar como una escena. Además de describir el contenido y el esquema de un mundo, los documentos VRML también pueden incluir “enlaces” o “anclas” para relacionarse con otros archivos, por ejemplo archivos Web, películas QuicliTime o documentos PostScript.

    Además permite enlazar varios mundos, es decir, si se puede viajar de una página a otra en la Web, también se podrá trasladar de un mundo a otro.

    Cada escena VRML tiene un “punto de vista” llamado cámara y es posible que el usuario pueda definir varios puntos de vista.

    32

  • ~ p f t d o II. Aoálisisy Disefio E ~ o t ~ m o dc graficaU6n yg~o~raU60 de moddor ZDuy 3 D p m a ~ ~ ~ ~ o o c s de Visi60 AdficI'd

    Toda la información de un archivo VRML debe ser de tipo texto y con la extensión .wrl, además debe tener la estructura descrita a continuación LPesce961:

    Encabezado

    Todos los docunlentos VRML tienen que contar con un encabezado que los identifique como un archivo VRML válido.

    # VRML V.. O ascii

    E n donde: v2.0 es la versión y ascii es el tipo de formato de caracteres

    Campos

    Existen dos clases generales de campos: los que contienen un solo valor, ya sea un simple número, un vector o hasta una imagen; y los campos con valores múltiples que están escritos como una serie de valores separados por comas, dentro de corchetes.

    Nodos

    La mayoría de los nodos pueden clasificarse en tres categorías: figura, propiedad o agrupación. Los nodos de figura deíinen la geometría en la escena. Los nodos de propiedad afectan la manera como se trazan las figuras, mientras que los nodos de grupo unen nodos y ello permite que estos grupos sean tratados como un sólo objeto.

    Los nodos pueden tener cero o más campos. En cada nodo se define un tipo, nombre y valor por omisión para cada uno de los campos.

    Los nodos de figura se muestran en la tabla 2.2:

    Tabla 2.2 Nodos de figura de VRML.

    --.~

    ---____- zepresenta cadenas de caracteres de texto con el conjunto de

    ~ caracteres ASCII. 1 Define un cono especificando los campos: parts (partes: sides, j ~ bottom o all), bottomRadius (radio), height (alto).

    AsciiText I . . . . . . . . . . . . . . . . . . . . . . ~.~ . . . . . . . . . . . . . . . . . . . .

    ~

    i Cone ;

    Representa un cubo y tiene los siguientes campos: width ' (ancho), height (altura), depth (profundidad). i I Cube

    ----I -___ r- Define un cilindro-especificando los campos: parts (partes), ' Cylinder 1 radius (radio), height (alto). . ......... __ .. ...... - ... .. - . . . I I Representa una figura 3D elaborada con caras (polígonos), : construida a partir de vértices localizados en las coordenadas !

    i actuales. Campos: coordIndex (índice de coordenadas), IndexedFaceSet

    ! materialIndex (índice material), normalIndex (índice normal) 1 ........................................................ 33

  • ..

    ~ IiidexedLineSet

    1 Pointset . . . . .... 1; Sphere , - ..........................

    ........... ................ ....................... ........... I

    1.11- y textureCoordIn .-l.... . (índice de coord ........... s de textura). 1

    Representa una figura 3D, formada nstruir polilíneas a 1 partir de vértices localizados en las coordenadas actuales. 1 Campos: coordlndex (índice de coordenadas), mater iahdex !

    I (índice material), nornialIiidex (índice normal) textureCoordIndex (índice de coordenadas de textura). Representa a un grupo de puntos localizados en las coordenadas actuales. Campos: starlndex (índice de inicio) y numPoints (número de puntos). Representa una esfera y se especifica el campo radius (radio).

    -ll_"l

    .... .

    y í I .... ..................................... ....... . .

    . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .,,. ....................................................................... ....................

    ........................................................................................................................................................

    Los nodos de geometría y material se muestran en la tabla 2.3:

    Tabla 2.3 Nodos de geometría y material de VRML.

    ¡ Coordinate3 ~ .- I

    FontStyle

    l"",." ..... .. I ~ Info

    I I I I Material

    MaterialBinding

    .... Define un grupo de coordenadas 3D, el cual será utilizado por un nodo IndexedFaceSet, IndexedLineCet o PointSet subsecuente. Define el estilo de fuente actual que se utilizará para todo el texto ASCII subsecuente. Se definen los campos: size (tamaño), family (familia: serif, sans, typewriter), style (estilo: none, bold, italic). Define un nodo de informa la escena. Se define el campo string (cadena). Permite que las apli nes cambien entre di representaciones de objetos en forma automática. Los hijos de este nodo representan por lo general el mismo objeto u objetos en niveles de detalle distintos: desde el más alto hasta el más bajo. Campos: range (rango) y center (centro). Define las propiedades actuales del material de la superficie para todas las figuras subsecuentes. Campos: ambientcolor (color de ambiente), diffuselolor (color de difuminación), specularColor (color especular), emissiveColor (color de emisión), shininess (brillo),

    __ _"__l.___..."

    _l.ll ................................................... .............. . ....................... .....

    .................. . . . . . ...........,.... . ..,,.......... ........... ...............

    -- -- ~ . I _

    transparency (transparencia). EsDecifica la forma en que los materiales actuales deben

    ....... ....... .. . ... .....

    unirse a las figuras subsecuentes dentro de la escena. - Campo: value (valor). Define un grupo de vectores normales de superficies 3D

    ... ..... ........... . . ..... ~ ............ ~~ ...... ~~~ . . .

    -~ i que utilizarán los nodos de figura basados en vértices : subsecuentes, que se encuentran en la escena. Campo: Normal I vector (vector).

    . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ' Especifica la manera en cómo las normales actuales se 1 unirán a las figuras subsecuentes de la escena. Campo:

    34

    NormalBinding ............ ............ .......... ...... ..... ......... .

  • .............

    i sobre el origen. Campo: rotation (rotación). .

    1 (factor de escala).

    ........... .... .. !- _T. escala 3D sobre el origen. Campo: scaleFactor

    ~ Scale ... I. .

    Texture2

    !

    Texture2Transform

    TextureCoordinate2

    ShapeHiiits

    value (valor). Define tanto los parámetros para este campo como para un mapa de textura. Campos: filename (nombre del archivo),

    __I___..__. ~ ....

    ! image (imagen), wraps, wrapT. Define una transforinacióii bidimensional aplicada a las ~ coordenadas de textura, que afectará la manera en cómo se I aplicarán las texturas a las superficies de las figuras 1 subsecuentes. Campos: translation (traslación), rotation (rotación), scaleFactor (factor de escala) y center (centro). Define un grupo de coordenadas bidimensionales que se usará para hacer un mapa de texturas para los vértices de los objetos subsecuentes Pointset, IdexedLineSet, IndexedFaceCet. Campo: Point (punto). Indica que los grupos de caras indizadas (IndexedFaceSets) son sólidos, contienen vértices ordenados o incluyen caras convexas. Campos: creasehgle (ángulo de doblez), vertexordering (orden de los vértices), shapeType (forma), faceType (tipo de cara).

    -

    . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

    i . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

    . _.-II_ -_-I ~~ --__.

    Los nodos de transformación se muestran en la tabla 2.4:

    Tabla 2.4 Nodos de transformación de VRML.

    35

  • Tabla 2.5 Nodos de cámara de VRML.

    FocalDistance (distancia focal), heightAngle (altura del ángulo).

    ! Orthographiccamera

    j Perspectivecamera ~

    . I - Define que el tipo de proyección será ortográfica. Campos: I

    Los nodos de iluminación se muestran en la tabla 2.6:

    Tabla 2.6 Nodos de iluminación de VRML. . ... ........

    i

    1

    i Define que la fuente de luz será direccionai, es decir, que I iluminará a lo largo de los rayos paralelos de un vector 1 tridimensional dado. Campos: on (activado), intensity : (intensidad), color (color), direction (dirección). , Define que la fuente de luz será una luz apuntadora ¡ i especificada en una posición fija 3D. Ilumina igual en todas i

    direcciones (omnidireccional). Campos: on (activado), i intensity (intensidad), color (color), location (ubicación). Define que la fuente de luz será fija y con una posición 3D.

    I

    _________--I__ -_I-__--

    I PointLight

    _--I._ ~ _ _ _ ~ -_ . _I_..

  • : TrallsformSeparator

    2.5.3 ESPECIFICACIÓN DE OBJETOS EN OpenGL

    transformación actual y todos 10s demás permanecen sin cambio.

    En este apartado, se describe la manera en cómo se pueden construir objetos 3D con el uso de las funciones de la biblioteca OpenGL. Las primitivas con las que OpenGL permite construir objetos más complejos, se tomaron como primitivas para construir objetos en GrafO3D, estás'son: polígono, línea, caja sólida, caja en alambres, cilindro sólido, cilindro en alambres, cono sólido, cono en alambres, esfera sólida, esfera en alambres, tetraedro sólido, tetraedro en alambres, octaedro sólido, octaedro en alambres, icosaedro sólido, icosaedro en alambres, dodecaedro sólido, dodecaedro en alambres, dona sólida y dona en alambres.

    Entre las funciones que se utilizaron para la graficación de primitivas, se encuentran: g l v e r t e m ) ; glBeginO/glEnd en los modos GL POLYGON, GL-LINES y GL - POINTS; funciones de transformación (traslación, rotación y escala) y funciones que permiten definir una cámara ortográfica o en perspectiva.

    Las funciones de las que se hizo uso en la etapa de implementación de GrafO3D, se detallan en la sección 3.4 del capítulo 111.

    A continuación se describe cómo se lleva a cabo la especificación de objetos en la biblioteca para gráficos OpenGL.

    OpenGL es un grupo de rutinas en lenguaje "C", las cuales pueden crear una representación visible de un ambiente tridimensional a partir de un grupo de comandos. OpenGL se basa en el concepto de la lista de desplie