在DirectX10中哪里有形状绘图功能?

时间:2012-02-03 18:18:23

标签: directx directx-9 directx-10

,例如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();

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

1 个答案:

答案 0 :(得分: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(2009年8月)\ Samples \ C ++ \ DXUT11”

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

祝你好运!