Hello!
I am Charles Giessen, a Software Engineer focused on systems programming and computer graphics. Currently I’m a senior Computer Science student at the University of Tulsa. I enjoy getting into the nitty-gritty details, high performance software, and making code fast.
Contact info
Email: cdgiessen@gmail.com
Programming Projects
Vulkan Game Engine
Designed around the new Vulkan graphics API. C++17. A testing ground for learning software techniques, game engine design, and exploring solutions for engineering problems.
Major Features:
-
Terrain Renderer: Heightmap based with automatic level of detail adjustment using a Quadtree and Memory pool for quick allocation.
-
Procedural Noise Texture Generator: Lets users create noise textures in a visual node graph editor and uses SIMD acceleration for calculation.
-
Cross platform - CMake based, with both Windows and Linux Support. Tested with both gcc and msvc.
-
Multitasking System, (WIP) Thread pool based tasking system that enables task based multithreading of various jobs.
-
Frame Graph, (WIP) Abstracts all rendering operations and resources into a single graph, enabling global reasoning about how a frame is rendered.
-
Physically based rendering, Uses the Cook-Torrance BRDF and currently only implements albedo, roughness, metalness, with normal mapping.
– Source –
Screenshots
Example Landscape
Terrain Level of Detail
PBR showcase
Pascal Compiler
Project for the Compiler Construction course. C++17
Compiles a Pascal dialect, not standard Pascal
The parsing method employed is Recusive Descent parsing.
Tokenizer is working; Parsing, AST generation, and LLVM integration for code gen in progress.
– Source –
Orange Sherbet Game Engine
Cumulative project for the Game Engine Design course. C++11 and is OpenGL 4.0 based.
Features
- Phong Shading, with diffure and specular texture sampling.
- Point, Direction, and Spot Lighting, dynamic lighting of environment
- Custom Model Loading, using Wavefront Obj’s with optional normal recalculation
- Transform Hierarchy, Position, Rotation, and Scaling supported.
– Source –
Screenshot of exmaple scene
Charles Math Library
Written in conjunction with the Orange Sherbert Game Engine
Simple math library built for 3d graphics
Vectors 2,3,4, Matrix 3x3,4x4, & Quaternions
Written in C++
– Source –
USGS Survey Data FPS Viewer
Loads and lets users walk around a USGS GridFloat data file
Sample data is of Mt. Saint Helens
Uses OpenGL 3.3, GLFW, and GLEW
Written in C++11
– Source –
Project Luna
Unity 3d based RTS style colony builder
Procedural created lunar surface in RollerCoaster Tycoon 2 style
– Source –
Various High Performance Computing projects
MPI, OpenMP, pthreads
Simple projects, served to learn basic API concepts and hpc programming practices.
Developed to run on the 100 node Tandy Supercomputer (no longer in operation)
– Source –
USGS Survey Data Visualizer
Loads and displays a USGS Survey data file
Lets the viewer orbit the camera around the file
Able to change the color and gradient based on the height
C++, fixed function OpenGL using FreeGLUT
– Source –
Icosohedral Subdivision Sphere
Automatic subdivision of icosoheron sphere
Walkable planet with heightmap and texture mapping
Written in C# & Unity3d
– Source –
- Youtube Video of WIP version Link
Contour Line Visualizer
Creates a contour map of a USGS GridFloat data file
Example data is of Mt. Saint Helens
Written in C++
– Source –
Koch Snowflake
Draws a Koch Snowflake fractal
Written in C++
– Source –
PollPoll: Hackathon Project
Scrapes webdata of congresional voting for comparison
Written in Python
– Source –
Non-Programming Work
3d Modeling
Comfortable working in Maya 2017 and Blender 2.7.