You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
3D Objects is a Qt 6 desktop application that integrates OpenGL 4.5 Core Profile into a Qt Widgets interface.
It renders a 3D scene consisting of a flat ground plane and any number of user‑imported 3D models.
Models are loaded at runtime from OBJ files using the Assimp library, so you can drop arbitrary meshes into the scene without recompiling.
Each imported mesh gets its own VAO/VBO and can be individually selected, transformed, and recolored.
Features
Modern OpenGL 4.5 Core Profile (no deprecated functions)
Dynamic loading of OBJ files using Assimp
Flat ground plane as a base for all models
Camera controls:
Orbit, pan, and dolly with mouse and keyboard
Per-object manipulation:
Select, translate (drag), and scale individual objects
Independent VAO/VBO per object
Coloring modes based on vertex attributes:
Uniform color
Position (world space)
Normal direction
UV coordinates
GLSL 4.50 shaders using in/out varyings and uniforms
Built using CMake, GLM, Qt 6, and Assimp
Prerequisites
Dependency
Minimum Version
Purpose
Qt 6
6.5+
Core / GUI / Widgets / OpenGL
CMake
3.21+
Build system
GLM
Latest
Matrix and vector math
Assimp
5.3+
Import OBJ models
C++ Compiler
C++20/C++23
MSVC, MinGW, Clang, or GCC
How It Works
Object Loading
Press Object to import an OBJ file.
Geometry is loaded via Assimp and centered above the ground.
Each object gets its own VAO/VBO and is rendered independently.
Ground
Rendered by scaling a unit cube.
Positioned at y = -2.0 and sized to cover a large flat area.