direct3d11相关内容
我在 VS2015 中调试 D3D 应用程序时遇到以下错误. D3D11CreateDevice:已指定标志 (0x2),需要适用于 Windows 10 的 D3D11 SDK 层,但系统上不存在这些标志.必须删除这些标志,或者必须安装 Windows 10 SDK.标志包括:D3D11_CREATE_DEVICE_DEBUG 我知道我需要在 Win10 中启用图形工具或运行 Dism/on
..
我已经通过使用模板缓冲区在我的应用中实现了鼠标拾取. 这是在鼠标下读取值的像素着色器: Texture2DMSdepthStencilTexture : register( t0 );cbuffer ReadDepthInput : register( b2 ){int2 读取位置;}//产生 vector3( x, y, stencilValue )float4 main() : SV_
..
在C ++中,我们有关键字 alignas(n)和 _aligned_malloc(m,n)函数. alignas 适用于该类型,而 aligned_malloc 适用于您所调用的任何类型. 我可以使用 alignas(16)满足Direct3D常量缓冲区的16字节对齐要求吗? 解决方案 是的,您可以像这样使用它: struct SceneConstantBuffer{aligna
..
我正在使用C ++和Direct3D11开发游戏引擎,现在我想向场景中添加可变数量的灯光.到目前为止,我设法添加并渲染了着色器程序中已知并已编码的简单灯光. 在shader.fx中: static const int LightsCount = 4;结构NF3D_LIGHT{//成员...};cbuffer Light:寄存器(b5){NF3D_LIGHT light [LightsCo
..
我正在使用Windows 8/Visual Studio 2012,C ++ 11和Direct3D 11进行开发. 我包括这样的Direct3D库 #pragma注释(lib,"dxgi.lib")#pragma comment(lib,"d3d11.lib")#pragma comment(lib,"d3dx11.lib")//
..
我已经使用d3d11已有很长时间了,发现DirectX调试器后,我最近发现我的程序正在从所有无法正常释放的com对象到处泄漏内存.经过一番窥探和盯着代码看了几个小时,我开发了一些方法来隔离导致引用计数意外增加的地方. 首先,所有对象都被带有自定义删除器的std :: shared_ptrs包裹,这些删除器调用各自的发布函数.我这样做是因为我永远不必调用addref,并且只有在对象超出范围时才
..
我已经使用c ++编写了DX11渲染器。我现在正在寻找一种实现其编辑器/ GUI的方法。 由于我非常习惯Windows窗体和WPF C#应用程序,因此我正在考虑将渲染器放入dll中,然后从ac#应用程序中加载该dll并使用它绘制成一个表格的定义部分。这甚至可以与托管c#应用程序传递的窗口句柄一起使用,如果可以的话,性能如何? 据我了解,由于与DX11 API的实际通信仍将直接在c ++
..
我正在使用Direct3D 11.1创建游戏,我想将玩家的最后记录存储在文件中,所以这是我的代码:(它在!File.good()中失败) fstream File("Score.txt"); if (!File.good()) { return; } if (!F
..
我尝试创建新的ID3D11Texture2D并将其进一步映射到DXGI_MAPPED_RECT. 我收到一些ID3D11Texture2D,但它们没有电源(无法更改其创建方式). 这是代码的一部分: CComPtr cpDXGIResource; RET_HR_NULL(_pTexIn->QueryInterface(__uuidof(IDXGIReso
..
我正在使用SpriteFont/SpriteBatch类将文本呈现到我的游戏上,因为坦率地说,我已经厌倦了使用Direct2D和DirectWrite ...但是每次我使用SpriteFont绘制文本时,我都会在屏幕上书写文本,但是它是写在黑色背景上的...黑色背景遮住了我游戏的整个场景..有什么方法可以删除黑色背景而只保留文本吗? 下面是我对SpriteFont的实现. void R
..
在着色器模型3.0中,我很确定这不是一个否,但是无论如何我都想问这个问题, 在着色器模型5.0中,可以在顶点着色器中对纹理进行采样吗? 如果我想为每个顶点提供大量补充信息,我有什么选择? 编辑: 显然,可以像此处那样完成顶点纹理提取. ,但是当我在hlsl shader model 5程序中尝试使用时,会出现错误 错误X4532:无法将表达式映射到vs_5_0指令集 解决
..
我执行Direct3D后台缓冲区的捕获.下载像素时,图像框架沿其垂直轴翻转.复制资源或创建目标ID3D11Texture2D时是否可以“告诉" D3D翻转框架? 这是我的方法: 将帧缓冲区复制到的纹理是这样创建的: D3D11_TEXTURE2D_DESC description = { desc.BufferDesc.Width, desc.Bu
..
MSDN on D3D11_CREATE_DEVICE_DISABLE_GPU_TIMEOUT 说: Direct3D 11:直到Direct3D 11.1才支持此值. 这是指运行时版本还是功能级别? 我可以将标志传递给 D3D11CreateDevice ,但仅通过功能级别11_0? 功能级别是否无关紧要,仅取决于安装的运行时版本?如果将标志传递给DX运行时11.0,会发
..
我正在构建一个Win7/8/10 x64 Direct3D11桌面应用程序,该应用程序允许用户在窗口模式和全屏模式(适当的专用全屏模式,而不仅仅是最大化窗口*)之间进行切换.在双显示器设置中,我遇到了一些问题. 该开关本身是使用IDXGISwapChain::SetFullscreenState手动执行的,并且可以按预期工作:容纳大部分窗口区域的监视器(称为监视器A)进入专用的全屏模式,而另
..
在VS2015中调试D3D应用程序时,出现以下错误. D3D11CreateDevice: Flags (0x2) were specified which require the D3D11 SDK Layers for Windows 10, but they are not present on the system. These flags must be removed, or t
..
对于D3D编程的新手来说,是应该直接学习D3D12还是在学习D3D12之前必须学习D3D11? 假设从头开始并具有不错的C ++知识,我应该走哪条路? 解决方案 我已经回答了简而言之,应该将Direct3D 12视为"DirectX Extreme Pro".假定您已经是Direct3D 11运行时工作原理的专家,并且基本上可以自己编写.它旨在使中间件引擎和低级图形开发人员可以最大程
..
我使用常量缓冲区将数据传输到像素着色器 问题是缓冲区在运行时在着色器中包含x,x,y,z ,并且不管什么数据被更新到缓冲区,而是float4成员的w。 结构定义如下: //(C ++) struct Buffer { XMMATRIX mvp_; XMFLOAT4 rgba_; int usemvp_; }; // HLSL cbuffer缓冲
..
所以,我不知道如何使用着色器。对它们进行编码很容易,但实际上并不是使用它们。 MSDN真的对我没用,意思是他们有最糟糕的教程。我目前正在阅读弗兰克·卢纳的Direct3d 11书,我终于到了我实际上绘制东西的部分。令人兴奋的,除了不的工作。他的BoxDemo - 我相信工作3年前的时候,这本书是,但现在所有的新DirectX东西 - 省略DirectX SDK,现在使用“Windows SDK”,
..
所以,我不知道如何使用着色器。对它们进行编码很容易,但实际上并不是使用它们。 MSDN真的对我没用,意思是他们有最糟糕的教程。我目前正在阅读弗兰克·卢纳的Direct3d 11书,我终于到了我实际上绘制东西的部分。令人兴奋的,除了不的工作。他的BoxDemo - 我相信工作3年前的时候,这本书是,但现在所有的新DirectX东西 - 省略DirectX SDK,现在使用“Windows SDK”,
..
我刚刚删除了所有的头文件包括在DirectX SDK,我向Windows SDK移动,但一旦我这样做,链接器不断抱怨“未解决的外部符号”。链接器显示大约24个错误,其中大部分错误都是我在我的游戏中甚至没有使用的函数。 链接器错误: error LNK2001:未解析的外部符号“union __m128 __vectorcall DirectX :: XMVectorMultiply(uni
..