2nd year student at Breda University of Applied Sciences in Creative Media and Game Technologies.
💼 Open for a 6-12 month internship starting September 2025
January 24, 2025
Custom C++ Terrain Editor was a solo research project. The project features editable terrain and variety of brushes. The Terrain Editor would later become based for the Fire Ant Engine.
My Contributions: Terrain Mesh Deformation via Height Maps | Vertex Shader with Dynamic Normals & Displacement | Fully Custom Brush Framework | Normals-based Object Placement
Engine/Tools: C++, OpenGL, GLSL (Vertex & Fragment Shaders), ImGui, GLM
Team Size: Solo
Platforms: Windows
Duration: 8 weeks (Nov 2024 - Jan 2025)
The Custom C++ Terrain Editor is a solo-developed terrain sculpting tool and rendering system built in C++ using OpenGL. It enables real-time terrain editing via an intuitive brush interface, allowing users to raise/lower terrain, flatten areas, smooth contours, and scatter foliage—all with visual feedback. It also includes dynamic heightmap-based terrain rendering and an interactive camera system for navigation.
This project served as the predecessor to the Terrain Editor in Fire Ant, laying the groundwork for compute-driven tools and brush architecture used in later engine projects.
I have written a blog post about the project here.
I built a full rendering pipeline for heightmap-displaced terrain using a custom vertex shader that dynamically adjusts vertex positions based on height texture values.
Key Features:
Challenges:
I developed a fully functional brush-based editing interface that modifies terrain heightmap data in real time. Each brush operates on a targeted region and modifies texture data on the CPU before uploading it back to the GPU.
What It Does: Raises or lowers terrain in a circular region using a Gaussian distribution, with optional “average terrain” filtering to sculpt only selected elevations.
Key Features:
[
and ]
).Challenges:
glTexSubImage2D
.What It Does: Flattens terrain within the brush area to a target height—either manually set or sampled from the terrain via mouse click.
Key Features:
Challenges:
What It Does: Averages surrounding terrain to eliminate sharp edges and create smooth transitions between sculpted features.
Key Features:
Challenges:
What It Does: Spawns props (like trees) along terrain, with random scattering and optional alignment to terrain normals.
Key Features:
Challenges:
I implemented a free-fly 3D camera system with full keyboard and mouse support to allow intuitive navigation across the terrain.
Key Features:
Challenges:
glTexSubImage2D
updates.This project taught me the fundamentals of shader-based terrain deformation, interactive editor systems, and real-time tool development. It directly led to major architectural improvements in later projects like the Terrain Editor in Fire Ant.
My brush system, heightmap-based editing, and real-time feedback loop laid a reusable foundation for more scalable GPU-powered editing tools.