Previous Blog Next Blog
Prev/Next Blog
by date

TGEA Advanced Shaders (Image Heavy)

TGEA Advanced Shaders (Image Heavy)
Name:Matt Vitelli 
Date Posted:Nov 10, 2008
Rating:5.0 out of 5
Public:YES
Comments:YES
RSS Feed:GarageGames Blog feedor Subscribe with .
Profile Page:View profile page for Matt Vitelli

Blog post
I've been working hard on post processes since late June. Only recently have I implemented many of the effects TGEA users have desired for years. This has taken a great many months, but things are finally coming together. I've learned powerful lessons and valuable techniques for working with image-space. Below is a compilation of the past few months.


God-Rays
Similar to my light-extrusion mapping from an earlier plan, only this creates one based on objects in the scene and collision intersections with the sun.



Motion-Blur

This uses the good ol' frame-to-frame blur method. An example of this can be found in RenderMonkey.




Real-Time Atmospheric Day and Night Cycles and Dynamic Atlas Shadows

Video Here
This is useful for realistic day and night cycles. The sun is dynamically generated using a shader and the entire sky uses 3 lookup tables. This is a performance enhancement compared to the many textures used in the original skybox class. It also is visually more appealing.

Dynamic atlas shadows are also part of this. Unfortunately, I have no video of this in action, though it can be clearly seen in the screenshots. The shadowing uses a height-tracing algorithm similar to relief mapping. This has some benefits to standard shadow mapping, but also some disadvantages visually. Ambient-occlusion is also calculated in the shader.

Day


Sunset


Night



Atmospheric Glare Using Diffraction
Essentially, this is the effect seen when a viewer squints their eyes at a light source. The halo gets skewed in seemingly random directions when you squint your eyes, creating a cross in glare.



Depth of Field
Pretty good technique, but it requires a high-precision, high-resolution depth map for quality. (R32 texture-type)



Normal-Based Screen Space Ambient Occlusion
This is similar to the traditional depth-based approach, only it is done using the normal-angles to calculate occlusion. It tends to be more accurate and gives better results and less of the "black aura" that's seen in depth-map based approaches.

Without AO


With AO

Recent Blog Posts
List:11/10/08 - TGEA Advanced Shaders (Image Heavy)
07/29/08 - Shaders Galore! Texture-Space Diffusion, God Rays, and Light Extrusion Mapping!
05/15/08 - Day and Night System
09/27/07 - Illumina Screenshots!
08/14/07 - Forgotten Lands, Real-Time Ambient Occlusion, and Motion Blur!
08/03/07 - Illumina, Forgotten Lands, and Shaders!(Screenshot heavy)
11/08/06 - Various Tools and Projects (Screenshot Heavy)
09/16/06 - The Past Year

Submit ResourceSubmit your own resources!

Stephen Wilson   (Nov 10, 2008 at 02:04 GMT)
one word (not including these, of course)... AMAZING

Michael Perry   (Nov 10, 2008 at 04:08 GMT)
Very cool .plan Matt. Thanks for sharing =)

Kory James   (Nov 10, 2008 at 04:26 GMT)   Resource Rating: 5
Look great

Ahmad Samimi   (Nov 10, 2008 at 04:35 GMT)
god work !

J.C. Smith   (Nov 10, 2008 at 08:50 GMT)
Very nice. The day/night transitions are great, that would be good for any RPGs out there. If you decide you want to license that out, poke me.

Christian S   (Nov 10, 2008 at 11:08 GMT)
Impressive!

Daniel Hopkins   (Nov 10, 2008 at 17:39 GMT)
Very cool!! Although I like all your work, I'm really interested in the day/night system. Is there any chance you'll be making your work available for others? Again, great work!

bryce   (Nov 10, 2008 at 22:12 GMT)
WOAH!

Morrock   (Nov 11, 2008 at 00:17 GMT)
Wow, some awesome effects. But what's with the bands across the terrain in the AO effect?

Matt Vitelli   (Nov 11, 2008 at 00:33 GMT)
Morrock, basically there's not enough of a change in the normals (since right now its per-vertex, and that's a low-res mesh) so you get banding effects.

Koushik   (Nov 12, 2008 at 15:50 GMT)
Great work! A couple of quick notes.

Have you tried implementing pixel-motion blur? Like (I know, I know.. :) .....) the project offset guys?

And about the SSAO, why don't you try blurring the end image a couple of times more to smooth them out, before blending it with the color. Could you elaborate a bit on how differently you're doing it, I might be able to give you a few ideas. I've tried implementing SSAO with a deferred shading system - with decent results.

As a matter of fact, (dont know If I've mentioned this earlier to you), I did implement SSAO with TGE and OpenGL. You can take a look at a sample here:



If you look closely, you'll realize that its Kork running around in the "interior lighting Demo" level. You can see the per-vertexness (for want of a better term) in there. I managed to offset this by rendering the normals out (not in TGE, I redid the implementation elsewhere) and using them to adjust the occlusion terms, determined from the depth map (rendered in a previous pass, or using MRT/ FBOs). Maybe I'll port it to TGE now that I'm going to be getting some more free time soon... (fingers crossed)

You must be a member and be logged in to either append comments or rate this resource.