direct3d相关内容

CUDA Direct3D互操作性已弃用?

我一直在浏览CUDA文档,并且直接3D 11互操作性,并且它已被弃用。但是,该文档没有说明执行此操作的新方法是什么,或者为什么不建议这样做。我无法在Google上找到答案。有人知道吗? 解决方案 CUDA Direct3D互操作不被弃用。不推荐使用某些方法。 D3D11不推荐使用的API 在这里。已废弃的API 此处。 b $ b CUDA示例演示不推荐使用的D3D互操作方法。 ..
发布时间:2020-10-22 01:46:49 其他开发

DX12描述符堆管理

因此,在观看dx12绑定视频并阅读了一些文档之后,我不确定100%是否确定我正确理解了如何管理堆。 让我解释我在应用程序中无法实现的目标: 在初始化期间,我将填充两堆,其中一堆容纳采样器,另一堆容纳SRV,CBV和UAV。 这些堆将包含应用程序在其生命周期内将使用的所有资源。 现在开始介绍有趣的部分。要构建根签名,我将主要使用根描述符表。 我们知道,一个表将包含范围,范围是基 ..
发布时间:2020-10-22 01:45:44 其他开发

在CG / HLSL中计算屏幕纹理坐标

在OpenGL中,有时在进行多遍渲染和后期处理时,我需要将图素应用于原始图元的汇编片段,这些片段是全屏纹理合成的一部分。当当前遍历来自FBO纹理要实现此目的,我在SCREEN SPACE中计算对象的UV坐标。在GLSL中,我按以下方式计算它: vec2 texelSize = 1.0 / vec2(textureSize(TEXTURE,0)); vec2 screenTexCoord ..
发布时间:2020-10-22 01:44:42 其他开发

如何提高Direct3D流纹理性能?

我正在尝试加速全屏纹理的绘制,该纹理每帧都会改变。在我的系统上,使用GDI和BitBlt()可以获得大约1000 FPS,但是我认为可以通过使用Direct3D和动态纹理来提高性能。取而代之的是,我只能达到大约250 FPS。 我正在运行带有当前驱动程序的ATI HD 4870的Mac Pro。 我尝试使用动态纹理,这给了我一个小增益(〜15FPS),并且我尝试使用纹理链来避免流水线停 ..
发布时间:2020-10-22 01:44:38 其他开发

如何找出实际的屏幕刷新率(不是四舍五入的数字)

根据 Microsoft的这篇文章用户设置的屏幕刷新率可以是(大部分是)小数。用户设置了59Hz,但屏幕以60Hz的屏幕显示速度运行,但实际上是59.94Hz。我需要一个非常平滑的动画,是59.94Hz。 使用 IDirect3DDevice9 :: GetDisplayMode 我只得到一个 int 值,根据定义它不能代表实际时间( EnumDisplaySettings )。我每秒遇到一 ..
发布时间:2020-10-22 01:44:34 其他开发

D3D11屏幕桌面复制到ID3D11Texture2D

我正在编写一个DLL插件,该插件将读取桌面框架缓冲区(整个屏幕)并将其直接呈现为传入的Texture2D指针。目标是将所有内容保留在视频内存中(并避免复制的开销) 我能够通过Texture2D(显示为ID3D11Texture2D),但是在抓取桌面框架缓冲区时遇到问题与D3D11。 D3D9提供了GetFrontBufferData(),但似乎D3D11解决方案是使用GetBuffer()。 ..
发布时间:2020-10-22 01:44:30 C/C++开发

检测全屏Direct3D应用程序

是否可以通过Direct3D API检测以全屏模式运行的Direct3D应用程序? SHQueryUserNotificationState ,可以指示这样的应用程序,仅在Vista及更高版本上受支持。 解决方案 我发现了如何检测全屏Direct3D和OpenGL(例如Minecraft)应用程序。 调用 IDirectDraw7 :: TestCooperativeLevel ..
发布时间:2020-10-22 01:44:27 其他开发

Direct3D 11效果文件已弃用?

最近我一直在玩Direct3D 11,并且由于缺乏有关API基础知识的文档(例如简单的几何图形渲染)而感到沮丧。稀疏文档带来的混乱点之一是(明显)不使用着色器效果。 在D3D11中,所有效果(.fx)支持都已从D3DX库中删除,并埋藏在很难找到的(当然是文档很少的)共享源中图书馆。所包含的示例均未使用它,而是直接编译HLSL文件。所有这些都对我说,Microsoft试图使人们停止使用效果文件 ..
发布时间:2020-10-22 01:44:25 其他开发

D3D11:从6张图像创建一个立方体贴图

如何在D3D11中从6张图像创建立方体贴图?我发现的所有示例仅使用一个.dds。具体来说,如何上传立方体纹理的各个面? 解决方案 它的工作原理如下: D3D11_TEXTURE2D_DESC texDesc; texDesc.Width = description.width; texDesc.Height = description.height; texDesc.M ..
发布时间:2020-10-22 01:44:20 其他开发

为什么Direct3D应用程序在全屏模式下表现更好?

