As I understood using buffer geometries will increase performance and decrease memory usage because it reduces the cost of passing all this data to the GPU.
And as I understood from @WestLangley his post here:
THREE.BufferGeometryis slowly replacingTHREE.Geometryas it is computationally more efficient.
I am currently using three.js - r72.
When I draw my geometries make meshes and add them to the scene I see that there are two properties inside my geomtries __directGeometry and _bufferGeometry.
Here in a THREE.BoxGeometry:

Here in a THREE.Geometry:

Here in a THREE.ShapeGeometry:

My questions:
THREE.DirectGeometry and what does it do? (I cannot seem to find any documentation on this)THREE.BufferGeometry stored in _bufferGeometry already automatically used? If not, can I simply use it instead of my geometry to boost performance?THREE.BufferGeometry has toGeometry and THREE.Geometry has toBufferGeometry. If I convert all my normal geometries to buffer geometries using this method, will it give me the same performance increase compared to drawing them as a THREE.BufferGeometry from the start?THREE.BufferGeometry?THREE.Geometry in favor of THREE.BufferGeometry?NOTE: I couldn't find detailed information on when and how to use buffer geometries or when it is going to be replacing THREE.Geometry. But if someone has a good source or reference please leave a comment.
A representation of mesh, line, or point geometry. Includes vertex positions, face indices, normals, colors, UVs, and custom attributes within buffers, reducing the cost of passing all this data to the GPU.
__directGeometry is an internal data structure used to transition between THREE.Geometry and THREE.BufferGeometry. Do not mess with it.THREE.BufferGeometry.toGeometry() and THREE.Geometry.toBufferGeometry() are convenience methods. The first one is helpful if your model loads as BufferGeometry and you feel more comfortable manipulating Geometry. If you want answers regarding performance, you need to do a test. Buffer geometries definitely load faster.BufferGeometry. It would be wise if you understood the difference between "indexed" and "non-indexed" BufferGeometry. BufferGeometry with the index attribute defined allows for the sharing of vertices. Non-Indexed BufferGeometry is what we call "triangle soup".THREE.Geometry will remain for the foreseeable future.three.js r.73
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With