问题标签 [directxtk]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
183 浏览

directx-11 - Directxtk SpriteFont 不是整数时模糊

在此处输入图像描述

如果我使用非整数作为字符串的位置,文本会变得模糊。任何想法是什么导致了这个以及如何纠正它?

我只用位置和颜色参数来调用它。

0 投票
1 回答
407 浏览

directx - 使用 DirectXTK 加载网格

我使用 DirectXTK 加载网格。首先,我将 .fbx 导入 vs2015 并构建,然后获取 .cmo 文件。然后我使用 DirectXTK 加载 .cmo 如下:

但是我不能得到正确的结果,轮子的角度和一些细节与.fbx模型不同。 我的渲染模型

正确的 .fbx 模型

我应该怎么办?有什么想法吗?

0 投票
2 回答
305 浏览

c++ - DirectxTK SpriteBatch 和视口居中

我在 C++ 中使用 DirectXTK,并且大量使用 sprite 批处理功能。

我正在尝试开发等距渲染引擎。我已经让等距渲染正常工作。连同抵消。但是我遇到了一个主要问题。

我一生都无法弄清楚如何将相机的中心对准世界的(0,0)或任何其他坐标。

在将相机直接生成的变换矩阵注入 SpriteBatch.Begin() 之后

似乎什么也没有发生。这是相机的世界位置设置为 (0,0),精灵的世界位置设置为 (0,0)。

这是生成的图像。

http://i.imgur.com/Bep7l5a.png

出于调试原因,我关闭了 alpha 混合和精灵偏移。

任何人都可以帮助我吗?另外,如果有人能告诉我如何翻转 y,那也很棒。

0 投票
1 回答
1415 浏览

directx - 0x88982F50:“找不到组件”当使用 DirectXTK 的 CreateWICTextureFromMemory()

我正在开发一个(通用 Windows)c++/cx Directx 项目,该项目构建为 ac# UWP 项目中使用的 dll。

我正在使用 DirectX Toolkit 加载纹理。

我已经使用它从文件创建纹理,但现在我需要它从从 UWP 项目发送的字节数组创建纹理。但是当尝试使用 CreateWICTextureFromMemory() 时,HRESULT显示 0x88982F50:“找不到组件”

我能找到的关于这个问题的所有信息都表明字节不是正确的图像,但我在 UWP 项目中对其进行了测试,在那里我从 bingmaps 获得了字节数组(它是一个静态地图图像),我可以从这些图像中制作一个工作图像字节。

有人知道我做错了什么吗?

UWP c# 下载代码(获取字节):

Directx C++ 代码(失败):

有效的 UWP C# 测试代码(显示图像):

编辑:

好的,结果缓冲区中的第一个字节在 C++ 代码中与从 UWP 发送时不同。当我在 C++ 代码中将第一个字节更改为正确的值(作为测试)时,纹理被正确创建。

这就提出了一个问题,为什么第一个字节的值会改变?(或者我做错了什么?)

根据要求,函数 setImage() 在 c# 中如下所示:

(另外,我刚刚意识到参数名称中仍然包含“dds”,对此感到抱歉,将在我的代码中更改它,因为它具有误导性)

0 投票
1 回答
62 浏览

c++ - C++ DirectXTK 随时间改变 SpriteTint

因此,对于大学项目,我希望尝试在特定时间范围内更改精灵的色调。目的是让一组岩石在 5 秒内从灰色变为橙色(模拟加热),然后在接下来的 5 秒内再次将它们从橙色变为灰色(模拟冷却)。

这是使用 DirectXTK,特别是 SpriteBatch 完成的,但是我似乎在控制加热和冷却逻辑时遇到了一些问题。目前,岩石加热到橙色,但不会冷却下来。

下面包括岩石的更新功能,以及我用来控制冷却的另一个 HeatDelay 功能。

timeToChangeColour 初始化为 5。

任何帮助是极大的赞赏!

0 投票
0 回答
188 浏览

uwp - 错误 0x80070057 取决于包含顶点着色器代码的文件

这是我的第一个问题,请给我一点怜悯。我目前正在使用像素着色器中的以下着色器代码位:

在顶点着色器中:

现在是奇怪的部分。在我的不支持 DirectX11 的虚拟机上,如果我将上述着色器代码复制到项目框架创建的两个文件中,则此版本的代码可以工作:

虽然这个没有:

我检查并重新检查了 Visual Studio 中的编译设置,但它们在我看来是一样的。你们中有人知道在创建项目骨架期间创建的“特殊”文件有什么不同吗?

0 投票
0 回答
180 浏览

uwp - DirectXTK:将 hlsl 文件集成到模型和效果系统中

为 OpenGL ES 和 XNA 编程了一段时间后,我现在将我的一些内容更新到 XBOX One 的 DirectXTK。可悲的是,我刚刚遇到了另一个问题——即自定义着色器文件的集成。

特别是,我有以下顶点着色器:

将其加载到 IEffectFactory 实现中可以正常工作。第一步,我使用 LoadAsync 加载编译后的 hlsl 文件:

两个变量 myVShaderCode 和 mVShaderCodeSize 然后被传递到 iEffect 的实际实现中,它像这样使用它们:

可悲的是,这在运行时不起作用。相反,在 SUS3DApp1.exe 中的 0x603520B5 (ucrtbased.dll) 处出现类型为未处理的异常的错误:将无效参数传递给认为无效参数致命的函数。被抛出。调用堆栈如下所示:

想法,有人吗?我已经检查了 GetVertexShaderBytecode 中成员变量的有效性...

更新:我现在更改了着色器,以及代码的加载。奇怪的是,这部分代码现在通过了 SUSCreateDeviceResources 内部的 CreateInputLayout 阶段: void SUS3DApp1Main::SUSCreateDeviceResources() { auto loadVSTask = DX::ReadDataAsync(L"SampleVertexShader.cso"); auto loadPSTask = DX::ReadDataAsync(L"SamplePixelShader.cso");

然后在创建模型期间出现问题,它再次成为无效参数。这很奇怪,因为之前的创作效果很好。会不会是 myVShaderCode 的值丢失了?

0 投票
1 回答
725 浏览

c++ - 尚未调用 CoInitialize - (从 DirectXTK 加载 gamepad.h 而没有库)

我正在为游戏手柄类使用 DirectXTK 库。我编译了这个库,里面只有这个类,它可以工作。

如果我只将源文件添加到我的项目中,而没有库,则大小将是 ~50KB 而不是 ~500KB。但是,我收到以下错误:

关于如何解决这个问题的任何想法,所以我的可执行文件会更小?

0 投票
0 回答
75 浏览

c++ - 未检测到 Xbox One 控制器(从没有库的 DirectXTK 加载 gamepad.h)

我正在为游戏手柄类使用 DirectXTK 库。我编译了这个库,里面只有这个类,它可以工作。

如果我只将源文件添加到我的项目中,而没有库,则大小将是 ~50KB 而不是 ~500KB。

但是,在没有库的情况下使用源文件无法检测到 Xbox One 控制器。

关于如何解决这个问题的任何想法,所以我的可执行文件会更小?

0 投票
1 回答
536 浏览

c++ - 带有 Clang 的 DirectX11 显示黑色纹理(使用 Visual Studio 可以)

听到关于 Clang 的好消息,我决定给它一个机会,并在我的窗户上安装了 Clang。通过安装,它也集成到了我的 VisualStudo2015 中。一切正常,直到我尝试用 clang 编译一个小型 DirectX11 程序。First Clang 在 DirectX11 的“DirectXMath”-Headers 中遇到了一些问题。DirectX 将 __m128 SIMD 类型视为联合,而 clang 使用浮点数组。我决定删除 clang 头文件,只给编译器 microsoft 头文件。它编译时没有任何警告或错误。
但是当我启动程序时,我只看到一个大小正确且位置正确的黑色纹理。用普通的 VisualStudio-Compiler 重新编译程序可以正确显示纹理,所以我猜我的代码是正确的。

有什么办法可以帮助 Clang 吗?我想在 Windows 下更多地使用 Clang,但我不想改变我的项目想法。

一些信息(可能会有所帮助):
1.)我正在使用带有以下附加命令的 clang-cl:-fms-compatibility -fms-extensions -Qunused-arguments
2.)我正在使用 Windows 8.1 标头
3。 ) 使用 DirectXTK 绘制纹理