How to achieve the Mario Galaxy visual style?

Started by
6 comments, last by gchewood 11 years, 7 months ago
I'll start off with a comparison:

http://files.g4tv.co...ario-galaxy.jpg - More "glossy"
http://www.gameguru....must-die-02.jpg - Less "glossy"

Both "mario galaxy" and "orcs must die" go for a cartoony style but mario just seems to just be a bit shinier/glossier. I'm working in XNA, if I load in a model with no shader, it tends to look more like the orcs must die models. So how does mario galaxy achieve this style? At the moment, all I've been able to discern is that it uses a bit of white rim lighting.

Hope someone can englighten me.

Thanks in advance.
Advertisement
Looks like some specular reflection.
probably from a cube map

Among other things :) but that is probably what does the shiny highlights
What makes you think cube map? I can't see any sign of that (in the image I posted anyway). I'll definitely experiment with specular highlights though- thanks.
Because a cubemap is an easy and efficient way to handle multiple (static) lights in a scene for specular reflections
you can just draw (by an artist, or an offline tool) the lights into the cubemap, and have full freedom over shape and color.

It doesn't have to be, was just a guess
When I worked on Wii, we would do a lot of these kinds of lighting effects via environment maps. E.g. for rim-lighting, a specular highlight, and a bit of gloss, we'd have a texture like below, and use the view-space normal's xy (scaled to be in 0 to 1, instead of -1 to 1) as the texture coordinate:
v0ylB.jpg
When there were a lot of lights in the scene, we'd dynamically render lots of little spots into one of these textures per-object, so that the actual object's "pixel shader" got infinite specular highlights for free (for the cost of 1 texture lookup).
It definitely looks like it's more about rim lighting that he's going after.

http://www.catalinzima.com/samples/12-months-12-samples-2008/rim-lighting/

It doesn't have to be a white color, but it's usually white. Take care on modifying the lighting term after calculating the view space normals. If you apply it as-is (meaning it's linearly scaled) the object will likely appear too bright.

You should do some combination of multiplying the brightness to some value less than 1 to dim it, and raising the light term to a higher power which will contract the extent of the lighting. Alternatively, you can use a power less than 1 to achieve a more glossy finish.

New game in progress: Project SeedWorld

My development blog: Electronic Meteor

There's a 99% chance they implemented it with EMBM (environment-mapped bump mapping), which is a feature of the Wii GPU and other DX7-era GPU's. With shaders you can do "rim lighting" as a substitute, but I would be careful because it will add lighting from all directions that are grazing to the surface normal. You may want to restrict it somewhat so that there's a stronger dominant light direction, which is likely what they do in the cubemap for SMG.
Thanks guys. A better reponse than I'd imagined for my first post. I'll have to report back when I make some progress with it- still in the early stages atm.

This topic is closed to new replies.

Advertisement