Synopses & Reviews
Managed DirectX was released with the latest version of the core DirectX libraries in DirectX9. It enables developers using the new .NET languages (i.e. C#, VB.NET, etc.) to develop rich multimedia applications with DirectX. Unfortunately the Managed DirectX runtime was released without adequate documentation, and developers are having a hard time figuring out the best way to write managed applications. This book covers how to use the Managed DirectX objects, how they differ from the core DirectX libraries, and how to create these rich multimedia applications in C#. It also covers in depth graphics techniques and the new high-level shader language shipping with DirectX9.
About the Author
Tom Miller is the development lead for Managed DirectX, as well as the designer of the API. He has worked on the DirectX team for the last four years, including the SDK team writing samples, as well as the DirectX for Visual Basic team. Previously at Microsoft, he worked on the Visual Basic and Office teams.
Table of Contents
The History of Managed DirectX. Namespaces Included. Getting Started.
I. BEGINNING GRAPHICS CONCEPTS. 1. Introducing Direct3D.
Getting Started. The Direct3D Device. Making Our Triangle Three Dimensional. Automatic Device Resets During a Resize. We've Got Camera and Action; What About Lights? Device States and Transforms. Swapchains and RenderTargets. In Brief. 2. Choosing the Correct Device.
Enumerating Your System's Adapters. Determining Whether a Hardware Device Is Available. Checking Device Capabilities. In Brief. 3. Rendering Using Simple Techniques.
Using Vertex Buffers. Texturing Our Objects. In Brief. 4. More Rendering Techniques.
Rendering Other Primitive Types. Using Index Buffers. Using Depth Buffers. In Brief. 5. Rendering with Meshes.
Defining the Mesh. Using Materials and Lighting. Using Meshes to Render Complex Models. In Brief. 6. Using Managed DirectX to Write a Game.
Choosing the Game. Writing the Game. Adding a Movable Car into Your Scene. Adding Obstacles. Implementing the Finishing Touches. In Brief.
II. INTERMEDIATE GRAPHICS CONCEPTS. 7. Using Advanced Mesh Features.
Cloning Mesh Data. Optimizing Mesh Data. Simplifying Existing Meshes. Welding Vertices in a Mesh. Making Lots of Little Meshes Out of One Big One. In Brief. 8. Understanding Resources.
Starting with the Resource Class. Using the Vertex and Index Buffers. Locking Our Buffers. Controlling How Buffers Are Locked. Using Texture Resources. Locking Textures and Getting Descriptions. In Brief. 9. Using the Other Mesh Types.
Simplifying Meshes. Controlling the Level of Detail with Progressive Meshes. Rendering Patch Meshes. Seeing the Tessellation Levels. In Brief. 10. Using the Helper Classes.
Drawing Lines. Drawing Text. Rendering to Surfaces. Rendering Environment Maps. In Brief.
III. ADVANCED GRAPHICS CONCEPTS. 11. Introducing the Programmable Pipeline with the High Level Shader Language.
Rendering a Single Triangle Without Using the Fixed-function Pipeline. Rendering Shader Programs with Techniques. Rendering Meshes Using the Programmable Pipeline. Using HLSL to Write a Pixel Shader. In Brief. 12. Using the High Level Shader Language.
Using Simple Formulas to Simulate Animation. Determining Color by Blending Textures. Lighting Textures. Adding Specular Highlights. In Brief. 13. Rendering Skeletal Animation.
Creating the Frame Hierarchy. Loading Meshes with Animation. Rendering Animated Meshes. In Brief.
IV. SOUND AND INPUT. 14. Discovering the Wonders of Sound.
Including the Sound Namespace. Loading and Playing a Static Sound. Using Sounds in 3D. Manipulating the Listener. Using Effects with Your Sounds. In Brief. 15. Controlling User Input.
Detecting the Devices You Can Use. Using the Keyboard Device. Using the Mouse Device. Using Game Pads and Joysticks for User Input. Using Force Feedback. In Brief.
V. 2D GRAPHICS. 16. Using Direct3D for 2D Graphics.
Creating a Full Screen Rendering Device. Rendering Sprites. Animating Your Sprites. In Brief. 17. Using DirectDraw for 2D Rendering.
Creating a Full Screen DirectDraw Device. Animating Your Sprites. In Brief.
VI. ADDING NETWORKING. 18. Implementing Peer-to-Peer Networking Using DirectPlay.
Understanding DirectPlay Addresses. Creating a Peer Connection. Getting into a Session. Using the Event Model. Performing Actions in Our Session. Handling Lost Sessions. In Brief. 19. Creating a Client/ Server Session.
Creating a Dedicated Server Session. Connecting a Client. Detecting Users Joining and Leaving Your Session. Sending Data Packets. Making the Client React. Handling the Server Lost Event. In Brief. 20. Understanding Advanced Networking Features.
Having a Detailed Look at the Event Model. Detecting Bandwidth and Network Statistics. Launching Applications Using a Lobby. Making Your Application Lobby Aware. Adding Voice Chat to Your Sessions. In Brief. 21. Achieving Maximum Performance.
Using Value Types as Objects. Understanding the Performance Implications of the Event Model. Understanding the Cost of Methods. In Brief.
VII. APPENDICES. Appendix A. Using the Diagnostics Assemblies.
Enumerating Everything in the System. Enumerating Specific Items You Care About. Appendix B. Playing Music and Videos.
Playing Back an Audio or Video File Simply. Using the Features of Video Files. Using Video as Textures. Index.