问题标签 [managed-directx]

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 投票
1 回答
1530 浏览

c# - DirectX 9 - 创建设备并渲染到 DLL 内的纹理?

我正在尝试在 DLL 中创建托管 DirectX 9 设备,然后使用该 DLL 将场景渲染到屏幕外表面。我知道如何进行屏幕外渲染,但我的问题是:

是否可以在 DLL 中创建 directx 设备?

微弱的尝试 #1 ( InvalidCallException):

微弱的尝试 #2 ( InvalidCallException):

可用的设备构造函数重载有:

任何帮助都可能让我开心!

0 投票
1 回答
5727 浏览

c# - DirectX9 中的简单 HLSL 发光/模糊效果

几天来,我一直在努力寻找任何资源来帮助我使用高级着色器语言和 DirectX 9 托管库编写简单的发光/模糊着色器。

我需要做的就是将一组CustomVertex.TransformedColored顶点绘制为简单的线条,然后通过 HLSL 效果进行模糊/发光。

我已经在互联网上搜索了大约三天,得到了一些结果,但我找不到真正好的教程或示例。我对 HLSL 有基本的了解,但我对它的了解还不够,无法弄清楚如何编写这个着色器(我也阅读了 3 本 DirectX 书籍中的 HLSL 章节)。

这是一些(删节的)代码:

我想我并没有太多在 HLSL 的特定部分寻求帮助,考虑到我必须发布的问题数量和代码量,我真的只是在寻找一些帮助来寻找资源!

0 投票
1 回答
846 浏览

c# - 闪烁网格问题:DirectX HLSL

问题:我在 Managed DirectX 9 中使用 HLSL (高级着色器语言)渲染网格。根据网格的复杂性(顶点和面的数量),我有时会遇到闪烁问题。

显然,复杂度较高的网格应该需要更长的时间来渲染,并且闪烁的量随着网格的复杂度而增加。但是,发生的情况是网格根本没有渲染并且绘制网格所需的时间显着降低

Increased Mesh Complexity -> Increased Flickering

代码

结果:这是我得到的输出(为了便于阅读,我插入了上面代码中未包含的计时器)

HLSL 代码:这是缩写的HLSL 代码,请注意这不是实际代码,所以不要挖掘语法错误,我向您保证实际代码非常相似。

任何帮助/想法/建议将不胜感激。谢谢!

0 投票
2 回答
314 浏览

c# - 对 4 点图像变换施加限制

我正在为应用程序进行 4 点图像转换。用户可以拖动每个角来创建一个有效的四边形,或者使用它的“边界框”来垂直、水平和按比例调整它的大小。

到目前为止,我的图像转换部分正在工作。但是,我很难对其施加限制,以便...

  1. 顶点不会相互交叉。换句话说,我不允许用户创建沙漏形状。它必须始终是四边形。
  2. 同样,每个角之间的角度必须大于 0。否则,顶点将排成一条直线。
  3. 它在此图像上具有最小尺寸。也就是说,每个角必须彼此相距一定距离,以及它们的相对线。
  4. 用户不能将图像“翻转”到其背面。4 个角(p1、p2、p3 和 p4)必须按顺时针顺序出现。
  5. 凹形风筝形状和三角形是有效的。

我想知道是否有关于这些问题的公式或论文。我目前确实有用于查找 2 条线段是否相交(以及在何处相交)以及查找一条线上与另一点最近的点的公式。我的大多数实现都不像我喜欢的那样对用户友好,因为在施加限制时角落会到处乱跳。

PS我在这个项目中使用C#,带有DirectX。但是,该应用程序仅是 2D 的。

0 投票
2 回答
1204 浏览

graphics - 有哪些适合开始游戏编程的好书?

我已经编程 2 年多了,我想开始图形编程并制作一些简单的游戏。我看过的很多学习directx的书都假设你知道它的基础知识,而我不知道,或者他们只会给你一些片段,并假设你可以在没有的情况下消化他们的神秘代码一个解释。那么对于那些真正接触图形编程但对一般编程有一定了解的人来说,有哪些好书呢?

0 投票
1 回答
610 浏览

c# - DirectX Z 缓冲区问题

有谁知道是什么导致了我在 C# Managed DirectX 应用程序中看到的奇怪工件。这是我遇到的问题的屏幕截图:

在此处输入图像描述

您正在查看的是一些地形,其下方有一个平面。

  • 在左侧,您可以看到地形前面的飞机,即使它不应该是可见的(它在下面)
  • 在中间有一个过渡阶段,你会看到我一直称之为“百叶窗”的东西
  • 右侧显示正确

这一定是 Z-Buffer 问题,但我无法解决。有没有其他人遇到过同样的问题?它快把我逼疯了!

0 投票
2 回答
7756 浏览

c# - SlimDX DirectInput 初始化

我最近使用 Direct3D 11 从 MDX 2.0 切换到 SlimDX,但我在努力实现键盘和鼠标控制。

在 MDX 中,您可以使用

设置键盘界面,但是 SlimDX 有不同的方法。在 SlimDX 中,Device 是一个抽象类,取而代之的是一个必须通过传入 DirectInput 对象来初始化的 Keyboard 类,但我终其一生都无法弄清楚如何创建 DirectInput 对象或它的用途。

据我所知,SlimDX 的文档非常少,如果有人知道任何用于学习其特殊怪癖的好资源,那将是非常棒的,谢谢。

0 投票
1 回答
600 浏览

c# - C# MDX 在精灵上绘制透明矩形

我想在俄罗斯方块游戏中制作一个“Pausemenu”,当我按下 Esc 时,菜单弹出并且用户清楚地知道游戏没有运行,我想在整个游戏精灵上绘制一个透明的黑色矩形,我'我在 .Net Framework 3.5 上使用 C# Managed DirectX 9.0c。(我可以使用纹理实现相同的效果,但由于在设置中可以更改板的宽度/高度,这将是一个丑陋的解决方案)

有没有简单的方法来实现这一目标?

0 投票
1 回答
1655 浏览

c# - C#:无法创建 DirectX 设备。硬件类型或软件类型都不起作用

我正在尝试通过以下代码创建 DirectX 设备:

问题是这仅适用于某些计算机(例如我的工作计算机),而不适用于其他计算机(具体而言,松下 CF-19 Toughbook)。我已经检查以确保有问题的 PC 通过 dxdiag 启用了硬件加速,但它仍然没有让步。

不幸的是,我收到的唯一错误消息是“应用程序错误”。我什至在上面的代码之间插入了几个消息框,它似乎从来没有碰到 ex1 和 ex2 的 catch 块。

有想法该怎么解决这个吗?

编辑:对不起,我刚刚意识到我忘了显示我的 PresentParameters。

0 投票
2 回答
594 浏览

c# - 从 C# 调用 C++/CLI 构造函数时出错

我正在尝试通过以下代码片段在 SlimDX 中使用 StateBlock 来保存和恢复状态:

StateBlockMask 和 StateBlock 都是类。这给了我一个编译错误:

从 SO 上的其他一些帖子中阅读,这似乎是一个与使用错误参数调用托管代码有关的问题。在 SlimDX 的源代码中,我发现:

我完全没有使用 C++/CLI 的经验,所以我想知道这里是否有问题(例如缺少或额外的 ^),还是应该将错误集中在我这边?

(注意:此问题已交叉发布到 gamedev.net,未来有相同问题的用户可能还想查看那里给出的答案)