Kuribo64
Views: 19,851,384 Home | Forums | Uploader | Wiki | Object databases | IRC
Rules/FAQ | Memberlist | Calendar | Stats | Online users | Last posts | Search
03-28-24 04:35 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 Hide post layouts | New reply


Sage_of_Mirrors
Posted on 12-19-17 02:02 AM 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 07: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.

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

____________________
a

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

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

____________________
This is my signature, what do I put here?

TheSunCat
Posted on 12-22-17 06: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 :)

FroggoTheDoggo
Posted on 12-23-17 12:48 AM (rev. 2 of 12-23-17 03:24 AM) Link | #92438
Hooray!

Wait a minute...

Does this work with bmd2bdl?

____________________
This is my signature, what do I put here?

Sage_of_Mirrors
Posted on 12-24-17 01:35 AM 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 03:10 PM Link | #92470
Great! ;D

FroggoTheDoggo
Posted on 12-25-17 12:35 PM (rev. 2 of 12-25-17 12:38 PM) 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 :/

____________________
This is my signature, what do I put here?

Sage_of_Mirrors
Posted on 12-29-17 08: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-10-18 04:14 AM 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 10: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?

____________________
This is my signature, what do I put here?

Sage_of_Mirrors
Posted on 01-10-18 10: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 11: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 05: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 07:03 PM Link | #92797
Wow this sounds very useful! I'm looking forward for BDL support :)

iyenal
Posted on 01-13-18 08: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]
"I failed in some subjects in exam, but my friend passed in all. Now he is an engineer in Microsoft and I am the owner of Microsoft." -Bill Gates

Sage_of_Mirrors
Posted on 01-14-18 07: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.

KoopaTroopa3221
Posted on 09-16-18 05:45 PM Link | #95935
Would this work for ds games?


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

Page rendered in 0.026 seconds. (2048KB of memory used)
MySQL - queries: 29, rows: 239/239, time: 0.009 seconds.
[powered by Acmlm] Acmlmboard 2.064 (2018-07-20)
© 2005-2008 Acmlm, Xkeeper, blackhole89 et al.