Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在三个JS中设置粒子系统的动画

在三个JS中设置粒子系统的动画
EN

Stack Overflow用户
提问于 2013-10-12 07:35:31
回答 1查看 2.6K关注 0票数 1

我正在使用下面的代码在Three.js中为粒子系统中的一些粒子设置动画。

代码语言:javascript
运行
AI代码解释
复制
for(var i = 0; i < particleSystem.geometry.vertices.length; i++ ){
                        var pX = Math.sin(i + counter) * 100 + Math.random() * 20,
                            pY = Math.cos(i + counter) * 100 + Math.random() * 20,
                            pZ = Math.sin(i + counter) * 100 + Math.random() * 20;
                            particleSystem.geometry.vertices[i] = new THREE.Vector3(pX, pY, pZ);
                        }

它通过更改粒子的顶点来工作。它可以很好地更改它们,没有错误,但没有更新。我可以四处走动,所有其他的动画都工作得很好。这是在我的animate()函数中,如下所示:

代码语言:javascript
运行
AI代码解释
复制
function animate(){


            for(var i = 0; i < particleSystem.geometry.vertices.length; i++ ){
            var pX = Math.sin(i + counter) * 100 + Math.random() * 20,
                pY = Math.cos(i + counter) * 100 + Math.random() * 20,
                pZ = Math.sin(i + counter) * 100 + Math.random() * 20;
                particleSystem.geometry.vertices[i] = new THREE.Vector3(pX, pY, pZ);
            }



        counter += 1;


        requestAnimationFrame(animate); // So it stops when you change window and otherwise repeats
    renderer.render(scene,camera); // Render
    controls.update(clock.getDelta()); // Update control/camera movement information

}
EN

回答 1

Stack Overflow用户

发布于 2013-10-12 13:56:05

首先,我认为你应该更新顶点,而不是用新的实例替换它们:

代码语言:javascript
运行
AI代码解释
复制
particleSystem.geometry.vertices[i].set( pX, pY, pZ );

然后,您可能还必须告诉Three.js顶点已更改:

代码语言:javascript
运行
AI代码解释
复制
particleSystem.geometry.verticesNeedUpdate = true;

这些操作应在update()期间完成

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19331734

