Zelda: Wind waker Tech and Texture Analysis *picture heavy*

134
  • Offline / Send Message
  • Joined
  • 34 Topics
  • 861 Replies
So After this little thread: http://www.polycount.com/forum/showthread.php?t=102634 i felt like the opinion was more yay than nay. it seamed people are (just like me) highly interested in "how" wind waker was made.

so here are my findings:

there are 4420 unique textures that i encountered in my (what i believe to be a) 100% play-through:


U4FenRU.jpg

i could not bring myself to upload the textures to my webspace and take that level of responsibility but saw "someone" has them available right here:

http://minus.com/mjCoPOaox/

other stuff i found noteworthy:

0K7CsDO.jpg

kX3n4Ibh.jpg

GNGtOXZh.jpg

xPmhH2t.jpg

LNomlMc.jpg

O6ZShT2.jpg

SptRTjr.jpg

LySPxI4.jpg

5dquCTkh.jpg

Lo3de9P.jpg

HKyHwuih.jpg

now while posting this i realize for the first time that the "second/ugly" kind of alpha material probably saves massively on overdraw.

RkDGqSfh.jpg

4F6ZdTWh.jpg

Ig6nRZy.jpg

hope you enjoy.

Replies

  • Uly
    • Offline / Send Message
    • Joined
    • 61 Topics
    • 939 Replies
    Awesome thread Warby. Gonna take some time to read thru after work.

    Just an FYI: Feet dynamically adjusting to the floor has been around for a very long time. Early examples include Jurrassic Park Tresspasser, Heretic 2 or Looking Glass's Terra Nova.
  • ZacD
    • Offline / Send Message
    • Joined
    • 241 Topics
    • 9.7K Replies
    Nice breakdown, I had fun trying to recreate the waterfall shader, more windwaker talk here http://www.polycount.com/forum/showthread.php?t=98578
  • warby
    • Offline / Send Message
    • Joined
    • 34 Topics
    • 861 Replies
    yeah i read that thread with glee =) i have a slight problem with the top corner of your water fall though ill explain in your thread.
  • ZacD
    • Offline / Send Message
    • Joined
    • 241 Topics
    • 9.7K Replies
    I know the water fall should have separate planes for the textures and needs the top corner needs another animated spike texture, I'd do it differently if I did it again.
  • adam
    • Offline / Send Message
    • Joined
    • 937 Topics
    • 8.7K Replies
    This is a fantastic breakdown Warby, great work.
  • MrNinjutsu
    • Offline / Send Message
    • Joined
    • 9 Topics
    • 525 Replies
    A very interesting read indeed!
  • [HP]
    • Offline / Send Message
    • Joined
    • 40 Topics
    • 2.1K Replies
    Warby, I love you!
  • JamesWild
    • Offline / Send Message
    • Joined
    • 9 Topics
    • 652 Replies
    ww_firefly.jpg
    About this:
    You can see in some places bits where it overlaps the other parts of the environment (i.e. tree stumps)

    I would not be surprised if this was just additive blend polygons built on the CPU and drawn directly on the scene once all the solid surfaces have been drawn. The lack of depth testing shows that they were concerned about these polygons clipping into ramps/etc. and they're able to reject the light pools early to stop them showing through walls.
  • Mask_Salesman
    • Offline / Send Message
    • Joined
    • 8 Topics
    • 788 Replies
    That's great dude, I enjoy seeing breakdowns like this, reminds me of my modding days and turning on "r_showtris" for the first time lol.

    Feet IK'ing dynamically to the ground has been around for years man, even n64 had that.

    keep it up man, its cool lol :D
  • BobtheGreatII
    • Offline / Send Message
    • Joined
    • 0 Topics
    • 143 Replies
    This is amazing. Love to see this kind of thing. Looks like there was a lot going on behind the scenes in Wind Waker than I had originally thought.
  • Callesw
    • Offline / Send Message
    • Joined
    • 5 Topics
    • 655 Replies
    wow! This is great :) Thanks for posting!
  • warby
    • Offline / Send Message
    • Joined
    • 34 Topics
    • 861 Replies
    @james wild yes i also noticed how they sometimes bleed over the corner of a wall or a column i assumed that was an intentional fx kinda like CELSHADING bloom . but your reasoning sounds more likely ! the little tree remains in the bottom right clearly shows that it doesnt draw "behind stuff" on this image however they do get blocked by the torchstands:

    SptRTjr.jpg

    making me believe that there is actually a tech difference between the small and the large ones ...
  • Jeff Parrott
    • Offline / Send Message
    • Joined
    • 100 Topics
    • 3.5K Replies
    Holy shit! warby you killed this! Absolutely great thread. Bookmarked! Printed! Tattooed on my chest!

    You picked a great game to breakdown. It looks uber simple to people but there is so much going on behind the scenes. Showing this to beginners to going to really help people get a handle on how games are done.
  • JamesWild
    • Offline / Send Message
    • Joined
    • 9 Topics
    • 652 Replies
    warby wrote: »
    making me believe that there is actually a tech difference between the small and the large ones ...

    I'd imagine that the smaller ones, being so large in number, do a search for the nearest static polygon, and then if that point has line of sight with the camera, draws. This would not work with the larger sources as they're big enough that you'd notice the light pop into sight as you walked into the room. The larger sources, being mostly static, are probably just animated models with some code to change the lighting of any dynamic that walks into it.
  • Clark Coots
    • Offline / Send Message
    • Joined
    • 20 Topics
    • 856 Replies
    great breakdown of wind waker. really interesting stuff! thanks!
  • warby
    • Offline / Send Message
    • Joined
    • 34 Topics
    • 861 Replies
    JamesWild wrote: »
    I'd imagine that the smaller ones, being so large in number, do a search for the nearest static polygon, and then if that point has line of sight with the camera, draws. This would not work with the larger sources as they're big enough that you'd notice the light pop into sight as you walked into the room. The larger sources, being mostly static, are probably just animated models with some code to change the lighting of any dynamic that walks into it.

    wouldnt that require a raycast per lightsource? that sounds mighty expansive or can this kind of stuff get extracted from the zbuffer (probably with a frame delay)
  • Grimmstrom
    • Offline / Send Message
    • Joined
    • 16 Topics
    • 200 Replies
    This thread is awesome, I'd love to see similar sort of threads for other games
  • TeriyakiStyle
    • Offline / Send Message
    • Joined
    • 70 Topics
    • 2K Replies
    excellent, super useful analysis on a memorable favorite - Thanks!
  • JamesWild
    • Offline / Send Message
    • Joined
    • 9 Topics
    • 652 Replies
    warby wrote: »
    wouldnt that require a raycast per lightsource? that sounds mighty expansive or can this kind of stuff get extracted from the zbuffer (probably with a frame delay)

    If the basic scene polygons are separated out and optimized well (using a BSP or something though given the above pots-through-walls that's unlikely) it might be very, very cheap.
  • Ryswick
    • Offline / Send Message
    • Joined
    • 48 Topics
    • 796 Replies
    Freaking amazing!

    also I recall feet IKing in the windmill in OoT, (i dont recall if its on stairs/uneven ground too though)
  • Hayden Zammit
    • Offline / Send Message
    • Joined
    • 81 Topics
    • 658 Replies
    Cool read. Every now and then I fire up Wind Waker and just go sailing for a bit. That game was so good--maybe too good.
  • perna
    • Offline / Send Message
    • Joined
    • 80 Topics
    • 4.9K Replies
  • warby
    • Offline / Send Message
    • Joined
    • 34 Topics
    • 861 Replies
    a friend from mapcore "redyager" just let me know that its apparently possible to import windwaker models into mario galaxy 2 and use that as a model viewer somehow thought you might find these different perspectives interesting too:

    [ame=""]SMG2 Hacking - Importing models from The Wind Waker - YouTube[/ame]

    i assume this means that they use the same engine ...
  • Mark Dygert
    • Offline / Send Message
    • Joined
    • 236 Topics
    • 14.7K Replies
    Awesome!
  • cptSwing
    • Offline / Send Message
    • Joined
    • 6 Topics
    • 1.8K Replies
    Oh wow, so much to take in. Thanks a lot for putting this together!
  • KyleJensen
    • Offline / Send Message
    • Joined
    • 67 Topics
    • 642 Replies
    This is awesome. Wind Waker is one of my favorite Zelda games. It's really cool get a glimpse of the techniques they used to render stuff in-game. Thanks for sharing! :D
  • nluckett
    • Offline / Send Message
    • Joined
    • 0 Topics
    • 3 Replies
    This is an amazing thread. Great digging and analyzing. One of my favorite games and one that still holds up.

    Ive heard that Twilight Princess used the same engine as Wind Waker. Does anyone know if Skyward Sword did as well?
  • Steve Schulze
    • Offline / Send Message
    • Joined
    • 443 Topics
    • 6.3K Replies
  • Daaark
    • Offline / Send Message
    • Joined
    • 16 Topics
    • 724 Replies
    Just some random reactions to your captions.

    Consoles have a huge leg up on the number of draw calls per frame. The numbers change every few years, but console games can get away with 10s of thousands, while PC games need to keep it ~500 per frame to not choke. It's just a side effect of the architectures. x86 tech is a bitch and has lots of backwards compatibility quirks.

    New x86 processors actually have to design around, and emulate bugs that were in earlier x86 chips! The architecture kept getting faster, but not better. Also, the BIOS you have when PC boots up has always just been a series of hacks over the original old school BIOSes to support newer stuff.

    Consoles are designed fresh, and don't have this baggage.

    BSP isn't the only way to sort a scene. It's Doom and Quake (1-3) era tech. Zelda is not a corridor shooter. There is brute forcing, and octrees and all kinds of other methods. When a game is capped at 640x480 with most only ever seeing the inner 512x384, then you can get away with overdraw.

    There was never an 8 light limit. The old OpenGL spec said that everyone needed to define AT LEAST 8 lighting constants to be available, but any OpenGL implementation could use as many as they wanted. So...
    -Not everyone used OpenGL's lighting to do their lighting. Lots of other tricks.
    -No one used 8 lights! Too taxing. 2-3 at most.
    -You could render 8 lights, then set another 8 and render again. It was only 8 PER DRAW CALL. Just like you have 1 set of textures and a shader during a draw call. But almost no one did this.

    What would happen was, for every dynamic object drawn (anything that wasn't part of the static light mapped geometry), you would sort all the lights, pick out the closest x number, and render with those.
    Sort lights, Set Light constants
    Set Material (textures, draw mode, etc...)
    Draw polygons
    This is visible in the picture you have with Link between the 2 torches.

    Dynamic IK systems are nothing new. Uncharted is lucky if it's in the first 1000 games to implement it. Any game that uses skeletal animation can do IK stuff easily. Dynamic IK is most likely what is used on the staff weapon with the cloth you have pictured near the top.
  • Nix
    • Offline / Send Message
    • Joined
    • 14 Topics
    • 173 Replies
    Fun read!

    ww_shadows_dynamic.jpg

    I don't remember this in the game, maybe it's an emulator bug? Then again it's been a while since I played it.
134
Sign In or Register to comment.