Added basic support for dynamic geometry in WebGLRenderer (with silly ocean example).
If you want to refresh VBOs (and thus have geometry changes reflected in renderer), you need to set dirty flags on geometry object. There are separate flags for different buffers (as not always all buffers need to be updated and oh my is updating costly): mesh.geometry.__dirtyVertices = true; mesh.geometry.__dirtyNormals = true; mesh.geometry.__dirtyUvs = true; mesh.geometry.__dirtyTangents = true; mesh.geometry.__dirtyElements = true; That was quite tough feature, a lot of refactoring, yet performance is still quite bad :( The biggest remaining bottleneck seems to be translation between Three.js internal data formats and buffers. I removed as much per-frame arrays creation as I could, but even just iterating through existing data and setting of values is still very costly. Also per-frame normals computation is expensive.
Showing
此差异已折叠。
此差异已折叠。
此差异已折叠。
examples/geometry_dynamic_gl.html
0 → 100644
examples/textures/water.jpg
0 → 100644
78.3 KB