videaLAB
Uso de software libre en investigación
y explotación de aplicaciones gráficas
Alberto Jaspe
(
[email protected])
Índice
El laboratorio videaLAB
I.
II. SW libre vs. SW propietario
III. La política de desarrollo del
laboratorio y el SW Libre
IV. SW Libre en aplicaciones gráficas
V. Despedida y cierre
I. El laboratorio videaLAB
videaLAB
•
•
•
•
http://videalab.udc.es
Desde 1993
9 -13 personas de formación pluridisciplinar
- Ingeniería Civil
- Arquitectura
Líneas de Investigación
•
•
•
•
Visualización aplicada a proyectos de ingeniería
Recreación histórica
Simulación
Realidad Virtual
- Informática
- Historia
- Bellas Artes
vídeo
II. SW libre vs. SW propietario
SW Libre.ventajas
Bajo coste
Independencia de sectores privados
Seguridad y privacidad
Respeto a los estándares
Continuidad
•
•
•
•
•
• Menores restricciones legales
SW Libre.inconvenientes
•
En muchos casos:
– Carencias de documentación
– Carencias de soporte
– Desarrollos caseros, sin planificación
de ningún tipo
SW Propietario.ventajas
Respaldo de una empresa
Documentación
Soporte
•
•
•
• Mejor acabado de las aplicaciones
SW Propietario.inconvenientes
•
•
•
También puede haber “chapuzas”,
sólo que no están a la vista
Dependencia de una entidad
privada:
Parches
Vida del software
Si algo falla, no puedes arreglarlo
–
–
III. La política de
desarrollo del laboratorio y
el SW Libre
El Proceso
Idea
Encargo
Estudio
Viabilidad
Especificaciones
Trabajo
“artístico”
Trabajo
“tecnológico”
Documentación
Análisis
Diseño
Implementación
Pruebas
Mantenimiento
Producto
(grosso modo)
Coordinación
•
•
•
Imprescindible para la buena
marcha de un proyecto
Hasta 10 personas trabajando en un
mismo proyecto
Además del factor humano, se
necesita un sistema central
Coordinación
•
•
•
Software para la coordinación de
proyectos
Interfaz web
PHP + MySql
Coordinación
–
–
–
–
–
–
–
–
–
–
–
–
–
Calendario
Libreta de Direcciones
Gestor de Contactos
Cliente de email
InfoLog
Gestor de Proyectos
Gestor de Ficheros
Plan de Tiempos
Wiki
Base de Conocimiento
Motor de flujos de trabajo
TODOs
Etc.
Coordinación
Análisis y Diseño
•
•
•
•
•
UML (Unified Modeling Language)
Diagramas de clases, casos de uso,
diagramas de secuencia
Patrones de diseño
SW Libre: dia
SW Propietario: magicdraw, Visio
Desarrollo.portabilidad
•
•
Punto clave en nuestros desarrollos
Los desarrolladores utilizamos
windows o linux “indistintamente”
• Windows, Linux, IRIX
•
El SW Libre suele ser portable
Desarrollo.portabilidad
•
Ventajas:
–
–
Se reduce la dependencia de
entidades externas
Seleccionamos el sistema operativo
más adecuado para la explotación
– Mejora el ambiente de trabajo ☺
Desarrollo.portabilidad
•
Desventajas:
– No podemos depender de librerías no
cross platform *
“CommonW32”: posix, ffmpeg, ogg,
lib(X), xerces, gdal, etc, etc, etc…
Trabajo duplicado
–
–
Desarrollo.estándares
•
•
•
•
La portabilidad nos obliga a utilizar
estándares
Mejora la comunicación entre sistemas
(compatibilidad)
Mejora la comunicación entre
entidades/personas
El SW Libre suele utilizar estándares
Desarrollo.Control de Versiones
•
•
•
Hasta 5 programadores trabajando
en un mismo proyecto
Concurrencia
Redundancia de código fuente
Desarrollo.Control de Versiones
•
•
•
•
Mecanismo de almacenaje de cada uno
de los ítems que deba gestionarse
(archivos de texto, imágenes,
documentación...)
Posibilidad de modificar, mover, borrar
cada uno de los elementos
Histórico de las acciones realizadas con
cada elemento pudiendo volver a un
estado anterior dentro de ese historial
Muchas mejoras con respecto a CVS
Desarrollo.Control de Versiones
•
Clientes:
Linux: svn
–
– Windows: TortoiseSVN
Desarrollo.Lenguajes
•
•
•
C / C++ (estándar)
El paradigma de la OO es muy
adecuado para este tipo de
aplicaciones
Scripting: perl (multiplataforma)
Desarrollo.IDEs
•
•
–
–
–
–
IDE:
Libres: Kdevelop, Anjuta, FTE + xterm
Propietario: Visual Studio
Compilador:
Libre: GCC / G++
Propietario: Visual Studio
Desarrollo.IDEs
Desarrollo.IDEs
Desarrollo.IDEs
Desarrollo.Construcción
•
•
•
•
•
Proyectos con más de 300 ficheros
fuente, con multitud de módulos
Largos tiempos de compilación
Necesaria una herramienta de
construcción (compilar/enlazar)
automática
Libre: Makefile / Scons
Propietaria: Visual Studio
Desarrollo.Depuración
•
•
Depurar aplicaciones tan grandes
puede ser realmente tedioso
Con el SW Libre tienes el código
fuente, así que permite depurar sin
necesidad de “magia negra”
Desarrollo.Depuración
Desarrollador
fallecido depurando
Desarrollo.Depuración
• Muy buenas herramientas de
depuración libres:
– GDB
–
–
Valgrind
Electric Fence
•
Propietarias: Visual Studio, Rational
Purify
Desarrollo.Documentación
•
•
Documentar todo y cuanto antes !!!
Herramientas:
– Doxygen
–
–
Latex
TEX to HTML
Explotación
•
–
–
–
–
Selección del SO según necesidades:
Aplicación de sencillo mantenimiento =>
Windows
Aplicación de complejo mantenimiento =>
Linux
Para distribuir => Windows
Para exponer => Linux/Windows
Servicios Básicos
Servidores Linux (GNU/Debian)
•
• WEB: apache2
Correo: pop3d
•
FTP: proftpd
•
•
Disco: samba
Cómo aportamos a la
comunidad opensource
•
•
•
Creando parches para los bugs que
encontramos
Aportando nuevas funcionalidades
Respondiendo en las listas de
correo
• Mantenimiento de paquetes
IV. SW Libre para
aplicaciones en tiempo
real
Introducción a una
aplicación gráfica
interactiva
Aplicación
I/O Interacción Etc.
API Audio
driver
Audio
…
IO dev.
Cpu…
API Gráfico
driver
GPU
CPU
scenegraph
API Físicas
driver
PPU
OpenGL
Aplicación
I/O Interacción Etc.
API Audio
driver
Audio
IO dev.
API Gráfico
driver
GPU
CPU
scenegraph
API Físicas
driver
PPU
OpenGL
Open Graphics Library
Especificación que define un API
•
•
• Multilenguaje
• Multiplataforma
•
•
SGI (1992)
Competidor DirectX
OpenSceneGraph
API Gráfico
driver
GPU
CPU
scenegraph
API Físicas
driver
PPU
Aplicación
I/O Interacción Etc.
API Audio
driver
Audio
IO dev.
OpenSceneGraph
•
•
•
•
•
•
Inspirada en Performer (SGI)
Robert Osfield (1999)
Librería de gráficos 3D en C++
Juegos, realidad virtual, simulación,
visualización científica, etc.
Permite gestionar un estructura jerárquica que
representa la escena 3D de manera cómoda y
eficiente
Contiene decenas de módulos para no
reinventar la rueda (I/O ficheros, gestionar
ventanas SO, I/O, operaciones matemáticas,
fuentes de textoetc.)
OpenSceneGraph
•
Un proyecto de SW Libre modélico!
– Mucho feedback de la comunidad
–
Soporte profesional y no profesional
(lista de correo)
Trabajo a largo plazo y con objetivos
marcados
–
– Muchos ejemplos de uso
OpenSceneGraph
•
•
•
El mayor de los problemas: la
carencia de documentación!
“Luke, use the source!”
Libro de OSG “al caer”
http://openscenegraph.org
OpenAL
Aplicación
I/O Interacción Etc.
API Audio
driver
Audio
IO dev.
API Gráfico
driver
GPU
CPU
scenegraph
API Físicas
driver
PPU
OpenAL
API de sonido tridimensional
•
• Multiplataforma
•
•
Estilo de código de OpenGL
Completamente independiente del
motor 3D
• Módulo en OSG: osgAL
Open Dynamics Engine
API Gráfico
driver
GPU
CPU
scenegraph
API Físicas
driver
PPU
Aplicación
I/O Interacción Etc.
API Audio
driver
Audio
IO dev.
Open Dynamics Engine
Open Dynamics Engine
•
•
•
•
•
•
Simulación física de cuerpos rígidos
Detector de colisiones
Multiplataforma
API C / C++
Completamente independiente del motor 3D
Integración con OSG…
Cal3D
•
•
•
Librería de animación por huesos
Cinemática directa
Integración con herramientas de
autor
C++
•
• Multiplataforma
• Módulo integración: osgcal2
Cal3D
Librerías propias
API Gráfico
driver
GPU
CPU
scenegraph
API Físicas
driver
PPU
Aplicación
I/O Interacción Etc.
API Audio
driver
Audio
IO dev.
V. Despedida y Cierre
Conclusiones
•
•
•
No todo es blanco o negro:
SOLUCIONES MIXTAS!
En general, existe software libre de
calidad para aplicaciones de
gráficos en tiempo real
En videaLAB lo utilizamos ☺
Cómo iniciarse
•
•
•
•
•
•
•
Aprender C++
Conseguir un entorno propio de
desarrollo
Leer documentación / listas de correo
Jugar con los ejemplos
Marcarse objetivos a corto plazo
No dudar en preguntar
Disfrutar
Algunas Fuentes de
Documentación
•
•
•
•
•
•
http://developer.nvidia.com
http://acm.org/dl (Papers SIGGRAPH)
http://codepixel.com
http://openscenegraph.org
http://opengl.org
http://nehe.gamedev.net/
¿Dudas?
GRACIAS !
http://videalab.udc.es
Alberto Jaspe
[email protected]
Comentarios de: videaLAB (0)
No hay comentarios