问题标签 [direct3d]

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 投票
3 回答
491 浏览

debugging - 调试 Direct3D 模型

我正在尝试在 Direct3D 中使用DrawIndexedPrimitives. 但是,我无法在屏幕上看到它。调试 Direct3D 模型的常用方法是什么?

我尝试了以下方法:

  • 关闭背面剔除
  • 用来PrimitiveType.LineStrip代替PrimitiveType.TriangleStrip
  • 视图和投影矩阵的几种组合。
  • 使用 AutoCAD 将顶点绘制为小球体
0 投票
2 回答
1766 浏览

graphics - 当相机不断移动时在 Direct3D 视图矩阵中定义向上

在我的 Direct3D 应用程序中,可以使用鼠标或箭头键移动相机。但是,如果我将 (0,1,0) 硬编码为 中的向上方向向量LookAtLH,则该帧在相机的某些方向上会变为空白。

我刚刚了解到,当沿 Y 轴看时,(0,1,0) 不再作为向上方向工作(似乎很明显?)。对于这些特殊情况,我正在考虑将我的向上方向切换到其他方向。有没有更优雅的方法来处理这个?

0 投票
2 回答
896 浏览

3d - 3D 几何:将一对点转换为与另一个点平行对齐

我有一条从 (x1,y1,z1) 到 (x2,y2,z2) 的线(实际上是一个立方体)。我想旋转它,使其沿着从(x3,y3,z3)到(x4,y4,z4)的另一条线对齐。目前我正在Math::Atan2Matrix::RotateYawPitchRoll. 有没有更好的方法来做到这一点?

编辑:我认为我对这篇文章的措辞非常糟糕。我实际上正在寻找的是来自两个向量的旋转矩阵。

0 投票
3 回答
2913 浏览

graphics - Direct3D:没有对角线的线框

在 Direct3D 中使用线框填充模式时,所有矩形面都会显示一条对角线,因为该面被分成两个三角形。如何消除这条线?我还想删除隐藏的表面。线框模式不这样做。

我需要在等距线框视图中显示 Direct3D 模型。渲染的场景必须显示模型面的边界,但必须排除对角线。

0 投票
8 回答
27846 浏览

windows-xp - 远程桌面上的 Direct3D

如何让 Direct3D 通过远程桌面连接工作?我正在使用 Windows XP 专业版。

0 投票
3 回答
767 浏览

graphics - 打印机/绘图仪上的 Direct3D 输出

将 Direct3D 输出发送到打印机或绘图仪的最佳方式是什么?

0 投票
4 回答
6617 浏览

graphics - Direct3D 几何:来自两个向量的旋转矩阵

给定两个 3D 向量 A 和 B,我需要导出一个从 A 旋转到 B 的旋转矩阵。

这就是我想出的:

  1. 从acos (A . B)导出余弦
  2. 从asin导出正弦(|A x B| / (|A| * |B|))
  3. 使用 A x B 作为旋转轴
  4. 使用本页底部附近给出的矩阵(轴角)

除了 0°(我忽略)和 180°(我将其视为特殊情况)的旋转之外,这工作正常。使用 Direct3D 库是否有更优雅的方法来执行此操作?我正在寻找 Direct3D 特定的答案。

编辑:删除了 acos 和 asin(参见Hugh Allen 的帖子

0 投票
4 回答
13113 浏览

performance - 为什么 Direct3D 应用程序在全屏模式下表现更好?

与窗口模式相比,Direct3D 应用程序在全屏模式下的性能似乎要好得多。这背后的技术原因是什么?

我想这与全屏应用程序可以获得对显示的独占控制这一事实有关。但为什么应用程序无法获得对部分屏幕(即窗口)的独占控制权,并具有相同的性能优势呢?

0 投票
5 回答
1459 浏览

graphics - Microsoft.DirectX.Vector3.Normalize() 不一致

标准化 Vector3 对象的两种方法;通过调用 Vector3.Normalize() 和另一个从头开始规范化:

上面的代码产生了这个:

为什么?

(奖励积分:为什么是我?)

0 投票
3 回答
2405 浏览

graphics - 转换 Direct3D 网格

我试图写一个TransformMesh函数。该函数接受一个Mesh对象和一个Matrix对象。这个想法是使用矩阵变换网格。为此,我锁定了顶点缓冲区,并在每个顶点上调用 Vector3::TransformCoordinate。它没有产生预期的结果。生成的网格无法识别。

我究竟做错了什么?