与窗口模式相比,在全屏模式下Direct3D应用程序的性能似乎要好得多。造成这种情况的技术原因是什么? 我想这与全屏应用程序可以独占显示权有关。但是,为什么应用程序无法获得屏幕(即窗口)的部分的排他控制权,并且具有相同的性能优势? 解决方案 以下是有关事物在下面如何工作的说明。 监视器屏幕始终需要与所谓的主表面关联才能显示任何内容,即视频卡只能从显存中的一个表面扫描出去。 ..
发布时间:2020-10-22 01:44:18 其他开发

Opengl和Webgl:从附加到当前帧缓冲区的纹理采样

我有一个带有两个纹理 t0 和 t1 的帧缓冲区。 在第一遍中,我使用多个片段着色器输出渲染它们两者。 在第二遍之前,我要执行以下操作: 打开仅具有一个输出的着色器 绑定 t1 到纹理单元 调用glDrawBuffers以禁止写入 t1 的附件 请注意, t1 用于采样,但仍绑定到当前帧缓冲区。据我了解,这种配置没有环回。 在OpenGL和WebGL中合法吗? ..
发布时间:2020-10-22 01:44:11 其他开发

C#捕获直接3D屏幕

一段时间以来我一直在愚弄屏幕捕获,我设法捕获了整个屏幕,屏幕上的某些区域等等... 但是当我进入游戏并尝试捕获屏幕,它完全忽略了游戏,而是捕获了桌面(或游戏窗口后面的任何内容)。 另一个有趣的事实是PrtScn按钮也会发生同样的事情。 关于如何捕获游戏屏幕的任何想法? 解决方案 您正在使用的屏幕捕获技术可以很好地捕获非硬件加速的内容。我怀疑您尝试在Windows Media ..
发布时间:2020-10-22 01:44:07 C#/.NET

Windows StretchBlt API性能

我为DDB绘制操作定时,该操作使用多个 StretchBlt 和 StretchDIBits 调用。 我发现,完成时间是与目标窗口大小成比例的增加/减少。 对于900x600的窗口,它需要大约5ms,但是对于1920x1080的窗口,它需要的最大55ms(源图像为1280x640)。 似乎是可伸缩的。API不使用任何硬件加速功能。 源图像(实际上这是临时绘图画布)是使用 C ..
发布时间:2020-10-22 01:44:06 其他开发

WPF与XNA在现实生活中融合得如何?

我了解在同一个应用程序中有几种混合XNA和WPF的方法。我发现在XNA游戏中将WPF用于所有GUI和HUD东西很诱人。是否有人对使用.NET 3.5 SP1在现实生活中如何有效地工作有任何实践经验?任何陷阱(例如“空域问题” )?关于哪种方法最有效的任何提示? 解决方案 3.5 SP1中有一个附加功能,可以在DirectX和WPF之间进行更好的交互(D3DImage ),一种实现方法是通过 ..
发布时间:2020-10-22 01:44:00 其他开发

DirectX纹理尺寸

所以我发现我的图形卡会自动将纹理的大小调整为2的幂,这通常不成问题,但是我只需要渲染纹理的一部分,并且这样做必须具有已经过的尺寸。调整为... 例如: 我将一张370x300像素的图片加载到纹理中,并尝试使用特定的源矩形进行绘制 RECT测试; test.left = 0; test.top = 0; test.right = 370; test.bottom = ..
发布时间:2020-10-22 01:39:03 其他开发

C ++ Direct3D多屏幕捕获

Direct3D专家您好, 我目前正在使用Direct3D开发一个应用程序,以便捕获我的两个显示器桌面(当然用作扩展桌面)。 以下代码效果很好,但我只能捕获主显示,而不能捕获扩展的桌面(只捕获一个屏幕两次) 我如何将此解决方案调整为双屏幕捕获? 首先,我初始化Direct3D: D3DDISPLAYMODE d3dDisplayMode; D3DPRESENT_PA ..
发布时间:2020-09-29 04:58:31 C/C++开发

如何在透明窗口中绘制透明DirectX内容?

我想绘制DirectX内容,以便它似乎漂浮在桌面和任何其他正在运行的应用程序之上。我还需要能够使DirectX内容半透明,这样其他东西才能显示出来。有办法吗? 我在C#中使用托管DX。 解决方案 从OregonGhost提供的链接开始,我找到了一种适用于Vista的解决方案。这是使用C#语法的基本过程。此代码位于从Form继承的类中。如果在UserControl中,它似乎不起作用: ..
发布时间:2020-09-26 02:22:43 C#/.NET

如何从Direct3d11中的顶点缓冲区读取顶点

我对顶点缓冲区有疑问。如何从D3D11的顶点缓冲区中读取顶点?我想获得特定顶点的位置来进行计算,如果这种方法不正确,那该怎么办?以下代码(显然)无效。 VERTEX * vert; D3D11_MAPPED_SUBRESOURCE毫秒; devcon-> Map(pVBufferSphere,NULL,D3D11_MAP_READ,NULL,& ms); vert =(VERT ..
发布时间:2020-09-24 00:55:02 其他开发