【发布时间】:2021-07-07 01:44:52
【问题描述】:
我正在尝试使用 Three.js 来可视化 3D 矩阵。对于每个 2D 平面,我希望可视化为 2D 热图,它看起来像:
用户可以拖动每个平面来显示矩阵的不同切片。我现在遇到的问题是我无法在 Three.js 中找到将其可视化的最佳方式。我将热图中的每个单元格分别绘制为正方形并为其着色。但是,当矩阵的大小变得非常大时,比如 100000 * 500 * 200,绘制起来非常缓慢。
我对 3D 和 Three.js 非常陌生。我查看了一些示例,在我看来 Three.js 实际上可以通过使用粒子系统来可视化大量数据,但我不确定应该如何使用它。我在网上找到的一些示例不适用于最新版本的 Three.js。
其他要求是让用户能够缩放、旋转和平移可视化。
我发现一个很好的例子是http://www.georgeandjonathan.com/#1。在歌曲的结尾,它显示了一长串数据,您甚至可以旋转查看开头。
简而言之,我的问题是,考虑到大小,我可以使用 three.js 中的哪些技术来可视化此类绘图。
谢谢。
【问题讨论】:
-
那肯定是很多数据......我想你可以使用自定义着色器的一种方法。作为 3D/Three.js 的新手,您可能已经看过这个术语,而且您可能还没有准备好应对它。但想法是您将数据作为 3D 矩阵(只是一个 3D 数组)传递,着色器将根据片段在空间中的位置将颜色应用于三个平面之一。这是我目前能想到的最节省内存的选项。
-
@TheJim01谢谢!我正在查看这个示例 threejs.org/examples/…,看看我是否能弄清楚着色器脚本是如何工作的。
标签: javascript 3d three.js