问题标签 [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.
directx - 当我画镜面反射时场景变得一团糟(dx9)
在我的项目中,我画了一个房子,它由墙壁、地板、镜子、一个用于打开或关闭消防系统的开关组成。一切都在这里进行得很好。最后,我想在镜子上画一个人的倒影,但是我添加了这个drawReflection
功能后,事情就出错了,场景变得一团糟。为什么?我按照书上写的函数。
但是在我添加drawReflection()
功能之后,它变得一团糟。为什么?
drawReflection()
功能如下:
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。
c++ - Z 缓冲区导致事物不绘制
我在使用 DirectX9 绘制东西时遇到了一些问题。
这是我的渲染功能:
我正在使用以下代码设置 DirectX:
实际上,这会绘制一个没有任何内容的 BackgroundColour 屏幕。
通过关闭 Z 缓冲区 [即 g_pd3dDevice -> SetRenderState(D3DRS_ZENABLE, D3DZB_FALSE);] 一切都按照调用它们的“绘制”函数的顺序绘制。稍后绘制的对象掩盖了之前绘制的对象。
我也尝试过进行这些更改:
和
现在的效果是,首先绘制的对象会遮盖后来绘制的对象,而不管它们的空间位置如何。
我想要的效果是让近处的物体遮挡远处的物体。
任何人都可以对此有所了解。
谢谢你。
c++ - DirectX 托管池
我正在为现有的 C++ DirectX9 应用程序编写插件。一切正常,直到他们出于性能原因决定切换到 IDirect3DDevice9Ex。
现在我在使用“D3DXCreateFontA”渲染文本时收到“D3DPOOL_MANAGED is not valid with IDirect3DDevice9Ex”错误。
问题:在使用 IDirect3DDevice9Ex 时是否有一些解决方法来绘制文本,或者有一些好的库允许我在不使用托管纹理的情况下绘制文本?
directx - SOS:纹理绘制不完美
这是我的代码。
纹理 0 没有任何 alpha 信息。我想为值高于 0x88 的颜色顶点赋予 alpha 值 0。我还想为值低于 0x88 的顶点赋予值 1。
我不知道纹理蒙版效果。
c++ - 将 c++ 应用程序从 Directx9 移植到 Directx10 之前的重要阅读
我即将在我们的软件中开始大规模的重构。目前,渲染组件仍然基于 DX9。新版本将使用DX10。
在我开始之前,是否有任何关于将 DX9 移植到 DX10 的重要且编写良好的指南或概述?我找到了一些次要信息,但找不到任何写得很好的帖子、指南或概述。我想防止自己犯“经典”错误,我可以通过在开始移植之前阅读来防止这些错误。
我的目的是阅读“通用”移植指南以及更具体的示例。该软件同时渲染网格和体积,因此非常感谢有关这些主题的信息。其他关键字 - 但不限于 - :缓冲区、内存管理和多 GPU。
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++ 和着色器代码如下:
绑定到着色器:
在着色器中使用:
请注意,此代码引入了错误只是有根据的猜测。如果上面的代码对您来说是正确的,请也回复(在评论中)。在这种情况下,寻找解决方案的新方向将受到重视。
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 抱有希望,但结果证明“乘法”只是另一种调制。)
有人有想法么?
提前感谢您的任何建议。
c# - 找到一个隐藏的按钮
我过去在partypoker 上玩过,并编写了自己的窗口编曲器。它根据可见按钮排列窗户,但今天我切换到另一个房间。
问题是我找不到带有spy++的按钮。spy++不承认有一个按钮。spy++ 可以找到一些按钮,但不是我需要的按钮
任何想法我怎么能找到这个隐藏的按钮?
directx - .FX 文件大多无法加载,那些无法正常工作的文件
基本上我制作了一个带有动画的 .x 文件模型类,每个模型类都有一个指向效果文件类的指针,所以我制作了一堆不同的模型,我让它们都使用一个单一的效果,例如发光,所以在DrawSubset()
每个模型的渲染功能中都是Begin()
为了End()
效果。问题是我 90% 的 .fx 文件(我尝试在 FX 作曲家和 Rendermonkey 中制作,我尝试加载样本,甚至是简单的样本)它们没有加载并且它说效果是空的,如果有东西设法加载,它会使所有几何图形变灰或切掉它的一部分。这基本上是我的代码(哦,d3d设备指针设置正确,别担心,问题不是那里):
对于功能体:
在模型类中它呈现在这里:
我根据我在 .fx 文件中看到的内容在 cPasses 上尝试了不同的值,但这并没有真正的区别。没有 .fx 文件,我的 .x 文件可以完美地呈现纹理和动画……我从没想过 .fx 文件太难了,这就像 DirectX 迄今为止最令人困惑的部分!