,例如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();
是否有一组等效的绘制图元的方法? (老实说,球体比茶壶更感兴趣!)
答案 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项目中使用。
祝你好运!