Tuesday, April 14, 2009

Wrapping up lighting: Up next- Detail texturing.

So the deferred lighting system is about complete. A preliminary video was posted to the youtube and another more final video will be uploaded shortly. After that time I'm going to work on cutting the GBuffer bandwidth in half by eliminating one of the unused color buffers and encoding normals into an RGBA8 target (from RGBA16F). The primary performance hit comes from the GBuffer as there is minimal overdraw and minimal screen coverage from the light pass.

The next big thing that I'd like to address (among others) is detail texturing which would require modification to the surface properties which come in from the map. By tiling a repeatable texture and modulating it into the base texture, we can drastically improve the quality of the apparent texture resolution while not necessarily increasing texture size. 

So UV offsets will be precalculated and passed into the GBuffer pass for surfaces which have a detail texture. The detail texture would be interpreted as a heightmap where we can derive the normal and use it to perturb the surface normal for finer detailed bump maps.

I don't anticipate much of this to take particularly long, most of the hard work is over and hopefully we'll see a bunch of new work coming down the pipes very shortly =]   (Edit: that is if I can stop playing Left4Dead.....)

Monday, April 6, 2009

Sallie Jean Nelson (1937-2009)

This morning, Sallie Jean Nelson rode the first rays of the new rising sun to new beginnings.

She remains a primary source for the lessons of perseverence and will continue to be the source of strength and resilience for the slings and arrows that life will throw. My footprint on this project is for her.

Wednesday, March 25, 2009

Yay! New dev box!

Yay! So I've finally scrounged up enough to build a new box. While it isn't what I wanted (Really, will ANYTHING ever be what I wanted?), it's leaps and bounds ahead of what I had before.

Specs:
Athlon X2 7750 Blackbox 2.7GHz (Exchanged from PhenomII) $$ reasons
4GB PC6400
XFX 512MB XXX Radeon 4850

This being my first major Vista build, I'm going to start looking at getting ahead of the DX10 bandwagon in preparation for DX11 and Win7 and may start implementing a DX10 renderer for Quadrion as well.

On a side note, Vista x64 is running exceptionally well. I may be one of a minority who has NOT had driver related or compatability related issues, but it will be interesting to attempt to see what can be done for a 64bit build of Quadrion. Though, I can say for certain that will NOT happen until nVidia releases a 64bit SDK for PhysX, which is supposedly coming soon.

The progress on the new dynamic lighting system is going well. I've got two versions that I'm playing around with, one resembles the more traditional deferred renderers (See. Haregraves). The other is closer to Wolfgang Engel's light pre-pass renderer (http://diaryofagraphicsprogrammer.blogspot.com). I'm going to mess around with seeing what's going to end up working better for us. Though, I'm anticipating that the light-pre pass render is going to be a better solution since memory bandwidth is already sortof an issue for us.

I haven't coded in about 2 weeks, so this was a much needed break. Gonna jump right back in and there will be updates....oh yes there will be updates.

Tuesday, February 17, 2009

finally done and new beginnings.

Wow, I just came to realize how horrendously bad the text editor on blogspot is. 

Anyways, I've wasted enough time on Quadrion's SSAO implementation that I'm pleased to say I'm finally not messing with it anymore. This isn't to say that it's done...just that I'm not messing with it anymore. Looking at the original technique's description and many other takes on SSAO, I found that some of the implementations out there except for the original Crytek implementation are much too black on white (Eg: Edge highlight with no hint of subtle surface occlusion). One of my earlier implementations preserved the subtler surface occlusion details but had the drawback that many surfaces were giving false occlusion, which in some cases looks good.

So the result is a super low frequency approach that relies heavily on a seperable two pass blur w/ bilateral filter which attempts to preserve edges as best as possible. The primary issue was the lack of contrast in the resultant SSAO term. It simply didnt show up in the final color pass. So the best solution here turned out to be the simplest one and it's just a power ramp constrained by surface normal coherence between the original and distributed sampling points.

So the intensity is naively jacked up based on the average angular deviation there. Granted this isn't based entirely on physical accuracy, but it looks good enough. This makes the final term "contrastey" enough to be used in the final color composite without appearing to be an edge highlighter.

I also opted out of the tight sampling radius for the softer, gentler effect of the large sampling radius.

In other news, we've teamed up with another company which will use Quadrion Engine on one of their up and coming titles which we hope will be ready in time for IGF. Crunch crunch crunch.

I've posted some shots of the new effect at my photobucket.
http://i119.photobucket.com/albums/o121/qphalcyon
SSAO Raw#3