问题标签 [d3dx]

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

c++ - C++ D3DX 字体和转换(需要 d3d9 和 d3d10 解决方案)

我想以一种考虑当前变换和类似设置的方式渲染字体,尤其是投影变换和视口。

我在想最好的方法是有一个屏幕外的表面来渲染文本,然后在我真正想要文本的地方渲染那个表面。

但是,我不确定该解决方案的许多方面。

  • 这是最好的方法吗?

  • 是否有更好的免费字体渲染器围绕该 id 花费我的时间来允许这样的事情。我看到很多人出于各种原因抱怨 d3dx 字体界面,但从来没有链接到更好的支持 unicode 的渲染器...?

  • 使用某些表面格式和/或表面尺寸有什么好处(例如,总是使用尽可能小的而不是一些标准的大尺寸,这需要额外的步骤来尝试确定尺寸......)

0 投票
1 回答
1017 浏览

windows - d3dx 库如何将纹理保存到文件中?

使用函数时:D3DXSaveTextureToFile 并传入 D3DXIFF_BMP 以创建 bmp 我注意到这些值似乎是估计的,而不是具体给出的。

如果我错了,请纠正我,但是浮点纹理可以将任何浮点数存储在任何给定的纹素中,这会将其置于卡在 rgb(255,255,255,255) 之间的 BMP 范围之外,所以看起来函数正在做的只是取纹理的最高和最低值并在该范围之间对其进行归一化。

所以我的问题是:是否可以完全按照内存中的值获取值?包括当颜色超出计算机显示器的光谱范围时?

0 投票
2 回答
624 浏览

c++ - 代码泄漏内存,似乎来自 ID3DXBuffer

我使用以下内容加载着色器:

它正在尝试加载着色器,如果它收到错误/警告,它会在放弃之前再尝试 3 次。

现在我发现当我关闭应用程序时,D3DX 给了我以下消息:

D3DX:检测到内存泄漏:2 个分配未释放(486 字节)

这仅在出现错误时发生(即进入循环)。我真的不确定为什么会这样,有什么想法吗?

好的,我修复了它,只是一个逻辑问题,“错误”在第三次尝试时没有调用“发布”,因此出现了问题。

0 投票
3 回答
1373 浏览

directx - 将网格切成两半 - DirectX

我正在尝试将网格切成两半,或者至少能够实时从中删除面。我想知道该怎么做?

锁定顶点缓冲区,memset 选定的面或顶点为 0,对我不起作用。有没有人对此有解决方案或教程我真的希望我的程序中有这个功能!

干杯

0 投票
2 回答
103 浏览

directx - 在 D3DX 函数中对输入和输出使用相同的参数是否安全?

使用作为directX一部分的D3DX库,在这种情况下特别是directx9,我想知道使用相同的矩阵(或向量等)进行输入和输出是否安全

我一直避免这样做,假设当数组的一部分在计算结果时被部分覆盖时会导致坏事发生,但我看到很多代码都是这样做的。

一个简短的测试表明它似乎工作正常,所以我假设 D3DX 函数在必要的地方获取输入数据的副本,或者其他一些方法来确保这工作正常,但我在任何地方都找不到它的文档所以我不愿意依赖它工作。

有没有关于使用这样的功能的官方声明?

0 投票
3 回答
4194 浏览

directx - 编译的directx9着色器文件的格式?

fxc.exe 生成的已编译像素和顶点着色器对象文件的格式是否正式或非正式地记录在任何地方?

我希望能够读取常量名称以从着色器文件中注册分配。我知道 D3DX 中的效果框架可以做到这一点,但我需要避免使用 D3DX,因为它可能没有安装在用户的机器上,而且我不需要它来做其他任何事情,所以我想避免他们不得不运行 directx 更新.

如果效果框架可以做到这一点,那么如果我可以找出文件格式但我似乎无法在任何地方找到它的文档,我也可以做到。

(这是用于directx9)

0 投票
2 回答
835 浏览

c++ - 如何在 Direct3D 中构建纹理坐标变换矩阵

我知道 D3D 中有一个函数可以转换纹理坐标:

d3dDevice->SetTransform( D3DTS_TEXTURE0, &matrix );

问题是我如何获得矩阵。例如,我现在有纹理偏移、缩放、旋转和亮度。我应该如何设置该矩阵?

0 投票
1 回答
470 浏览

windows - D3DKMTCreateAllocation 返回码

在我正在调试的驱动程序中,调用了D3DKMTCreateAllocation. 我收到的错误是 int (-1071775735) 或 0xc01e0009 类型NTSTATUS

我试图找出这个错误,但找不到任何东西。它不映射到以下任何一个:

如何识别错误?

0 投票
2 回答
641 浏览

direct3d - D3D9 应用程序是否与确切的 D3DX DLL 版本相关联?

如果我针对 D3DX June2007_d3dx9_34 构建我的应用程序并且目标系统具有更新的版本 Nov2007_d3dx9_36 这应该是个问题吗?

我使用 MS 的 redist-installer 工具分发 D3DX DLL,但我注意到一台“干净”的 PC(以前没有安装 D3DX)我收到关于缺少 D3DX DLL 的错误。在尝试确定安装程序本身是否无法正常工作之前,我想知道是否可能提供了一个太新版本的 DLL 是问题 - 应用程序会寻找具有确切名称的 DLL 吗?

0 投票
2 回答
1053 浏览

directx - DirectX 中#greyscale 渲染目标的格式是什么?

我有一个 Directx9 游戏引擎,它使用以下格式创建其普通适配器:D3DFMT_X8R8G8B8 我有一个系统,我将一些对象渲染到屏幕外渲染目标,作为光照贴图。然后,我使用该光照贴图数据合成回后台缓冲区,在那里它们充当全屏“蒙版”,让我在黑暗场景中获得手电筒或其他光源的效果。一切都很好。问题是,我知道我的大屏幕外光照贴图渲染目标每个都是 16MB,分辨率很高,我只需要它们的 8 位数据(灰度),所以 32 位渲染目标内存的 75% 是浪费。(我的目标是低规格卡)。我尝试将渲染目标创建为 D3DFMT_A8 但directx 默默地失败了(如果我添加 CheckDeviceFormat() 我看到它发生了)并且无论如何都会创建 32 位。

谢谢你的帮助,我不擅长渲染目标相关的东西:)