OPENGL Y VTK

11
5/17/2018 OPENGLYVTK-slidepdf.com http://slidepdf.com/reader/full/opengl-y-vtk 1/11 1 OPENGL Y VTK CARRANZA ATHÓ FREDY FLORIAN CRUZ LAURA COMPUTACIÓN GRÁFICA II ESCUELA ACADÉMICO PROFESIONAL DE INFORMÁTICA UNIVERSIDAD NACIONAL DE TRUJILLO Trujillo Perú 2006 Resumen. La implementación de funciones y procedimientos gráficos siempre ha sido tema de discusión y porqué no competencia. Ante este dilema, surgen bibliotecas de código abierto como OpenGl y VTK, las cuales proporcionan al usuario, una herramienta sumamente poderosa para la aplicación de múltiples teorías en la Computación Gráfica. OpenGL y VTK, se caracterizan esencialmente por su portabilidad y eficiencia en el desarrollo de la graficación, manejando eficazmente texturas, superficies, volúmenes y demás tópicas concernientes a la graficación computacional. Como se ha de notar las bibliotecas proveen código básico, pero no por ello potente, que permite el desarrollo de sistemas muchos más complejos. 1. INTRODUCCIÓN Querer desarrollar un sistema, que permita la aplicación y la demostración de todo lo aprendido en la Computación Gráfica, parece algo muy prolijo de osar si quiera hacer. Vale decir, que quienes desarrollan las técnicas algorítmicas y los procesos formales, para las transformaciones visuales y todo lo referente a la graficación 2D y 3D, veían con suma lejanía la implementación de éstas técnicas. Empero, esta aparente utopía se deshace cuando se toca el punto del open source, y de sus más dignos representantes en la Computación Gráfica como son el OpenGL y el VTK. OpenGL y VTK, vienen a formar parte de una múltiple variedad de bibliotecas que cuentan, con ciertas implementaciones que facilitan el propio desarrollo de modelado 2D y 3D. Estas bibliotecas consideradas como unas de las más eficientes y más poderosas, no solo permiten a la teoría ponerse en una aplicación práctica, sino que facilita y pone como herramienta un medio; que puede ser el origen para el inicio del desarrollo de nuevas técnicas y modelados formales. Dichas implementaciones, generan no solo la oportunidad de la comprobación, sino de la creación y desarrollo. Dentro de los campos que siempre la programación y los desarrolladores han tenido entusiasmo, es en el área de la Computación Gráfica, si bien es cierto el programar no sería nada sin la teoría pre definida, el desarrollo de dichas bibliotecas no hubiese permitido el avance y la aplicación de las técnicas obtenidas. Más aun contando con dichas implementaciones en un área donde el código es libre y asequible a cualquier persona que lo desee. Un interés no debe solo ser el conocer los métodos formales, sino también su aplicación en un plano más cercano al desarrollo, es por eso que en el presente documento se presenta dos de las bibliotecas usadas por muchos desarrolladores y por quienes aplican sus propias técnicas: OpenGL y VTK

Transcript of OPENGL Y VTK

5/17/2018 OPENGL Y VTK - slidepdf.com

http://slidepdf.com/reader/full/opengl-y-vtk 1/11

1

OPENGL Y VTKCARRANZA ATHÓ FREDY

FLORIAN CRUZ LAURA

COMPUTACIÓN GRÁFICA II

ESCUELA ACADÉMICO PROFESIONAL DE INFORMÁTICAUNIVERSIDAD NACIONAL DE TRUJILLO

Trujillo Perú2006

Resumen. La implementación de funciones y procedimientos gráficos siempre ha sido tema de

discusión y porqué no competencia. Ante este dilema, surgen bibliotecas de código abierto como

OpenGl y VTK, las cuales proporcionan al usuario, una herramienta sumamente poderosa para

la aplicación de múltiples teorías en la Computación Gráfica. OpenGL y VTK, se caracterizan

esencialmente por su portabilidad y eficiencia en el desarrollo de la graficación, manejando

eficazmente texturas, superficies, volúmenes y demás tópicas concernientes a la graficación

computacional. Como se ha de notar las bibliotecas proveen código básico, pero no por ello

potente, que permite el desarrollo de sistemas muchos más complejos.

1.  INTRODUCCIÓN

