Publicado el 21 de Febrero del 2019
1.065 visualizaciones desde el 21 de Febrero del 2019
435,4 KB
9 paginas
Librerías Gráficas
Introducción a OpenGL
Introducción
• Sistema gráfico :
– Modelos + Visualización
• Visualización:
– Uso de hardware específico (2D o 3D)
– Implementación a través de librerías
Definición de librería gráfica
Librerías, ficheros, sintaxis
• Software que genera imágenes en base a unos
modelos matemáticos y unos patrones de
iluminación, texturas, etc.
• Origen
– IGL-Plot 10 (Tektronix)
– Starbase (Hewlett Packard)
– Iris GL Library (SGI)
• Distinguir la naturaleza de otros sistemas
gráficos
– VRML, X3D (Lenguajes de descripción)
– DirectX-Direct3D
– Java 3D
– Open Inventor
– Performer, Fahrenheit
– Motores
Objetivos de las librerías gráficas
Tipos de librerías gráficas
• Independencia del hardware (tanto
dispositivos de entrada como de salida).
• Independencia de la aplicación (la librería
es accedida a través de un interface único
(al menos para cada lenguaje de
programación) para cualquier aplicación.
• Direct Rendering and gfx packages:
– OpenGL, Direct3D, GKS, PHIGS, PEX, GKS, etc…
• Scene-graph based
– OpenGL Performer, Open Inventor, OpenGL Optimizer,
PHIGS+, etc…
• Toolkits
– World Toolkit, AVANGO, Game Engines, etc…
1
...
• Gestión imágenes 3D
– “Bajo nivel”
• Tareas
– Gestión “en serie” de los elementos de la escena
– Elementos de la escena
» Primitivas gráficas
» “Atributos” (" edición imágenes)
– Variables de estado
Generación imagen
• Sistemas
– OpenGL
– Direct 3D
– Java 3D
– “Alto nivel” …
...
• (... Gestión imágenes 3D)
– “Alto nivel”
• Tareas
– Gestión global de los elementos de la escena
– Árbol escena
– Carga/descarga de memoria
– Gestión elementos no visibles
– Elección del modelo geométrico: Nivel detalle, Textura
– Elección de la técnica de presentación (rendering)
• Sistemas
– Inventor
– Performer
– ( Fahrenheit )
– Hewlett Packard
DirectX Componentes
DirectX - Introducción
• DirectDraw
• DirectSound
• DirectPlay
• Direct3D
• ....
• ¿Qué es DirectX?
– Conjunto de API´s que permite a los
desarrolladores de contenido interactivo
(imagen, video, sonido...) acceder a
características de hardware especializado sin
tener que escribir código específico de
hardware
DirectX - Introducción
• Componentes incluidos en DirectX
– Nos permiten desarrollar aplicaciones de alto
rendimiento y en tiempo real
• API Direct Play
• API Direct I nput
• API Direct Sound
• API Direct Draw
• API Direct 3D
DirectX - Introducción
• Objetivos de DirectX
– Desarrollo de Aplicaciones Windows de alto
rendimiento
• Tarjetas aceleradoras
• Plug´n Play
• Servicios de comunicaciones construidos bajo
Windows
• Recursos instalados en el sistema
– Utilización del nuevo hardware implementado
2
DirectX - Introducción
• DirectX & COM (Component Object
Model)
• Obj et o: caja negra que representa el hardware y
requiere comunicación con las aplicaciones a través
de una interface.
• Mét odo: comandos enviados y recibidos por el
objeto a través de la interface COM
– Ej.: Método Get DisplayMode es enviado a
través de la interface I Direct Draw2 para
tomar el valor de la actual resolución de la
pantalla mediante el objeto Direct Draw
DirectX - DirectDraw
• Se encarga del manejo de la memoria de vídeo
• Proporciona herramientas para
– Manipulación de múltiples buffers de vídeo
– Acceso directo a la memoria de vídeo
– Page flipping
– Back Buffering
– Manejo de la paleta gráfica
– Clipping
DirectX - DirectDraw
• Tipos de objetos
– I Direct Draw
– I Direct DrawSurf ace
– I Direct DrawPalet t e
– I Direct DrawClipper
– I Direct DrawVideoPort
DirectX - DirectDraw
• Conceptos Gráficos y Técnicos
– Bitmaps
– Superficies de dibujo (buffers)
– Page Flipping y Back Buffering
– Rectángulos
– Sprites
– Niveles cooperativos
– Modos de vídeo
– Buffers
– Overlays
– Clippers
– Video Ports
DirectX - DirectSound
DirectX - DirectSound
• Componente de Audio de DirectX:
– Mezclado de canales de audio
– Aceleración hardware
– Acceso directo al dispositivo de sonido
– Captura de Audio
• Interfaces COM
– I Direct SoundBuf f er
– I Direct Sound3DBuf f er
– I Direct Sound3DListener
– I Direct SoundCapt ure
– I Direct SoundCapt ureBuf f er
3
DirectX - Direct3D
• Interfaz gráfica para hardware 3D
– Permitir gráficos tridimensionales interactivos
en aplicaciones de Windows
• 2 Modos:
– Inmediato
• API 3D de bajo nivel
• Independiente del dispositivo
• Programadores experimentados
– Retenido (Obsoleta)
• Desarrollo rápidos
• Capa superior del inmediato
DirectX - Direct3D
• Conceptos Básicos
– Triángulos
– Reglas de rasterización de triángulos
DirectX - DirectPlay
• Simplifica el acceso de las aplicaciones a
los servicios de comunicación
• Otorga independencia para la creación de
servidores de juegos
• Comunicaciones
– Peer-to-Peer
– Cliente/Servidor
DirectX - Direct3D
• Conceptos Básicos
– Sistemas de coordenadas 3-D
• Left-handed (mano izquierda)
• Podemos simular el right-handed
– Transformaciones 3-D
• Traslación
• Rotación
• Escalado
– Polígonos
• Normales de cara y vértice
• Modos de sombreado
• Interpolaciones de triángulos
OpenGL
Objetivos de diseño de OpenGL:
• Introducido en 1992 por SGI
• Basado en IRIS GL, un API para
workstations SGI
• Es un open standard que ha sido adoptado
ampliamente para todo tipo de aplicaciones
gráficas
• Se desarrolla bajo la supervisión del
OpenGL architecture review board
• API gráfico de altas prestaciones (con
aceleración por hardware)
• Posee cierta independencia del hardware
• Es un API natural (en C) con posibilidad de
extensibilidad
4
Se convierte en standard porque …
• No trata de hacer demasiadas cosas:
– Sólo renderiza la imagen, no gestiona ventanas, etc...
– No posee animación de alto nivel, modelado, sonido,
etc...
• Hace lo suficiente:
– Efectos de renderizado útiles y altas prestaciones
• Fue promovido por empresas líderes en el sector
(SGI, Microsoft, etc)
Ventajas de OpenGL
•
Industry standard
An independent consortium, the OpenGL Architecture Review Board, guides
the OpenGL specification. With broad industry support, OpenGL is the only
truly open, vendor-neutral, multiplatform graphics standard.
• Stable
OpenGL implementations have been available for more than seven years on
a wide variety of platforms. Additions to the specification are well controlled,
and proposed updates are announced in time for developers to adopt changes.
Backward compatibility requirements ensure that existing applications do not
become obsolete.
• Reliable and portable
All OpenGL applications produce consistent visual display results on any
OpenGL API-compliant hardware, regardless of operating system or
windowing system.
Ventajas de OpenGL
Ventajas de OpenGL
• Evolving
Because of its thorough and forward-looking design, OpenGL allows new
hardware innovations to be accessible through the API via the OpenGL
extension mechanism. In this way, innovations appear in the API in a timely
fashion, letting application developers and hardware vendors incorporate new
features into their normal product release cycles.
• Scalable
OpenGL API-based applications can run on systems ranging from consumer
electronics to PCs, workstations, and supercomputers. As a result,
applications can scale to any class of machine that the developer chooses to
target.
• Easy to use
OpenGL is well structured with an intuitive design and logical commands.
Efficient OpenGL routines typically result in applications with fewer lines of
code than those that make up programs generated using other graphics
libraries or packages. In addition, OpenGL drivers encapsulate information
about the underlying hardware, freeing the application developer from having
to design for specific hardware features.
• Well-documented
Numerous books have been published about OpenGL, and a great deal of
sample code is readily available, making information about OpenGL
inexpensive and easy to obtain.
Renderizado de OpenGL
Arquitectura OpenGL
• Primitivas geométricas:
– Puntos, líneas y polígonos
• Primitivas de imágenes:
– Imágenes y bitmaps
• Pipelines separados para imágenes y geometría
unidos mediante el mapeador de texturas
• El renderizado depende del estado (luces, colores,
materiales, etc)
5
Capacidades de OpenGL
Capacidades de OpenGL
• Accumulation buffer A buffer in which multiple rendered frames can
be composited to produce a single blended image. Used for effects
such as depth of field, motion blur, and full-scene anti-aliasing.
• Alpha blending. Provides a means to create transparent objects.
• Automatic rescaling of vertex normals changed by the modeling
matrix.
• BGRA pixel formats and packed pixel formats to directly support
more external file and hardware frame buffer types.
• Color-index mode. Color buffers store color indices rather than red,
green, blue, and alpha color components.
Immediate mode. Execution of OpenGL commands when they're
called, rather than from a display list.
•
• Display list. A named list of OpenGL commands. The contents of a
display list may be preprocessed and might therefore execute more
efficiently than the same set of OpenGL commands executed in
immediate mode.
• Double buffering. Used to provide smooth animation of objects. Each
successive scene of an object in motion can be constructed in the back
or "hidden" buffer and then displayed. This allows only complete
images to ever be displayed on the screen.
• Feedback. A mode where OpenGL will return the processed geometric
information (colors, pixel positions, and so on) to the application as
compared to rendering them into the frame buffer.
• Level of detail control for mipmap textures to allow loading only a
subset of levels.
• Materials lighting and shading. The ability to accurately compute the
color of any point given the material properties for the surface.
• Pixel operations. Storing, transforming, mapping, zooming.
• Polynomial evaluators. To support non-uniform rational B-splines
(NURBS).
• Primitives.
Comentarios de: Librerías Gráficas Introducción a OpenGL (0)
No hay comentarios