Page 2 of 5 FirstFirst 1234 ... LastLast
Results 11 to 20 of 42
  1. #11
    EmuTalk Member R-II's Avatar
    Join Date
    Apr 2005
    Posts
    27
    Mentioned
    0 Post(s)
    Thanks for the tip on culling polygons. That just cleared up every lighting and color problem I had.

    Do you have any more information about scene graphs, or more importantly, "skinning"? You're probably right, and I'm sure part of it does have to do with animation, but I don't understand really what you mean by multiplying by a second matrix, or where it comes from. I've literally taken a crash course in OpenGL four weeks ago and have no prior experience in game files or hacking, so I don't know any of the terminology, everything's named and identified from relationships I see.

    Last edited by R-II; May 26th, 2005 at 23:22.

  2. #12
    EmuTalk Member thakis's Avatar
    Join Date
    Feb 2005
    Posts
    159
    Mentioned
    0 Post(s)
    Here's a pretty good overview on skinning:

    http://www.darwin3d.com/gamedev/articles/col0598.pdf
    http://www.darwin3d.com/conf/igdn0398/index.htm

    Basically, there are two methods to animate meshes:
    1.) Keyframes - simply store the mesh in different poses and display them on after the other (like 2d animation), quake2 does this for example. Looks good, but need much memory. And animation has to be "canned".
    2.) Hierarchical animation: You have a matrix transform hierarchy and every vertex belongs to one of the matrices. To animate a model, you only animate the matrices ("joints"), and the vertices follow. Problems and solutions to this approach are outlined in the above links.

    HTH.

  3. #13
    EmuTalk Member R-II's Avatar
    Join Date
    Apr 2005
    Posts
    27
    Mentioned
    0 Post(s)
    Thanks for the links, I'm not entirely sure about the whole weighted vertices part, unless it just means inhereting the parent bone's transformations. I guess I need to do more exploring there, and I'll probably have to figure out more of the mysterious "Block 27". Aside from Block 19 which I've never seen change, I've figured out what all the other blocks do, and that just leaves animation.

    The PDF actually pointed out something a little unrelated to skinning that just corrected all the minor errors in my 3D models - I was rotating my axes in the order XYZ instead of ZYX. Also discovered that the 4th transformation set is another rotation, so even the broken planar models appear correctly now.

  4. #14
    EmuTalk Member thakis's Avatar
    Join Date
    Feb 2005
    Posts
    159
    Mentioned
    0 Post(s)
    At least in Mario and Zelda, animations are stored in a separate file, not with the model (which makes sense imo). Perhaps Block 27 contains materials stuff (shaders, texgen, texture matrices etc)? I don't know how Paper Mario looks, it might be that it doesn't need materials stored with the models, but...

  5. #15
    EmuTalk Member R-II's Avatar
    Join Date
    Apr 2005
    Posts
    27
    Mentioned
    0 Post(s)
    I don't know exactly what defines a material, but there's texture vertices, color, lighting normals, and such stored in the other 26 blocks. There's no obvious complementry files that go with the models in the PM rom, so I'm fairly certain everything that pertains to the model apart from their NPC data which is stored in an XML-like file elsewhere, is stored in that file, with textures in an accompanying TPL. I've actually started some work on Block 27 now, and one of the sub-blocks is responsible for animating the textures (or changing them, I don't know if texture animation is the right term), so fuses flash and little fire balls flicker.

    From what I can see, there's 4 other types of animation in 4 other blocks, I think one of those is for displaying and hiding planes. The others are probably responsible for physically moving the planes, but I havn't gleaned anything from them yet. All these blocks are indexed by another list with timer offsets, perhaps in milliseconds, and either the animation loops or plays once.

    And here's a screenshot from the game itself, and what I'm rendering below it.


  6. #16
    Emulator Developer ShizZy's Avatar
    Join Date
    Feb 2005
    Location
    RI, USA
    Posts
    758
    Mentioned
    0 Post(s)
    Quote Originally Posted by R-II
    I don't know exactly what defines a material,
    A material defines how a mesh is rendered. It can include lighting type (ambient, specular, diffuse, etc..) as well as vertex coloring, mip mapping, bump and env mapping, multi-texturing, etc. What's stored varies based on the format...
    ~****Zy

    6Bit.net Emulation & Gaming | Forums
    Gekko GameCube Emulator

  7. #17
    EmuTalk Member thakis's Avatar
    Join Date
    Feb 2005
    Posts
    159
    Mentioned
    0 Post(s)
    Hi, I just tried the viewer, works nicely. the file /a/a_mario looks kinda broken, though, and if I choose util->data view, it hangs.

  8. #18
    EmuTalk Member R-II's Avatar
    Join Date
    Apr 2005
    Posts
    27
    Mentioned
    0 Post(s)
    I actually have a grossly updated viewer which displays most things perfectly, which I'll attach for you. Meant to get it up earlier, but...

    Anyway, I got some of the animation implemented, but what I have working doesn't work for everything. The bits that control what planes are displayed and which are hidden seems to be working more completely.

    I'm a bit down about the project right now because I simply cannot figure out the last couple blocks that actually move the planes around in animation, which would be rotation scaling and translation. I'm dealing with floating point values from the scenegraph, but I can't find any way to derive a floating point value from these animation blocks, and I can't figure out how to derive any kind of index either. I've had some guesses based on how the others worked (an inital index, with each index following actually being a bias to the index), but it hasn't really gotten me anywhere. Blocks in question are 27.4, 27.5, and 27.8 if you or anyone else is interested in looking (you can easily view the raw data with the data viewer inside the tool itself. I've also converted the hex to floating point and signed bytes too I think).
    Last edited by R-II; June 17th, 2005 at 02:43.

  9. #19
    EmuTalk Member R-II's Avatar
    Join Date
    Apr 2005
    Posts
    27
    Mentioned
    0 Post(s)
    Actually, never mind that download if you followed the link, I forgot I linked the file to webspace, and that one would have been up to date.

    Yeah, I don't know what's up with the Mario models. There might be some special treatment with that one because he's the controllable character and such.

  10. #20
    EmuTalk Member R-II's Avatar
    Join Date
    Apr 2005
    Posts
    27
    Mentioned
    0 Post(s)
    Second note on that Util->Data View (Gee, I should really be reading your posts more carefully), it hangs for a while, especially on larger model files (most of which is due to animations, not the complexity of the model), but I think in every case I tried, it did eventually come up.

Page 2 of 5 FirstFirst 1234 ... LastLast

Similar Threads

  1. Helping all the newbies with girigiri
    By wizo5454 in forum Sega Saturn Emulation
    Replies: 7
    Last Post: April 18th, 2005, 00:14
  2. DOL file format
    By |\/|-a-\/ in forum General Nintendo Gamecube Emulation Discussion
    Replies: 9
    Last Post: April 11th, 2005, 03:30
  3. SPC File Format
    By Toasty in forum Emulator Programming
    Replies: 3
    Last Post: February 11th, 2005, 20:18
  4. can't write any data to blank CD. help please!!
    By ice88chen in forum TechTalk
    Replies: 9
    Last Post: July 23rd, 2004, 19:19
  5. Anywhere to fine Dexdrive .N64 file format info?
    By Rice in forum Emulator Programming
    Replies: 2
    Last Post: April 22nd, 2002, 22:30

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •