Kuribo64
Views: 7,917,035 Home | Forums | Uploader | Wiki | Object databases | IRC
Rules/FAQ | Memberlist | Calendar | Stats | Online users | Last posts | Search
01-22-18 03:18 PM
Guest:

0 users reading SuperBMD: A library to import and export various 3D model formats into the Binary Model (BMD) format | 1 bot

Main - Misc. ROM hacking - SuperBMD: A library to import and export various 3D model formats into the Binary Model (BMD) format New reply


Sage_of_Mirrors
Posted on 12-18-17 09:02 PM Link | #92265
[image]


GitHub Repository

SuperBMD is a library that aims to make it easy to load BMD, BDL, or any common model formats into a program where they can easily be accessed, modified, and rendered. The library is also able to output any loaded model as a BMD.

Converter
Current Releases

The converter is a simple example of how SuperBMD can be used. It uses the library to load a model into memory, then exports it as a BMD file. SuperBMD uses the Open Asset Import Library (AssImp) to load commonly-used model formats, so it supports whatever AssImp does. The model formats that AssImp supports can be found here. Meshes loaded from these formats are given the proper attributes for a BMD file.

The library can also load native BMD and BDL files. Currently, SuperBMD can only output BMD; therefore, the MDL3 data contained in BDL files will be lost upon exporting to BMD. There is otherwise no difference between a native BMD and one that has been loaded and then exported: they are functionally the same.

Wiki
SuperBMD's Wiki

The wiki for the library's repository is still a work in progress, but it contains helpful information for using SuperBMD. The following is copied from the Getting Started page:

There are several points that modelers should be aware of before making use of SuperBMD.

Modeling
* When exporting a model for conversion to BMD, rotate the model about the X axis by -90 degrees. Most modeling programs define the Z axis as the up axis, but Nintendo games use the Y axis instead. Rotating the model ensures that the model is not sideways when imported into a game.

Skinning
* SuperBMD supports both skinned and unskinned models.
* For skinned meshes, make the root of the model's skeleton the child of a dummy object called "skeleton_root". SuperBMD uses the name of this dummy object to find the root of the skeleton so that it can process it.
* If a "skeleton_root" object is not found, then the model will be imported with a single root bone. This is recommended for models intended for maps.

Vertex Colors
* SuperBMD supports vertex colors.

Textures
* SuperBMD supports models that have no textures. These models will appear white when imported into a game.
* It is recommended that the model's textures be in the same directory as the model being converted. If SuperBMD cannot find the model's textures, it will use a black and white checkerboard image instead.
* Textures must be in either BMP, JPG, or PNG format. TGA is currently not supported.


The Future

SuperBMD is the first part of a 2- or 3-module library intended to work with the BMD format. The second part, SuperRenderer, will be an addition to SuperBMD that is able to render loaded models using an OpenGL context. A third module may be created afterward that makes it easy to edit a loaded model's materials. These would be intended for modding tools for games that utilize BMD, such as Super Mario Sunshine and Pikmin 2. Instead of building their own renderer, a programmer could rely on SuperBMD and focus on other aspects of their modding tool.

As this is a personal project, there is no timeline of when these modules will be completed. I intend to work on them, but I can only do so as time permits.

Credits

SuperBMD was written by Sage_of_Mirrors/Gamma (@SageOfMirrors). Many others played vital supporting roles: these include arookas, LordNed, xDaniel, and many more.

TheSunCat
Posted on 12-19-17 02:05 PM Link | #92279
This is super useful! I'll test it as soon as I get home and give feedback/try to find bugs.

____________________
I hack SMG2 a lot. :)

I am very interested in messing around with the SMG2.5 project files, so if anyone has any files (finished or not) from the project, I would greatly appreciate it if you share it with me.
NOTE: I do understand that some things should be private. If I have a file, but no permission to share it, you can trust me on respecting that.

If you feel nice today, why not susbscribe? It is free, it helps me out, and it requires ZERO effort!
If you really hate my content or my voice, you can turn off notifications.
My channel: SUBSCRIBE

shibboleet
Posted on 12-19-17 03:01 PM Link | #92287
Have you SMG2 hackers seen THIS?

____________________
a

Sage_of_Mirrors
Posted on 12-19-17 03:03 PM Link | #92288
Exactly, lol. At least I made this thread myself.

FroggoTheDoggo
Posted on 12-22-17 12:44 AM Link | #92413
What model formats does this take?
.obj? .dae? .fbx? .3ds?

____________________
Ninja'd

TheSunCat
Posted on 12-22-17 01:02 PM Link | #92429
It takes everything AssImport takes. That's what gets it above all other BMD makers (not that there are that many tbh). SO MANY FILE FORMATS :)

____________________
I hack SMG2 a lot. :)

I am very interested in messing around with the SMG2.5 project files, so if anyone has any files (finished or not) from the project, I would greatly appreciate it if you share it with me.
NOTE: I do understand that some things should be private. If I have a file, but no permission to share it, you can trust me on respecting that.

If you feel nice today, why not susbscribe? It is free, it helps me out, and it requires ZERO effort!
If you really hate my content or my voice, you can turn off notifications.
My channel: SUBSCRIBE

FroggoTheDoggo
Posted on 12-22-17 07:48 PM (rev. 2 of 12-22-17 10:24 PM) Link | #92438
Hooray!

Wait a minute...

Does this work with bmd2bdl?

____________________
Ninja'd

Sage_of_Mirrors
Posted on 12-23-17 08:35 PM Link | #92451
If you need a BDL, it should. I can't guarantee that it will turn out completely normal, but the BMDs created with SuperBMD should work with bmd2bdl.

Doopz_JK
Posted on 12-24-17 10:10 AM Link | #92470
Great! ;D

____________________
Yoshi Yoshi Yoshi!

FroggoTheDoggo
Posted on 12-25-17 07:35 AM (rev. 2 of 12-25-17 07:38 AM) Link | #92493
Right,
So... I've done some testing...
It doesn't seem to work with bmd2bdl, at least not with every file format...
I haven't tested ALL of the file types yet, but so far, it hasn't worked :/

____________________
Ninja'd

Sage_of_Mirrors
Posted on 12-29-17 03:44 PM Link | #92579
I see. Well, that's disappointing. Don't quote me on this, but maybe I'll do some research into MDL3 and maybe I can figure out how to make one.

Sage_of_Mirrors
Posted on 01-09-18 11:14 PM Link | #92736
[thumbnail]

[thumbnail]

[thumbnail]

[thumbnail]

For the past couple of days I have been working on dumping BMD and BDL to Collada DAE. I'm almost done. There are just a few things I need to take care of before I can make a release.

Output is restricted to DAE, but I have confirmed that both Blender and 3DSMax are able to load the resulting files.

FroggoTheDoggo
Posted on 01-10-18 05:28 AM Link | #92739
Wow! [insert sparkle effects]

Delfino Plaza looks a little funky... but I guess that would have been an import error...

Will you (eventually) add support for bdl files, be it through bmd2bdl, or directly to bdl?

____________________
Ninja'd

Sage_of_Mirrors
Posted on 01-10-18 05:37 PM Link | #92750
Posted by FroggoTheDoggo
Will you (eventually) add support for bdl files, be it through bmd2bdl, or directly to bdl?


Not sure yet. I still need to go through and see what exactly MDL3 is made of. From there I can see what the bare minimum is.

Sage_of_Mirrors
Posted on 01-10-18 06:46 PM Link | #92754
I have released an update of SuperBMD that adds the BMD/BDL to DAE export function. Find the release here.

Sage_of_Mirrors
Posted on 01-11-18 12:33 AM Link | #92771
Another release to fix some issues in the original v1.1.0 release. Find it here.

Louiskovski
Posted on 01-12-18 02:03 PM Link | #92797
Wow this sounds very useful! I'm looking forward for BDL support :)

iyenal
Posted on 01-13-18 03:33 AM Link | #92805
Posted by Louiskovski
Wow this sounds very useful! I'm looking forward for BDL support :)

Me also.
And can this be used in Zelda Twilight Princess ?

____________________

[image][image]

Sage_of_Mirrors
Posted on 01-14-18 02:47 PM Link | #92818
Posted by iyenal
Me also.
And can this be used in Zelda Twilight Princess ?


I would assume so, but I haven't done any tests.


Main - Misc. ROM hacking - SuperBMD: A library to import and export various 3D model formats into the Binary Model (BMD) format New reply

Page rendered in 0.028 seconds. (2048KB of memory used)
MySQL - queries: 29, rows: 230/230, time: 0.016 seconds.
[powered by Acmlm] Acmlmboard 2.064 (2017-11-20)
© 2005-2008 Acmlm, Xkeeper, blackhole89 et al.