问题标签 [direct3d9]

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 回答
896 浏览

c# - Direct3D 上传视频纹理

我正在尝试在 Direct3D 9 设备上播放视频,使用:

  1. nVLC - 用于从文件中获取 RGB32 帧
  2. SlimDX - 实际上使用纹理在视频设备上显示帧。

这是我接收 RGB32 帧的代码;

这是我对 SetTexture 和将纹理映射到正方形的实际用法:

最后是实际渲染:

现在,它可以在我的机器上运行。没有什么问题。每个视频文件和每个位置。但是当我检查WinXP时,画面完全坏了。这是非工作和工作的屏幕截图;

http://www.upload.ee/image/2941734/untitled.PNG

http://www.upload.ee/image/2941762/Untitled2.png

请注意,在第一张图片上,它们是 _maincontentSurface 和 _secondaryContentSurface。有谁知道可能是什么问题?

0 投票
1 回答
240 浏览

c++ - Sprite 对象在放入 Vector 时不再渲染

使用 Direct3D 9 和 C++ 创建小型 2D 游戏。我遇到了一个我以前从未见过的问题。该游戏是基于商店的游戏,因此我有一个客户类。我已经在游戏中创建了对象,它呈现并表现出我想要的方式。我决定将对象放入 Vector 中,因为在某些时候,我会随时需要它们的集合。但是,我的问题是,当我将对象放入 Vector 时,它不再在屏幕上可见!

我没有错误。我已将 DirectX 函数的所有返回代码输出到测试文件中,没有任何失败。它运行良好,只是在屏幕上不可见!除了将其放入 Vector 之外,没有任何变化。

我将 Vector 更改为指针向量,因为有人告诉我 Vector 只是创建对象,复制它并删除原始对象。但是,现在看来,使用这种方法,我的 Direct3D 指针很快就会失效。我想我知道出了什么问题,但不确定最好的行动方案。

这是客户类:

这是主要的代码

如果我没有正确解释某些事情或遗漏了什么,我会提前道歉。我因试图解释事情而臭名昭著!:/ 谁能帮我吗?开始认为我应该在这个项目中坚持使用 XNA 并稍后更深入地了解指针和向量......不过现在为时已晚:(

谢谢

0 投票
1 回答
740 浏览

c++ - 使用体素几何体进行光照贴图

在编写游戏引擎的渲染端时,我现在似乎陷入了困境。我最初的计划是至少使用 HLSL 实现每个像素的动态光照,并让光照缓冲区与着色器通信,最多可以使用 8 个光照。

需要注意的是,到目前为止,我的整个地图都是由块组成的 3 维数组(64x64x64)。在一个非常基本的人脸减少算法之后,我正在查看 32x32x32x6 人脸,以便在最坏的情况下进行渲染。我将使用其他方法来减少负载,但首先我想解决这个问题。

目前,在着色器中有 8 个灯,我使用 GTX 470 获得了大约 60-120 的帧速率,这是一张不错的卡。显然,我必须研究许多其他优化,但由于动态光照对我来说并不重要(至少对于 8 盏灯来说不是),我一直在研究光照贴图。

如果我每个面有 4x4 流明,我正在为我的整个关卡的光照贴图寻找一个纹理图集,它是 32x32x32x6x16 大,每个像素 4 个字节。这就是我要使用的纹理,即 2048x2048(最接近的 2 次幂分辨率)。

我已经查看了几个来源,尤其是这个,http://www.flipcode.com/archives/Light_Mapping_Theory_and_Implementation.shtml,虽然我掌握了如何使用基本场景来实现它,但我对如何我可以用我当前的几何情况来实现它。

所以这是我的问题。有一个更好的方法吗?这种大小的光照贴图可以使用吗?我对每张脸使用 4x4 lumels 感觉很舒服,因为双线性过滤最终似乎真的使事情变得平滑了。此外,将静态光照贴图系统与每像素动态的光照贴图系统与 HLSL 结合起来是否相当简单?

0 投票
1 回答
569 浏览

directx - 使用 Direct3D 9 进行 2D 编程 - 测试图像失真

我正在尝试使用带有 DirectX 9 的 2D sprites 构建一个简单的 2D 游戏,但在让图像清晰显示时遇到了问题。我想加载 bmp 图像并将它们按原样显示在屏幕上(无插值、无放大、无过滤或抗锯齿等)。

我确定我遗漏了一些东西,但是当我尝试将 100x100 bmp 渲染到屏幕上时,它看起来不连贯且失真,就像像素艺术图像在略微缩小时通常看起来一样。我希望 bmp 看起来与在 MS Paint 中加载时完全一样。

有谁知道为什么会这样?我的代码如下所示:

初始化代码:

渲染代码:

0 投票
1 回答
488 浏览

c++ - 支持硬件覆盖?

我在 Windows 8 上运行,我的 VGA 是 Geforce 8200m G。我正在编写 C++ 程序并使用 d3d9 创建硬件覆盖。我想问的问题是 - Windows 8 是否仍然支持硬件覆盖以及如何确定我的 VGA 是否支持它们。提前致谢。

0 投票
1 回答
608 浏览

c++ - ASSIMP 与 directx9 网格化

可悲的是,这个问题从未得到回答。

我正在尝试使用 ASSIMP 加载模型的 .X 文件 [或任何其他文件]。

这是我正在尝试使用的代码:

没有 DirectX 错误,并且模型不显示。

0 投票
2 回答
2714 浏览

direct3d - FXC 错误“超出最大温度寄存器索引”

我在 HLSL 中工作,我从我的一个着色器中得到了这个错误:

错误 X4505:超出最大临时寄存器索引

导致这种情况的行是:

通行证定义为:

并且 input.Tex 是声明为 TEXCOORD 的 float2。

有人可以向我解释这个错误吗?它没有记录在 MSDN 上(或据我所知的任何其他地方),我不清楚这里有什么问题。

我正在使用着色器模型 4.0 级别 9_3。

0 投票
1 回答
151 浏览

direct3d - Direct3D11 GL_RGBA4 等效?

D3D11 是否有等效的 GL_RGBA4 纹理格式,我似乎找不到。有 DXGI_FORMAT_B5G6R5_UNORM 和 DXGI_FORMAT_B5G5R5A1_UNORM 16 位格式,但没有 4444 格式。

连D3D9都有,所以我不明白为什么D3D11不会...

0 投票
0 回答
163 浏览

c++ - 如何使用 Proxy-DLL 将动画 fbx 文件(或其内容)包含到 3D 世界中?

我想通过 proxy-directx-dll 在 fbx 文件中插入一个动画 3d 对象到 d3d9 游戏中。我希望它能够适应游戏中的光线受到它的影响,从而使其产生阴影。我希望它出现并在播放器前方 X 距离处按下热键时开始动画。我也想通过热键调整/平移它。

我做了什么:

我读了这篇文章,发现了一个运行良好的 dll。我什至在游戏屏幕上画了一条线和一个三角形。这发生在当前函数中。

如何将 fbx 文件(或其内容)包含到 3D 世界中,需要使用哪个 d3d 函数以及哪个命令包含该对象?

0 投票
1 回答
771 浏览

directx - 优化的粒子系统 Direct3D 9

我使用点精灵在 direct3d9 中制作粒子,并使用动态顶点缓冲区进行批处理。但我只能以 30fps 的速度创建 2500 个粒子。我在互联网上看到他们可以创造数百万个粒子。我如何在 Direct3D 中制作数百万个粒子?