Querer desarrollar un sistema, que permita la aplicación y la demostración de todo lo aprendido en laComputación Gráfica, parece algo muy prolijo de osar si quiera hacer. Vale decir, que quienesdesarrollan las técnicas algorítmicas y los procesos formales, para las transformaciones visuales y todo loreferente a la graficación 2D y 3D, veían con suma lejanía la implementación de éstas técnicas. Empero,

esta aparente utopía se deshace cuando se toca el punto del open source, y de sus más dignosrepresentantes en la Computación Gráfica como son el OpenGL y el VTK.

OpenGL y VTK, vienen a formar parte de una múltiple variedad de bibliotecas que cuentan, con ciertasimplementaciones que facilitan el propio desarrollo de modelado 2D y 3D. Estas bibliotecasconsideradas como unas de las más eficientes y más poderosas, no solo permiten a la teoría ponerse enuna aplicación práctica, sino que facilita y pone como herramienta un medio; que puede ser el origenpara el inicio del desarrollo de nuevas técnicas y modelados formales. Dichas implementaciones,generan no solo la oportunidad de la comprobación, sino de la creación y desarrollo.

Dentro de los campos que siempre la programación y los desarrolladores han tenido entusiasmo, es en elárea de la Computación Gráfica, si bien es cierto el programar no sería nada sin la teoría pre definida, el

desarrollo de dichas bibliotecas no hubiese permitido el avance y la aplicación de las técnicas obtenidas.Más aun contando con dichas implementaciones en un área donde el código es libre y asequible acualquier persona que lo desee.

Un interés no debe solo ser el conocer los métodos formales, sino también su aplicación en un plano máscercano al desarrollo, es por eso que en el presente documento se presenta dos de las bibliotecas usadaspor muchos desarrolladores y por quienes aplican sus propias técnicas: OpenGL y VTK

5/17/2018 OPENGL Y VTK - slidepdf.com

http://slidepdf.com/reader/full/opengl-y-vtk 2/11

2

2.  OPENGL

2.1. DESCRIPCIÓN

OpenGL es un software de interfaz con el hardware grafico. Esta interfaz consiste de 150 comandos orutinas que permiten especificar las características de los objetos en el espacio. Esta biblioteca de rutinasesta diseñada para el desarrollo de aplicaciones graficas interactivas y es independiente del hardware,

por lo tanto, OpenGL no hace manejo de ventanas ni de interfaces de usuario. Además OpenGL no esuna biblioteca de alto nivel, ya que no posee rutinas que permitan la descripción de objetos complejos,de hecho las primitivas del OpenGL son: puntos, líneas y polígonos.

Se le considera sin lugar a dudas la API que prevalece en la industria para desarrollar aplicacionesgráficas 2D y 3D. Se le puede considerar el sucesor a la formidable IRIS GL-library de Silicon Graphicsque hizo tan popular las estaciones de trabajo SGI como plataforma predilecta para desarrollo científico,de ingeniería y de efectos especiales. SGI puso en OpenGL una buena parte de su pericia para hacer unaAPI para el futuro fácil de usar, intuitiva, portable y perceptiva a las redes. Al mismo tiempo podemosacreditar a SGI por darse cuenta de la importancia de los estándares abiertos. Varios fabricantes desoftware y hardware tomaron parte en la especificación de OpenGL y permanecen detrás suyo. Gracias aesto podemos decir que las aplicaciones OpenGL pueden ser fácilmente portadas a virtualmente

cualquier plataforma del mercado, desde PC windows95 a nuestro glorioso sistema Linux, pasando porestaciones UNIX de alto nivel y mainframes. La Architectural Review Board (Junta de Revisión deArquitecturas) gobierna sobre OpenGL, sus especificaciones, acepta o rechaza cambios y propone testsde conformidad.

En contraste con la antigua IRIS GL-library de SGI, OpenGL es por diseño independiente de plataformasy sistemas operativos. Es perceptiva a la red, de manera que es posible separar nuestra aplicaciónOpenGL en un servidor y un cliente que verdaderamente produzca los gráficos. Existe un protocolo paramover por la red los comandos OpenGL entre el servidor y el cliente. Gracias a su independencia delsistema operativo, el servidor y el cliente no tiene porque ejecutarse en el mismo tipo de plataforma,muy a menudo el servidor será un supercomputador ejecutando una compleja simulación y el clienteuna simple estación de trabajo mayormente dedicada a la visualización gráfica. OpenGL permite al

