Presentacion Direct X 2009 V3

26
DirectX •Jackson Mora •Carlos Rodríguez

description

Componentes de DirectX, DirectShow, aplicaciones y ejemplos

Transcript of Presentacion Direct X 2009 V3

Page 1: Presentacion Direct X 2009 V3

DirectX

•Jackson Mora•Carlos Rodríguez

Page 2: Presentacion Direct X 2009 V3

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

Page 3: Presentacion Direct X 2009 V3

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.

Page 4: Presentacion Direct X 2009 V3

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

Page 5: Presentacion Direct X 2009 V3

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

Page 6: Presentacion Direct X 2009 V3

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

Page 7: Presentacion Direct X 2009 V3

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

Page 8: Presentacion Direct X 2009 V3

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

Page 9: Presentacion Direct X 2009 V3

Wallpaper renderizadoen DirectX9

Wallpaper renderizadoen DirectX10

Page 10: Presentacion Direct X 2009 V3

DirectShowDirectShow

Page 11: Presentacion Direct X 2009 V3

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

Page 12: Presentacion Direct X 2009 V3

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

Page 13: Presentacion Direct X 2009 V3

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

Page 14: Presentacion Direct X 2009 V3

Que versión de DirectX Que versión de DirectX tengo?tengo?

dxdiagdxdiag

                     y escribir dxdiag

Primero, en el menú

elegir la opción

Page 15: Presentacion Direct X 2009 V3

Aplicaciones de Aplicaciones de DirectShow DirectShow

Page 16: Presentacion Direct X 2009 V3

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/

Page 17: Presentacion Direct X 2009 V3

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

Page 18: Presentacion Direct X 2009 V3

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

Page 19: Presentacion Direct X 2009 V3

AR Maze Game AR Maze Game March 11, 2009

http://www.youtube.com/watch?v=BjEKoDW9S-4

Page 20: Presentacion Direct X 2009 V3

Augmented Reality Augmented Reality Physics Physics

Augmented Reality Physics Game with jMonkeyEngine

http://www.youtube.com/watch?v=fWS374HZA-A

May 24, 2009

Page 21: Presentacion Direct X 2009 V3

Suntek 02Suntek 02

http://www.youtube.com/watch?v=FN4x6xHv0vI

Page 22: Presentacion Direct X 2009 V3

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

Page 23: Presentacion Direct X 2009 V3

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

Page 24: Presentacion Direct X 2009 V3

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

Page 25: Presentacion Direct X 2009 V3

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

Page 26: Presentacion Direct X 2009 V3

GRACIASGRACIAS