Jump to content
  • Advertisement
Sign in to follow this  
  • entries
  • comments
  • views

At the very beginning

Sign in to follow this  
Arjan B


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 [size=2](the creators of the Overlord and Age of Wonders series) and starting a one man software development company [size=2](without many projects, I can tell ya wink.png), 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. smile.png

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

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

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:

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
Sign in to follow this  


Recommended Comments

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.

Share this comment

Link to comment

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

Share this comment

Link to comment

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Advertisement

Important Information

By using GameDev.net, you agree to our community Guidelines, Terms of Use, and Privacy Policy.

GameDev.net is your game development community. Create an account for your GameDev Portfolio and participate in the largest developer community in the games industry.

Sign me up!