1

例如 CreateTeapot 函数 - http://msdn.microsoft.com/en-us/library/windows/desktop/bb172798(v=vs.85).aspx

DX10中是否有等价物?如果是这样,我该如何使用它?

在DX9你..

宣布:

LPD3DXMESH meshTeapot;

初始化:

D3DXCreateTeapot(device, &meshTeapot, NULL);

画:

meshTeapot->DrawSubset(0);  

发布:

meshTeapot->Release();

是否有一组等效的绘制图元的方法?(说实话,我对球体比茶壶更感兴趣!)

4

1 回答 1

1

D3DX 库从 DirectX9 到 DirectX11 发生了很大变化。删除了许多辅助功能,包括形状绘制功能。但是,DirectX11 的 DXUT 库包含许多您正在寻找的功能。在 DXUTOptional 项目中,有一个 DXUTShaped.h 文件,其中包含 DXUTCreateTeapot()。这是它支持的所有形状创建功能...

HRESULT WINAPI DXUTCreateBox( ID3D10Device* pDevice, float fWidth, float fHeight, float fDepth, ID3DX10Mesh** ppMesh );
HRESULT WINAPI DXUTCreateCylinder( ID3D10Device* pDevice, float fRadius1, float fRadius2, float fLength, UINT uSlices, UINT uStacks, ID3DX10Mesh** ppMesh );
HRESULT WINAPI DXUTCreatePolygon( ID3D10Device* pDevice, float fLength, UINT uSides, ID3DX10Mesh** ppMesh );
HRESULT WINAPI DXUTCreateSphere( ID3D10Device* pDevice, float fRadius, UINT uSlices, UINT uStacks, ID3DX10Mesh** ppMesh );
HRESULT WINAPI DXUTCreateTorus( ID3D10Device* pDevice, float fInnerRadius, float fOuterRadius, UINT uSides, UINT uRings, ID3DX10Mesh** ppMesh );
HRESULT WINAPI DXUTCreateTeapot( ID3D10Device* pDevice, ID3DX10Mesh** ppMesh );

您可以找到安装 DirectX SDK 的 DXUT 库。我的位于“C:\Program Files (x86)\Microsoft DirectX SDK (August 2009)\Samples\C++\DXUT11”

如果您不想在您的项目中使用 DXUT,您可以只查看 DXUTOptional 项目中的源代码并根据您自己的目的进行调整。DXUT 的所有源代码都在 DXUTCore 和 DXUTOptional 项目中可用。

祝你好运!

于 2012-02-16T17:31:45.750 回答