Hello! I’m Stefan Ivanovski (known as limepixl online), a student that is passionate about computer graphics, rendering, and light transport. This blog serves as a future platform to keep my notes, observations, and projects.

Below you can see a few of the projects I have, and am currently working on.


Pathtracer

Pathtracer

A work-in-progress unidirectional pathtracer implementing light transport techniques, for the purpose of rendering complex scenes with physically-based materials.

Areas of Knowledge:

  • Light transport concepts: rendering equation, BRDFs, physically based rendering and path tracing
  • Rendering on the GPU with OpenGL compute shaders (OpenGL 4.6 Core)
  • Shader optimization via vendor-specific profiler and debugger (NVIDIA Nsight Graphics)
  • Cross-platform and cross-compiler C/C++ building with CMake
  • Custom Bounding Volume Hierarchy (BVH) creation and traversal

(GitHub Link)


3D Model Viewer

Model Viewer

A simple obj model viewer with camera, light and model transform controls.

Areas of Knowledge:

  • 3D transformations through usage of model and view matrices
  • Usage of OpenGL 3.3 Core for rendering
  • Control via parameters in the user interface that control transformations, lights and the model
  • Utilization of normal mapping for higher fidelity
  • Texture image format caching for performance improvement

(GitHub Link)


Chess

Chess

A fully playable chess game.

Areas of Knowledge:

  • User interaction with scene’s models using ray picking
  • Compilation for general machine architecture, for distribution to university professors
  • Custom scene format that defines entities with their meshes and applied transformations

(GitHub Link)


Text Editor

Text Editor

A very simple text editor.
(Wait for the GIF to load above this line)

Areas of Knowledge:

  • How to keep lines and text in memory
  • Glyph loading and displaying from font file using library
  • Implementation of basic text editor features

(GitHub Link)