[ Welcome ]
I'm a computer graphics programmer in the video game industry. Here, I document side projects where I explore new ideas, build experience, and have fun at the same time. :)
[ Iskur Engine ]
Iskur Engine on GitHub is a personal DirectX 12 rendering engine focused on prototyping and experimenting with graphics techniques.
[ Interests ]
- Computer graphics
- Video games
- Programming
- Computer hardware
- Space
[ Contents ]
-
Ray-Traced Shadows
Shadows are a critical element in video game rendering. Shadow maps are a clever solution but they often introduce problems like acne and aliasing. I wanted to try something different so I experimented with ray-traced shadows.
-
Mesh Shaders and Meshlet Culling
I recently became interested in the amplification/mesh pipeline, a relatively new rendering pipeline for modern GPUs. So I experimented with a basic DirectX/Vulkan renderer that divides meshes into meshlets and frustum culls them on the GPU.
-
Real-Time Voxel Path Tracing
At university, I studied ray tracing and loved it because of its simplicity. We had a small project to make a CPU ray tracer in C++, and although it worked well, it was very slow. A few years later, I received my first RTX card and immediately started building a Vulkan renderer taking advantage of these RT cores.
-
3D ASCII Fluid Simulation in the
Terminal
Inspired by the IOCCC and my fluid simulation internship, I created this funny-looking code. It's a 3D fluid simulation that mimics a tornado, rendered as ASCII art in the terminal with ray marching.
-
Tile-Based Light Culling
While trying to find a job in the computer graphics industry, during a preliminary interview I was asked a question about tile-based light culling, which I knew nothing about. So I decided to look into the matter and implemented it in my own engine.
-
Fluid Simulation Internship
During my six-month NII International Internship Program 2020, supervised by Ryoichi Ando, I studied research papers on fluid simulation and implemented a Navier-Stokes fluid solver from scratch in C++ and OpenGL. I started with smoke simulation and gradually evolved it toward liquid simulation.
-
Planet Mesh Generation
Inspired by some YouTube videos (see references), I decided to implement a simplex noise-based planet mesh generator in Unity. The planet mesh is discretized on a quad-tree, enabling real-time LOD computation.
-
My First Rendering Engine!
For my Master's degree in Computer Graphics, I made a basic OpenGL renderer in C++. Over the course of two years, I implemented some of the basics I had learned in class. Here is what I implemented.