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
- Upsert huge amount of data by EFCore.BulkExtensions
- How can I resolve this error and work smoothly in deep learning?
- Efficiently processing many small elements of a collection concurrently in Java
- Theme Preloader for speed optimization in WordPress
- I need help to understand the time wich my simple ''hello world'' is taking to execute
- Non-blocking state update
- Do conditional checks cause bottlenecks in Javascript?
- Performance of sketch drastically decreases outside of the P5 Web Editor
- sample query for review for improvement on big query
- Is there an indexing strategy in Postgres which will operate effectively for JOINs with ORs
- Performance difference between two JavaScript code snippets for comparing arrays of strings
- C++ : Is there an objective universal way to compare the speed of iterative algorithms?
- How to configure api http request with load testing
- the difference in terms of performance two types of update in opensearch
- Sveltekit : really long to send the first page and intense CPU computation
Related Questions in MERGE
- Purpose of last 2 while loops in the merge algorithm of merge sort sorting technique
- Having trouble merging these two datasets for a Spatial Analysis
- Merge Azure mp4 blobs via API (Preferred Azure)
- Git merge strategies vs. merge drivers vs. mergetools
- Merge Request in Bitbucket: Possible to exempt a specific branch to ask for Merge Request?
- How to properly extend the generic interface with a new generic parametr using decration merging in Typescript?
- Merge effective dated records of an attribute with the main effective dated table (SQL)
- How do I merge multiple tables into a new table in BigQuery?
- Exclude a file from merging to the main branch
- Usage of merge in linux sort utility
- How can I collapse repeated missing observations into a single nonmissing observation for the same ID in SAS?
- Best way to automate auto-merging git branches
- git: merging a branch that's already been merged by mistake
- Dynamically create, merge & save dataframes in a for loop
- VBA find matching Excel files with a subtext - and merge them into single new file
Related Questions in THREE.JS
- Threejs Postprocessing Screen Spaced Reflections with Bloom
- coded one, but renderer renders two 3D models in three.js
- Blender mesh-cleanup reduces number of vertices but in Three.js it doesn't
- Shadows not casted/received with HDR environment texture in Three js
- how to solve CORS problem whith local html three.js?
- Title: Full Stack Web Development Assignment-Shadow and Z-Lock for Cube using React.js and Three.js
- Problem picking up with interactive camera and orbitcontrols after amination camera moves "camera view"
- Three.js how to determine if backfacing in a RawShaderMaterial that's double sided and transparent?
- How to build a codesandbox project to android apk?
- openbim-components with node js
- 3D scene doesn't have shadows even though I enabled castShadow and receiveShadow
- How to implement Vertex Shader in React Three Fiber to transform in XY plane based on Z height coordinates
- Cannon.js Three.js create inverted cylinder barrier
- Using WebGPURenderer in A-Frame
- Three-mesh-bvh stop drag after collision
Related Questions in MESH
- Adhoc / mesh network not working (with and without batman-adv)
- Error: 'Mesh' object has no attribute 'use_auto_smooth' when importing .zmbx (Metabricks) file into Blender
- Grid-like lines in my procedurally generated mesh
- How to save a .msh format to read with Gmsh from vertices, elements (tetra) and type of tissue?
- How to make sure METIS partition surface mesh connected?
- How to calculate the surface area of a 3d mesh
- Distance transform to calculate centerline/skeleton
- The best methods to report object mesh problems?
- How to highlight or draw line on where 2 or more meshes intersect
- Open3d Triangle Mesh fill_holes() method leads to crash
- Hexahedral mesh creation and adjustment for modeling of a 3D printing process
- Godot 4's MultiMesh doesn't display the correct colors
- Creating a density plot out of a large matrix in octave
- How to change mesh element type in Python gmsh?
- Mesh generation using GMSH (Python)
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 # Hahtags
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.