问题标签 [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.
c# - DirectX 9 - 创建设备并渲染到 DLL 内的纹理?
我正在尝试在 DLL 中创建托管 DirectX 9 设备,然后使用该 DLL 将场景渲染到屏幕外表面。我知道如何进行屏幕外渲染,但我的问题是:
是否可以在 DLL 中创建 directx 设备?
微弱的尝试 #1 ( InvalidCallException
):
微弱的尝试 #2 ( InvalidCallException
):
可用的设备构造函数重载有:
任何帮助都可能让我开心!
c# - DirectX9 中的简单 HLSL 发光/模糊效果
几天来,我一直在努力寻找任何资源来帮助我使用高级着色器语言和 DirectX 9 托管库编写简单的发光/模糊着色器。
我需要做的就是将一组CustomVertex.TransformedColored
顶点绘制为简单的线条,然后通过 HLSL 效果进行模糊/发光。
我已经在互联网上搜索了大约三天,得到了一些结果,但我找不到真正好的教程或示例。我对 HLSL 有基本的了解,但我对它的了解还不够,无法弄清楚如何编写这个着色器(我也阅读了 3 本 DirectX 书籍中的 HLSL 章节)。
这是一些(删节的)代码:
我想我并没有太多在 HLSL 的特定部分寻求帮助,考虑到我必须发布的问题数量和代码量,我真的只是在寻找一些帮助来寻找资源!
directx - 为什么 Direct3DCreate9 会很慢?
我正在尝试加快我的 Direct3D 应用程序的启动时间,并且我注意到 Direct3DCreate9 根据分析器需要一整秒(比其他任何东西都多)。为什么?可以做些什么呢?
操作系统:XP,DirectX:9.0。在具有不同 DirectX 的 Windows 7 上的行为相同,而且我注意到许多游戏也受到这种“Direct X 初始化”滞后的影响,所以这不仅仅是我的配置问题。
visual-studio - Visual C++ 2005 找不到 dxtrans.h,尽管它位于我的包含目录的第一个文件夹中
我将 2007 directx sdk 包含目录设置为 Visual C++ 2005 中包含文件目录列表中的第一个条目,并且该目录包含 dxtrans.h。然而,当我尝试构建我的项目时,我得到“要编译 qedit.h,您必须安装 DirectX 9 SDK,以获取 dxtrans.h 头文件。”,伴随着 Windows sdk 头文件中的数百个语法错误(amstream.h, qedit.h 等)。为了让编译器找到 dxtrans.h,我还需要执行一些其他魔法咒语吗?错误消息是红鲱鱼吗?
c# - 闪烁网格问题:DirectX HLSL
问题:我在 Managed DirectX 9 中使用 HLSL (高级着色器语言)渲染网格。根据网格的复杂性(顶点和面的数量),我有时会遇到闪烁问题。
显然,复杂度较高的网格应该需要更长的时间来渲染,并且闪烁的量随着网格的复杂度而增加。但是,发生的情况是网格根本没有渲染,并且绘制网格所需的时间显着降低。
Increased Mesh Complexity -> Increased Flickering
代码:
结果:这是我得到的输出(为了便于阅读,我插入了上面代码中未包含的计时器):
HLSL 代码:这是缩写的HLSL 代码,请注意这不是实际代码,所以不要挖掘语法错误,我向您保证实际代码非常相似。
任何帮助/想法/建议将不胜感激。谢谢!
c++ - 如何设置二维窗口
如何在 Directx 中设置 2d 视图?这个OpenGL有没有类似的功能?
directx - 如何在辅助屏幕上打开硬件加速 DirectX 窗口
我希望在辅助屏幕上创建一个硬件加速的 DirectX(目前为 9)窗口。此屏幕连接到与主屏幕相同的图形显示器(至少目前是这样)。
目前,当我尝试根据窗口位置或通过拖动它在辅助屏幕上打开窗口时,CPU 使用率会跳跃约 10%,这似乎表明 Windows 正在切换到软件回退而不是硬件加速。
机器是运行 NVIDIA 显卡的 windows XP(不同的卡,因为它在多台机器上运行),带有最新的驱动程序。如果这很重要,它还会同时运行 CUDA 来生成图像。编程语言是c++,手动创建窗口和消息队列,暂时没有使用takebox来管理GUI
谢谢
visual-c++ - 沿其方向将 3D(x,y,z) 转换为 2D(x,y)(正交)
我已经尽可能多地浏览了互联网上所有可用的学习资源,它们的形式是简单的方程、向量或三角方程。我找不到做以下事情的方法:
假设 Y 在 3D 世界中。我需要为 3D 轨迹正交绘制两个 2D 轨迹(不是投影),例如XY 平面用于轨迹本身的轨迹侧视图和 XZ 平面用于相同的俯视图。
我有 3D 轨迹的所有 3D 点,初始速度,这两个角度都可以通过向量数学计算。
我应该如何进一步进行?
参考:在不同角度的曲线下方,如果沿 XY 平面投影可能会失去意义。我想要的只是沿着自身转换红色曲线,沿着绿色曲线转换绿色曲线等等。以及如何将侧视图映射到飞机。俯视图比较简单,只需取每个点的 X 和 Z 坐标即可。
我的意思是这个要求。:)
c++ - 我可以以编程方式访问调用函数的名称吗?
我希望为我正在处理的项目的日志文件系统添加一些功能。对于我的LogError()
调用,我想包含发生错误的函数。我想知道是否有一种方法可以访问调用的函数的名称,LogError()
以便我可以以编程方式访问该信息以将其添加到日志中。
例如:
在上面的示例中,我希望LogError()
能够确定它是从中调用GraphicsManager::Initialize()
并输出(至少部分)该函数的名称,而不是手动将其放在任何地方。
编辑:我应该提到我的LogError()
函数(和其他日志记录函数)本质上是包装器,vfwprintf_s()
因此它们可以采用可变长度参数列表。虽然我喜欢“使用宏”的建议,但我不确定如何解决这个潜在问题(这可能是另一个问题)。
这仍然合理/可能吗?
谢谢!