I'm trying the create a voxel engine, and am merging geometries to improve performance. I'm using this demo as reference, which is able to generate around 120,000 using around 700mb of memory in chrome and running at 60+fps on my machine. This demo is using release 44 of threejs, which uses THREE.GeometryUtils.merge. My project is using the newest version of threejs (release 83), and when I attempt render around 50,000 voxels (merging using geometry.merge), I'm using over 1000mb of memory and performance is stuttering. I'm using practically the same method as the above demo. To confirm that threejs was the issue (and not something else with my code), I replaced the release 44 of threejs used in the demo with release 83 (and made some few minor compatibility adjustments) and experienced the same issues. Is this a known issue? I really don't want to revert to an older version of threejs for my project. The only real solutions I can see are switching to an older version, trying to integrate just the merge code from r44 into r83, or posting an issue on github and waiting for it to get solved, none of which are really desirable. Just wondering if anyone else has dealt with this.
High memory usage with merged geometries in newer versions of THREEJS
330 Views Asked by dyarbrough At
1
There are 1 best solutions below
Related Questions in PERFORMANCE
- Slow performance on ipad erasing image
- Can Apache Ant be told to cache its XML files?
- What are the pros and cons of the picture element?
- DB candidate as CouchDB/Schema replacement
- python member str performance too slow
- Split a large query (2 days) into pieces to increase the speed in Postgres
- Use GUI displayed results of SQL query vs new queries?
- fastest way to map a large number of longs
- Bash regular expression execution hangs on long expressions
- Why is calling a function so slow in Javascript?
- Performance of element-compare in java collections
- "Capture GPU Frame" in XCode -- iOS only?
- Efficiency penalty of initializing a struct/class within a loop
- Change the rotating speed of the circle when the mouse moves using javascript
- Replace foreach to make loop into queryable
Related Questions in MERGE
- Sub-directory into independent repository and later merge back into main repository
- R: Avoid loop or row apply function
- neo4j load csv invalid "ON MATCH"
- PIG merge two lines in the log
- In SVN, what's the different between "merge from a to b" an "merge from b to a"?
- git merge "deleted by us"
- Merge sort using CUDA: efficient implementation for small input arrays
- Merge project from other branch git
- Get a single line representation for multiple close by lines clustered together in opencv
- merge or mutate a summary (dplyr)
- How to I combine data from two XML files into the same structure?
- Merging PDF files with similar names using PDFTK and a bash script
- git has problems with squashing commits once there is "Merge branch"
- How can I combine elements at the same index from separate lists?
- Merging two sorted stacks
Related Questions in THREE.JS
- TypeError: this.mesh.geometry.area is not a function
- Threejs scene from blender and access to objects
- Importing blender JSON in Three.js
- Rotate the mergeometry object at its center in Three.js
- ThreeJS LOD clone()
- Three.js, Camera rotation around a point
- Three.js: Switching between Cameras and Controls
- THREE.JS MakeTextSprite properties
- How to create a cylinder or some flash effect between two points?
- How can I render .mtl for object on iPhone 5 using ThreeJS?
- Updating a material's texture map with images rapidly (every 50ms or so) causes huge stuttering
- Quality not proper while rendering it via threejs r71
- how do I apply the stereo effect to a video mapped sphere?`
- Adding 2D plane to 3D view
- How to check for collisions in ThreeJS?
Related Questions in MESH
- Cells in grid crossed by a line ( PHP )
- Detect hole in geometry
- Trimesh - leak memory
- Set mesh transparency Meshlab
- How to generate a 2d mesh from a binary image in python?
- Interactive Meshes in Three.js
- What programs export .mesh?
- Get the mesh name from the selected vertex
- How to move multiple meshs in different directions with three.js?
- How to draw each a vertex of a mesh as a circle
- How can creat mesh using matlab?
- Split Matrix and Use Mesh to Plot in Matlab
- Unity3D only first submeshed is rendered
- How to unite gameobject meshes?
- Stop Mesh rendering if it intersect
Trending Questions
- UIImageView Frame Doesn't Reflect Constraints
- Is it possible to use adb commands to click on a view by finding its ID?
- How to create a new web character symbol recognizable by html/javascript?
- Why isn't my CSS3 animation smooth in Google Chrome (but very smooth on other browsers)?
- Heap Gives Page Fault
- Connect ffmpeg to Visual Studio 2008
- Both Object- and ValueAnimator jumps when Duration is set above API LvL 24
- How to avoid default initialization of objects in std::vector?
- second argument of the command line arguments in a format other than char** argv or char* argv[]
- How to improve efficiency of algorithm which generates next lexicographic permutation?
- Navigating to the another actvity app getting crash in android
- How to read the particular message format in android and store in sqlite database?
- Resetting inventory status after order is cancelled
- Efficiently compute powers of X in SSE/AVX
- Insert into an external database using ajax and php : POST 500 (Internal Server Error)
Popular Questions
- How do I undo the most recent local commits in Git?
- How can I remove a specific item from an array in JavaScript?
- How do I delete a Git branch locally and remotely?
- Find all files containing a specific text (string) on Linux?
- How do I revert a Git repository to a previous commit?
- How do I create an HTML button that acts like a link?
- How do I check out a remote Git branch?
- How do I force "git pull" to overwrite local files?
- How do I list all files of a directory?
- How to check whether a string contains a substring in JavaScript?
- How do I redirect to another webpage?
- How can I iterate over rows in a Pandas DataFrame?
- How do I convert a String to an int in Java?
- Does Python have a string 'contains' substring method?
- How do I check if a string contains a specific word?
I managed to determine the issue is not with the merge function by replacing the release 45 Three.GeometryUtils.merge with the one from release 44. This gave the same issues with memory as before, so something else that was changed in release 45 is causing the issue. As suggested, I tested with BufferGeometries and was able to achieve the desired performance levels (< 500 mb memory usage with 120,000 voxels), so I'm ending my search for the source of the issue and switching to this method.