很好的几个Managed Directx 例子

2014/09/25

(转载自:http://www.codesampler.com/dx9src/dx9src_2.htm





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.

  •  Download (Last Updated: 06/06/05 - C++)
  •  Download (Last Updated: 06/15/05 - C#)

 

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.

  •  Download (Last Updated: 06/06/05 - C++)
  •  Download (Last Updated: 06/15/05 - C#)

 

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.

  •  Download (Last Updated: 02/11/05 - C++)
  •  Download (Last Updated: 06/15/05 - C#)

 

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 OpenGLsource 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.

  •  Download (Last Updated: 06/15/05 - C++)
  •  Download (Last Updated: 06/15/05 - C#)

 

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 OpenGLsource 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.

  •  Download (Last Updated: 06/28/05 - C++)
  •  Download (Last Updated: 06/28/05 - C#)

 

 


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值