Tristan Marrec

Computer Graphics Programmer
Home
LinkedIn
Email contact@tmarrec.dev Updated

Welcome :)

Hi, I’m Tristan Marrec, a computer graphics programmer working for the video game industry. Here, I’m documenting the side projects I’ve been working on that allow me to discover new things, gain experience and have fun at the same time.

Interests

  • Computer graphics
  • Video games
  • Programming
  • Computer hardware
  • Space

Contents

  • Mesh Shaders and Meshlet Culling

    I recently became interested in the amplification/mesh pipeline, the relatively new rendering pipeline that can be used with 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, all rendered in terminal in ASCII art 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 6-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. Starting with smoke simulation and gradually evolving towards 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!

    To assist me with 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 what I had learned in class, the basics of this exciting field. Here is what I implemented.