desarrollador escribir aplicaciones que se puedan desplegar en varias plataformas fácilmente.

Por encima de todo, OpenGL es una biblioteca estilizada de trazado de gráficos de alto rendimiento, hayvarias tarjetas gráficas aceleradoras y especializadas en 3D que implementan primitivas OpenGL a nivelhardware. Hasta hace poco, estas avanzadas bibliotecas gráficas solían ser muy caras y solo estabandisponibles para estaciones SGI u otras estaciones de trabajo UNIX. Las cosas están cambiando muydeprisa y gracias a las generosas licencias y el kit de desarrollo de controladores de SGI, vamos a vermás y más hardware OpenGL para usuarios de PCs.

Para conseguir la independencia del hardware de OpenGL, no se incluyeron comandos para tareas deventanas, ni para obtener entrada del usuario. Esto suena como un serio contratiempo pero como estotiene un simple arreglo. De hecho, para mantener el estilo y alto rendimiento de OpenGL, no se provee

de comandos para describir modelos complejos, tales como moléculas, aeroplanos, casas, pájaros, etc. EnOpenGL solo encontrarás primitivas de objetos geométricos: puntos, líneas y polígonos. El desarrolladortiene que construir sus propios modelos basándose en unas pocas y simples primitivas. Hay bibliotecasrelacionadas que proveen de modelos más complejos, y cualquier usuario se puede construir las suyas.

2.2. CARACTERÍSTICAS GENERALES

El estándar de gráficos más adoptadaOpenGL es el primer ambiente para desarrollar aplicaciones interactivas gráficas 2D y 3D.Subsecuentemente a su introducción en 1992, OpenGL se ha vuelto la industria más usada ampliamente

5/17/2018 OPENGL Y VTK - slidepdf.com

http://slidepdf.com/reader/full/opengl-y-vtk 3/11

3

y ha brindado aplicaciones gráficas con interfaz de programa(API) 2D y 3D , trayendo a miles deaplicaciones a una variedad de distintas plataformas de computadora. OpenGL adopta el desarrolloveloz e innovador de aplicaciones incorporando un amplio conjunto de herramientas de rendering, eltrazado de textura, efectos especiales, y otras funciones de poderosas de visualización. Diseñadorespueden descubrir el poder de OpenGL a lo largo de todas las populares plataformas de workstations,asegurando un amplio despliegue de aplicaciones.

La alta calidad visual y desempeño

Cualquier aplicación de la informática visual que requiere el máximo desempeño en animación 3D enCAD para simulación visual, puede aprovechar las capacidades de calidad superior de OpenGL. Estascapacidades permiten a diseñadores en los diversos mercados tales como televisión, CAD/CAM/CAE,entretenimiento, visualización médica, y realidad virtual para producir y desplegar de manera obligadagráficos 2D y 3D increíbles.

Standar de la industria

Un consorcio independiente, el Consejo de Revisión de la Arquitectura OpenGL-, guía la especificaciónde OpenGL. Con el apoyo de industria, OpenGL está el único verdaderamente open source, vendedor-

neutral, y norma gráfica multiplataforma.

EstableLas aplicaciones de OpenGL han estado disponibles por más de siete años en una variedad distinta deplataformas. Contribuyentes a la especificación son el buen control, y las actualizaciones propuestasanuncian a tiempo a los diseñadores a adoptar los cambios. Los requisitos de compatibilidad aseguranque estas aplicaciones existentes no se vuelven obsoletas.

Fiable y portátilTodas las aplicaciones OpenGL producen resultados de despliegue visuales consistentes en cualquierAPI compleja de OpenGL o hardware, sin tener en cuenta el sistema operativo.

EvolucionandoDebido a su completo y futurístico plan, OpenGL permite nuevas innovaciones del hardware para seraccesibles a través del API vía los mecanismos de extensión. De esta manera, las innovaciones aparecenen el API en una moda oportuna, permitiendo a los diseñadores de aplicaciones y a vendedores dehardware incorporar los nuevos rasgos en sus productos lanzados.

EscalableLas aplicaciones basadas en OpenGL pueden ejecutarse en sistemas que van de PCs convencionales, ysupercomputers. Como resultado, las aplicaciones pueden escalarse a cualquier clase de máquina que eldiseñador escoja.

Fácil usar

