| |
Direct3D (DirectX 9.0)
Code Samples - Page 2
 |
 |
 |
 |
|
Primitive Types |
|
This sample demonstrates how to use the 6 primitive types
available under Direct3D: point list, line list, line strip,
triangle list, triangle strip, and triangle fan.
Relevant C++ Keywords: CreateVertexBuffer, Lock, Unlock,
SetStreamSource, SetTexture, SetFVF, DrawPrimitive, D3DPT_POINTLIST,
D3DPT_LINELIST, D3DPT_LINESTRIP, D3DPT_TRIANGLELIST,
D3DPT_TRIANGLESTRIP, D3DPT_TRIANGLEFAN, LPDIRECT3DVERTEXBUFFER9,
LPDIRECT3DTEXTURE9, and D3DPOOL_DEFAULT.
Relevant C# Keywords: VertexBuffer,
CustomVertex.PositionColored,
CustomVertex.PositionColored.Format,
Usage.Dynamic, Usage.WriteOnly,
Pool.Default, Position, Color, SetData,
VertexFormat, SetStreamSource,
DrawPrimitives, PrimitiveType.PointList,
PrimitiveType.LineList,
PrimitiveType.LineStrip,
PrimitiveType.TriangleList,
PrimitiveType.TriangleStrip, and
PrimitiveType.TriangleFan.
|
|
 |
 |
 |
 |
 |
 |
 |
 |
|
Vertex Data (Vertex Buffers) |
|
Demonstrates how to use Vertex Buffers for the storage
of model data. The sample creates a textured cube as an
example. Check out the OpenGL source
code page for a Vertex Array sample which is OpenGL's equivalent
of Direct3D's Vertex Buffers.
Relevant C++ Keywords: CreateVertexBuffer, Lock, Unlock,
SetStreamSource, SetTexture, SetFVF, DrawPrimitive, LPDIRECT3DVERTEXBUFFER9,
LPDIRECT3DTEXTURE9, D3DPT_TRIANGLESTRIP, and D3DPOOL_DEFAULT.
Relevant C# Keywords: VertexFormats.Position.
VertexFormats.Texture1, VertexBuffer, DateTime, TimeSpan,
GraphicsStream, Lock, Write, Unlock, SetTexture,
DrawPrimitives, SamplerState[0].MinFilter, SamplerState[0].MagFilter,
TextureFilter.Linear, Texture, Bitmap, Bitmap.FromFile,
Pool.Managed, and System.IO.Directory.SetCurrentDirectory.
|
|
 |
 |
 |
 |
 |
 |
 |
 |
|
Multiple Vertex Buffers |
|
This sample demonstrates how to create 3D geometry with
Direct3D by loading vertex data into multiple Vertex Buffers.
Check out the OpenGL source code
page for the OpenGL equivalent of this sample, which uses
multiple Vertex Arrays.
Relevant Keywords: CreateVertexBuffer, Lock, Unlock,
SetStreamSource, SetTexture, SetFVF, DrawPrimitive, CreateVertexDeclaration,
SetVertexDeclaration, SetStreamSource, D3DDECL_END, LPDIRECT3DVERTEXDECLARATION9,
D3DVERTEXELEMENT9, D3DDECLTYPE_FLOAT3, D3DDECLTYPE_D3DCOLOR,
D3DDECLTYPE_FLOAT2, D3DDECLMETHOD_DEFAULT, D3DDECLUSAGE_POSITION,
D3DDECLUSAGE_COLOR, D3DDECLUSAGE_TEXCOORD LPDIRECT3DVERTEXBUFFER9,
LPDIRECT3DTEXTURE9, D3DPT_TRIANGLESTRIP, and D3DPOOL_DEFAULT.
Relevant C# Keywords: VertexBuffer, Texture, Color,
ToArgb, Usage.Dynamic, Usage.WriteOnly, Pool.Default,
Lock, Unlock, VertexFormats.Position, VertexFormats.Diffuse,
VertexFormats.Texture1, VertexElement,
DeclarationType.Float3, DeclarationType.Float2,
DeclarationType.Color, DeclarationMethod.Default,
DeclarationUsage.Position, DeclarationUsage.Color,
DeclarationUsage.TextureCoordinate, SetStreamSource,
SetTexture, PrimitiveType.TriangleStrip, and DrawPrimitives.
|
|
 |
 |
 |
 |
 |
 |
 |
 |
|
Indexed Geometry |
|
This sample demonstrates how to optimize performance by
using indexed geometry. As a demonstration, the sample
reduces the vertex count of a simple cube from 24 to 8
by redefining the cube’s geometry using an indices array.
Check out the OpenGL source
code page for the OpenGL equivalent of this sample.
Relevant Keywords: CreateVertexBuffer, CreateVertexBuffer,
Lock, Unlock, DrawIndexedPrimitive, DrawPrimitive, D3DPT_TRIANGLESTRIP,
SetStreamSource, SetIndices, SetFVF, D3DUSAGE_WRITEONLY,
D3DFMT_INDEX16, , and D3DPOOL_DEFAULT.
Relevant C# Keywords: VertexBuffer, IndexBuffer, Color, ToArgb, Usage.Dynamic, Usage.WriteOnly, Pool.Default,
Lock, Unlock, VertexFormats.Position, VertexFormats.Diffuse,
DeclarationType.Float3, DeclarationType.Float2,
DeclarationType.Color, SetStreamSource, PrimitiveType.TriangleStrip,
VertexFormat, Indices, DrawPrimitives, and
DrawIndexedPrimitives.
|
|
 |
 |
 |
 |
 |
 |
 |
 |
|
Transforms |
|
Demonstrates how to use concatenated translation, rotation,
and scaling matrices to create a simulated solar system.
And as a small bonus, the sample also demonstrates how
to optimize Direct3D applications using a matrix stack
to prevent continuous changes to the view matrix, which
can kill your apps draw time.
On an unrelated side-note, the sample also shows how to
clone a mesh so you can add additional properties to its
FVF code or vertex layout. The sample uses D3DXCreateSphere
to create test spheres, which originally have no color.
I then clone the mesh and add colors to them for demo purposes.
Check out the OpenGL source
code page for the OpenGL equivalent of this sample.
Relevant C++ Keywords: SetTransform, D3DXMatrixTranslation,
D3DXMatrixRotationY, D3DXMatrixScaling, D3DXCreateSphere,
CloneMeshFVF, GetVertexBuffer, GetNumVertices, D3DXCreateMatrixStack,
LoadIdentity, LoadMatrix, Push, Pop, MultMatrixLocal,
LPD3DXMATRIXSTACK, and LPD3DXMESH.
Relevant C# Keywords: Mesh, Mesh.Sphere, Clone,
Options.Value, VertexBuffer.Lock,
VertexBuffer.Unlock,
LockFlags.None, NumberVertices,
DrawSubset, Dispose,
Matrix, MatrixStack,
Matrix.LookAtLH, Transform.View,
Transform.World, Vector3,
Matrix.Identity, RotateY, Translate,
LoadMatrix, Push, Pop, and
MultiplyMatrixLocal.
|
|
 |
 |
 |
 |
|
|