问题标签 [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.
uwp - DirectXTK:自定义着色器不绘制
回到我用 DirectXTK 进行的 HLSL 实验,我偶然发现了一些非常奇怪的东西。首先,我设法将我的效果类集成到 DirectXTKs IEffect 子系统中,如下所示:
遗憾的是,没有绘制模型。如果我用 BasicEffect 替换我的效果工厂,一切正常。我已经检查过了,在初始化期间没有抛出异常,并且在顶点着色器中放置一个(棘手的)无限循环会使程序挂起。顺便说一句,这是那个无限循环的代码:
简而言之,我有一些数据丢失的感觉。也许有人知道要寻找什么?
编辑以添加着色器。顶点着色器:
像素着色器:
c++ - 使用 DirectXTK 获取原始像素数据
从 DXGI 调用 AcquireNextFrame 后,我想从 Dirty Rect 访问像素缓冲区数据。
这是我从 D3D11Texture2D 获取像素缓冲区数据的代码:
dest 的输出充满了 '0' 值。偶数mapped.pData
全是'0'。我不知道为什么。
这是我调用函数的地方GetImageData
有可能吗?我从 Microsoft Sample Desktop Duplication API 获得了这段代码。谢谢!
directx - 如何手动渲染使用 DirectX Toolkit 加载的网格
我有一个 c++/cx 项目,我在其中使用 DirectX-11 渲染程序网格,这一切似乎都工作正常,但现在我还想从文件中导入和渲染网格(确切地说是从 fbx)。有人告诉我为此使用 DirectX Toolkit。
我按照工具包的教程进行操作,一切正常,但后来我尝试在我的项目中这样做,但似乎没有用。导入的网格不可见,并且现有的程序网格渲染不正确(好像没有深度缓冲区)。
然后我尝试手动渲染导入的网格(与程序网格相同,不使用 DirectXTK 的 Draw 功能)这效果更好,现有的网格都是正确的,但导入的网格颜色是错误的;我使用定制的顶点和片段着色器,它只使用顶点位置和颜色数据,但由于某种原因,导入的网格的法线被发送到着色器而不是顶点颜色。
(我什至不希望将法线存储在网格中,但我似乎没有选择在没有法线的情况下导出到 fbx,即使我从 fbx 手动删除它们,在导入 DirectXTK 时似乎重新计算法线)
有谁知道我做错了什么?这对我来说还是比较新的,所以任何帮助表示赞赏。如果您需要更多信息,请告诉我。
这是我渲染网格的代码:
首先是主渲染函数(每次更新调用一次):
现在功能:
这是我在每个网格上调用的渲染函数:(所有特定于网格的数据都来自导入的网格)
这是顶点着色器:
这是像素着色器:
c++ - DirectX 矩阵:相对于面向方向的变换(如在 FPS 中)
我接受了某人的建议,但它没有按我的预期工作:
这是我的更新代码:
运动效果很好,但旋转很不稳定。它不像 FPS 相机那样围绕世界原点旋转。有什么帮助吗?
我正在使用 DirectX 11 和 DirectX 工具包。该模型渲染得很好,向前、向后、向左、向右移动就像一个 FPS 相机,但它是围绕世界原点 (0, 0) 旋转的。
c++ - C++ std::make_unique<> 分配给类属性
我有应该是一个简单的操作,但我很难弄清楚哪里出了问题。
我的头文件中有一个私有属性,如下所示:
我试图在初始化方法中分配它,如下所示:
但我收到一个错误:
作为参考,我的 Sprite 类的构造函数中没有任何内容,它在它自己的头文件中声明:
以及 Sprite 类的定义:
你们可以提供的任何帮助将不胜感激。
c++ - 使用 DirectXTK / DirectXMath 转换平面
我有一个由三个点定义的 3D 平面,我想使用 DirectXTK 将其转换为 4x4 矩阵。
我尝试了两种方法来做到这一点:
使用 Plane::Transform() 方法变换平面 - 这会产生非常奇怪的结果。
变换三个点并从变换的点创建一个平面 - 这很好用。
我还尝试在调用 Plane::Transform() 之前转置矩阵,它使平面正常,但常数是错误的(另外转置矩阵对我来说真的没有意义)。
以下是归一化后的结果:
Plane::Transform() 调用 XMPlaneTransform ,它是 DirectXMath 库的一部分,它的文档简单地说“通过给定矩阵变换平面。”。我想这个方法很好,但是我的代码有什么问题?
c++ - 从 XMMATRIX 中提取一行以存储在向量中
我正在尝试从世界矩阵中提取一行以放入我的前向向量中,当在更新函数中调用该向量时,将使飞机向前移动。目前我有这个工作但我直接访问成员,是否有一个函数可以自动从我的矩阵中拉出一行?
uwp - 如何将 DirectXTK 添加到用于 hololens 的 UWP 应用程序?
我正在尝试按照此处概述的步骤进行操作,但在添加 DirectXTK 作为参考时,我无法在该步骤中添加参考。
当我跳过这一步并继续在我的项目中使用 DirectXTK 时,它不会编译。
对于在 Hololens 的 UWP 项目上设置 DirectXTK 有什么建议吗?如果不是这种方式不同的方式?
c++ - XAudio2 - 移除活动音频设备时源语音挂起
我有一个我无法解决的问题。我的应用程序应该能够在运行时切换默认音频设备。为了实现这一点,我使用了 DirectXTK 中的 XAudio2。
我在我的音频类中实现了 IMMNotificationClient,以便能够对默认设备更改做出反应。
例如,当默认设备更改时,我会停止当前的源语音,重置音频引擎并再次启动源语音。一切都按预期工作。
但是,当我的默认设备是 USB 声卡并且我在播放源语音期间拔下它时,应用程序会冻结。
原因是停止语音时源语音挂起。有时也在刷新源缓冲区时。移除源语音正在使用的音频设备后,似乎无法再停止源语音。
有人有同样的问题并且能够解决这个问题吗?
这是我用来重置音频引擎的功能。
c++ - 设置 DirectXTK 鼠标和键盘会给出未解析的外部符号
我按照这里的教程:鼠标和键盘输入 如果我删除与 DirectX 相关的所有内容,我不会收到任何错误。如果我使用 insted 指针,那么我会收到一个错误,指出我的 inputhandler 构造函数已被删除。有任何想法吗? H
cpp