OpenGL se estructura bien con un plan intuitivo y comandos lógicos. Las eficientes rutinas de OpenGLtípicamente resultan en las aplicaciones con menos líneas de código que aquellas donde se hizoprogramas usando otras bibliotecas de gráficos o paquetes. Además, los usuarios de OpenGLencapsulan la información sobre el hardware subyacente, liberando al diseñador de la aplicación detener que diseñar para los rasgos del hardware específicos.

Bien documentadoSe han publicado numerosos libros sobre OpenGL, y hay mucho código como muestra disponible,haciendo de la información sobre OpenGL barata y fácil obtener.

5/17/2018 OPENGL Y VTK - slidepdf.com

http://slidepdf.com/reader/full/opengl-y-vtk 4/11

4

2.3. CARACTERÍSTICAS GRÁFICAS

Capacidades de Graficación y RenderOpenGL permite la descripción matemática de objetos a partir de sus primitivas. Permite la organizaciónde estos objetos en el espacio al tiempo que permite modificar el punto de vista y las propiedades de laclamara.

Permite calcular el color de los píxeles por asignación directa de color, por cálculo de iluminación, pormapeo de texturas o por una combinación de los tres. Permite convertir la descripción matemática deobjetos en formas y colores. Permite también la simulación de “efectos atmosféricos” como cubo deprofundidad, transparencia, neblina y render volumétrico.

Aquí incluiremos un listado general de sus cualidades:

  Primitivas geométricas Permiten construir descripciones matemáticas de objetos. Las actualesprimitivas son: puntos, líneas, polígonos, imágenes y mapas de bits.

  Codificación del Color en modos RGBA (Rojo-Verde-Azul-Alfa) o de color indexado.  Visualización y Modelado que permite disponer objetos en una escena tridimensional, mover

nuestra cámara por el espacio y seleccionar la posición ventajosa deseada para visualizar la

escena de composición.  Mapeado de texturas que ayuda a traer realismo a nuestros modelos por medio del dibujo de

superficies realistas en las caras de nuestros modelos poligonales  La iluminación de materiales es una parte indispensable de cualquier gráfico 3D. OpenGL

provee de comandos para calcular el color de cualquier punto, dadas las propiedades delmaterial y las fuentes de luz en la habitación.

  El doble buffering ayuda a eliminar el parpadeo de las animaciones. Cada fotogramaconsecutivo en una animación se construye en un buffer separado de memoria y mostrado solocuando está completo.

  El Anti-alizado reduce los bordes escalonados en las líneas dibujadas sobre una pantalla deordenador. Los bordes escalonados aparecen a menudo cuando las líneas se dibujan con bajaresolución. El anti-alizado es una ténica común en gráficos de ordenador que modifica el color y

la intensidad de los pixels cercanos a la línea para reducir el zig-zag artificial.  El sombreado Gouraud es una técnica usada para aplicar sombreados suaves a un objeto 3D y

producir una sutil diferencia de color por sus superficies.  El Z-buffering mantiene registros de la coordenada Z de un objeto 3D. El Z-buffer se usa para

registrar la proximidad de un objeto al observador, y es también crucial para el eliminado desuperficies ocultas.

  Efectos atmosféricos como la niebla, el humo y las neblinas hacen que las imágenes producidaspor ordenador sean más realistas. Sin efectos atmosféricos las imágenes aparecen a vecesirrealmente nítidas y bien definidas. Niebla es un término que en realidad describe un algoritmoque simula neblinas, brumas, humo o polución o simplemente el efecto del aire, añadiendoprofundidad a nuestras imágenes.

  El Alpha blending usa el valor Alfa (valor de material difuso) del código RGBA, y permite

combinar el color del fragmento que se procesa con el del pixel que ya está en el buffer. Imaginapor ejemplo dibujar una ventana transparente de color azul claro enfrente de una caja roja. ElAlpha blending permite simular la transparencia de la ventana, de manera que la caja vista através del cristal aparezca con un tono magenta.

  Los planos de plantilla permiten restringir el trazado a ciertas regiones de la pantalla.  Las listas de Display permiten almacenar comandos de dibujo en una lista para un trazado

posterior, cuando las listas de display se usan apropiadamente puedan mejorar mucho elrendimiento de nuestras aplicaciones.

5/17/2018 OPENGL Y VTK - slidepdf.com

http://slidepdf.com/reader/full/opengl-y-vtk 5/11

