问题标签 [directx-10]
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.
hlsl - 直接计算hlsl numthreads?
由于您已经定义了调度计算着色器时要执行的线程组,所以着色器文件中的数字表示什么?示例:[numthreads(1, 1, 1)]
hlsl - DirectCompute写入缓冲区速度
我正在研究粒子 sim 并且遇到了一些瓶颈,使用 UAV 写入 RWStructured 单浮点缓冲区的速度太慢了大约 10 倍。从实验来看,带宽似乎并不短缺,但访问时间本身就让它陷入困境。追加写入是不可能的,因为传出数据需要按特定顺序排列。这是在 DX10/SM4 硬件上,所以这里有几个问题:有没有办法加快速度(除了写入更大的数据块,因为着色器的输出是不连续的)?如果不是,那么 DX11 级硬件与无人机相比是否更快?
directx-9 - Convert ID3D11Texture2D into a memory buffer
How can we convert ID3D11Texture2D
into a memory buffer? I have ID3D11Texture2D*
and need to read data from it to a memory buffer.
c++ - DirectX 相机定位(第三人称视角)
我正在创建一个 3d 飞行游戏并使用 DXUTCamera 作为我的视图。
我可以让相机拍摄角色位置,但我想以第三人称观看我的角色。
这是我第一人称视角的核心
那么有人知道如何将相机移动到第三人称视角吗?最好是定时的,这样相机运动就会有一个平稳的动作。(我希望我可以编辑这段代码而不是引入另一个相机类)
slimdx - SlimDX DirectX10 多重采样不起作用
我正在 DirectX10 中设置我的 SlimDX 项目,但我无法让多重采样工作。这是我的设备初始化:
我正在渲染一个简单的盒子。我也查了
有 1、2、4、8 和 16 个样本。每次该函数返回 1。但是,当我将 1 放入 SwapChainDescription SampleDescription Quality 时,设备创建会抛出错误:
我基本上只能将 0 用于质量计数。然而,在我的笔记本上,我可以选择不同的质量级别,但多重采样在那里也不起作用,而且 PC 和笔记本显卡都支持多重采样。
有什么我做错了吗?
virtualbox - 对directx 10 的virtualbox 支持
我在 Mac 上安装了 VirtualBox,并在其中运行 Windows 7。我需要 DirectX 10 才能运行应用程序。我设法得到的最好的是directX 9。
是可用的么?我在https://wiki.archlinux.org/index.php/VirtualBox_Extras上发现 我可以使用 wine3d,但注释说它只适用于 Windows 7 RC 来宾 AFAIK,那是什么?
谢谢
c# - Windows 7/8、Direct3D9、10 和 11 - 效果/着色器
目前,我正在为 Windows 8 商店、Windows 8 桌面和 Windows 7 开发应用程序。该应用程序应该在平板电脑和“普通”Windows 7/8 设备上顺利运行。所以,我从工作中得到了一台平板电脑并在上面安装了 Windows 8,只是为了意识到令人毛骨悚然的英特尔图形媒体加速器 (600) 只支持 DirectX 9.0c。
所以,我现在尝试了几个小时让我的 DirectX10/11 效果/着色器在 DirectX9 上运行,但似乎没有任何效果。使用 NVidia 的 FxComposer 进行的测试显示,DirectX9 效果运行良好。
我正在使用 SharpDX / C# 进行编程,并且技术 10 和技术 11 都是有效的(MyTechnique.IsValid == true)。要加载效果,我使用这些代码行:
我在这里粘贴了效果源代码:http: //pastebin.com/KPxBN1DD ..排除了“main_11”和“main_10”,在我的测试中,我将它们注释掉了,所以我只是删除了那些评论块..我认为dx9应该理解这个非常简单的代码..
所以我的最后一个问题是: - 参数“fx_5_0”对于加载技术、技术 10 和技术 11 是否有效?- 我的着色器代码正确吗?还是我做错了什么?- 我是否必须指定任何其他/附加信息/功能/参数来加载 DX9 技术?- 也许它是SharpDX的一个错误?我现在想看看这个代码..
编辑:试图使问题更清楚一点..
directx-10 - 顶点缓冲区是在另一个线程上创建的,而不是在创建 DXDevice 的线程上,更慢吗?
如果我使用多线程创建一堆顶点缓冲区(即设置为保存顶点的 DX10 缓冲区),它们会比在与 DXDevice 相同的线程上创建的缓冲区慢(绘制为图元)吗?
我问是因为 DirectX10 DXDevice 从不同的线程呈现时比创建它的线程慢,而且我在 Google 上找不到答案。
directx - 尝试使用 TriangleStrip Topologu 创建三角形时的奇怪行为
我尝试在 Input Assembler 设置为三角形带的情况下创建这个 2D 三角形:
但是,没有绘制三角形,实际上在渲染目标上没有绘制任何内容,甚至没有绘制一条线。我搞砸了,然后我交换了坐标2
和3
,它起作用了。三角形是按照我的意图绘制的。这种奇怪行为的原因是什么?
directx - 禁用 DWM 的窗口模式下的 Direct3D 10 垂直同步问题
在禁用 DWM 的窗口模式下,Direct3D 10 上的 vsync 出现问题。
我们有一个应用程序,它呈现并呈现一些输出。它必须在窗口模式下工作,并且必须至少产生稳定的 60 fps。一个版本的应用程序使用 Direct3D 9 和另一个 Direct3D 10。当我们在窗口模式下工作时,有时我们会降低 fps(它不是“稳定”降低。在大多数情况下,我们产生稳定的 60 fps,有时它会突然降低几秒钟,然后恢复到 60 fps)。在这两个版本的应用程序中,fps 降低约为 10-20 fps。这是不可接受的。
在 Windows Vista 和 Windows 7 中,有新的图形系统,称为“桌面合成”,它改变了应用程序在屏幕上显示像素的方式。桌面合成由桌面窗口管理器 (DWM) 执行。您知道,当启用 DWM 时,应用程序会绘制到显存中的屏幕外表面,而不是由 DWM 渲染并在一段时间内呈现在显示器上。因此,我们注意到,当任务管理器中的 dwm.exe 不执行任何操作(处理时间约为 0%)时,我们的 fps 会降低,而当 dwm.exe 占用 1-3% 的处理时间时,会有稳定的 60 fps 并且一切正常好的。
我们无法影响它。因此,我们必须关闭 DWM 才能获得高稳定的 fps。当我们关闭它时,一切正常。两个版本的应用程序都有稳定的 60 fps。但是DWM是在窗口模式下做vsync的,所以当我们关闭它的时候,我们必须自己做vsync。
但是当我们关闭 DWM 时,Direct3D 10 在窗口模式下的 vsync 会出现问题。显示器顶部有图像撕裂。Direc3D 9 一直运行良好。
因此,我们有一台刷新率为 60 Hz 的显示器。
在创建交换链时,我们设置了这样的参数:
在演示时,我们设置了一个标志来打开 vsync:
并有下一个垂直同步问题。有垂直线,从左侧快速移动到右侧。并且显示器顶部有图像撕裂。
http://bit.ly/POQoFq
起初我们认为,我们做错了什么。所以我用旋转立方体安装了微软的示例“Tutorial 07: Texture Mapping and Constant Buffers”。使立方体更大,将其放置得更高,使其旋转更快并遇到相同的问题(见图)。
http://bit.ly/SevNqw
http://bit.ly/RSoEhc
http://bit.ly/UjaNPu
因此,在全屏模式下的 Direct3D 10 上一切正常。垂直同步完美运行。在 Direct3D 9 上也一切正常,在禁用或启用 DWM 的情况下,vsync 效果很好。在禁用 DWM 的窗口模式下的 Direct3D 10 上存在问题。
它在不同的计算机、不同的显卡(Nvidia 8600 GT、Nvidia 9500 GT、ATI Radeon HD 5870 Eyefinity 6)和不同版本的驱动程序上进行了测试。问题稳定重现。我们使用的是 Windows 7。
那么,为什么会出现这样的问题呢?如何解决它以及下一步该怎么做?
UPD1。如果上面的图像不可用,则有一些镜子。
https://dl.dropbox.com/u/20468014/DSC_2287.JPG
https://dl.dropbox.com/u/20468014/DSC_2308.JPG
https://dl.dropbox.com/u/20468014/DSC_2313。 JPG
https://dl.dropbox.com/u/20468014/DSC_2319.JPG
UDP2。我还想注意,我正在创建带有标志 WS_POPUP 的窗口以隐藏标题栏(它必须被隐藏)。图像撕裂出现在不同的地方。它总是在屏幕的顶部,但它可以是 20 像素,也可以是 50 像素。因此,在创建带有标题栏的窗口时,有时图像的顶部可能根本看不到图像撕裂。