DirectX FAQ | Index of X-Zone's DirectX FAQs |
Smalltalk MT FAQ | Index of X-Zone's Smalltalk MT FAQs |
Linearized Depth using Vertex Shaders | In this article we'll look at an easy way to implement linear depth values using a Z-buffer, by implementing transformation in a programmable vertex shader. |
Texture Based Clipping Demo | Shows an alternate technique for clipping of geometry to arbitrary planes. This provides a high performance alternative to Direct3D user-defined clipping planes, and allows arbitrary clipping planes while using hardware T&L on devices that do not support clip planes. |
Understanding the Dot Product | Provides an introduction to the dot product function, which determines the relationship of two vectors, and explores various uses of this function |
Using W-Buffers | Provides a look at the the mathematical and practical differences between Z and W based depth buffering. Includes code to detect W-Buffering hardware and implement W based depth buffers. |
Introduction to Effect Files | The first in a series of articles targetted at DirectX Effect Files, provides an introduction to the use of Effect Files with the D3DX framework. Effects allow the developer to define rendering techniques outside of application code. Benefits include greater flexibility for your rendering engine, support of various hardware capabilities, and a rapid integration of new objects and visual effects into an application without the need for changes to compiled code. |
Rendering Full Screen Images from Textures | Shows how to use textures to render full screen bitmaps, such as splash screens or backgrounds, using D3D primitives. Sample code includes detection of maximum texture size, and subdivision of images too large for hardware to load in a single texture. |
Saving a Screen Shot in DirectX Graphics | Simple function to perform screen grabs in DX 8.1, with source code. |
A Simple Blit Function for DirectX 8 | Shows how to use pre-transformed polygons to simulate a Blit function in Direct3D. |
Locating an Application CD | Techniques and source code that provide a reliable technique to scan a system for tour application's CD, and to prompt the user for insertion if it is not available. Handles systems with multiple CD-ROMs properly, and determines CD drive locations and volume names without unnecessary file reads. |
Scaling and Centering of ID3DXMesh Geometry | Source code for functions that allow a mesh to be rescaled to fit within specific bounds and/or centered at origin |
Scaling and Centering of ID3DXMesh Geometry in DX9 | Source code for functions that allow a mesh to be rescaled to fit within specific bounds and/or centered at origin |
DirectX 9 Graphics FAQ | X-Zone's FAQ on issues specific to DirectX 9 Graphics |
DirectX 8 Graphics FAQ | X-Zone's FAQ on issues specific to DirectX 9 Graphics |
FPS Versus Frame Time | Provides a critical comparison between common measurements used for overall performance testing, and looks at an all too common pitfall of using FPS as a measurement of performance. |
Batching of Polygons with a Vertex Cache | Illustrates the use of a vertex cache to improve performance by batching together smaller groups of triangles. |
The Scrapyard | A collection of cool samples available for download. Most are work in progress, yet great techniques are still demonstrated. |
Shader Transforms with Non-Transposed Matrices | Shows how to use row-major matrices for transformation in a programmable vertex shader, avoiding having to transpose matrices used as inputs to a vertex shader. |
Synthesizing Patches using Vertex Shaders | Vertex Shader Terrain Demo and Article |
Introduction to Catmull-Rom Splines | Explains Catmull-Rom splines and their potential uses. Includes demo source and executable illustrating the use of Catmull-Rom splines for smooth animation along a path. |
View Oriented Billboards | Billboarding techniques are utilized in 3D applications to orient a polygon to always face the user. This allows the application of a 2D image, such as a lens flare or images of foliage, into a 3D scene. By applying an image in this way, the illusion of complex objects or effects can be applied with a minimum of overhead. |
Creating Subsets in ID3DXMesh | Explains how to render subsets within an ID3DXMesh object, including setup of attribute buffers and mesh optimization. |
Stencil Based Screen Wipes | Provides sample application with source code, illustrating the application of an alpha mask to the stencil buffer, and the use of this technique to create complex screen wipes between scenes. |
Rendering 3D Scenes to Large Image Formats | In this article we will take a look at a technique for rendering very large images in Direct3D, independant of available video memory. Inlcudes sample source code. |
Color Keying in DirectX 8 Graphics | Demonstrates how to simulate color keying in DirectX 8 Graphics using alpha blending and the D3DX texture creation functions. |
Modular Programming with DLLs | This article provides information and source code, that will allow you to easily implement a full screen DirectX application as a series of loadable modules. |
Using the ID3DXMesh Class | Discusses the basics you need to know to use the ID3DXMesh class, including mesh storage, using attributes to draw subsets, mesh optimization, and more. |
Writing the Game Loop | The game loop drives the flow of the program, providing a heartbeat for synchronizing object motion and rendering of frames in a steady, consistent manner. Provides source code for a basic game loop using the Performance Counter, and provides automatic detection of the Performance Counter and fallback to timeGetTime if it is not available. |
Selecting Timer Functions | How to select the right timer function for game timing. Includes information on various timer functions, including GetTickCount(), timeGetTime(), and the Performance Counter. |
Implementing Steady Motion | To allow for variations in playback, it is important that motion within the game be scaled to frame time. This insures that motion is steady, and aids in synchronizing the motion of objects. |
Using a Blit Queue | Learn how to cache blit commands to make better use of the refresh cycle under DirectDraw. Includes source code for a blitting queue. |
Projecting a Ray from 2D Screen Coordinates | Direct3D provides the means to project your 3D world onto the screen, but often 3D titles require the ability to convert screen coordinates into 3D, and to determine the objects that are visible at a location in the viewport. This article lies the initial groundwork required for establishing a ray pick routine, by providing algorithms and working code to convert a pixel coordinate into a ray in world space. |
Improved Ray Picking | Sample application with source code to demonstrate object selection. This sample improves upon the DirectX SDK's Pick sample by handling separate object transformations, and also demonstrates transformation of objects in a hierarchial tree. |
Smalltalk MT Faq - General Development Issues | Answers to frequently asked questions regarding general development issues in Smalltalk MT |
Smalltalk MT FAQ Index | Smalltalk MT Development FAQs |
FVF Definitions for DX7 Vertex Types in DX8 | Provides Flexible Vertex Format (FVF) definitions for the standard DX7 vertex types. These are handy for those who are porting applications to DX8, and need definitions for their existing vertex formats. |
DirectX General Issues | X-Zone's FAQ on general issues effecting DirectX development |
Using Bounding Spheres | In this article, we will take a look at how bounding spheres are defined, and how they can be used for efficient course testing of collision. |
First Look at DX8 Graphics | A look at some of the changes in the graphics APIs in DX8. This area is aimed at highlighting the changes that will have to be considered when making the move to DX 8 with your existing code. |
Direct Sound FAQ | X-Zone's FAQ on DirectSound |
Direct Play FAQ | X-Zone's FAQ on DirectPlay |
Direct3D RM FAQ | X-Zone's FAQ on Direct3D Retained Mode |
Direct3D IM FAQ | X-Zone's FAQ on Direct3D Immediate Mode |
Direct Draw FAQ | X-Zone's FAQ on DirectDraw |
Getting Started with Smalltalk MT and DirectX | A hands on introduction to using Smalltalk MT with DIrectx. Provides step by step instructions for loading, executing, modifying, and debugging a DirectX sample project. |
Differences between C++ and Smalltalk MT | This article shows some initial differences in syntax, operators and DLL usage between C++ and Smalltalk MT |
Introduction to Smalltalk MT | A Brief Introduction to Smalltalk MT. |
Synchronization of Game Threads | First in a series exploring the creation of multithreaded entertainment titles. Learn how to create worker threads and utilize them to dynamically manage processor load in your game. |
Spherical Texture Mapping | This article demonstrates the mapping of spherical texture coordinates onto an object. Includes sample code for texture wrapping a ID3DXMesh Object. |
Simple DX8 Framework | A good starting point for writing applications using DirectX 8 graphics. Provides full screen and windowed operation, and a high performance message loop. |
Rendering to Multiple Windows | Provides information on source code necessary to develop applications that render multiple views in separate windows using DirectX Graphics. |
DirectX in Borland C++ | Guest author Mikael Lundberg provides some clues to getting started using DirectX under Borland C++. |
Color Depth Conversion of Bitmaps Using GDI | Learn how to convert pixel formats of loaded images to the format of the display surface. Includes source code for a function that provides image loading, format conversion, and color key setup in a single, easy to use function. |