5

  Los Evaluadores Polinómicos sirven para soportar B-splines racionales no uniformes, esto espara ayudar a dibujar curvas suaves a través de unos cuantos puntos de referencia, ahorrándosela necesidad de acumular grandes cantidades de puntos intermedios.

  Características de Feedback, Selección y Elección que ayudan a crear aplicaciones que permitenal usuario seleccionar una región de la pantalla o elegir un objeto dibujado en la misma. El modode feedback permite al desarrollador obtener los resultados de los cálculos de trazado.

  Primitivas de Raster (bitmaps y rectángulos de pixels) 

Operaciones con Pixels  Transformaciones: rotación, escalado, perspectivas en 3D

Capacidad de desarrollo de interfazOpenGL no permite el desarrollo de interfaces graficas por si solo. Sin embargo existen algunas bibliotecas de alto nivel desarrolladas sobre OpenGL que facilitan esta labor.

Requerimientos de hardware y softwareEl OpenGL no requiere en particular ningún hardware, pero existe en el mercado una gran cantidad detarjetas aceleradoras graficas que incluyen las rutinas del OpenGL en el hardware, lo que incrementanotablemente la eficiencia en gráficos en aplicaciones de tiempo real. El OpenGL requiere decompiladores C, C++ y de FORTRAN que puedan llamar rutinas compiladas en C. Normalmente se

requiere una distribución de OpenGL que incluya el software que lo hace compatible con el ambientegrafico que se esta utilizando, por ejemplo GLX para correr en ambiente X o WinGL para correr enmaquinas Win9x o win NT.

PortabilidadLa biblioteca OpenGL esta desarrollada en ANSI C para garantizar la compilación en diferentesplataformas. Además existen una serie de versiones precompiladas para Windows, Macintosh yambiente X.

DocumentaciónLa documentación e información sobre las versiones comerciales y de dominio publico de la bibliotecaOpenGL se encuentra en el sitio Web http://www.opengl.org.

Mesa 3-D Graphics LibrayMesa1 es una biblioteca grafica de dominio público con una interfaz basada en OpenGL con autorizaciónde Silicon Graphics Inc. Casi todos los programas escritos en base a la biblioteca OpenGL funcionan sincambios con la biblioteca Mesa, sin embargo el autor2 dice que Mesa no es un reemplazo completo delOpenGL, por este motivo existe un documento en el web3 donde se especifican las pruebas decompatibilidad entre estas dos bibliotecas graficas.

EXTENSIONES DE OPENGL

GluGLU es el acrónimo de OpenGL Utility Library (Librería de utilidad de OpenGL). Esta librería está

compuesta por una serie de funciones de dibujo de alto nivel que, a su vez, se basan en las rutinasprimitivas de OpenGL. Normalmente se distribuye con esta librería.

Las funciones de GLU se reconocen con solo verlas ya que todas comienzan con el prefijo glu, porejemplo: gluOrtho2D(), que define una matriz de proyección de dos dimensiones.

GlutGLUT (OpenGL Utility Toolkit) es una sencilla API multiplataforma que provee una reducidafuncionalidad para el manejo de ventanas e interacción por medio de teclado y ratón. Su utilidad

5/17/2018 OPENGL Y VTK - slidepdf.com

http://slidepdf.com/reader/full/opengl-y-vtk 6/11

6

principal es permitir el desarrollo de aplicaciones con OpenGL sin demasiado esfuerzo, dejando a unlado la complejidad de otros sistemas de ventanas.

GluiGLUI es una librería de interfaz de usuario escrito en C++. Es el acrónimo de "OpenGL User InterfaceLibrary" (Librería de interfaz de usuario de OpenGL). Está basado en GLUT, y proporciona elementos decontrol tales como botones, cajas de selección y spinners para aplicaciones que usen OpenGL. Es

independiente del sistema operativo, sustentándose en GLUT para manejar los elementos dependientesdel sistema, como ventanas y el control del ratón.

En sí esta librería permite al usuario obtener una interfaz más optimizada y bajo una perspectiva deaplicación común con controles que facilitan su uso.

Fue escrito, en un primer momento, por Paul Rademacher para facilitar su trabajo académico. Ahoramantiene el proyecto Nigel Stewart.

EJEMPLOS

Figura 2.3.1 Modelado de representaciones Figura 2.3.2 Generación virtual de rostros

matemáticas

