When I loaded Aubrey's new rabbit model, it was clear that we needed a new rendering method in order to do it justice. Our basic object shader works best for hard surfaces like wood, leather and stone, not fuzzy ones like fur and cloth. This problem was most obvious when the model was lit from behind:
It suffers from the 'plaster effect' -- it doesn't have the subtle shading effects that characterize the materials, so the surfaces that should look soft instead look harsh and rigid. In real life, fur and cloth always have tiny stray fibers that catch the light when lit from behind, giving a 'halo' effect. We can start to approximate this halo by lighting up surfaces that are perpendicular to our viewing direction, like this:
This is often used as a 'selection' effect in 3D games because it's an easy way to highlight edges. However, it needed to be toned down before we could use it as a realistic effect. First, I decided to modulate the brightness of the highlight by a softer version of the standard lighting equation, so that surfaces facing directly away from the light remain in shadow.
Finally, I used one of our unused texture channels (the alpha channel of the normal map) to specify which parts of the model are affected by rim lighting. This gives us detailed control of how fuzzy each surface should look. Here's the final shader applied to the rabbit model:
While I don't have time to make a detailed fur shader yet, I thought this effect went a long way towards making the rabbit's fur and clothes read as 'soft' materials. Does this effect work for you? Can you think of any ways that I could improve it? (permalink)
Track us on ModDB (visit our page)
Looks good to me really. A bit of changing of textures and a bit better lighting would be better. But for the most part good job.
I'm kinda curious... You say you used the unused texture channel, the alpha channel of the normal map, but to specify which areas are affected by the rim lighting.
This makes it sound like really, you can do whatever you want with a texture channel, what's the point of specifying it with a name (such as normal map alpha channel) when it doesn't have to specifically be that? Why aren't they just texture channels?
Well, in the file format they are four chanels: RGBA. They don't have to be used for that, but it's good to keep track. ;)
That is great lighting! I seen that rabbit model over on poly count that thing is amazing.
A very smart idea you used their, great job
yea, i definitely need to work on making shaders ... mine never do the model justice
I was reading your article and looking at the pictures and was like "Yea ... ok ... ok ... where is he going with this? ... Holy crap thats good! O_O"
awesome job!!
It tis awful purdy! nice work
(buried)
Phong shading.
Nice touch, the characters are going to look awesome that way.
This is rather fascinating... This is why I love developer notes, so much to learn from others, and some developers cover even the smallest of things like this =] btw realy well done with this, easy to read and understand and probably a simple thing to miss (i know i did when i saw the first post of the model in the level, never paid that much attention to the lighting and apearance) but awsum info, thanx for sharing
The third model looks Call of duty 4'ish, they had no idea what subelty is.
Really nice work, the last one is diffinatly perfect ammount.
Its the way the lighting hits the characters is in that game, i can see what you mean.
looking really good nice work keep on going like this :)
That's awesome.
love it! keep it up ;)
Looking wonderful. It's great that you logically explain things in an easy to understand manner, so that we may all learn from your development. Makes each update rewarding and exciting :).
Another great update that was both interesting and educational :)
Love all the time you guys are putting into not only perfecting this game but also showing your thought process and procedures. I have been saying this a lot but its really time for me to pre-order and jump into the alphas !
Keep up the great work team
Really nice effect. Gives some nice depth to the character.
I enjoy rabbit incest.
Pardon?
The final picture is incredible!
now THAT's what a rimjob should be. ;o
I kid!
Looks great, as with all the updates. o.o
So many games mess this up, I'm talking major retail titles too.
Nice to see you take notice.
Pretty interesting, I was wondered how looks in front the face of the character.
awesome
Wow, looks great! I love the way how you guys have all of these little details that you get really in def with and explain your little tricks on those little details. I can't wait to see you mesh every one of those little details into one big product that will be so perfect in every which way. Keep it up!