The last feature of the class; light refraction. I use Snell’s Law for calculating the refracted light-vectors, and Beer’s Law for calculating light absorbance through mediums. I’ve got my render-farm running at full-tilt now, so I was able to get some really nice renders. AS A NOTE: WordPress seems to be resizing my images when […]| Matt Yan
Shiny ray-traced reflections!| Matt Yan
I just finished the last touches on the first project for the class I’m taking on path-tracing, and I’m pretty pleased with the result! Most of the work so far has been writing intersection code and testing everything with an incredibly basic ray-tracer (not worth showing!). I’m happy to finally have something to show for […]| Matt Yan
As the last project in my graphics class we were instructed to choose any white-paper, then research and implement it. I decided to implement depth of field (DoF). It’s an effect that simulates how lenses (cameras, our eyes, etc) focus light. I had to give a presentation which you can find here. In reality, we have to fake depth of […]| Matt Yan
The last graphics project of this semester was ambient occlusion (AO). This is a really subtle effect that mimics the shadowing you would see when something has a lot of folds/creases/occluding geometry on the surface of an object. For example, here’s a render of the bunny model without AO: Doesn’t look terrible right? The bunny has nice detailing […]| Matt Yan
I’ve knocked down the next graphics feature: exponential soft shadow mapping! Prior, I implemented traditional shadow-mapping, and they looked like this if you got close: See those pixelated edges? Not very pretty, and it gets worse the closer you get. With these new shadows, they can have varying penumbra, and look much better at close […]| Matt Yan
A long, long time ago, when I was just a wee freshman at DigiPen, I saw an awesome photo. The array of PBR balls; every graphics programmer has probably seen it at least once. It was crazy to me that you could get something to look so real on a computer. This was the moment I […]| Matt Yan
After the gruel and suffering of finals week, a ray of hope! My compiler is finished! Still incredibly rudimentary, but it’s not too shabby. It currently supports: Basic integral types including: Integer Float Boolean Char Char * (not really a pointer, but a string type) Functions, with return types and parameters Comments, both single and multi-line […]| Matt Yan
A topic I’ve never really been able to read a lot on is how one sets up their CPU-side pipeline. I’m not talking about how you treat your objects, but the actual definition of each pass, deciding what objects it will handle, resources it needs, etc. Up to about a month ago, my pipeline had remained […]| Matt Yan
Performing object-picking without ray-casting or physics, all for minimal overhead!| Matt Yan