learning objectives
After reading this chapter you should be able to characterize the functionality of current multimedia platforms, to describe the capabilities of GPUs, to mention the components of the Microsoft DirectX 9 SDK, and to discuss how to integrate 3D and video.
Almost 15 years ago I bought my first multimedia PC,
with Windows 3.1 Media Edition.
This setup included a video capture card and a 4K baud modem.
It was, if I remember well, a 100 Mhz machine,
with 16 Mb memory and a 100 Mb
disk.
At that time, expensive as it was, the best I could afford.
Some 4 years later, I acquired a Sun Sparc 1 multimedia workstation,
with a video capture card and 3D hardware accelerator.
It allowed for programming OpenGL in C++ with the GNU gcc compiler,
and I could do live video texture mapping at a frame rate of about one per
second.
If you consider what is common nowadays, a 3Ghz machine with
powerful GPU, 1 Gb of memory, a 1.5Mb cable or ADSL connection
and over 100 Gb of disk space,
you realize what progress has been made over the last 10 years.
4 generations of GPU
graphics pipeline
HLSL declarations
vertex shader data flow
vertex shader
pixel shader
technique selection
morphing (vertex) shader
coloring (pixel) shader
Microsoft DirectX is an advanced suite of multimedia application programming interfaces (APIs) built into Microsoft Windows; operating systems. DirectX provides a standard development platform for Windows-based PCs by enabling software developers to access specialized hardware features without having to write hardware-specific code. This technology was first introduced in 1995 and is a recognized standard for multimedia application development on the Windows platform.
DirectX 9 components
Direct3D tutorials
multimedia challenges
The ViP system enhances your party with innovative multimedia presentations. It supports multiple webcams and digital video cameras, mixed with video and images, enhanced by 3D animations and text, in an integrated fashion. For your party, we create a ViP presentation, with your content and special effects, to entertain your audience.
comparative overview
BlC | AW | D3D | HL2 | SL | |
in-game building | - | + | +/- | - | ++ |
avatar manipulation | + | ++ | +/- | + | ++ |
artifical intelligence | + | - | +/- | + | - |
server-side scripts | + | - | +/- | + | ++ |
client-side scripts | ++ | - | +/- | + | - |
extensibility | + | - | ++ | + | +/- |
open source | - | - | ++ | - | +/- |
open standards | - | - | +/- | - | +/- |
interaction | +/- | +/- | ++ | ++ | +/- |
graphics quality | +/- | +/- | ++ | ++ | + |
built-in physics | - | - | + | ++ | + |
object collision | - | - | ++ | ++ | + |
content tool support | +/- | - | ++ | + | - |
module(s)
interactive application(s)
concepts
technology
As a project, I suggest the development
of shader programs using
Rendermonkey
or the Cg Toolkit,
or a simple game in DirectX.