本帖最后由 cyqsimon 于 2015-8-8 23:19 编辑

Dinnerbone: At long last, our Particles are no longer Entities. Basically means they're not memory hogs anymore!
Dinnerbone: 我们的粒子效果终于不再使用单独的实体实现了。换言之就是说,他们不会再这么占内存了!
从java代码实现的角度来讲,每一个实体都是一个拥有非常多属性的对象,所以如果只是为了实现粒子效果的话会占用许多不必要的内存空间,这次更改后可能是通过openGL State Machine的方式直接渲染,而非面向对象的编程方式实现的粒子效果。
个人推断,大量TNT爆炸时的高内存占用和使用实体实现粒子效果摆脱不了干系,以后在处理复杂场景时,内存占用情况应该会可观许多。
更新:

Dinnerbone 尝试了一下,结果同时创建16000个粒子效果没有产生卡顿
结果被同僚毫不留情地喷了

Grum: 有些人口中的“我没有感觉到帧率降低”的意思是只是说,我的帧率没有降低到垂直同步限制的60fps以下

Dinnerbone: At long last, our Particles are no longer Entities. Basically means they're not memory hogs anymore!
Dinnerbone: 我们的粒子效果终于不再使用单独的实体实现了。换言之就是说,他们不会再这么占内存了!
从java代码实现的角度来讲,每一个实体都是一个拥有非常多属性的对象,所以如果只是为了实现粒子效果的话会占用许多不必要的内存空间,这次更改后可能是通过openGL State Machine的方式直接渲染,而非面向对象的编程方式实现的粒子效果。
个人推断,大量TNT爆炸时的高内存占用和使用实体实现粒子效果摆脱不了干系,以后在处理复杂场景时,内存占用情况应该会可观许多。
更新:

Dinnerbone 尝试了一下,结果同时创建16000个粒子效果没有产生卡顿
结果被同僚毫不留情地喷了

Grum: 有些人口中的“我没有感觉到帧率降低”的意思是只是说,我的帧率没有降低到垂直同步限制的60fps以下
也就是说以后很多个TNT一起爆炸时,内存可以不受折磨了(CPU&显卡:“内存菌……你别走……”)
然并卵系列
不再使用单独实体实现?那么现在是通过一个新的Particles对象来实现么……看起来差不多呐……
看来你并不知道这么做的重大意义