PDF de programación - videaLAB

Imágen de pdf videaLAB

videaLABgráfica de visualizaciones

Publicado el 24 de Febrero del 2020
309 visualizaciones desde el 24 de Febrero del 2020
1,2 MB
57 paginas
Creado hace 17a (08/03/2007)
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]
  • Links de descarga
http://lwp-l.com/pdf17313

Comentarios de: videaLAB (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios...
CerrarCerrar
CerrarCerrar
Cerrar

Tienes que ser un usuario registrado para poder insertar imágenes, archivos y/o videos.

Puedes registrarte o validarte desde aquí.

Codigo
Negrita
Subrayado
Tachado
Cursiva
Insertar enlace
Imagen externa
Emoticon
Tabular
Centrar
Titulo
Linea
Disminuir
Aumentar
Vista preliminar
sonreir
dientes
lengua
guiño
enfadado
confundido
llorar
avergonzado
sorprendido
triste
sol
estrella
jarra
camara
taza de cafe
email
beso
bombilla
amor
mal
bien
Es necesario revisar y aceptar las políticas de privacidad