问题标签 [3d]

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 投票
5 回答
6751 浏览

math - 3D 中的点三角形碰撞检测

如何在以下物理模拟中纠正浮点错误:

  • 原点(x,y,z),
  • 施加力后所需的点 (x', y', z')。
  • 共享边 BC 的两个三角形 (A, B, C) 和 (B, C, D)

我正在使用这种方法进行碰撞检测:

我遇到的问题是,有时该点会落入浮点数学的灰色区域,因为它非常靠近 BC 线,以至于它无法与任何一个三角形发生碰撞,即使从技术上讲它应该总是与一个或另一个发生碰撞,因为他们有共同的优势。当这种情况发生时,该点正好穿过两个共享边三角形之间。我已经用(!)标记了代码的一行,因为我相信那是我应该做出改变的地方。

在非常有限的情况下有效的一种想法是跳过边缘测试。有效地将三角形变成平面。这仅在我的网格是凸包时有效,但我计划创建凸形。

我专门使用点积和三角形法线进行所有前后测试。

0 投票
8 回答
42969 浏览

3d - 何时使用二进制空间分区、四叉树、八叉树?

我最近了解了二进制空间分区树及其在 3d 图形和碰撞检测中的应用。我还简要阅读了有关四叉树和八叉树的材料。你什么时候会在 bsp 树上使用四叉树,反之亦然?它们可以互换吗?如果我有足够的信息来填写这样的表格,我会很满意:

什么是 A、B 和 C?

0 投票
5 回答
248 浏览

algorithm - 如何从 N 个纹理生成一个纹理?

假设我有 N 张从 N 个已知位置拍摄的物体的照片。我还拥有物体的 3D 几何形状,并且我知道相机和镜头的所有特性。

我想从我拥有的 N 张图片中生成一张独特的巨型图片,以便可以将其映射/投影到对象表面上。

有人知道从哪里开始吗?文章、参考资料、书籍?

0 投票
4 回答
15574 浏览

3d - 将鼠标拖动运动转换为对象的 3d 旋转的最佳方法

我有一个 3d 对象,我希望能够在 3d 中旋转。最简单的方法是直接将 X 和 Y 鼠标运动转换为围绕 Y 和 X 轴的旋转,但是如果沿两个轴都有一些旋转,则模型旋转的方式变得非常违反直觉(即,如果您将对象翻转 180 度轴,您沿另一个轴的运动是相反的)。

我可以简单地执行上述方法,但不是存储围绕两个轴旋转的量,我可以存储完整的旋转矩阵,并为每次鼠标拖动沿着相同的轴进一步旋转它,但我担心这会很快就有精度问题。

0 投票
6 回答
8475 浏览

3d - XNA Game Studio 3D 模型编辑器建议

我想创建基本的低多边形 3D 模型以在 XNA Game Studio 游戏中使用。人们推荐什么便宜/免费的工具?

有没有人有任何链接或代码片段显示如何将某种 3D 模型加载到 XNA 中,然后在屏幕上绘制它们?

0 投票
4 回答
3034 浏览

architecture - MMORPG / VR架构

任何人都可以提供文章/博客的链接,讨论 MMORPG 或虚拟现实服务器或其他具有丰富 3D 客户端的系统的架构。

0 投票
2 回答
6252 浏览

3d - 将 2D 点反向投影到 3D

假设我们有一个 3d 空间,上面有一个平面,上面有一个任意方程: ax+by+cz+d=0 现在假设我们在该平面上选择 3 个随机点: (x0,y0,z0) (x1,y1,z1 ) (x1,y1,z1)

现在我对这架飞机有不同的观点(相机)。我的意思是我有一个不同的相机,可以从不同的角度看这架飞机。从该相机的角度来看,这些点具有不同的位置。例如 (x0,y0,z0) 将是 (x0',y0') 并且 (x1,y1,z1) 将是 (x1',y1') 并且 (x2,y2,z2) 将是 (x2',y2 ') 从新相机的角度来看。

所以这是我的一个小难题!我想从新相机的角度选择一个点,例如(X,Y),并告诉它在那个平面上的位置。我所知道的是 3d 空间上的 3 个点及其位置以及它们在新相机视图上的投影位置。


你知道平面方程的系数和相机位置(连同投影),还是你只有六个点?- 尼尔斯

我知道前 3 个点的位置。因此我们可以计算平面的系数。所以我们从(0,0,0)的角度确切地知道飞机的位置。然后我们有了只能看到点的相机!所以相机看到的唯一东西是 3 个点,而且它知道它们在 3d 空间中的位置(并且肯定它们在 2d 相机视图平面上的位置)。毕竟我想看看相机视图,选择一个点(例如(x1,y1))并告诉那个点在那个平面上的位置。(当然这个(X,Y,Z)点应该适合平面方程)。我也对相机位置一无所知。

0 投票
4 回答
21217 浏览

3d - 3d 到 2d 投影矩阵

我在 3D 空间中有 3 个点,我知道它们的确切位置。假设它们是(x0,y0,z0)(x1,y1,z1)(x2,y2,z2)

此外,我有一台正在查看这 3 个点的相机,并且我知道这三个点在相机视图平面上的 2D 位置。例如,从相机的角度来看,将会是,(x0,y0,z0)将会是(x0',y0'),并且将会(x1,y1,z1)是。(x1',y1')(x2,y2,z2)(x2',y2')

找到将这些 3D 点投影到相机视图平面上的 2D 点的投影矩阵的最简单方法是什么。我们对相机位置一无所知。

0 投票
2 回答
7669 浏览

opengl - 在 OpenGL 中调整整个场景的亮度/伽玛

有谁知道我如何在OpenGL中实现以下效果:

  • 更改渲染场景的亮度
  • 或者在 OpenGL 中实现 Gamma 设置

我尝试通过更改灯光的环境参数和灯光类型(定向和全向),但结果并不统一。TIA。

感谢您的帮助,一些附加信息: * 我不能使用任何 Windows 特定 API。* 伽玛设置不应影响整个窗口,因为我必须为不同的视图设置不同的伽玛。

0 投票
6 回答
6664 浏览

ide - 真正的 HLSL IDE/调试器

是否有用于开发 HLSL 代码的 IDE?我想要的三个关键特性是:
1)语法高亮
2)自动完成
3)交互调试

Visual Studio 不做任何这些事情,RenderMonkey 或 FX Composer 似乎也不做。

是否有一些我不知道的 IDE,或者这三个 IDE 中的一个实际上支持这些功能,而我太无能,无法弄清楚如何正确使用它们?