Jump to content

  • Log In with Google      Sign In   
  • Create Account

At the very beginning

Posted by Arjan B, 11 January 2014 · 654 views

This is a journal about how a young student decided to start implementing a path tracer.

I'm Arjan, a 23 year old CSE master student from the Netherlands. Having worked for Triumph Studios (the creators of the Overlord and Age of Wonders series) and starting a one man software development company (without many projects, I can tell ya Posted Image), I do have at least some work field experience under my belt. So to spice up my humble portfolio, I decided to implement a path tracer.

Why? Because this whole physically based rendering thing seems awesome! No more cheating and hacking to approximate real world visual effects. Instead, let's try to simulate the behaviour of light as closely as possible.

So I got my hands on a copy of Physically Based Rendering: From Theory to Implementation. However, after the first 2 or 3 chapters, I felt like I was just copying how someone else had written his path tracer. I'd much rather be explained the basic concepts, implement those, see pretty pictures and then just improve from there on. This is why I put down the book and fired up the internet. I try to get familiar with the basic concepts and implement them. Whenever I'm stuck, I ask the lovely GameDev'ers around here. Posted Image

Now, it's image time! Every body loves pretty images! Or, well.. my first attempt wasn't all that pretty:
Posted Image

Turns out I messed up my intersection code. You can imagine my joy when I fixed it and came to this:
Posted Image

Now, a couple days later, I had found my time to implement a mirror material and anti-aliasing. Just look at how pretty those spheres are:
Posted Image

Well, that's all for now! In the future, I plan to implement more features and keep the world updated through this journal. Some of those features would be:
  • An extra direct lighting sample instead of just one random sample in a hemisphere
  • Dielectric material
  • More primitives, so far I only have triangles and spheres.
  • Camera with a lens instead of a pinhole camera
  • Some tree structure to speed up the intersection check
  • Support for participating media
  • Subsurface scattering
  • Run it on the GPU, with those fancy CUDA core thingies

Good luck! Implementing a path tracer is a wonderful journey!



Looking forward to seeing your progress!

I've yet to see something in physical based rendering or ray tracing or whatever they're calling it that looks better than just bump and specular mapping. Maybe I'm just jealous other people are doing something that might be better that I don't understand and might not understand for a long time.

Well, I guess accurate global illumination is done way better in PBR than the usual route. An ambient term and post-processing effects such as ambient occlusion do make up for something, though. Soft shadows, color bleeding and area lights would be yet another thing that are far more accurately approximated. I'm not sure about this one, but I rarely see actual refraction happening in rasterized applications. Let alone caustics. The same for sub-surface scattering.


But I'm new on the subject as well, so I'm free to be corrected. smile.png

Random Album Image

Indirect illumination with "skylight"

Recent Entries

Recent Comments

My Gallery Albums