问题标签 [direct3d11]
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.
windows - 传递给 D3DCompile2 的“辅助数据”是什么?
随着 Visual Studio 2012 的发布,微软添加了D3DCompile2
API,一个新版本的D3DCompile
. 唯一的区别是它D3DCompile2
需要一些与一些“辅助数据”相关的附加参数。文档中没有讨论这些数据的性质,谷歌搜索也没有发现任何关于它的信息。
被接受的这个“辅助数据”是D3DCompile2
什么,它可能来自哪里以及它的用途是什么?
debugging - VS2012 D3D 调试 - 查看所有着色器输出
所以以前我一直使用 PIX 进行调试,但由于我现在可以访问 VS2012,我想我会尝试调试一些导致问题的绘图调用。
我已经能够很好地获得一帧的事件列表,对于我的绘图调用,我可以看到输入组装器、顶点着色器、像素着色器和输出合并的管道,我可以看到我的问题出现在一些顶点上着色器输出/像素着色器输入纹理坐标。
然而VS2012似乎只是想给我一些可视化顶点位置的PNG,这不是问题...... MSDN Graphics Pipeline Viewer似乎也只是告诉我如何做到这一点。
我真正想要的是一个表格,显示我的顶点着色器输入顶点(所以每列是一个顶点元素,每个顶点有一行),以及每个顶点的输出是什么(所以更多的列或相邻的表)。
在 PIX 中,网格视图上有“PreVS”和“PostVS”选项卡,VS2012 肯定有这个,而且不限于查看位置?
c# - 在非托管 C++ 中创建的 DX11 设备,用于 WPF 窗口
我已经在 C++ 中使用 Direct3d 11 开发了一个简单的图形引擎。我决定尝试构建一个 GUI 只是为了好玩,在阅读了一些关于 WPF 的内容之后,我真的很喜欢它。问题是,我不确定我想做的事情是否可能。
我想做的是在 WPF 应用程序中加载我的引擎 DLL,并在 WPF 窗口的一部分内使用 DX 设备。基本上,我想做的类似于地图编辑器(其中主窗口有一堆控件和一个包含渲染区域的子窗口 - 设备),但我不想将我的引擎转换为 XNA将已经工作的 C++ 代码与 WPF 一起使用。那可能吗?
另外,我只是为了练习用 Win32 创建一个窗口并将设备附加到它。在设备创建时将窗口 HWND 分配给设备是一件简单的事情。我假设它与 WPF 窗口相同,还是我错了?谢谢阅读 :)
编辑:忘了提到我是 C# 的完全新手,但我知道你可以导入 C++ DLL 并使用它的功能,我只是不确定设备 - wpf 窗口交互。
c++ - 我正在尝试为正方形设置棋盘纹理
我正在尝试为正方形设置带有绿色和蓝色纹素的棋盘纹理。相反,我的正方形是黑色的。我没有收到任何编译或运行时错误。我的纹理代码有问题吗?
还是我的采样器代码?
directx - DirectX 10 硬件上的 FXC /Od 问题
我在使用 FXC 和 DirectX 11 时遇到了一个奇怪的问题。在兼容 DirectX 10.0(诚然糟糕)的集成显卡上运行,如果我使用 FXC 在构建时使用标志/Od编译它们,我的着色器将无法工作。查看 VS 2012 中的图形调试器,我正确地看到了图形管道的输入汇编器和顶点着色器阶段,但缺少像素着色器阶段,因此几何图形从未绘制到帧缓冲区,如下所示:
使用 /O0 有效,但随后我失去了有效调试着色器的能力(优化,即使在 /O0 处,似乎也会扰乱指令,因此它们与 .fx 源文件不匹配)
在另一台使用 DirectX 11 卡 (GTX 560) 的机器上,/Od 工作正常。
windows - 与使用directx sdk 相比,使用windows sdk 学习direct3d11 有什么区别?
可以通过 windows 8 sdk 或 directx sdk 使用 direct3d11 吗?作为一个学习者,不清楚这种选择有什么影响。使用 windows sdk 还是 directx sdk 学习 directx 11 有什么区别?
c++ - 使用 direct3D 渲染视频
我们有一个使用 DirectDraw 8 的旧应用程序。它直接逐个像素地写入视频内存,一切都很好。现在我需要将它移植到 Windows 商店应用程序中。
Media Foundation 似乎是渲染视频的推荐路径,并通过了“媒体引擎原生 C++ 视频播放示例(Windows 8.1)”,但即使是 Media Foundation 也使用 DirectDraw 进行视频渲染。
因此,通过 Direct3D 示例并能够获得 backBuffer。但是所有的样本似乎都在处理画线等,而没有设置单个像素。
如何获得像素?即设置 BackBuffer[somepixel] = someRGBA
c++ - Direct3D11 在哪里分配资源对象?
我一直在阅读 Direct3D11 的很多内容(包括这里的堆栈溢出!),在我所有的研究中,我都无法最终回答这个问题:
当一个 Resource 对象(即一个 Buffer 或一个 Texture 对象)被创建时,例如使用 pDevice->CreateBuffer(),它存储在哪里?在系统 RAM 上还是在 GPU 的 Video-RAM 上?还是我完全误解了 Resource 对象的基本性质?
显然,无论您使用什么数据填充资源(例如顶点和索引数组)都存储在您(程序员)放置它的任何位置,但是一旦您将这些数据映射到 Resource,它会复制到哪里?(我假设,由于必须映射和取消映射资源以进行读/写保护,因此映射的数据实际上被复制了,可能复制到了 VRAM)。此外,Resource 对象本身在哪里实例化?
提前感谢您的任何帮助!
c++ - C++ DirectX11 执行警告 #355 和 #356 = 不正确的步幅大小
我在查找错误的根源时遇到了一些麻烦。该应用程序一切正常,但我收到以下 2 个警告的垃圾邮件:
似乎我的步幅值不正确,但我找不到哪里出错了。该应用程序仅使用实例化绘制多个纹理框。
输入布局:
绘制函数中的相关代码。
保存数据的结构:
正确的步幅应该是 12,因为这是进入输入槽 1 的 XMFLOAT3 和 DXGI_FORMAT_R32G32B32_FLOAT 的字节大小。但我认为它期望我的实例缓冲区的总大小,我用一个包含 XMFLOAT3 数据的 4 个数组填充(4 * 12 = 48 符合警告)。
实例缓冲区:
用数据填充数组并像那样使用它是错误的吗?该程序仍然运行良好。任何帮助将不胜感激。
c++ - D3DERR_INVALIDCALL(D3D11CreateDevice 的返回码)在哪里定义?
MSDN 文档说D3D11CreateDevice返回Direct3D 11 Return Codes之一。其中有 D3DERR_INVALIDCALL。但是 D3DERR_INVALIDCALL 在哪里定义?我正在使用最新的 Windows SDK。我需要包含哪个头文件?