Herramientas de software libre para el desarrollo de
aplicaciones de visualización 3D en tiempo real
Antonio Seoane (
[email protected])
II Xornadas de informática gráfica e software libre. FIC 2007
Excepto los logotipos e imágenes,
que son propiedad de sus
respectivos autores o fabricantes
Contenido
Introducción
Herramientas de desarrollo de aplicaciones 3D
– Frameworks
– Scenegraphs
– Motores gráficos
II Xornadas de informática gráfica e software libre. FIC 2007
Excepto los logotipos e imágenes,
que son propiedad de sus
respectivos autores o fabricantes
Introducción
• Visualización en tiempo real:
Implica generar al menos 15 imágenes por segundo
Permite la interacción con el usuario
• Visualización 3D en tiempo real:
Permite el desarrollo de nuevos tipos de aplicaciones y ofrece muchas
ventajas: mayor realismo, mejor visualización, etc.
Campos de aplicación:
• Videjuegos: mercado de gran importancia en el sector del entretenimiento
• Simulación y entrenamiento
• Educación o divulgación
• Visualización científica: p.e. en medicina
• Etc.
II Xornadas de informática gráfica e software libre. FIC 2007
Excepto los logotipos e imágenes,
que son propiedad de sus
respectivos autores o fabricantes
Introducción
¿Que software que interviene o necesitamos en el desarrollo de
aplicaciones 3D?
II Xornadas de informática gráfica e software libre. FIC 2007
Excepto los logotipos e imágenes,
que son propiedad de sus
respectivos autores o fabricantes
Introducción:
Sistema Operativo
Sistema operativo
Sistema Operativo
II Xornadas de informática gráfica e software libre. FIC 2007
Excepto los logotipos e imágenes,
que son propiedad de sus
respectivos autores o fabricantes
Introducción:
Sistema Operativo
• Sistema operativo:
– Software libre: Linux, FreeBSD, etc.
– Software propietario: Windows, MacOS, etc.
– El SO permite el acceso al hardware gráfico mediante los controladores
instalados en el sistema
– En el desarrollo de aplicaciones 3D:
• Cualquier SO habitual (al menos Linux y Windows) es bueno para el desarrollo de
aplicaciones 3D de alta calidad
• Desde el punto de vista del software libre, hay SO abiertos, pero…:
¿Existen controladores abiertos, con un buen rendimiento, que permitan el acceso al
hw gráfico más potente y actualizados frecuentemente?
II Xornadas de informática gráfica e software libre. FIC 2007
Excepto los logotipos e imágenes,
que son propiedad de sus
respectivos autores o fabricantes
Introducción:
APIs
APIs (Application Programming Interfaces)
API
Sistema Operativo
II Xornadas de informática gráfica e software libre. FIC 2007
Excepto los logotipos e imágenes,
que son propiedad de sus
respectivos autores o fabricantes
Introducción:
APIs
• APIs para el desarrollo de aplicaciones gráficas:
– Proporcionan un conjunto de funciones para dibujar geometría, y
especificar su apariencia (color, textura, etc) utilizando para ello el hw
gráfico del sistema
– Dos alternativas:
II Xornadas de informática gráfica e software libre. FIC 2007
Excepto los logotipos e imágenes,
que son propiedad de sus
respectivos autores o fabricantes
Introducción:
APIs
• DirectX (www.microsoft.com/directx)
– Desarrollado por Microsoft
– Software cerrado pero gratuito
– API más utilizado en el desarrollo de videojuegos
– Versiones más recientes:
• DirectX9 (Windows XP o Vista)
• 2006: DirectX10 (requiere Windows Vista)
– El diseño de DirectX10 se realizó en conjunto con desarrolladores de hardware,
especialistas en visualización, desarrolladores de juegos; con el fin de solucionar
los cuellos de botella más importantes y cubrir las nuevas necesidades de los
desarrolladores
– Actualmente es el API más evolucionado
– Mucho software libre está desarrollado sobre DirectX
II Xornadas de informática gráfica e software libre. FIC 2007
Excepto los logotipos e imágenes,
que son propiedad de sus
respectivos autores o fabricantes
Introducción:
APIs
• DirectX
Ventajas:
• Evolución rápida
• API muy completo y documentado
• Lenguaje para el desarrollo de shaders muy potente (mucho más completo
que el de OpenGL)
Inconvenientes:
• No es portable, sólo para desarrollar aplicaciones sobre Windows o Xbox
II Xornadas de informática gráfica e software libre. FIC 2007
Excepto los logotipos e imágenes,
que son propiedad de sus
respectivos autores o fabricantes
Introducción:
APIs
• OpenGL (http://www.opengl.org):
– Desarrollado por SGI
– Especificación abierta, pero normalmente la implementación utilizada es cerrada
y proporcionada por el desarrollador del hardware
– Portable: Windows, Linux, FreeBSD, MacOS, Irix, HP-UX, etc.
– Versión más reciente: OpenGL 2.1
– Muy utilizado en simulación y en el desarrollo de aplicaciones científicas,
principalmente porque:
• Las máquinas utilizadas hace años en simulación no utilizaban Windows y no había
hardware gráfico de consumo potente
• Fue el primer API gráfico y debido a que se trata de una especificación abierta, fue
adoptada rápidamente por los fabricantes
II Xornadas de informática gráfica e software libre. FIC 2007
Excepto los logotipos e imágenes,
que son propiedad de sus
respectivos autores o fabricantes
Introducción:
APIs
• OpenGL:
Ventajas:
• Portable
• Especificación abierta
• Bien documentado
Inconvenientes:
• Debido a la política de añadir extensiones comunes y de fabricantes comunes:
– API confuso, debido al conjunto de tokens repetidos y extensiones no compatibles
– Necesidad de inicializar extensiones manualmente
– Mucha burocracia en la evolución de la especificación
• Evolución lenta en los últimos años: DirectX ha evolucionado mucho más rápido
• Evolución incierta:
– SGI deja el control del desarrollo de OpenGL en manos del Khronos Group
– Muchos cambios futuros, y posibles nuevos estándares (OpenGL ES)
• Lenguaje de definición de shaders más limitado que el de DirectX
II Xornadas de informática gráfica e software libre. FIC 2007
Excepto los logotipos e imágenes,
que son propiedad de sus
respectivos autores o fabricantes
Introducción:
Framework, toolkit, scenegraph o engine
Framework, toolkit, scenegraph o engine:
– Proporcionan funcionalidades de alto nivel: visualización, carga de modelos 3D,
etc
– Nos permite manejar una escena 3D y visualizarla
Framework, Toolkit, Scenegraph, Engine
API: OpenGL/DirectX
SO: Windows/Linux/MacOS
II Xornadas de informática gráfica e software libre. FIC 2007
Excepto los logotipos e imágenes,
que son propiedad de sus
respectivos autores o fabricantes
Introducción:
Aplicación
Aplicación:
– Funcionalidades específicas de nuestra aplicación
Aplicación
Framework, Toolkit, Scenegraph, Engine
API: OpenGL/DirectX
SO: Windows/Linux/MacOS
II Xornadas de informática gráfica e software libre. FIC 2007
Excepto los logotipos e imágenes,
que son propiedad de sus
respectivos autores o fabricantes
Introducción
Pero ademas…
Aplicación
Framework, Toolkit, Scenegraph, Engine
API: OpenGL/DirectX
SO: Windows/Linux/MacOS
II Xornadas de informática gráfica e software libre. FIC 2007
Excepto los logotipos e imágenes,
que son propiedad de sus
respectivos autores o fabricantes
Introducción
Pero ademas… la aplicación utiliza distintos tipos de datos:
modelos 3D, texturas, escenas, shaders, etc.
Aplicación
Framework, Toolkit, Scenegraph, Engine
DATOS
API: OpenGL/DirectX
SO: Windows/Linux/MacOS
II Xornadas de informática gráfica e software libre. FIC 2007
Excepto los logotipos e imágenes,
que son propiedad de sus
respectivos autores o fabricantes
Introducción
Y…
Aplicación
Framework, Toolkit, Scenegraph, Engine
DATOS
API: OpenGL/DirectX
SO: Windows/Linux/MacOS
II Xornadas de informática gráfica e software libre. FIC 2007
Excepto los logotipos e imágenes,
que son propiedad de sus
respectivos autores o fabricantes
Introducción
Y… hay que crear dicho contenido:
Necesitamos herramientas de creación de contenido digital (DCC)
Aplicaciones
DCC
Aplicación
Framework, Toolkit, Scenegraph, Engine
DATOS
API: OpenGL/DirectX
SO: Windows/Linux/MacOS
II Xornadas de informática gráfica e software libre. FIC 2007
Excepto los logotipos e imágenes,
que son propiedad de sus
respectivos autores o fabricantes
Introducción:
Creación de contenido digital
• Contenido digital de una aplicación 3D:
– La información visualizada es tan importante como la calidad de
visualización
– Un motor con unas capacidades impresionantes no sirve de nada si no
hay nada que mostrar
– El desarrollo del software libre se ha centrado en el desarrollo de
herramientas para la visualización, pero no para crear el contenido que
se visualiza
II Xornadas de informática gráfica e software libre. FIC 2007
Excepto los logotipos e imágenes,
que son propiedad de sus
respectivos autores o fabricantes
Introducción:
Creación de contenido digital
• Software de creación de contenido digital:
– Genérico:
• Comerciales: XSI, Max, Maya, etc.
• Código abierto: Blender, etc.
– Creadores de mundos: específicos de cada motor
– Editores de shaders:
• Gratuitos: Nvidia FX Composer, ATI Rendermonkey
• Problema: escasísimo número de herramientas de software libre
para la creación de contenido digital:
– Blender es el más popular
– No hay editores de shaders
– Muchos motores gráficos de software libre, pero.. Sin herramientas de
edición de escenas o mundos (empiezan a aparecer ahora)
II Xornadas de informática gráfica e software libre. FIC 2007
Excepto los logotipos e imágenes,
que son propiedad de sus
respectivos autores o fabricantes
Herramientas de desarrollo de aplicaciones 3D
• Requisitos de una herramienta avanzada para el desarrollo de
aplicaciones de visualización 3D en tiempo real
• Generales: diseño orientado a objetos, documentacion, etc.
• Scripting
• Editores de escenas
• Física: detección de colisiones, física de
Comentarios de: Herramientas de software libre para el desarrollo de aplicacion 3D en tiempo real (0)
No hay comentarios