Figura 2.3.3 Simulación de escenarios 3D (cámara) Figura 2.3.4 Superficies bezier

3.  VTK

5/17/2018 OPENGL Y VTK - slidepdf.com

http://slidepdf.com/reader/full/opengl-y-vtk 7/11

7

3.1. DESCRIPCIÓN

El Visualization ToolKit (VTK) es un software de dominio público, distribuido bajo el modelo OpenSource, para computación gráfica en 3D, procesamiento de imágenes y visualización. El diseño de esta biblioteca esta fuertemente basado en objetos.

El VTK forma parte de las bibliotecas de alto nivel. En esta sección se agrupan las bibliotecas queproveen rutinas de alto nivel para aplicar algoritmos de visualización sobre estructuras de datosestándar. Estas bibliotecas suelen estar construidas sobre las bibliotecas de interacción con el hardware.

El modelo gráfico en VTK está a un nivel más alto de abstracción que las las bibliotecas de renderingcomo PEX. Esto significa que es muy más fácil de crear gráficos útiles y aplicaciones de visualización.Las aplicaciones de VTK pueden escribirse directamente en C++, Tcl, Java, o Pitón. De hecho, usando loslenguajes interpretados por Tcl o Pitón con Tk, y Java igual con sus clases de librerias GUI, es posiblerealmente construir aplicaciones útiles, muy rápidamente.

El software es un verdadero sistema de la visualización, no le permite simplemente visualizar lageometría. VTK contiene a una gran variedad de algoritmos de la visualización incluso el métodos

ecalares, vectoriales, de tensores, de textura, y volumétricos; y técnicas de modelado avanzadas como elmodelado implícito, reducción de polígonos, el aplanando de mallas, recorte, contorneando, ytriangulación de Delaunay. Es más, VTK integra docenas de algoritmos de imágenes directamente en elsistema para que usted puede mezclar procesamiento en 2D / 3D.

3.2. CARACTERÍSTICAS GRÁFICAS

Capacidades de Graficación y Render

VTK es un sistema real de visualización ya que incluye capacidades para desplegar primitivasgeométricas al tiempo que incluye algoritmos para la visualización de campos escalares, camposvectoriales, visualización de tensores, mapeo de texturas, así como métodos volumétricos para

representación de iso-superficies y volúmenes.

VTK incluye además técnicas avanzadas de modelado como lo son la reducción de polígonos, suavizadode mallas, triangulación de Delauny, etc. Cuenta también con una amplia gama de rutinas paramanipulación de imágenes, lo que permite incluir imágenes 2D en las escenas 3D en formas de mapas,texturas o imágenes de fondo.

Capacidad de desarrollo de interfazPosee un conjunto de capas de enlace con los lenguajes Tcl/Tk y Python/Tk y con el Java, lo cual permitedesarrollar la interfaz del usuario con alguno de estos lenguajes.

Requerimientos de hardware y software

El VTK esta desarrollada completamente en C++, y tiene desarrollada las interfaces para utilizar lasrutinas desde Tcl, Python, y Java. La instalación de VTK requiere soporte para OpenGL, lo cual puedeser con una versión comercial de OpenGL o con algunas de las distribuciones de dominio públicoincluida la distribución MESA (versión 3.0-2 o superior).

Igualmente si se desea utilizar la interfaz con Tcl/Tk se debe instalar la versión 8.0.2-16 o superior. Porotro lado la biblioteca de funciones de VTK es bastante grande por lo que se recomienda el uso dehardware de aceleración gráfica con soporte para OpenGL y Z-buffer, así como el uso de unacomputadora multiprocesador con suficiente RAM para manejar los datos.

5/17/2018 OPENGL Y VTK - slidepdf.com

http://slidepdf.com/reader/full/opengl-y-vtk 8/11

8

PortabilidadAños de experiencia con los gráficos en computadora han hecho escépticos a quien distribuyen VTK deque cualquier sola biblioteca de los gráficos se volverá un estándar. Incluso OpenGL que es unampliamente 3D estándar, puede complementarse por el la reciente agitación e interés en 3D juegos,multi-medios de comunicación, y acceso a internet. Por consiguiente, VTK brinda un de alto nivel deabstracción para gráficos 3D que serían independientes las nuevas implementaciones de bibliotecas degráficos.

