Post on 26-May-2015
description
DirectX
•Jackson Mora•Carlos Rodríguez
DIRECTX
¿Que es DirectX?¿Que es DirectX? •Una colección de APIs
•Creadas para facilitar tareas relacionadas con la programación de juegos y multimedia en Windows.
•Permite a los programadores acceder al hardware sin tener que escribir código específico.
•DirectX juega un papel en muchas funciones, incluyendo renderizacion 3D, reproducción de video.
• Interfaces para joysticks, ratones, gestión de redes para multi-jugador y muchos más.
Desventaja: no es portable, es decir, una aplicación programada con DirectX esta condenada a trabajar solamente en Windows
DIRECTX
¿Por qué utilizar DirectX?¿Por qué utilizar DirectX? DirectX proporciona a los programadores una manera estandarizada y amigable de acceder a los recursos de la computadora para programar aplicaciones y juegos aprovechando las ultimas tecnologías de hardware de manera generalizada.
Posee todas las herramientas para construir aplicaciones completas de alto nivel de una manera en la que el hardware no es una limitación, sino que el programador solo debe conocer el API y este es el que se encarga de saber como realmente funcionan los distintos tipos de hardware.
Historia Historia DirectXDirectXVersión Versión
DirectXDirectXSistema OperativoSistema Operativo AñoAño
DOSDOS Windows 3.1Windows 3.1 <1995<1995
DirectX DirectX 1.0(SDK)1.0(SDK)
Windows 95Windows 95 19951995
DirectX 5.2DirectX 5.2 Windows 98Windows 98 19981998
DirectX 6.0DirectX 6.0 Windows CE para la DreamcastWindows CE para la Dreamcast 19981998
DirectX 8.0aDirectX 8.0a Windows 95Windows 95 20002000
DirectX 8.1DirectX 8.1 Windows XPWindows XP 20012001
DirectX 9.0DirectX 9.0 Windows Server 2003Windows Server 2003 20022002
DirectX 9.0aDirectX 9.0a 20032003
DirectX 9.0bDirectX 9.0b 20032003
DirectX 9.0cDirectX 9.0c Windows XP SP2, Windows Server 2003 SP1, y Xbox 360. Última Windows XP SP2, Windows Server 2003 SP1, y Xbox 360. Última versión exclusiva para 32-bit.versión exclusiva para 32-bit.
20042004
DirectX 9.0cDirectX 9.0c Compatible con todos los Sistemas Windows que soporten 9.0c Compatible con todos los Sistemas Windows que soporten 9.0c (RC0) Primera versión en incluir D3DX DLLs(RC0) Primera versión en incluir D3DX DLLs
20052005
DirectX 9.0c DirectX 9.0c Última ver: marzoÚltima ver: marzo
20092009
DirectX 10DirectX 10 Exclusivo de Windows VistaExclusivo de Windows Vista 20062006Service Pack 1 para Windows Vista, Windows Server 2008Service Pack 1 para Windows Vista, Windows Server 2008
incluye Direct3D 10.1incluye Direct3D 10.120082008
DirectX 11DirectX 11 Windows Vista y Windows 7Windows Vista y Windows 7 20092009
Alternativas a DirectXAlternativas a DirectX OpenGL (OpenGL (independiente del independiente del sistema operativosistema operativo ))
SDL (Simple DirectMedia Layer) SDL (Simple DirectMedia Layer) soportasoporta Linux, Linux, Windows, Windows CE, BeOS, MacOS, MacOS X, Windows, Windows CE, BeOS, MacOS, MacOS X, FreeBSD, NetBSD etc.FreeBSD, NetBSD etc.
Allegro, soporta diferentes SOAllegro, soporta diferentes SO
RenderWareRenderWare
DIRECTX
ComponentesComponentesConsta de los siguientes APIs:Consta de los siguientes APIs: Direct3D: Utilizado para el procesado y/o Direct3D: Utilizado para el procesado y/o
programado de gráficos en tres dimensiones, programado de gráficos en tres dimensiones, proporciona un librería que permite optimizar la proporciona un librería que permite optimizar la renderización de objetos 3D tomando las ventajas renderización de objetos 3D tomando las ventajas del hardware existente, o mediante software si no del hardware existente, o mediante software si no se encontrara el hardware adecuado. se encontrara el hardware adecuado. (características más usadas de DirectX)(características más usadas de DirectX)
DirectGraphics: para dibujado de imágenes en dos DirectGraphics: para dibujado de imágenes en dos dimensiones (planas),y para representación de dimensiones (planas),y para representación de imágenes en tres dimensiones. imágenes en tres dimensiones.
DirectInput (XInput): Proporciona una interfaz DirectInput (XInput): Proporciona una interfaz para el manejo de entrada y salida. Como el para el manejo de entrada y salida. Como el teclado, el mouse, y controles para videojuegos. teclado, el mouse, y controles para videojuegos.
DIRECTX
DirectPlay: para comunicaciones en red. Da acceso al DirectPlay: para comunicaciones en red. Da acceso al servidor, al clientes y acceso al intercambio de archivos.servidor, al clientes y acceso al intercambio de archivos.
DirectSound (XACT): maneja todo lo relacionado con el DirectSound (XACT): maneja todo lo relacionado con el sonido y grabación de sonido. Proporcionado tecnologías sonido y grabación de sonido. Proporcionado tecnologías de mixing, sonido estéreo y 3D, aprovechando al máximo de mixing, sonido estéreo y 3D, aprovechando al máximo las capacidades del hardware.las capacidades del hardware.
DirectDraw: librería de bajo nivel contenida DirectDraw: librería de bajo nivel contenida
principalmente en el archivo ddraw.dll, que le permite al principalmente en el archivo ddraw.dll, que le permite al programador acceder al hardware de video programador acceder al hardware de video directamente. Además a través de DirectDraw podemos directamente. Además a través de DirectDraw podemos implementar varias técnicas para el manejo de la implementar varias técnicas para el manejo de la memoria, intercambio de páginas, sobreimpresiones, etc. memoria, intercambio de páginas, sobreimpresiones, etc.
Componentes Componentes (cont.)(cont.) DIRECTX
DirectMusic: para la reproducción de pistas DirectMusic: para la reproducción de pistas musicales compuestas.musicales compuestas.
DirectShow: para reproducir audio y video con DirectShow: para reproducir audio y video con transparencia de red.transparencia de red.
DirectSetup: para la instalación de componentes DirectSetup: para la instalación de componentes DirectX.DirectX.
Componentes Componentes (cont.)(cont.) DIRECTX
Wallpaper renderizadoen DirectX9
Wallpaper renderizadoen DirectX10
DirectShowDirectShow
Formatos Soportados por Formatos Soportados por DirectShowDirectShow
Windows Media Audio Windows Media Audio (WMA)(WMA)
Windows Media® Video Windows Media® Video (WMV)* (WMV)*
Advanced Systems Format Advanced Systems Format (ASF) (ASF)
MPEG MPEG Motion Picture Motion Picture Experts GroupExperts Group
AVI - Audio-Video AVI - Audio-Video
InterleavedInterleaved QuickTime (version 2 and QuickTime (version 2 and lower) lower)
WAV WAV AIFF AIFF
AU (Unix Audio)AU (Unix Audio) SND (Sound File)SND (Sound File)
MIDI MIDI
http://www.sensoray.com/support/videoLan.htm
http://www.microsoft.com/latam/technet/seguridad/alerta/971778.mspxvulnerabilidad
DirectShow FAQDirectShow FAQ What OS does DirectShow support?What OS does DirectShow support?
Windows Windows
Do I need to know COM(Do I need to know COM(ComponentObjectModelComponentObjectModel) ) knowledge?knowledge? How to instantiate themHow to instantiate them Access the interface they exposeAccess the interface they expose Manage reference countManage reference count (Filter designer requires more )(Filter designer requires more )
Is there a DirectShow Hardware Compatibility List (HCL) ?Is there a DirectShow Hardware Compatibility List (HCL) ? Using DirectDraw & DirectSound hardware, if they availableUsing DirectDraw & DirectSound hardware, if they available Or using GDI Or using GDI video & waveOut* video & waveOut* audio audio
DirectShow FAQDirectShow FAQ What language can I use ?What language can I use ?
DirectShow is designed for C++DirectShow is designed for C++ VB VB access subset of the API access subset of the API Script based DVD or TV APScript based DVD or TV AP
Will it accessible through managed code?Will it accessible through managed code? no current plans, the CLR is not recommended for no current plans, the CLR is not recommended for
performance reasonsperformance reasons
How does DirectShow relate to Microsoft® How does DirectShow relate to Microsoft® ActiveMovie®?ActiveMovie®? the original name for DirectShowthe original name for DirectShow
Que versión de DirectX Que versión de DirectX tengo?tengo?
dxdiagdxdiag
y escribir dxdiag
Primero, en el menú
elegir la opción
Aplicaciones de Aplicaciones de DirectShow DirectShow
Video processing using Video processing using DirectShow.NETDirectShow.NET
We are developing We are developing video processing video processing softwares using softwares using DirectShow.NET. DirectShow.NET.
The left figure The left figure shows a simple shows a simple demonstration demonstration where a video from where a video from a web camera a web camera settled on the top of settled on the top of a biped robot, is a biped robot, is transformed into transformed into the one with a the one with a cyber-space-like cyber-space-like appearance. appearance.
This application is used to test the camera mounted on a car, the system to record the class, and so on.
http://brain.cc.kogakuin.ac.jp/research/
Webcam Tracker Live! Webcam Tracker Live! v1.31 v1.31 Webcam Tracker Live! is a video and audio capture software Webcam Tracker Live! is a video and audio capture software
that can broadcast captured data via internet (or local area that can broadcast captured data via internet (or local area network) to other users in real time (streaming). Webcam network) to other users in real time (streaming). Webcam Tracker Live! use DirectShow technology to capturing and Tracker Live! use DirectShow technology to capturing and preprocessing video and audio data and Windows Media preprocessing video and audio data and Windows Media technology to broadcasting ones. You can use any video and technology to broadcasting ones. You can use any video and audio capture device such as Webcams, TV Tuners, Sound and audio capture device such as Webcams, TV Tuners, Sound and Video cards with capabilities of capturing audio and video Video cards with capabilities of capturing audio and video data. With using Windows Media technology you can encode data. With using Windows Media technology you can encode captured data with any video and audio codec installed in your captured data with any video and audio codec installed in your system. So you can broadcast live video and audio even system. So you can broadcast live video and audio even through low speed communication lines such as phone line through low speed communication lines such as phone line with modem. with modem.
http://www.filebuzz.com/files/music_mixer/1.html
ARToolKit(Plus) and WPF ARToolKit(Plus) and WPF 3D3D
http://www.hitlabnz.org/forum/showthread.php?t=546
http://www.brains-n-brawn.com/default.aspx?vDir=wpfaugreal
http://www.youtube.com/watch?v=vPaXR24FP5g
AR Maze Game AR Maze Game March 11, 2009
http://www.youtube.com/watch?v=BjEKoDW9S-4
Augmented Reality Augmented Reality Physics Physics
Augmented Reality Physics Game with jMonkeyEngine
http://www.youtube.com/watch?v=fWS374HZA-A
May 24, 2009
Suntek 02Suntek 02
http://www.youtube.com/watch?v=FN4x6xHv0vI
CORCOR(Colaboración Remota)(Colaboración Remota)
COR permite el trabajo colaborativo entre sus COR permite el trabajo colaborativo entre sus usuarios mediante la transmisión y recepción de usuarios mediante la transmisión y recepción de audio y video en tiempo real (videoconferencia) y el audio y video en tiempo real (videoconferencia) y el uso de aplicaciones de red como uso de aplicaciones de red como Compartición de Compartición de EscritorioEscritorio, , ChatChat y y PresentationPresentation..
COR esta basado en ConferenceXP 3.0 de Microsoft COR esta basado en ConferenceXP 3.0 de Microsoft Research que proporciona una plataforma escalable Research que proporciona una plataforma escalable y extensible para el desarrollo de nuevas y extensible para el desarrollo de nuevas aplicaciones colaborativas. aplicaciones colaborativas.
Mediante la utilización de las APIs de DirectShow y Mediante la utilización de las APIs de DirectShow y WindowsMedia se tiene acceso a distintas WindowsMedia se tiene acceso a distintas características para el control del audio y video, características para el control del audio y video, tales como la codificación y decodificación de los tales como la codificación y decodificación de los flujos, manejo de dispositivos de captura y el envío flujos, manejo de dispositivos de captura y el envío de los datos por la red.de los datos por la red.
http://www.cti.espol.edu.ec/proyecto.php?id=32
BibliografíaBibliografía http://www.wikilearning.com/capitulo.php?http://www.wikilearning.com/capitulo.php?
id_contenido=5096&order=1id_contenido=5096&order=1 http://www.conocimientosweb.net/dcmt/http://www.conocimientosweb.net/dcmt/
ficha1672.htmlficha1672.html http://es.wikipedia.org/wiki/DirectXhttp://es.wikipedia.org/wiki/DirectX http://gda.utp.edu.co:9673/gda/documentacion/http://gda.utp.edu.co:9673/gda/documentacion/
programacion_3d/directx/tutorial01programacion_3d/directx/tutorial01 http://www.thealphasite.org/articulos/http://www.thealphasite.org/articulos/
managed_directx_introduccion_y_tutorial_imanaged_directx_introduccion_y_tutorial_i http://www.jeuazarru.com/docs/DirectX.pdfhttp://www.jeuazarru.com/docs/DirectX.pdf http://www.brains-n-brawn.com/default.aspx?http://www.brains-n-brawn.com/default.aspx?
vDir=wpfaugrealvDir=wpfaugreal http://go.microsoft.com/fwlink/?LinkId=10138 http://go.microsoft.com/fwlink/?LinkId=10138 http://go.microsoft.com/fwlink/?LinkId=19380 http://go.microsoft.com/fwlink/?LinkId=19380 http://discuss.microsoft.com/archives/http://discuss.microsoft.com/archives/
DIRECTXAV.htm DIRECTXAV.htm
DIRECTX
Acceso directo al hardware: Especialmente Acceso directo al hardware: Especialmente importante en el caso de la tarjeta de video.importante en el caso de la tarjeta de video.
Rapidez: La performance en el desarrollo de un Rapidez: La performance en el desarrollo de un
programa es fundamental, DirectX permite programa es fundamental, DirectX permite obtener todo el rendimiento posible del hardware, obtener todo el rendimiento posible del hardware, inclusive, aprovechando mejoras en el Hardware inclusive, aprovechando mejoras en el Hardware que podrían aparecer , después de construir la que podrían aparecer , después de construir la aplicación.aplicación.
Facilidad: Sin dudas, tareas como configurar el Facilidad: Sin dudas, tareas como configurar el
tipo de video, la profundidad de colores, la tipo de video, la profundidad de colores, la reproducción de sonido, la compatibilidad con el reproducción de sonido, la compatibilidad con el hardware existente, resultan tarea más sencillas hardware existente, resultan tarea más sencillas trabajar con DirectX.trabajar con DirectX.
Ventajas al usar DirectXVentajas al usar DirectXDIRECTX
BooksBooks
Programming Microsoft® Programming Microsoft® DirectShow® for Digital Video DirectShow® for Digital Video and Televisionand Television
DirectShow: Core Media DirectShow: Core Media Technology in Windows XP Technology in Windows XP Empowers You to Create Empowers You to Create Custom Audio/Video Custom Audio/Video Processing ComponentsProcessing Components
GRACIASGRACIAS