GengineJS
GengineJS
https://github.com/cocos/cocos-engine/pull/17279/files This pr has fixed this issue
In theory, setting the value of the near clipping plane to less than zero may lead to issues. This is because the near clipping plane is typically used to determine...
All webgpu functions are completed:https://github.com/cocos/cocos-engine/pull/17096
 @wuzhiming
pr: https://github.com/cocos/cocos-engine/pull/18541
有没有复现demo
> 給予 2D 物件隨機的存在時長, 用於模擬遊玩過程的生成與刪減 在大量物件的情況下, 複用時從物件池取出會無法保證這些物件的頂點資料都在相同 Buffer 中 Demo: [batch-break.zip](https://github.com/user-attachments/files/17699052/batch-break.zip) > > @GengineJS 好的
这个问题我们看了,因为我们的ui合批方案采用的是网格合批,顶点数组的默认长度是4096,当使用相同资源的ui节点超出这个范围就会新建chunk,这个时候就会新增drawcall,可以适当增加该范围,但是并不一定越大越好。demo里会突然暴增是因为使用的是NodePool,NodePool是会回收使用,而不会销毁,这会导致MeshBuffer已经分配的数据依旧存在chunk中,系统只能继续新增chunk,应该使用node的destroy方法,每帧才会重新计算chunk。 另外网格合批的方案并不适合频繁增删物体的情况,是否有必要对UI新增instancing支持,我们内部需要详细评估下。如果频繁增删的物体是简单的四边形,我建议用Quad,放在UI中,并对Quad使用gpu instancing,这时候可以绕过UI对GPU instancing的支持
 如果一定得用NodePool,可以通过我截图得方式,在put的时候释放renderdata,这时候系统会自动利用空闲的chunk,在get的时候需要调用下_flushAssembler,以便重算renderdata。 这是这边我运行10分钟后drawcall的情况,还是保持2个drawcall,中间会少量增加,最后会回到2  如果把回收调用put的时长固定为1,会一直保持为2个drawcall,这是因为回收与再利用的频率大体一致 ```tween(lucy) .delay(1).call(() => { // 放入 Pool 不會釋放 RenderData, 銷毀才釋放 RenderData // 若改使用 lucy.destroy() 則 DrawCalls 不會暴漲 // 或者在 Lucy 節點上掛載 RenderDataChunkMover 組件也可以達到相同效果 this.lucyPool.put(lucy); //...
> @GengineJS 但是我的情况和 @yoki0805 的略有不同, 我没有用到 对象池. 只是单纯的一堆东西画在屏幕上. 我这种情况无解了吗 ? 一堆东西是什么?有多少数量?是只新增不删除么?评论沟通方式成本很高,尽量一次性把问题描述清楚下