Git Product home page Git Product logo

Comments (2)

gkjohnson avatar gkjohnson commented on May 17, 2024

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.

gkjohnson avatar gkjohnson commented on May 17, 2024

Closing in favor of #144

from three-mesh-bvh.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo 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.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.