复制
相关文章
Wireshark安装后打开显示没有找到接口
我遇到这个问题是出现在Win10系统中,出现这个问题的原因是Wireshark中由于自带的Winpcap不支持Win10。出现如图所示:
全栈程序员站长
2022/07/23
4.6K0
Wireshark安装后打开显示没有找到接口
Apache Druid 安装的时候进行 Java 版本校验没有输出
在尝试使用命令 ./verify-java 对 Java 的运行环境进行校验的时候,并没有任何输出。
HoneyMoose
2021/07/24
3620
Apache Druid 安装的时候进行 Java 版本校验没有输出
TensorFlow版本更新后运行代码所遇到的error(持续更新)
本博客会持续更新,如果遇到新的问题,欢迎大家提问,大家一起进步! AttributeError: module ‘tensorflow’ has no attribute ‘mul’ 原因:Tenso
双愚
2018/05/28
9490
【性能优化】PHP代码输出压缩后HTML
此操作也可以归结在性能操作类别上,虽然效果不是很明显,但在一定情况下起得很好的作用,下面理几点使用该方法的原因 大流量访问页面压缩代码节省RMB,百度首页也这么做。O(∩_∩)O哈哈~ 个人爱好,性能强迫症。 源代码混乱(掩饰网站前端用户编码结构习惯,现今没啥用) .... 不多说了,主要给喜欢倒腾代码的朋友看看。 function compress_html($string){ return ltrim(rtrim(preg_replace(
96php.cn
2018/04/28
2.9K0
在对 Angular 的文档 aio 进行编译的时候提示错误
请需要根据提示使用 Yarn 1.13 版本就可以了。我们在 aio 文档进行编译的时候,发现如果 yarn 的版本过高的话是没有办法编译成功的,因此请不要按照过高的 yarn 版本。
HoneyMoose
2019/05/14
7200
在对 Angular 的文档 aio 进行编译的时候提示错误
请需要根据提示使用 Yarn 1.13 版本就可以了。我们在 aio 文档进行编译的时候,发现如果 yarn 的版本过高的话是没有办法编译成功的,因此请不要按照过高的 yarn 版本。
HoneyMoose
2019/05/17
6710
在对 Angular 的文档 aio 进行编译的时候提示错误
【紧急更新】HP笔记本系统(驱动)更新后没有声音!
用于解决笔记本电脑出现的声音问题,如扬声器没有发出声音(没有任何音量或音频没有运行),或者出现静音、声音时断时续、发出噼啪声/砰砰声或者声音失真。
Bess Croft
2020/04/03
3K0
Android Studio/intellij idea 类编译后的输出路径没有指定(The output path is not specified)
这个设置页面,平时手动打开可以按ctrl+shift+alt+s快捷键打开,或者点击右边的这个按钮
可定
2020/04/20
2K0
Android Studio/intellij idea 类编译后的输出路径没有指定(The output path is not specified)
BASH输出着色显示
通过将其输出着色,可以使BASH脚本更漂亮。使用ANSI转义序列设置文本属性,例如前景色和背景色。
用户1679793
2019/12/11
1.7K0
BASH输出着色显示
多次grep 没有看到输出
tail -f xxx.log | grep aaaa | grep bbbb 发现没有日志输出 但log中的那条记录包含aaaa 和 bbbb,就是说tail  -f xxx.log | grep aaaa可以输出,tail -f xxx.log | grep bbbb可以输出 对日志记录做多次grep过滤输出,格式如下: tail -f log | grep xxx | grep yyy 发现grep失效,无法做正确输出。google研究了一下,原因如下: 管道 | 是全缓冲的,一般来说buffer_s
千往
2018/01/24
2.2K0
CentOS挂载NAS存储后权限的更改
最后我们为了安全,再次将'根限制'勾选,这样做的意义是:就算你用nfs3挂载的文件系统,那么依然无法修改属主属组,更为安全,如下图:
染指流年
2023/03/13
4.3K0
CentOS挂载NAS存储后权限的更改
wordpress更改固定链接后404
wordpress的固定链接对于博客的seo优化是非常重要的。因为有些默认设置并不怎么友好,所以我们可以自定义设置自己的想要的固定链接,比如自定义连接结构为:/%post_id%.html。但是往往我们更改之后会出现404页面,这是网站的伪静态出了问题。 下面是在不同环境下的不同解决方法。
SweetHunter
2020/05/10
2.1K0
android程序安装后在模拟器上不显示,并且控制台显示The launch will only sync the application package on the device!
The launch will only sync the application package on the device!
黄啊码
2020/05/29
8460
视频直播系统用户信息更新后私信服务该如何进行资料更新
视频直播系统一定会用到推送功能,对于视频直播软件开发而言,比较简便的私信功能实现方式就是借助于三方服务商提供的SDK。有时我们在直播平台运营过程中,会遇到这样一个问题。
q3557873521
2019/04/04
1K0
DEDECMS 批量更改未审核文章的更新时间
update dede_archives set senddate= 1412092800 where arcrank=-1; 另外:dedecms怎样批量修改文章发布时间 Dedecms如何批量修
用户1272546
2018/06/05
3.9K0
Android调试的Log.d()没有输出
在之前我是很喜欢使用真机进行调试的,因为那时候觉得用真机调试比较方便,直到我发现我的手机打印不出Log.d()的调试日志,我才开始经常使用模拟器。当然还有两小点是:我的手机不支持快速启动和小编的电脑配置比较低,模拟器太吃内存了。
夜雨飘零
2020/05/06
2.8K0
点击加载更多

相似问题

在对代码进行更改后诊断NullPointerException

23

更新后的代码没有显示在React本机模拟器中

10

(java)在对文件进行更改后如何更新BufferedReader

10

css文件在对scss文件进行更改后未显示更改

11

是否在对象更改后更新ngFor?

14
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档