问题标签 [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 投票
1 回答
113 浏览

rajawali - 顶部 Rajawali 表面视图上的用户界面

谁知道如何在 Rajawali Surface View 上添加用户界面?我检查了 rajawali 文档,但它不起作用

0 投票
1 回答
50 浏览

python-2.7 - 这个 3D 体积在哪个软件中被可视化了?

我读了一篇论文,看到了他们的 3D 体积分割的非常好的可视化。 这是论文中的 3D 可视化

您知道他们使用什么软件对体积进行 3d 重建吗?

我已经完成了分割,并想在 python 中可视化它。GitHub 或网上是否有任何共享代码可以用于可视化?

感谢您的帮助

0 投票
1 回答
609 浏览

java - 在 3D 游戏中使用高度图与模型的优缺点是什么

我正在学习如何用 Java 编写一个 OpenGL 游戏引擎。我已经从文件中加载了模型,但接下来是高度图,我想知道使用高度图生成 3D 地形而不是 Z 轴值列表或 3D 模型有什么好处?它取决于地形的细节还是使用高度图更有效?

我能想到的一些:

高度图优点:

  • 较小的文件,因为游戏会在运行时将其生成到内存中。
  • 用于操作 n^2 图像的更优化算法?
  • 更容易的程序生成。

高度图缺点:

  • 陡角和悬垂的问题是不可能的。
  • 似乎不如模型准确。
  • 如果您不按程序生成地形,它们对制作地形有帮助吗?
0 投票
0 回答
46 浏览

android - 在 Android 的 3d 模型中的特定 X、Y、Z 位置显示文本

我可以使用这个引擎在 Android 应用程序中渲染 3d 模型(来自 STL、OBJ 或 DAE 文件) 。现在我需要帮助在其特定的 X、Y、Z 位置显示文本。

0 投票
1 回答
627 浏览

three.js - 3d gltf模型渲染优化(threejs)

我在 iPad 上使用 threejs 加载一些 3d gltf 模型时遇到问题。加载实际上工作正常,它在台式电脑和安卓平板电脑上加载正常,但在我的具体情况下,它需要在 iPad 平板电脑上运行并且页面不断崩溃,因为它耗尽了所有试图渲染模型的内存(我猜Android 为浏览器提供了更多内存使用)。

我的问题是如何优化模型以使其能够在 iPad 上运行?我的第一个想法是顶点/索引等的数量会影响渲染,但事实证明,具有更多顶点和索引的模型能够加载,而“优化”模型无法加载。我们将模型放入巴比伦在线预览器以查看其信息,我注意到,与不起作用的新模型相比,具有更多顶点和索引的旧模型具有更少的网格和更少的绘制调用。那么我们应该专注于优化而不是顶点和索引的数量吗?

问题是我们需要优化模型以在 iPad 上渲染,但我不知道模型的哪一部分需要优化,因此非常感谢任何帮助!

PS我尝试实现DRACO压缩和DRACOLoader,但它没有帮助,因为它只是压缩文件,一旦它需要在屏幕上呈现,压缩就根本无关紧要,因为它基本上仍然是需要的相同3d文件呈现。如果需要,我可以共享代码,但我认为这并不重要,因为加载没有问题,只是模型没有优化。

0 投票
1 回答
395 浏览

three.js - 一个对象上的两个纹理三个js

我的目标是在一个对象上渲染两种不同的纹理。

我正在尝试使用夜间纹理和白天纹理来渲染地球,类似于:http ://stuffin.space 。

问题是我仍然想使用 Three.js 类,这样我就可以使用 MeshPhongMaterial 类添加凹凸贴图和 phong 反射而无需编写整个着色器。

我想过有两个对象,其中一个在一侧是透明的,或者扩展 MeshPhongMaterial 类,但这似乎很难。

有没有简单的解决方案可以用 three.js 解决这个问题?

0 投票
1 回答
467 浏览

three.js - 对于 Three.js 程序,“无法设置未定义的属性 'getStrokeStyle'”是什么意思?

我正在使用 SVGloader 加载 SVG,以便将其映射到我的 OBJ 文件上。但是当将它的 url 提供给 svg 文件时,它会产生一个错误

TypeError:无法设置未定义的属性“getStrokeStyle”

我正在使用 Angular 8 并使用 THREE.js 渲染一个 Obj 文件。我想加载一个 svg 并将其映射到 obj 文件以向该文件添加纹理,但正如我在上面所说的那样,它正在生成一个错误,我不知道如何解决它。

这是代码文件。

0 投票
1 回答
578 浏览

c++ - 使用 OpenGL 在 Assimp 中稳健地加载模型及其材质?

我意识到模型可以通过许多不同的方式加载。有些可能没有纹理,只使用顶点颜色,而另一些则具有带纹理的材质。现在,我有一个着色器用于绘制带照明的 3d 模型,但我将如何加载需要以不同方式渲染的模型并让它们在场景中正确渲染。

我想到的一种方法是在顶点着色器中使用硬定义的属性指针,如果模型不需要绑定属性,则不必这样做。我想如果一个属性没有绑定到并且在计算中使用,它不会贡献或抵消任何值(特别是如果你单独进行计算并最终将它们相加(例如,计算该片段的顶点颜色的像素并将其相加以获得纹理像素的颜色)

你可以想象顶点着色器看起来像:

我可以看到的一个问题是我不确定如何判断是使用 texCoords 还是颜色或两者兼而有之。也许使用制服作为标志并将该数据保存在模型对象中?

另一种方法是为不同类型的照明技术定义着色器,然后确定为哪个模型调用哪个着色器。这是我最不喜欢的,因为它不允许动态方法(即同时顶点颜色和纹理)

在专业环境中会采取什么方法,以便可以将任何模型加载并绘制到具有照明的场景中,就像游戏引擎管理的那样徒劳无功?(现在使用前向渲染,所以不需要任何延迟着色概念,因为目前这超出了我的工资等级)。我不是在寻求具体的解决方案,更多的是关于如何解决这个问题的专家知识。

另外,我正在使用 OpenGL 3.3

0 投票
0 回答
32 浏览

java - java中自定义3d渲染器的问题

所以我最近开始使用我自己的 Java 3D 渲染器。我制作了一个立方体和一个可以用WASD鼠标移动的相机。我只有一个问题:

当相机移开视线或立方体的一个点最终出现在显示器的一角时,渲染器就会崩溃(它会渲染一个不应该绘制的多边形)。

调试后,我看到渲染器想要渲染一个点x: -142500(远离我的1500x1500窗口)。然后我尝试通过实现屏幕剪辑来解决这个问题(以便将142500x 坐标移动到屏幕边缘)。好吧,那也不起作用:(

我将不胜感激任何帮助。 问题(红色是边缘的位置,蓝色条纹区域是白色三角形应该呈现的位置)

编辑:保管箱 jar 文件

0 投票
0 回答
70 浏览

matlab - 如何在等值面的 3D 渲染叠加中避免线状、尖锐的伪影?

我在 Matlab 中对多个等值面进行了 3D 渲染。它看起来像(屏幕截图,稍后添加的箭头):

在此处输入图像描述

我使用如下代码实现了它:

它迭代一系列 3D 值堆栈,每个堆栈都有不同的阈值和不同的颜色和 alpha 值,并将它们全部绘制在一个图中。特别是在这里,我有四个内表面颜色为黄色、蓝色、绿色、洋红色,alpha 等于 1,四个外表面颜色相同但 alpha 等于 0.1。

它看起来不错,但显示了一些我想摆脱的伪影。

  • 红色箭头描绘的是线状伪影,可能来自外表面的交叉点。
  • 由青色箭头描绘的是在内表面交叉处的非常清晰的颜色边界。

我希望渲染输出更平滑,不会过多强调交叉点。

我不希望红色箭头描绘的线状伪影,我希望青色箭头描绘的锐利边缘更平滑。当然,我的目标是在 Matlab 中找到解决方案。

我尝试对原始数据进行插值以将其放在更精细的网格上,但这没有任何区别,也没有尝试减少补丁的数量(使用reducepatch)。等值面相交线(青色箭头)始终是非常硬的线,并且将值设置为感兴趣区域之外的 NaN(即低于使用的最低阈值)也没有任何影响。

有评论建议渲染为矢量格式(如 eps/pdf)可能会有所帮助。使用 Matlab 2019b 则不然。使用print,saveas不允许选择painters渲染器,因此输出实际上是矢量图形确实会导致伪影。epsc 的输出不尊重透明度,pdf 的输出不会完全呈现所有补丁。那是他们自己的问题,我在这里对他们不感兴趣。

只是为了完整性,这里的 pdf 输出(我不感兴趣):

在此处输入图像描述