How bigmanmanu/3d-rendering-engine works
This repository is a small LWJGL 3D game-engine demo. Its main workflow creates a display and GPU loader, prepares textured models and heightmap terrain, updates a player and camera each frame, submits entities and terrain for rendering, and updates the display. Terrain supplies height queries used for placement and player grounding. The tree also contains entity/terrain rendering, shader, and GUI subsystems; GUI rendering is present but its call in the main loop is commented out. The README is empty, and most renderer internals were not sampled, so their dispatch relationships are omitted.
Main entry points: MainGameLoop.java Game loop · Player.java Player control · Terrain.java Heightmap terrain · Loader.java GPU loader
Components 22
Runtime and world
- Game loop
GameEngine/src/engineTester/MainGameLoop.java - Display manager
GameEngine/src/renderEngine/DisplayManager.java - Player control
GameEngine/src/entities/Player.java - Camera
GameEngine/src/entities/Camera.java - Heightmap terrain
GameEngine/src/terrains/Terrain.java - World entity
GameEngine/src/entities/Entity.java - Scene light
GameEngine/src/entities/Light.java
Assets and models
- GPU loader
GameEngine/src/renderEngine/Loader.java - OBJ importer
GameEngine/src/renderEngine/OBJLoader.java - Raw model
GameEngine/src/models/RawModel.java - Textured model
GameEngine/src/models/TextureModel.java - Model texture
GameEngine/src/textures/ModelTexture.java - Terrain textures
GameEngine/src/textures/TerrainTexturePack.java
Rendering
- Render coordinator
GameEngine/src/renderEngine/MasterRenderer.java - Entity renderer
GameEngine/src/renderEngine/EntityRenderer.java - Terrain renderer
GameEngine/src/renderEngine/TerrainRenderer.java - Shader program
GameEngine/src/shaders/ShaderProgram.java - Static shader
GameEngine/src/shaders/StaticShader.java - Terrain shader
GameEngine/src/shaders/TerrainShader.java
GUI
- GUI texture
GameEngine/src/guis/GuiTexture.java - GUI renderer
GameEngine/src/guis/GuiRenderer.java
Other components
- Player
Connections 14
- Game loop → Display manager: creates and updates
- Game loop → GPU loader: loads assets
- Game loop → OBJ importer: imports models
- Game loop → Heightmap terrain: creates terrain
- Game loop → Player control: updates movement
- Game loop → Camera: moves camera
- Game loop → Render coordinator: submits scene
- Game loop → GUI texture: creates GUI
- Game loop → GUI renderer: constructs renderer
- Player control → Heightmap terrain: queries height
- Player control → Display manager: reads frame time
- Heightmap terrain → GPU loader: uploads mesh
- OBJ importer → GPU loader: uploads mesh
- Player → Player control: keyboard input