问题标签 [directx-9]

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.

0 投票
0 回答
453 浏览

directx - 当我画镜面反射时场景变得一团糟(dx9)

在我的项目中,我画了一个房子,它由墙壁、地板、镜子、一个用于打开或关闭消防系统的开关组成。一切都在这里进行得很好。最后,我想在镜子上画一个人的倒影,但是我添加了这个drawReflection功能后,事情就出错了,场景变得一团糟。为什么?我按照书上写的函数。

但是在我添加drawReflection()功能之后,它变得一团糟。为什么? drawReflection()功能如下:

0 投票
2 回答
960 浏览

java - 如何验证,JavaFX 2.0 在 XP 机器上使用 directx 9?

我在装有 Intel 945 芯片组的计算机上安装了 Windows XP,我想在该计算机上运行 JavaFX 2.0 应用程序。它安装了 DirectX 9.29,但似乎没有使用它,因为处理器负载非常高(每秒刷新 2-4 次百点为 70-100%。好吧,它是一个弱设备,但这太高了。 ..)

有没有办法验证 Prism 是否使用了 directx 渲染?

更新:我已经安装了最新的驱动程序,我已经转移到使用 DirectX 11 的 Windows 7 Embedded。当我启动 dxdiag.exe 时,它​​告诉我 DirectX(DirectDraw、Direct3D、AGP 纹理加速)已启用。但是 JavaFX 2.0 非常慢,而且只使用 CPU 而不是 GPU。

0 投票
1 回答
1185 浏览

c++ - Z 缓冲区导致事物不绘制

我在使用 DirectX9 绘制东西时遇到了一些问题。

这是我的渲染功能:

我正在使用以下代码设置 DirectX:

实际上,这会绘制一个没有任何内容的 BackgroundColour 屏幕。

通过关闭 Z 缓冲区 [即 g_pd3dDevice -> SetRenderState(D3DRS_ZENABLE, D3DZB_FALSE);] 一切都按照调用它们的“绘制”函数的顺序绘制。稍后绘制的对象掩盖了之前绘制的对象。

我也尝试过进行这些更改:

现在的效果是,首先绘制的对象会遮盖后来绘制的对象,而不管它们的空间位置如何。

我想要的效果是让近处的物体遮挡远处的物体。

任何人都可以对此有所了解。

谢谢你。

0 投票
2 回答
864 浏览

c++ - DirectX 托管池

我正在为现有的 C++ DirectX9 应用程序编写插件。一切正常,直到他们出于性能原因决定切换到 IDirect3DDevice9Ex。

现在我在使用“D3DXCreateFontA”渲染文本时收到“D3DPOOL_MANAGED is not valid with IDirect3DDevice9Ex”错误。

问题:在使用 IDirect3DDevice9Ex 时是否有一些解决方法来绘制文本,或者有一些好的库允许我在不使用托管纹理的情况下绘制文本?

0 投票
1 回答
98 浏览

directx - SOS:纹理绘制不完美

这是我的代码。

纹理 0 没有任何 alpha 信息。我想为值高于 0x88 的颜色顶点赋予 alpha 值 0。我还想为值低于 0x88 的顶点赋予值 1。

我不知道纹理蒙版效果。

0 投票
2 回答
2111 浏览

c++ - 将 c++ 应用程序从 Directx9 移植到 Directx10 之前的重要阅读

我即将在我们的软件中开始大规模的重构。目前,渲染组件仍然基于 DX9。新版本将使用DX10。

在我开始之前,是否有任何关于将 DX9 移植到 DX10 的重要且编写良好的指南或概述?我找到了一些次要信息,但找不到任何写得很好的帖子、指南或概述。我想防止自己犯“经典”错误,我可以通过在开始移植之前阅读来防止这些错误。

我的目的是阅读“通用”移植指南以及更具体的示例。该软件同时渲染网格和体积,因此非常感谢有关这些主题的信息。其他关键字 - 但不限于 - :缓冲区、内存管理和多 GPU。

0 投票
1 回答
2377 浏览

hlsl - 在 HLSL 中使用着色器资源(端口 DX9->DX10)

我正在尝试将我的 DX9 体积渲染器移植到 DX10 版本。目前,我遇到以下错误:

