Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/three.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在three.js中显示数千个图像_Three.js - Fatal编程技术网

在three.js中显示数千个图像

在three.js中显示数千个图像,three.js,Three.js,我在一个场景中有多达20万个单独的图像(到目前为止,是用精灵完成的)。我想看看这些精灵,当我在周围飞行时,它们应该总是面对相机(就像精灵一样)。 我的问题是:如何在WebGL方面实现最佳性能?使用useScreenCoordinates:false的精灵是否渲染为使用GL_点? 此时fps下降,图像计数已经非常低。到目前为止,我正在使用mipmapping和sprite。因为他们需要转身面对我,所以我不想使用缓冲几何 我非常感谢一些想法和投入:)谢谢 PS:这一切的意义在于,你可以“飞”过20万

我在一个场景中有多达20万个单独的图像(到目前为止,是用精灵完成的)。我想看看这些精灵,当我在周围飞行时,它们应该总是面对相机(就像精灵一样)。 我的问题是:如何在WebGL方面实现最佳性能?使用useScreenCoordinates:false的精灵是否渲染为使用GL_点? 此时fps下降,图像计数已经非常低。到目前为止,我正在使用mipmapping和sprite。因为他们需要转身面对我,所以我不想使用缓冲几何

我非常感谢一些想法和投入:)谢谢


PS:这一切的意义在于,你可以“飞”过20万张图片,停下来/选择那些你认为有趣的图片

使用了大量的技术和材料,一旦一切正常,我就会写下来

我的团队也需要完成这项工作,不幸的是,在项目完成之前,Doidel的笔记就消失了。我们开发了一个用于图像的3.js可视化层:

我在这里整理了一篇博客文章,概述了细节:


简言之,如果其他人面临此问题,您将希望创建一个几何体(理想情况下),其中一个大型图像图集(大小为2048px x x 2048px的单个jpg,包含许多较小的图像)用作几何体的纹理。为每个要显示的小图像添加顶点、面和顶点,并从atlas纹理中提取每个图像。

是否为200000个不同的图像?还是都是一样的?哦,嘿。我现在编码了一些东西。不同的图像。到目前为止,我所做的是:ParticleSystem(GL_POINT)与缓冲几何体一起用于更远的图像,在最近邻搜索后异步加载图像(在我的例子中是kd树)+视图截锥剔除。我对粒子使用了精灵,就像一个假图像:)但是现在我在kd树上遇到了麻烦。一个由3.Vector3()组成的20万点数组的大小约为10MB,而长度为20万*3的Float32Array的大小约为1.5MB。但是我找不到像数据结构这样的属性的最近邻搜索^^^可能需要自己编写代码:(如果你有任何进一步的优化想法,请告诉我!我也在IRC顺便说一句:Doidel^^我写了我自己的就地quicksearch+kdtree,我现在运行200k+pointsprites,速度为60 FPS,内存使用量为2MB^^^ mrdoob,你能告诉我如何申请将代码贡献给three.js项目吗?很好!想看看:)对于贡献,您需要在github上创建一个帐户,fork the three.js repo,签出dev分支,提交您的贡献,推送到您的源站点并执行拉请求。您是否有到已完成站点的链接?或者您是否曾经在github上创建过拉请求?看起来您分叉了three.js,但从未将提交推送到您的fork上,博客注意到从未完成。如果你有一个网站的实时链接,或旧代码的副本,我很乐意看到它!