问题标签 [3d-rendering]

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 投票
2 回答
1179 浏览

three.js - 从 3ds max 烘焙的 Three.js 中的光照贴图映射

我已经在 3ds max 中创建了一个逼真的场景。我想使用 WebGl 和 three.js 在网络上渲染场景。为了获得使用 mental ray 渲染器在 3ds max 中创建的逼真效果,我尝试将光照贴图从 3ds max 烘焙到 JPEG 文件,然后将 three.js 中的对象映射到纹理(导出的 JPEG)文件。但是three.js中的效果似乎被拉长了,定位不正确。我的方法首先正确吗?如果是,会不会是 3ds Max 的 UV 贴图有问题?如果可能,请提供一些链接,以便在烘焙时在 3ds max 中正确映射 UV(如果这是问题)。

另外,我是否需要使用任何自定义着色器来获得这样的效果?(如果这个问题看起来很愚蠢,我真的对着色器一无所知)

提前致谢。

0 投票
1 回答
883 浏览

kinect - 点云传感器位置估计

让我们坐下来,我有我不知道传感器位置的点云数据(它不是 [0,0,0])。有没有一种好方法可以从中估计原始传感器位置?

例如,从下面的点云中,
点云数据:

点云数据

找到允许点云看起来像这样的视点。(如深度图)因此没有(或最少)可以观察到孔。

从我想找到的角度来看,点云看起来像这张照片:

从我想找到的角度来看,点云看起来像这张照片。

0 投票
0 回答
640 浏览

python - 特定角度体素上的三线性插值

我目前正在尝试在 Python 中实现这种用于体绘制的算法,并且在概念上对他们生成 LH 直方图的方法感到困惑(参见第 3.1 节,第 4 页)。

我有一个 DICOM 图像的 3D 堆栈,并用它计算了它的梯度幅度和 2 个相应的方位角和仰角(我在这里找到了),以及找到二阶导数。

现在,该算法要求我遍历一组体素,并“通过在两个方向上积分梯度场来跟踪路径……使用具有一个体素积分步骤的二阶龙格-库塔方法”。

我不明白的是如何使用我计算出的 2 个角度来整合所述方向的梯度场。我知道您可以使用三线性插值来获得中间体素值,但我不明白如何使用我拥有的角度获得我想要的体素坐标。

换句话说,我从给定的体素位置开始,并希望在为该体素计算的 2 个角度的方向上采取 1 个体素步骤(一个在 xy 方向,另一个在 z 方向)。我将如何在这两个角度采取这一步并检索新的 (x, y, z) 体素坐标?

提前道歉,因为我在 Calc II/III 方面有非常基本的背景,所以矢量场/3D 空间的可视化对我来说还是有点粗糙。

创建 DICOM 图像的 3D 堆栈:

计算梯度幅度:

转换为患者坐标系以获得实际体素位置:

现在我要编写这个函数了:

0 投票
0 回答
55 浏览

javascript - 如何使用四元数相对于其方向旋转 3D 对象?

作为学习经验,我正在尝试构建一个没有任何库的简单 3D 游戏。我已经设法弄清楚渲染(大部分情况下),并且我已经让 4D 矩阵变换工作得很好。

我无法相对于自己的方向旋转我的播放器对象;我想建立一个类似街机的飞行模型,以便对象相对于其当前方向而不是相对于世界空间滚动、偏航和俯仰。

一些文章指出四元数是比 4D 矩阵更好的旋转解决方案。经过一点阅读,我认为我已经弄清楚了,但在实践中我无法让这种方法发挥作用。我想我要么不正确地计算旋转轴,要么完全错误地将它们应用于四元数。

我不完全理解数学是如何工作的,所以这里可能有一些我遗漏的明显东西。我已经阅读了有关此主题的几篇文章,并阅读了有关四元数数学的内容,直到我的大脑融化了,所以任何帮助都会很棒!

以下是我的代码的相关部分、JSFiddle 演示的链接以及我发现对我的研究最有帮助的两篇文章:

https://jsfiddle.net/peternatewood/guwd03et/

https://www.3dgep.com/understanding-quaternions/

http://www.opengl-tutorial.org/intermediate-tutorials/tutorial-17-quaternions/

0 投票
1 回答
850 浏览

c++ - 给定其点和边缘,生成 3D 对象的面

我有一个由 3D 点和边组成的 3D 线框。如何识别构成 3D 对象面的顶点集?

我正在使用QT并希望在给定其点集和边集的情况下渲染 3D 对象。我能做的最好的事情是给三个点形成一个三角形的脸,我可以用 3D 渲染它。但是如何在给定更多点和边缘的情况下做同样的事情呢?或者,或者,如何将集合分解为形成三角形面的 3 个点?

0 投票
0 回答
200 浏览

animation - 如何在仅 CPU 模式下在没有 GUI 交互的情况下 3d 渲染 nifti 文件表面?

我的目标是为大量 nifti 格式的 mri 扫描创建 3d 表面渲染。该过程需要完全自动化并在仅 CPU 模式下无需 GUI 交互即可运行,因为脚本应该在 docker 容器中运行。有没有一个包来实现这一点?

生成的图像应如下所示: 生成的图像应如下所示

如果我可以为结果设置动画以围绕不同的视角旋转,那就太好了。就像这里的本教程一样,不幸的是需要 GUI 交互: https ://mollermara.com/blog/blender-brain/

0 投票
0 回答
244 浏览

c++ - OpenGL 相机方向

我无法按照我想要的方式定位相机。我得到了我需要用来gluLookAt设置相机的东西。据我了解,前三个用于相机的位置,第二组用于目的地,第三组用于相机upvector,我正在尝试实现一个框,相机应该看着它的中心。这个盒子由6个三角形组成,不一定是一个像样的盒子。为了得到它的中心,我得到了所有三角形顶点(xyz)的平均值。

所以这是在我的显示功能中:

当我不使用gluLookAt时,三角形在屏幕中央显示得很好。我究竟做错了什么?

0 投票
0 回答
244 浏览

ios - 我们可以使用 SceneKit 将 MTL 文件中的纹理映射到 OBJ 模型吗

我正在尝试使用 MTL 格式的纹理加载 OBJ 模型。在这里,我可以使用 JPG 文件而不是 MTL 来映射纹理。

有什么办法可以做到这一点?

提前致谢。

0 投票
0 回答
252 浏览

graphics - 提高 JavaFx 3d 形状的透明度和光照

在 JavaFx 中,如果将透明度应用于形状,它不会提供适当的透明效果,直到它后面有任何其他形状。例如,这个球体有一些透明度,但它看起来很亮(不透明)

球体只显得明亮不显示透明度

如果它后面有任何其他形状,它会显示出明显的透明度。在此处输入图像描述

什么是操纵透明度以获得所需效果的正确方法,即使它后面没有形状,以及放置点和环境光以正确照亮形状的正确方法是什么。

预期结果与 javafx 渲染

0 投票
1 回答
224 浏览

qt5 - 如何使用大球体上的纹理作为背景?

我想使用 Qt(5.11 版)创建一个 3D 场景。

我想在近乎无限的球体上映射 JPG 图像,以支持 3D 场景的背景。

下面是相关的源代码:

这种方法的问题在于 JPG 映射在球体的“外部”表面上。当相机在球体内部时,背景是不可见的。

这种方法有什么问题?