En sí se puede decir que la funcionalidad del VTK, se pone en manifiesto dentro de cualquier plataformaUnix, PC, o Mac con compilador de C++ y soporte para OpenGL.

DocumentaciónLa documentación de VTK incluye un libro publicado por Prentice-Hall ( The Visualization Toolkit, AnObject-Oriented Approach To 3D Graphics, 2nd edition ISBN 0-13-954694-4). y está disponible en elWeb8.

3.3. MODELOS DE OBJETOS VTK

Para los inexpertos en el mundo de la visualización, vamos a explicar de un modo sencillo la estructura

de VTK; porque esto permite que comprendamos mejor cada uno de los pasos que iremos realizando.Por un momento, imaginad que estáis en la butaca del cine, viendo una película de animación, como porejemplo “La Edad de Hielo”. Si nos centramos en una única escena y la describimos, vemos personajesanimados (actores), luces de diferentes tonalidades, cámaras que modifican el punto de vista,propiedades de los personajes (color, forma, etc.). Aunque no lo creáis todos estos conceptos son la basede la visualización gráfica. Veamos dicha estructura.

El toolkit de visualización VTK está diseñado a partir de dos modelos claramente diferenciables: elmodelo gráfico y el modelo de visualización.

Modelo gráfico El modelo gráfico captura las principales características de un sistema gráfico 3D, de un modo fácil de

entender y usar , ello se explica en la Figura 3.3.1.

Figura 3.3.1La abstracción se basa en la industria del cine. Los objetos básicos que constituyen este modelo son:vtkRenderer, vtkRenderWindow, vtkLight, vtkCamera, vtkProp, vtkProperty, vtkMapper,vtkTransform. Todos ello no son más que funciones y procedimientos que incluye dicha librearía y queno hacen más que gestionar el modelo y la graficación, bien 3D o 2D, en la pantalla del computador.Dichos módulos se reconocen fácilmente, dado que todos tienen el prefijo vtk en ellos.

Modelo de visualización

5/17/2018 OPENGL Y VTK - slidepdf.com

http://slidepdf.com/reader/full/opengl-y-vtk 9/11

9

El papel del modelo gráfico es transformar datos gráficos en imágenes, mientras que el papel de modelode visualización transforma información en datos gráficos; esto significa que el modelo de visualizaciónes el responsable de construir la representación geométrica que se renderiza mediante el modelo gráfico.VTK se basa en la aproximación de los datos para transformar la información en datos gráficos. Hay dostipos básicos de objetos, descritos en la tabla a continuación, involucrados en dicha aproximación:vtkDataObject y vtkProcessObject.

vtkDataObject Clase genérica que permite representardiferentes tipos de datos. Los objetos dedatos consisten en estructuras geométricasy topológicas (puntos y celdas), y tambiénen atributos asociados, tales comoescalares o vectores.

vtkProcessObject Objeto que hace referencia a filtros, queactúan sobre los actores modificándolos

Entre los diferentes tipos de datos que pueden constituir un objetos son, entre otros, puntos, rectas,polígonos, puntos estructurados, mallas estructuradas y no estructuradas, etc. Ver Figura 3.3.2

Figura 3.3.2 Tipos de datos: a) datos poligonales, b) puntos estructuradosc) malla no estructurada d) malla estructurada.

3.4. EJEMPLOS

Visualización médica Sistema de Información Geográfica: GIS Rendering de volúmenes

5/17/2018 OPENGL Y VTK - slidepdf.com

http://slidepdf.com/reader/full/opengl-y-vtk 10/11

10

Dinámica de Fluidos Visualización de flujos Visualización de tensores Computacional: CFD 

Ejemplo de código:

Hello Cone – versión C++

En este ejemplo creamos y presentamos un cono representado con una malla poligonal. (La idea originalpara este ejemplo está adaptada del Inventor Mentor de Wernecke [12].) El ejemplo se lleva a cabo en

C++ y muestras un conducto simple con ningún filtro intermedio.

#include "vtk.hh"main (){vtkRenderMaster rm;vtkRenderWindow *win=rm.MakeRenderWindow();vtkRenderer *ren=win->MakeRenderer();vtkRenderWindowInteractor *iren=win->MakeRenderWindowInteractor();//create an actor and give it cone geometry

