Skip to content
Jango73Public

About

Qt based 3D engine with geo-referenced entities

Topics

Resources

Stars

14 stars

Watchers

4 watching

Forks

Repository files navigation

Quick3D

Build

Qt based 3D engine with geo-referenced entities

This used to be a very simple 3D engine that could show a 3D terrain and objects. But it has been pushed much further and is now a general purpose engine.

Building

Linux reference build is CMake + Qt6 (shadow builds, like galman):

./scripts/linux/deps.sh      # submodules + packages, needs sudo
./scripts/linux/build.sh     # --debug or --release
./scripts/linux/run.sh -- run-tests

Binaries land in build-debug/ / build-release/ (quick3dtest/Quick3DTest[d], libs next to them). The legacy .pro/.pri files are kept for QtCreator users.

Running tests

Run the local CI (same steps as the GitHub workflow):

./scripts/linux/ci-local.sh

Features

  • Global terrain with automatic level of detail. Can be generated from real earth elevation data or procedurally and can be populated with vegetation.
  • Geo-referenced objects, with parent-child relationship
  • Q3D file format, with a python script to export from Blender
  • Scenes are setup in a XML file or at runtime
  • Basic animation classes

Things to code or to fix

Optimize

  • Frame rate drops too fast when scene goes up in complexity. Probably too much overhead on object/material setup.

Terrain

  • Tile seams : for now, seams between terrain tiles are visible. Should create small patches on edges to match tiles.
  • Z-fighting : should use an adaptive z-buffer depth to avoid this.
  • Loading : sometimes tiles simply don't show up.
  • Vegetation rendering : vegetation objects (and all alpha containing objects) should be rendered last to avoid alpha problems.
  • Vegetation spawning : still some bug in this algorithm.

Animation

  • Skinning : nothing done yet.

Camera

  • Frustum : sometimes objects disappear because they are not considered inside the viewing frustum (although we know they are).

Materials

  • PBR rendering : allow scripting of PBR methods for realistic shading.
  • Shaders: there are some artefacts due to bad looping when using perlin noise.

About

Qt based 3D engine with geo-referenced entities

Topics

Resources

Stars

14 stars

Watchers

4 watching

Forks

Releases

Packages

Used by

Contributors

Languages