【问题标题】:where have the shape drawing functions gone in DirectX10?DirectX10中的绘图功能哪里去了?
【发布时间】:2012-02-17 01:31:45
【问题描述】:

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

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

【问题讨论】:

    标签: directx directx-9 directx-10


    【解决方案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 项目中可用。

    祝你好运!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-11-01
      • 2017-06-03
      • 2016-01-29
      • 2016-12-07
      • 1970-01-01
      • 2014-02-02
      相关资源
      最近更新 更多