【问题标题】:DirectX11 - Is it possible to render 2D graphics using D3DX11CreateTextureFromFile?DirectX11 - 是否可以使用 D3DX11CreateTextureFromFile 渲染 2D 图形?
【发布时间】:2014-11-19 16:51:35
【问题描述】:

就像在问题中一样,可以这样做吗?如果不是,从 DirectX11 中的文件渲染 2D 精灵有什么好处?如果有可能,那么我该怎么做?我在网上找到了一些东西,比如Render a BMP, JPEG, or PNG Image with DirectX?(从这个问题我明白了)。我也在微软网站上看到了一些资源,但是我不知道如何使用这些东西。

【问题讨论】:

  • 您只需创建一个具有公共 z 坐标的形状。您的整个场景可以位于 z=0。
  • 所以我应该从两个三角形创建矩形,然后用这张图片“填充”它?

标签: c++ windows directx directx-11


【解决方案1】:

使用DirectX Tool Kit

  • DDSTextureLoader.h 具有从 DDS 文件加载纹理的功能
  • WICTextureLoader.h 具有使用 Windows Imaging Component(如 PNG、JPEG、BMP 等)从图像文件加载纹理的功能。
  • SpriteBatch 是一个使用 Direct3D 11 纹理绘制 2D 精灵的类

请注意,D3DX11CreateTextureFromFile 是已弃用的 D3DX11 库的一部分,该库仅在旧版 DirectX SDK 中可用。请参阅MSDNWhere is the DirectX SDK?Living without D3DX

【讨论】:

  • 提前谢谢!是否有任何 DXTK 教程或者我需要阅读文档或其他内容
  • 有一套 simple samples 用于 DirectX 工具包,具体取决于您的平台目标,以及 CodePlex Wiki 上的 documentation
  • 在尝试编译 dxgi1_2.h(1271) 时出现这些错误:错误 C4430:缺少类型说明符 - 假定为 int。注意:C++ 不支持默认整数 dxgi1_2.h(1271):错误 C2143:语法错误:在 '*' 之前缺少 ',' dxgi1_2.h(1275):错误 C2061:语法错误:标识符 'DXGI_RGBA'
  • 你用的是什么编译器? VS 2012 或 2013 已经集成了 Windows 8.x SDK,因此它们“按原样”工作。如果您使用的是VS 2010,则需要在安装后使用props 解决方案来使用Windows 8.1 SDK——DirectXTX 包中包含所需的.props 文件。如果您已经使用旧版 DirectX SDK,则需要修改包含/lib 路径以首先使用 Windows 8.x SDK,然后使用旧版 DirectX SDK(根据上面的 MSDN 链接)。跨度>
  • 抱歉很久没有回复。我有VS2013。如果重要的话,我的机器上也安装了 VS2012
猜你喜欢
  • 1970-01-01
  • 2012-02-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-08-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多