Eden

Eden is my current long term project: a graphics engine built from scratch originally with D3D11, but since rebuilt from the ground up in D3D12. I'm a graphics engineer in the game industry, but there's always so much more to learn and explore, so that's what this blog is for! I'll share what I've found, the things I do right, wrong, and everything in between.



RTX On - Quickstart Guide to DXR


Got a DXR-compatible card? Want the bare minimum to get into the DXR Experimental API without digging through a bunch of samples? Click here to get started in minutes.




Moving To D3D12


It's been a long time since my last post! Apart from the standard work/life reasons, I've also been rebuilding my engine completely in D3D12. In the near future I'll be detailing all the work that went into it. It's been quite the journey into pipeline states, fencing, async compute, multi-frame buffering, and beyond! Definitely worth the effort though, DX12 is fast and powerful.




Area Lighting


Area lighting can add a lot to game scenes, and with a physically based lighting model, they look even better! In this post, I'll be detailing the implementation of sphere, tube, and one-directional rectangular area lights.
Click here to see the full post.



Efficient CPU Particle Systems


Particle systems are a great way to add life and motion to your engine. In this post I cover the complete creation of a particle management system that is capable of great visuals and high performance.
Click here to see the full post.


Physically Based Rendering - Changes in Pipeline


Now that we have physically based rendering in place, as discussed in my previous post, we need to make some changes in our material pipeline.
Click here to see the full post.



Screen Space Ambient Occlusion - SSAO


SSAO stands for Screen Space Ambient Occlusion, the screen space technique for rendering a kind of shadowing that occurs when objects in close proximity block ambient lighting near each other. This tutorial covers SSAO implementation.
Click here to see the full post.



Physically Based Rendering


Before moving much further into adding lighting technology in my engine, I wanted to lay the foundation of physically based lighting. There are some great papers on the math behind it, but I've yet to see an implementation example online, so I'm sharing mine! This is my first pass at getting it to look right, and I draw much of my inspiration for the final look from what I've seen Unreal and Unity3D do with theirs.
Click here to see the full post.



Sample Distribution Shadow Maps


A little while ago, my lead mentioned his friend at another studio was using SDSM for their shadows. I'd never heard of it before, and it seems that most other companies haven't either since it is used in very few games right now. I imagine it will become more popular, because these are the best looking shadows I've ever seen - far exceeding the standard PSSM implementation in pretty much every aspect. Since the code is heavily dependent on your renderer implementation, I haven't included my own code here. However, I've attached a powerpoint that gives a quick overview of how the technique works before you dive into the paper. You'll also find the original code sample there. Admittedly, this technique is a bit tricky to implement, especially compared to other shadowing techniques, but if I can do it I'm sure you can too!
Download the powerpoint



Cascaded Shadow Maps with Soft Shadows


Shadow mapping is one of those things that is difficult to be satisfied with. At this point, I've read dozens of articles, papers, blogs, etc. about different shadow mapping implementations, and it quickly became clear that there's currently no perfect (or even near-perfect) way to do them. It is possible to get something that looks pretty good though, and you can use little tricks to minimize the drawbacks. My hope is that by the end of reading this, you'll be able to implement and understand the complete flow of cascaded soft shadow maps, and the advantages/disadvantages to the techniques I use.
Click here to see the full post.

Contact

  • edenspuzzle@gmail.com
  • 603-377-6737
  • LinkedIn