D3D10:错误:ID3D10Device::DrawIndexed:着色器代码中声明的视图尺寸与绑定到像素着色器单元的插槽 0 的视图类型不匹配。如果着色器实际使用视图,这是无效的(例如,由于着色器代码分支,它没有被跳过)。[执行错误#354:DEVICE_DRAW_VIEW_DIMENSION_MISMATCH]

我的猜测是我没有以正确的方式将 2D 和/或 3D 纹理(着色器资源)发送到着色器;或者不要以正确的 (dx10) 方式使用它们。DX9 代码类似于以下内容(为了这个问题而进行了简化):

HRESULT 小时;int nVertexShaderIndex = 0;

具有实际数据的 3D 体积纹理以类似方式发送。对应的像素着色器代码:

在 DX10 中我们可以简化一些着色器代码(据我了解)。我创建了一个空纹理并用 map()/unmap() 填充这个纹理。接下来我将它作为着色器资源绑定到我的 PS。c++ 和着色器代码如下:

绑定到着色器:

在着色器中使用:

请注意,此代码引入了错误只是有根据的猜测。如果上面的代码对您来说是正确的,请也回复(在评论中)。在这种情况下,寻找解决方案的新方向将受到重视。

0 投票
0 回答
122 浏览

graphics - 尝试使用 IDirect3D9#SetTextureStageState 找出特定的 alpha 蒙版应用程序

我正在尝试创建一个系统,在该系统中,我可以使用第二个纹理作为 alpha 蒙版来导致纹理淡出。

我在第 0 阶段加载颜色纹理,在第 1 阶段加载遮罩纹理。我可以让它们正确上演,以便 alpha 值基于遮罩,并且我可以使用滑动 D3DTA_CONSTANT 让淡入淡出。问题是我试图创建一个我似乎无法摆脱可用 D3DTA 的特定行为。

基本上我想要两个值,一个叫做“step”,另一个叫做“vague”。'vague' 值将在整个效果中保持不变,'step' 参数将从 0 开始并在几帧内增加到 255。我正在尝试创建以下行为:

*掩码-alpha值低于“step”值的纹素以零alpha绘制。

*蒙版-alpha 值高于“step”+“vague”的纹素使用 255 alpha 绘制。

*蒙版-alpha值在'step'和('step' + 'vague')之间的Texels使用alpha缩放比例绘制,使得alpha'step'为零,alpha('step' + 'vague')绘制最大阿尔法。

这是一个显示函数的图表,因为很难用语言来解释:

http://imageshack.us/photo/my-images/834/desiredalphamaskfunctio.png/

我遇到的主要问题是我无法弄清楚如何配置纹理阶段,以便中间范围(在 step 和 step + vague 之间)“拉伸”其值在 0 到 255 之间。没有直接的除法或乘法,只是调制,所以我不能以明显的方式做到这一点,但我很确定有一种我还没有想到的方法。(我对 D3DTOP_MULTIPLYADD 抱有希望,但结果证明“乘法”只是另一种调制。)

有人有想法么?

提前感谢您的任何建议。

0 投票
1 回答
310 浏览

c# - 找到一个隐藏的按钮

我过去在partypoker 上玩过,并编写了自己的窗口编曲器。它根据可见按钮排列窗户,但今天我切换到另一个房间。

问题是我找不到带有spy++的按钮。spy++不承认有一个按钮。spy++ 可以找到一些按钮,但不是我需要的按钮

任何想法我怎么能找到这个隐藏的按钮?

0 投票
1 回答
445 浏览

directx - .FX 文件大多无法加载,那些无法正常工作的文件

基本上我制作了一个带有动画的 .x 文件模型类,每个模型类都有一个指向效果文件类的指针,所以我制作了一堆不同的模型,我让它们都使用一个单一的效果,例如发光,所以在DrawSubset()每个模型的渲染功能中都是Begin()为了End()效果。问题是我 90% 的 .fx 文件(我尝试在 FX 作曲家和 Rendermonkey 中制作,我尝试加载样本,甚至是简单的样本)它们没有加载并且它说效果是空的,如果有东西设法加载,它会使所有几何图形变灰或切掉它的一部分。这基本上是我的代码(哦,d3d设备指针设置正确,别担心,问题不是那里):

对于功能体:

在模型类中它呈现在这里:

我根据我在 .fx 文件中看到的内容在 cPasses 上尝试了不同的值,但这并没有真正的区别。没有 .fx 文件,我的 .x 文件可以完美地呈现纹理和动画……我从没想过 .fx 文件太难了,这就像 DirectX 迄今为止最令人困惑的部分!