The Graphics Technology of Super Mario Sunshine

Subject: General Tech | March 4, 2018 - 05:21 PM |
Tagged: Nintendo, amd, ati

I came across an interesting blog post describing how Super Mario Sunshine, with its Gamecube-era hardware, rendered water. While it mostly seems like a simple multi-texture panning effect to get the waves, the crux of the post is an interesting trick that Nintendo used to get around not having programmable shaders in their hardware: how do they emulate the Brewster’s angle?

Each of the stages are given WebGL 2 canvas examples.

View Full Size

The answer is pretty clever: load different textures into your various mipmap levels. Along with correcting the artifacts associated with sharp textures being viewed far away, it gives Nintendo the opportunity to draw something different. In Super Mario Sunshine, this corresponded to brighter wave glare textures at the distance that would look like the angle that polarized light reflects on.

It will be an inaccurate effect, of course, but there wasn’t much that Nintendo could do without running a script at each pixel that actually knows properties of the scene. It also depends on the resolution being drawn, which is tightly controlled in a standard-definition console, but it is a source of headaches for emulator developers.

Check out the blog if you’re interested! It also links to a Dolphin blog post, here.

Source: Clean Rinse

No comments posted yet.

Post new comment

The content of this field is kept private and will not be shown publicly.
  • Lines and paragraphs break automatically.
  • Allowed HTML tags: <a> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd> <blockquote><p><br>
  • Web page addresses and e-mail addresses turn into links automatically.

More information about formatting options

CAPTCHA
This question is for testing whether you are a human visitor and to prevent automated spam submissions.