Giter VIP home page Giter VIP logo

About Me

The best way to describe myself is a CG hobbyist. My day job is mostly related to distributed systems and backend engineering, but in my evenings I like to tinker on small CG projects just for fun. I am generally interested in rendering beautiful images often using offline rendering. I like to understand how complex materials work and I tend to spend too much time profiling and optimizing the code I write.

Here are some of the projects I made over the past 6 years:

Raytracing in a Weekend book series

Peter Shirley's Raytracing in One Weekend books was the starting point to my little adventure. I've always played around with ray tracers and computer graphics but these books allowed me to build a decent render while learning the basics along the way. Eventually I rewrote the renderers in CUDA (several times) increasing its performance along the way.

Spheres scene

Voxel Heightmaps

I got the inspiration of this project from ephtracy's amazing Aerialod path tracing renderer for heightmaps. I used CUDA again and what was new with this project is that I used a voxel representation for the scene and an optimized variant of the DDA algorithm.

Colored city Colored heightmap

Point Clouds

For this project I wanted to focus on optimizing my CUDA renderer and was looking for an easy way to support very large scenes while sticking to the basic primitives (I didn't yet have support for triangle meshes at this point). I found Michael Fogleman DLA project which was perfect as it only required supporting points (which are basically small spheres in my renderer). Once I got that working it was straightforward rendering point clouds.

DLA point cloud

Point cloud fountain scene

Triangle Meshes

For this project I finally got the chance to add support for triangle meshes along with loading .obj files. Initial implementation didn't have a proper acceleration structure and that is why I only rendered low poly models. I compensated that by adding support for more Beer law absorption for glass.

Glass model

Staircase Scene

For this project I wanted to render a proper trianglemesh scene. This particular scene if from Benedikt Bitterli's rendering resources, with the actual obj scene nicely provided by Asif as part of his GLSL-PathTracer. Once I got the scene rendered properly, I focused on optimizing the renderer which led me to eventually implementing more advanced BVH build algorithms (specifically triangle splitting and SBVH).

Staircase scene

Random Walk Subsurface Scattering

For this project I wanted to implement subsurface scattering, I used this great computergraphics.stackexchange answer as a basis for my renderer, then I experiemented with various models.

Monk model

San Miguel Scene

This was the scene that was on the cover of the 2nd edition of Physically Based Rendering book. For this particular project, I used YoctoGL which is a nice C++ library which provides a lot of code that can greatly speedup rendering development. For this particular case I mostly used it to load .pbrt file and support some of the advanced materials I didn't yet implemented before.

San Miguel scene

Back to basics

For this project I went back to Raytracing in One Weekend books' code and added support for triangle meshes. For this particular implementation I wanted to focus more on adding interesting features without worrying to much of low level optimizations. For now everything is on CPU, which makes it much easier to debug when things don't work as expected. Eventually, I rewrote the path tracer from scratch based off the Advanced Graphics course from Utrecht University. As part of that, I added support for multi-threading which made rendering so much faster allowing me to explore more complex materials, including Disney's principled BRDF and volumetric absorption with and without scattering (subsurface scattering).

Gold Dragon Red Dragon with Disney BRDF Orange Bunny with Disney BRDF Glass Dragon with volumetric absorption Glass Monk with volumetric absorption Baby Dragon with Subsurface Scattering

voxel-tracer's Projects

voxel-tracer doesnโ€™t have any public repositories yet.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.