Oh My Gosh

Source: http://www.lrs-auditiv.de

Source: http://www.lrs-auditiv.de
Just a depressing post. My blog seems to have evolved from a small one… to a SPAM blog.
You have 381 total comments, 15 approved, 366 spam and 0 awaiting moderation.
Dear Mister Spam Bot, I don’t need any pills nor am I interested in enlarging something.
I just released the source code, an example and a .NET library of my PSSM baby. You can find the respective post in the Truevision 3D forum here.
Hope you like it!
I finally had the time to set up my new system (4gigs DDR3, gtx280, 3,2ghz dual core) and just downloaded the latest version of Visual Studio from my MSDNAA access. I’m currently a bit gutted about Microsoft at the moment. You guys know that Microsoft loves to flood the world with copyrights (which is actually a good thing) and to name their software always prefixed with “Microsoft XXX”, like “Microsoft Office”, “Microsoft Windows” and “Microsoft Visual Studio”, but this time… look at the picture
And ya: this is a nerdy post, I know
Some guys asked me how we were able to get the chimps monkeys (acutally they’re no chimps, cause chimps don’t have a tail) look so cartoony. The effects for this are very trivial and easy to explain, but here we go:
The basic combination of the shader is a classic “albedo * diffuse + specular” term without any emissive properties. Since we only have only one directional light, we can fake as much as we want to
The diffuse part is a simple lambertian term, but with a small addition. You guys know what I’m talking about:
The standard lambertian term results in values from -1 to 1, which is bad for lighting case 50% of the lit surface will be black (since 0 is totally black). I came across the idea to use the “half lambertian term“:
This inofficial variant - first used by Valve Software in 1998 in Half-Life - has the property to result in values from 0 to 1. Means the lit surface appears more lightened and not overdarkened. But however, this will only result in a standard diffuse ligthing from white to black:
Of course you can tint it by multiplying with the ligths color, but that does not look cartoonish enough. Since the diffuse lighting is in range [0, 1], we can use a 1D texture for tinting the result:
This looks far more cartoonish and still semi-realistic. Furthermore it has the important availability of being artist-tuned. Can’t wait to see it?
But the diffuse ligthing itself doesn’t make a good lighting. And then the monkey still has a helmet that should look more like metal than the skin of a monkey. I have to admit that the helmet doesn’t look metallic in the final result, but we can take that. We use a separate “sfx” texture for scaling different factors on the whole model, like the intensity of specular and rim ligthing. Oh, did i mention rim lighting? Rim lighting has become a must in non-realistic renderings. Refer to Team Fortress 2 or Battlefield: Heros: They all use rim lighting. And so do we:
Note that there is specular lighting on the helmet only
This is due to our magic sfx texture. And one more time - this can be artist-tuned. And my artist likes it
In the end we came up with a little hacky solution. Since we use Parallel Split Shadow Maps for getting some semi-uber-shadows, the whole monkey should be shadowed too. That means we have to scale the specular and rim influence by taking care of the shadowness. In the end this looks satisfying. When the player enters a shadowed area, the specular and rim lighting disappears - guess why?
We also don’t use any filtering method on the shadows dropped onto the monkey. This saves a bit of performance that isn’t mentionable, but you don’t even realize it while playing. The white box shows what I mean.
Please, if you have any further questions or if you’re interested in the code, don’t hestitate to drop us a line
Indies for the win!
Some guys of you may know this lil video from the Truevision3D forums, where I was visualizing the different frustum splits in a tinted way:
The split distances are recalculated very time the maximum frustum depth changes. In other words: The shadow maps cover the whole visible area to push more shadow map texels onto the geometry. This happens when the player looks “outside” the map, that is, when the frustum depth is further away than the worlds boundaries. Note that the near red split disappears for some reason. In addition, the split borders become nearer to the player and when theyre to close to the camera, the borders and mainly the resolution/quality differences are noticeable. To avoid this problem/artefact, I rewrote the split distance calculation. The original code uses logarithmics to adapt the effect of view depth. I ended up with a small addition, which “snaps” the nearest split distance to a static border. The effect is quite nice and offers far better shadows:
So this one has a better split sheme applied to it. Take a look at the near red layer. It will always cover the near area around the player to assume the highest detail - regardless of the maximum frustum size.
…is what we would accept with pleasure. We found it difficult to continue development for a while, since the sunshine (and the hot babes) of Crete were so tempting
But stay tuned… our powerup HUD element already consists of 75 textures and we keep it growing. We’ll keep you up to date - there’s nothing to be said against it ![]()
Don’t be confused about this blog - it’s just another one in the wild. And… I have to admit that this is just a stupid test post, but hopefully there will be more heady stuff soon! ![]()