问题标签 [directx-11]
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.
c++ - DirectX OMSetRenderTargets 中的访问冲突
在D3D_FEATURE_LEVEL_9_1
. 此错误发生在 OMSetRenderTargets 函数中,如下所示,如果我从程序中删除该函数,则不会发生此错误(但是,屏幕是蓝色的,并且不呈现三角形)
c++ - d3dx11.h missing?
So I've reinstalled directx11 a couple times and even went to the Microsoft website and got the SDK pack that has all the direct x cabinet files in it. Anyone have any idea why i keep getting this error then? I know why it is saying it but more looking for the solution to it.
1>c:\users\vaughn\documents\visual studio 2010\projects\myfirstapp\myfirstapp\main.cpp(5): fatal error C1083: Cannot open include file: 'd3dx11.h': No such file or directory
c++ - shader.hlsl 文件导致错误?
我正在尝试让这个 DirectX11 项目在屏幕上加载一个三角形,该三角形使用 shader.hlsl 文件根据三角形内的位置为三角形着色(它是一个混合在一起的多色三角形)。这次我也没有收到正常的输出错误。不知道如何接近/处理这个。
//调用shaders.hlsl文件的函数
{
}
directx - 通过 DirectX11 API 使用着色器模型 2 控制 GPU
是否可以通过 DirectX 11 API 以某种方式使用着色器模型 2.0 控制 gpu?
用例是这样的:我们有两种用 directx9 编写的渲染。首先是旧 GPU 的遗留问题,其次是使用着色器的高质量渲染。我们希望将我们的高质量渲染转移到 dx11,但仍支持使用旧版渲染的旧设备。它们有共存的可能吗?
c# - DirectX 11 是否支持 .NET?
我可以从 C# 应用程序使用 DirectX 11 吗?
需要使用 WPF 应用程序中的 DirectSound。.NET 4 W7 x64
c++ - Kinect - 深度流 + 视频流到 DirectX11 纹理
我正在关注 Kinect SDK 教程,到目前为止它似乎运行良好。
我遇到的问题是它使用 DirectX9 进行渲染,而我希望使用 DirectX11。
我设法将实际深度和视频流转换为 BYTE *,但我需要一种将其转换为 DirectX11 纹理的方法。
有没有人做过类似于我想做的事情?如果您有一些示例代码,它将对我有很大帮助,谢谢。
c++ - 按下 Alt-Enter 时调用什么函数?
我有一个游戏应用程序,当按下 Alt-Enter 时,它能够全屏显示并返回窗口。但是,当它全屏显示时,我从 DirectX 收到以下警告:
DXGI Warning: IDXGISwapChain::Present: Fullscreen presentation inefficiencies incurred due to application not using IDXGISwapChain::ResizeBuffers appropriately, specifying a DXGI_MODE_DESC not available in IDXGIOutput::GetDisplayModeList, or not using DXGI_SWAP_CHAIN_FLAG_ALLOW_MODE_SWITCH.
我已经通过测试排除了后两种可能性,所以我知道弹出警告的唯一原因是 IDXGISwapChain::ResizeBuffers 没有被正确使用,或者 Windows 只是被窃听。由于我无法调试第二种可能性,我坚持 ResizeBuffers 问题。为了调试这个,我想看看当按下 Alt-Enter 从窗口到全屏时会发生什么。但是,该应用程序似乎没有调用我的 ResizeDXGIBuffers 方法;事实上,Alt-Enter 似乎嵌入到某个地方的 windows 或 DirectX 中,我不知道如何找到按下它时发生的函数调用链。编辑:当我的方法被放入 WM_ACTIVATEAPP 处理程序时,它被调用,但这不是我的意思。如果我把它从那个消息处理程序中取出,窗口仍然会全屏显示,即使我自己没有调用任何函数来使窗口全屏显示。所以 Alt+Enter 必须自动调用一些内部函数来执行此操作。
所以这是我的问题:有谁知道按下 Alt-Enter 时 Windows 和/或 DirectX 11 调用了什么函数?
编辑:正如这个问题的标签所说,我在 Windows 机器上使用 DirectX 11。具体来说,Windows 7 64 位。
编辑 2:我现在完全吃掉了 Alt+Enter 击键并手动存储了 Alt+Enter 被按下的状态,这样我就可以确定只有我的代码被调用了。然而,我上面提到的警告仍然存在。我也在遵循MSDN 最佳实践,所以我不知道从哪里开始。
c++ - Directx 11 深度测试不起作用
我无法让我的程序正确选择要放在前面的模型。我完全遵循了 MSDN 代码。我的代码似乎在 DrawIndexed 的特定调用中正确绘制了所有多边形,但每个后续调用似乎都会导致模型按照它们的绘制顺序绘制,而不是基于它们是否更靠近屏幕。
这是我初始化 Direct3d 的代码:
这是我的渲染代码:
我尝试过广泛搜索,并遵循了我能找到的每一个教程。没有什么能解决它。
在球体的情况下,如果从一侧看,深度似乎是正确的,但从另一侧看则不然。
任何帮助,将不胜感激。谢谢。
directx - 在图形驱动程序中使用除 Draw() API 调用之外的 DirectX 10.0 或 11.0 顶点或像素着色器
我们的项目是分析 DirectX 10 或 11 SDK 应用程序或游戏(生化奇兵、孤岛惊魂等)应用程序中使用的各种顶点和像素、几何着色器。
现在我们需要对着色器(VS、GS、PS)何时被使用或在管道中执行时有一个技术性的了解,我们知道在 Draw() DirectX API 调用期间,设置着色器获取在管道内执行。
除了 Draw() 调用之外,是否还有其他 API 可以在内部执行或利用使用 SetShader() 设置到 Pipeline 的 Shader?
设备 API(例如 Map、unmap、getResourcem 和 Copy 资源)是否间接操纵着色器?
任何与 DirectX 运行时或图形驱动程序中的着色器使用相关的指针,而不是 DirectX Draw() API 调用,都将有助于我们识别并拥有健壮的实现。
c++ - DX10 Mesh::DrawSubSet
我正在涉足DX11,我注意到没有ID3DX11Mesh,就像DX10中有ID3DX10Mesh一样。我想这可能是由于两件事之一,要么 ID3DX10Mesh 不需要替换,因为 DX11 主要只是扩展了 DX10,或者它已被 XNA 框架中的某些东西替换?
不完全是一个问题,DX10 似乎仍然可以与 DX11 一起使用,但我认为我不妨实现自己的网格类。
现在的问题是,ID3DX10Mesh::DrawSubSet 究竟是如何工作的?能够绘制具有不同材料/属性的网格子集是我希望我需要的。
我知道它使用某种属性表——我不清楚它是如何存储和使用的。
我能想到的一个简单解决方案是简单地将多个索引缓冲区存储在一个网格中,每个子集一个。尽管有许多属性,但这可能会变成大量的索引缓冲区。
或者,通过存储网格的面(通过索引引用顶点)并为它们分配属性,我可以通过从具有该属性的所有面构建索引缓冲区来绘制具有某个属性的面子集。
在这两个中,存储面孔似乎更整洁,但我希望无论如何我都必须存储索引缓冲区。(似乎没有必要牺牲每一帧重建这些缓冲区的时间)
我想无论如何都应该避免使用许多子集以保持低绘制调用的数量,并且在这种情况下,额外的缓冲区不应该占用太多额外的内存。
不过,这两个想法似乎都不理想,所以我欢迎其他想法或线索来了解 DrawSubSet 的实际实现:)