This project demonstrates the use of a linear quadtree with level differences to fill in the seams between terrain tiles of different size/resolution. The quadtree's encoding allows resolutions of neighboring tiles to be looked up in constant time and used in the shader to interpolate vertex heights on tile edges in real-time.
Demo (currently not suitable for mobile devices)
Fly the camera using WASD. Click and drag to point camera. As you fly around, tiles will update their resolutions.
Check the wireframe box to visualize the tiling. Uncheck to see that there are no seams between tiles.
Toggle quadtree updating with the update checkbox.
- Clone the repository.
- In the root directory, run
npm install
. - Run
npm run dev
. - Open browser to localhost:3000.