Giter Site home page Giter Site logo

Comments (2)

IceCreamYou avatar IceCreamYou commented on August 25, 2024

This doesn't really seem like a THREE.Terrain question - I expect you'd have similar results if you created a scene with the same objects without this library. In general, three.js geometry objects can get pretty big. What's in memory is not just the screen buffer, it's all the references to faces, points, etc. that are required to calculate the scene. Browser dev tools have built in profilers these days that you could use to see which objects take up the most memory.

One thing worth noting is that THREE.Terrain might temporarily increase memory usage when applying certain transformations to the plane, as it needs to copy some things in order to do certain calculations, but references to those objects aren't kept and so the allocated memory should be garbage collected within a few seconds.

from three.terrain.

mattes3 avatar mattes3 commented on August 25, 2024

In the meantime, I have been analyzing other options for building terrain because the memory consumption was killing my app.

I found out that I can build the terrain on the GPU instead of the CPU. As an example, I built a 4096x4096 terrain using only a heightmap of 64MB in size (4 bytes per texel in GPU framebuffer memory, not in CPU memory). Not a single triangle in sight ... it takes only a 10th of a second to build (once, only), and later in the animation loop, the terrain looks really good! These GPUs are sooooo fast, several teraflops of performance, amazing!

The approach looks so promising that I think I will turn away from using ThreeJS and terrain geometry at all. Success, however, will really depend on how texture mapping, lighting, and shadows will work out with this "no geometry" approach. Will keep you updated.

from three.terrain.

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.