Skip to content
Discussion options

You must be logged in to vote

这里其实涉及到 GPU 显存的读写效率问题,你可以去查阅一个 OpenGL 或者 DX 的 Buffer 读写 API 叫 MapBufferRange。是一个更底层的 Buffer 读取法,会忽略 Buffer 是否真的被渲染完成,无需等待。 因为屏幕缓冲的 Swap Buffer 机制,可能涉及双缓冲和三缓冲交换,所以渲染是有延迟的。 MapBufferRange 提供了精确的控制,并且可能不会在驱动层无脑克隆显存,但这就需要上层良好的显存管理,age 的作用就是如此,表示距离粒子死亡后的多少帧。但是因为 WebGL 并不支持 MapBufferRange API,这是 WebGL 非常大的一个缺,这里的 age 就直接和 0 比较,等于关闭了这个功能,但架构上预留了该机制,支持 WebGPU 也许可以直接套用架构低成本实现。

Replies: 2 comments

Comment options

You must be logged in to vote
0 replies
Comment options

You must be logged in to vote
0 replies
Answer selected by Sway007
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Category
Engine
Labels
None yet
3 participants