vtkConeSource *cone = new vtkConeSource;cone->SetResolution(8);vtkPolyMapper *mapper = new vtkPolyMapper;mapper->SetInput(cone->GetOutput());vtkActor coneActor = new vtkActor;coneActor->SetMapper(mapper);// assign our actor to the rendererren->AddActors(coneActor);// draw the resulting scenewin->Render();//start event loopiren->Start();

}

Hay algunos rasgos importantes de este ejemplo. Primero, el vtkRenderWindowInteractor es unaimplementación especial para 3D. Él captura el mouse y los eventos de la pulsación en la ventanamostrada.

Las funciones típicas incluyen los wireframe/surface display, picking, y una herramienta en 3D para lavisualizacion. Segundo, dado que no se crean luces y una cámara, el sistema automáticamente los crea.Finalmente, este código fuente compilará y corre en cualquier Unix (usando OpenGL, GL, el XGLR de

5/17/2018 OPENGL Y VTK - slidepdf.com

http://slidepdf.com/reader/full/opengl-y-vtk 11/11

11

Sol, o El renderer de Starbase de HP), o Windows 95 o sistema de NT (usando OpenGL). El sistemaselecciona el renderer correcto automáticamente basado en lo que está disponible en el sistema.

4.  CONLUSIONES

  Las librería de código abierto para gráficos no tan solo permiten el diseño e implementación deprimitivas o transformaciones convencionales, sino que facilitan al usuario la oportunidad de

implementar sistemas gráficos de alta calidad y con gran gestión de procedimientos y funciones.Es así, que muchas aplicaciones como video juegos así como software de desarrollo gráfico basan su implementación en librerías de código abierto como OpenGL y VTK. 

  Dado el las librerías se enmarcan dentro del concepto del Open Source, siempre es posible lamejora y la innovación en las funciones con las que se cuentan por defecto. Así pues, lanecesidad de modificar ciertas líneas que permitirán un mejor desempeño del software oprograma que se esté elaborando, queda satisfecha al poder modificar y acceder al código demanera irrestricta. 

  Sin lugar a dudas, OpenGL y VTK son unas de las librerías más usadas por los desarrolladores,dado que en su mayoría, los paquetes comerciales requieren licencia, pago, y no se distribuyen

con el código abierto. VTK y OpenGL en cambio, están dentro de ese grupo donde el código y laimplementación es gratuita, y no requiere licencia (excepto algunos métodos patentados), tienesoporte on-line, documentación, y listas de modificaciones y actualizaciones.

  La potencia de la graficación que proveen OpenGL y VTK, es impresionante quedandodemostrada en las áreas, no solo donde se ve innata la graficación como lo serían la animación oel cine, sino en la medicina, meterología, astronomía, física. Todas estas áreas requieren siemprede simulaciones y gráficos en 3D que permitan orientar a los profesional del cómo sucederán lascosas en casos hipotéticos, siendo un requisito indispensable mostrarlos de manera casi real enun computador. 

REFERENCIAS BIBLIOGRÁFICAS

[1]   J. NEIDER , T. DAVIS, M. WOO, OpenGL Programming Guide[en línea], Silicon Graphics, disponible en:

<http://fly.srk.fer.hr/~unreal/theredbook/>

[2]  R. PAULSEN, Installing VTK 4.1.x on a windows PC , Informe inédito, 2002 

[3]  W.J. SCHROEDER, K. MARTIN, W.E. LORENSEN, The Visualization Toolkit: An Object-Oriented Approach to 3D

Graphics , Prentice Hall, 1997 

[4]  A. FERREIRO, J RODRIGUEZ, Visualización 3D con VTK (Visualization Toolkit) GRÁFICAS 3D[en línea], Linux

Magazine, 2005, disponible en: 

<http://www.linux-magazine.es/issue/06/PythonVTK.pdf> 

[5]  M. ANGEL SEPÚLVEDA , Qué es OpenGL?[en línea] , Linux Focus, 1998, disponible en: 

<http://www.tldp.org/linuxfocus/Castellano/January1998/article15.html> 

[6]  ECI, Introducción a VTK [en línea], 2002, disponible en: 

<http://www.dc.uba.ar/eci/2002/VC/vtk.html> 

[7]  KITWARE INC , What is VTK? [en línea], The Visualization Toolkit, 2003, disponible en: 

<http://public.kitware.com/VTK/> 

[8]  OPENGL, What is OpenGL: OpenGL Overview[en línea] , 2003, disponible en: 

<http://www.opengl.org/about/overview.html#1>