direct3d11相关内容

如何离线安装适用于 Windows 10 的 D3D11 SDK 层

我在 VS2015 中调试 D3D 应用程序时遇到以下错误. D3D11CreateDevice:已指定标志 (0x2),需要适用于 Windows 10 的 D3D11 SDK 层,但系统上不存在这些标志.必须删除这些标志,或者必须安装 Windows 10 SDK.标志包括:D3D11_CREATE_DEVICE_DEBUG 我知道我需要在 Win10 中启用图形工具或运行 Dism/on ..
发布时间:2022-01-15 15:10:31 其他开发

常量缓冲区的aligned_malloc()和alignas()

在C ++中,我们有关键字 alignas(n)和 _aligned_malloc(m,n)函数. alignas 适用于该类型,而 aligned_malloc 适用于您所调用的任何类型. 我可以使用 alignas(16)满足Direct3D常量缓冲区的16字节对齐要求吗? 解决方案 是的,您可以像这样使用它: struct SceneConstantBuffer{aligna ..
发布时间:2021-05-31 19:48:35 其他开发

D3D11:HLSL中可变数量的灯

我正在使用C ++和Direct3D11开发游戏引擎,现在我想向场景中添加可变数量的灯光.到目前为止,我设法添加并渲染了着色器程序中已知并已编码的简单灯光. 在shader.fx中: static const int LightsCount = 4;结构NF3D_LIGHT{//成员...};cbuffer Light:寄存器(b5){NF3D_LIGHT light [LightsCo ..
发布时间:2021-05-14 19:11:18 C/C++开发

D3D11从哪里增加了引用计数?

我已经使用d3d11已有很长时间了,发现DirectX调试器后,我最近发现我的程序正在从所有无法正常释放的com对象到处泄漏内存.经过一番窥探和盯着代码看了几个小时,我开发了一些方法来隔离导致引用计数意外增加的地方. 首先,所有对象都被带有自定义删除器的std :: shared_ptrs包裹,这些删除器调用各自的发布函数.我这样做是因为我永远不必调用addref,并且只有在对象超出范围时才 ..
发布时间:2021-04-20 18:36:03 C/C++开发

在C#WPF或Windows Forms应用程序中使用DirectX c ++ DLL

我已经使用c ++编写了DX11渲染器。我现在正在寻找一种实现其编辑器/ GUI的方法。 由于我非常习惯Windows窗体和WPF C#应用程序,因此我正在考虑将渲染器放入dll中,然后从ac#应用程序中加载该dll并使用它绘制成一个表格的定义部分。这甚至可以与托管c#应用程序传递的窗口句柄一起使用,如果可以的话,性能如何? 据我了解,由于与DX11 API的实际通信仍将直接在c ++ ..
发布时间:2020-10-22 03:55:53 C#/.NET

使用SpriteFont类绘制文本时出现问题

我正在使用SpriteFont/SpriteBatch类将文本呈现到我的游戏上,因为坦率地说,我已经厌倦了使用Direct2D和DirectWrite ...但是每次我使用SpriteFont绘制文本时,我都会在屏幕上书写文本,但是它是写在黑色背景上的...黑色背景遮住了我游戏的整个场景..有什么方法可以删除黑色背景而只保留文本吗? 下面是我对SpriteFont的实现. void R ..
发布时间:2020-06-11 19:32:58 C/C++开发

您可以在顶点着色器中对纹理进行采样吗?

在着色器模型3.0中,我很确定这不是一个否,但是无论如何我都想问这个问题, 在着色器模型5.0中,可以在顶点着色器中对纹理进行采样吗? 如果我想为每个顶点提供大量补充信息,我有什么选择? 编辑: 显然,可以像此处那样完成顶点纹理提取. ,但是当我在hlsl shader model 5程序中尝试使用时,会出现错误 错误X4532:无法将表达式映射到vs_5_0指令集 解决 ..
发布时间:2020-06-11 19:32:54 其他开发

Direct3D11:翻转ID3D11Texture2D

我执行Direct3D后台缓冲区的捕获.下载像素时,图像框架沿其垂直轴翻转.复制资源或创建目标ID3D11Texture2D时是否可以“告诉" D3D翻转框架? 这是我的方法: 将帧缓冲区复制到的纹理是这样创建的: D3D11_TEXTURE2D_DESC description = { desc.BufferDesc.Width, desc.Bu ..
发布时间:2020-06-11 19:32:52 其他开发

D3D11_CREATE_DEVICE_DISABLE_GPU_TIMEOUT是否可以与D3D_FEATURE_LEVEL_11_0一起传递?

MSDN on D3D11_CREATE_DEVICE_DISABLE_GPU_TIMEOUT 说: Direct3D 11:直到Direct3D 11.1才支持此值. 这是指运行时版本还是功能级别? 我可以将标志传递给 D3D11CreateDevice ,但仅通过功能级别11_0? 功能级别是否无关紧要,仅取决于安装的运行时版本?如果将标志传递给DX运行时11.0,会发 ..
发布时间:2020-06-11 19:32:50 其他开发

将窗口从监视器B移动到监视器上时,双监视器设置中监视器A的全屏模式会中断

我正在构建一个Win7/8/10 x64 Direct3D11桌面应用程序,该应用程序允许用户在窗口模式和全屏模式(适当的专用全屏模式,而不仅仅是最大化窗口*)之间进行切换.在双显示器设置中,我遇到了一些问题. 该开关本身是使用IDXGISwapChain::SetFullscreenState手动执行的,并且可以按预期工作:容纳大部分窗口区域的监视器(称为监视器A)进入专用的全屏模式,而另 ..
发布时间:2020-06-11 19:32:46 C/C++开发

Direct3D编程的新手:11 vs 12

对于D3D编程的新手来说,是应该直接学习D3D12还是在学习D3D12之前必须学习D3D11? 假设从头开始并具有不错的C ++知识,我应该走哪条路? 解决方案 我已经回答了简而言之,应该将Direct3D 12视为"DirectX Extreme Pro".假定您已经是Direct3D 11运行时工作原理的专家,并且基本上可以自己编写.它旨在使中间件引擎和低级图形开发人员可以最大程 ..
发布时间:2020-06-11 19:32:38 其他开发

D3D10常量缓冲区不工作

我使用常量缓冲区将数据传输到像素着色器 问题是缓冲区在运行时在着色器中包含x,x,y,z ,并且不管什么数据被更新到缓冲区,而是float4成员的w。 结构定义如下: //(C ++) struct Buffer { XMMATRIX mvp_; XMFLOAT4 rgba_; int usemvp_; }; // HLSL cbuffer缓冲 ..
发布时间:2016-11-02 22:15:42 C/C++开发

无法弄清楚DirectX11的着色器?

所以,我不知道如何使用着色器。对它们进行编码很容易,但实际上并不是使用它们。 MSDN真的对我没用,意思是他们有最糟糕的教程。我目前正在阅读弗兰克·卢纳的Direct3d 11书,我终于到了我实际上绘制东西的部分。令人兴奋的,除了不的工作。他的BoxDemo - 我相信工作3年前的时候,这本书是,但现在所有的新DirectX东西 - 省略DirectX SDK,现在使用“Windows SDK”, ..
发布时间:2016-10-25 15:44:46 C/C++开发

无法弄清楚DirectX11的着色器?

所以,我不知道如何使用着色器。对它们进行编码很容易,但实际上并不是使用它们。 MSDN真的对我没用,意思是他们有最糟糕的教程。我目前正在阅读弗兰克·卢纳的Direct3d 11书,我终于到了我实际上绘制东西的部分。令人兴奋的,除了不的工作。他的BoxDemo - 我相信工作3年前的时候,这本书是,但现在所有的新DirectX东西 - 省略DirectX SDK,现在使用“Windows SDK”, ..
发布时间:2016-10-25 15:32:37 C/C++开发

链接器在从旧版DirectX SDK更改为Windows SDK(Visual Studio 2015)后继续抱怨)

我刚刚删除了所有的头文件包括在DirectX SDK,我向Windows SDK移动,但一旦我这样做,链接器不断抱怨“未解决的外部符号”。链接器显示大约24个错误,其中大部分错误都是我在我的游戏中甚至没有使用的函数。 链接器错误: error LNK2001:未解析的外部符号“union __m128 __vectorcall DirectX :: XMVectorMultiply(uni ..
发布时间:2016-10-20 23:44:13 C/C++开发