Comments (2)
Great to here it! And that's not a bad idea.
THREE does do frustum culling as it renders but doesn't use any type of acceleration structure for that (it just checks every mesh) so you'll start to run into different performance bottlenecks as you add more meshes. If we were to break up a large mesh into smaller ones you might run into issues with the number of draw calls needed or becoming vertex bound because the broken up meshes can no longer share vertices that they could when rendering a single mesh.
There may be some others ways to use this structure to do some per-triangle culling, though. In #77 I'm adding a few functions to perform some shape casting (spheres, boxes) and gather up all the triangles that intersect with the object. You could imagine using a frustum and only rendering the triangles that are in the view by either creating a new index array or using geometry groups to limit what's rendered. Something like MultiDrawArrays would be useful here, but unfortunately that's not available in WebGL. There'd be some work in making it as fast as possible and you'd want to do some benchmarking to ensure the performance penalty of checking the frustum is worth it, though. I'd have to think about it more but maybe there'd be a way to do occlusion culling, as well?
Do you have an example of what you'd like to use it for?
As an aside I was working on a dynamic scene-based oct tree hierarchy awhile ago which I may pick it back up after what I've learned with this project.
from three-mesh-bvh.
Closing in favor of #144
from three-mesh-bvh.
Related Issues (20)
- Move models to demo data repo
- edgeUtils exports HOT 1
- Selection tool issue with irregular shape model HOT 4
- Selection tool issue with different GLB models HOT 3
- Generate a vertex displacement in one mesh according to the shape of another mesh HOT 1
- umd package missing .js HOT 1
- I use LineSegmentsGeometry and LineMaterial to draw LineSegments2. Can I use three-mesh-bvh HOT 1
- Consider new shader bounds intersection function HOT 2
- Trouble with replicating character movement HOT 2
- Rename MeshBVHVisualizer to MeshBVHHelper
- Shapecast: can we remove the need for users to use "resolveTriangleIndex" function?
- To obtain all the nearest point indices within the radius from the PCD file. HOT 1
- Rotation of MeshBVH + update Mesh with Physics HOT 9
- Remove samplers from shader structs in functions HOT 2
- MeshBVHHelper: Add ability to display bvh without mesh.geometry.boundsTree
- MeshBVHHelper: Add an option for displaying the geometry wireframe
- Review, simplify, clean up glsl functions
- SAH can contain more than 1 triangle at leaf even when "maxLeafTris" is 1
- Set the glsl stack size more deliberately HOT 3
- Make the 0.6.9 changes backwards compatible
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from three-mesh-bvh.