Register - Login
Views: 99872121
Main - Memberlist - Active users - Calendar - Wiki - IRC Chat - Online users
Ranks - Rules/FAQ - Stats - Latest Posts - Color Chart - Smilies
05-04-22 07:20:44 PM
Jul - SM64 Hacking (Archive) - Toad's Tool 0.6.0 (On hiatus for an indefinite amount of time) New poll - New thread - Thread closed
Pages: 1 2 3 4 5 6 7 8 9 10 ... 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28Next newer thread | Next older thread
Polygon model importer, how soon do you want it?
Please vote or be transformed into Walluigi!
Now! Even if it means it will be buggy and limited to a single untextured model!
 
11.4%, 14 votes
I could wait a month for more features and textured model import.
 
22.8%, 28 votes
I want all the features you can cram in, even if it means waiting indefinitely!
 
56.9%, 70 votes
You shouldn't have announced anything and released it when ready!
 
4.1%, 5 votes
Me don't care!
 
4.9%, 6 votes
Multi-voting is disabled. 123 users have voted.

messiaen
Catgirl
Level: 68


Posts: 655/1085
EXP: 2596707
For next: 132093

Since: 11-20-07


Since last post: 8.1 years
Last activity: 7.2 years

Posted on 10-04-09 09:50:44 PM Link
Got mtl data to work . Originally I wanted it to read external 32x32 .bmp files, but my bitmap to RGBA 5551 function failed, so for now I'm using a stupid hack. Each new material name is assigned to a different texture in Bob-omb's texture bank, which can then be changed using Toad's Tool texture replacer.

VL-Tone
Member
Super Mario 64 forum moderator
Level: 53


Posts: 523/621
EXP: 1136647
For next: 20472

Since: 07-27-07

From: Montreal, Canada

Since last post: 4.7 years
Last activity: 8 days

Posted on 10-05-09 07:32:08 AM Link
Time: One second ago - Date: Tomorrow - Weather: Sunshine - Mood: Moody Answer to the universe: Yes
Well messiaen, that sure lit up a fire under my ass to get me to work on TT64

So I worked on it tonight. I finished the integration of the new scrolling field widget in the interface. I've added the code to deal with what happens if you re-import an obj file with additional or different material names. In that case, materials that didn't have any parameters saved in the level file will simply get default parameters.

At this point, the main thing missing is dealing with custom sky background for imported levels. I'm still not sure how present it in the interface.

Another thing that's left to be done is the "keep existing objects from ROM" option. This option would keep the 0x24 objects (as well as 0x26 warps, 0x36 Music track and 0x31 Terrain type) that are currently in the ROM level slot when a level is re-saved to the ROM. I also wanted to have a "Use objects from level file" option where objects previously saved in the level file would be used instead.

Aside from that, there not that much left... Maybe some error checking, and an interface to warn the users that the ROM will be re-extended and patched if they want to use the importer. And then it will be mainly debugging.

Originally posted by messiaen

I'm having trouble with some trivial things. First, when converting the floats in the .obj file to shorts, I just multiply it by a random scaling number in the hopes of not losing too much precision. Is this how you do it? It seems to be working. To deal with texture coordinates, I multiply "vt" values by the same scaling number and then by * 32, which will move the number 5 bits to the left to get the appropriate float format. Not sure how well it works, I haven't found yet a triangle-only nice .obj file with vexture coordinates.


For vertices coordinates, I normalize them by dividing them by the biggest value (so that the maximum value becomes 1.0), then multiply by the scaling factor. For texture coordinates, I have a 10.5 float conversion function, but I'm still not sure about the scaling of those textures, if the number is too big or too small, I get texture glitches.


Originally posted by messiaen
Since any kind of vertex cache optimization is beyond the reach of this proof-of-concept crappy importer, I have come up with an alternate optimization method for display lists. The vertex cache is always set to that the triangles will be always 1/2/3 4/5/6 7/8/9 10/11/12 13/14/15. Instead of writting this tons of 0xBF triangles, I just call an "master" display list using the 0x06 jump command. Hacky but works .


That's a nice idea which could save a lot of space. But what I was wondering is, would it make it faster? I assume that the drawing list commands are read each frame? If yes, then I guess that about the same number of commands would have to be read with your optimization method. I may implement it eventually even if it's only to save ROM space, but for now I don't want to mess up with my importer code since it does work nicely.

Originally posted by vinnyboiler
Vl-Tone if you don't want people to loose intrest you could release a few OBJ's as levels. That would really get alot of intrest in your work. It dose not have to be master peices heck you could even just realese some of the old SM64 rom files cramming your laptop as patches.
Please


I guess I could do that, but that would only increase the hype, and the number of people asking "when are you gonna release version 0.6?".


____________________
messiaen
Catgirl
Level: 68


Posts: 656/1085
EXP: 2596707
For next: 132093

Since: 11-20-07


Since last post: 8.1 years
Last activity: 7.2 years

Posted on 10-05-09 02:10:33 PM Link
Nice to see you got motivated . I guess I'll release my little tool (without the buggy material support because I won't have time to work on it this week) so people can have an idea how their .obj files work. The entire level will only use one texture, hopefully with correct texture coordinates.

One problem I am having is with culling. Usually the face order is correct, however in some cases I have to reverse it to avoid back faces showing instead of the front faces. In one model I made with SketchUp, only a particular part of the mesh was exported with a different face order, but that was perhaps my fault when modeling it and moving some vertexes around.

I looked how you laid out your level file. Are materials tied to specific collision types? I think the best way to go would be to give control over each individual collision triangle. Most of the time, collision type 0x00 will do the job for different angle possibilities. Also, when in the collision mode, what about having an option to disable the lightning? Since collision triangles are sorted by colors, sometimes the lightning can change too much the colors.

Originally posted by VL-Tone
That's a nice idea which could save a lot of space. But what I was wondering is, would it make it faster? I assume that the drawing list commands are read each frame? If yes, then I guess that about the same number of commands would have to be read with your optimization method. I may implement it eventually even if it's only to save ROM space, but for now I don't want to mess up with my importer code since it does work nicely.



Display lists are called each frame. Main reason would be to save ROM space, but perhaps you should leave it unoptimized for now just to ensure more flexibility. Maybe a few kilobytes it isn't worth the trouble, especially when there's a lot of RAM to use.
Gecko
Member
Level: 25


Posts: 44/113
EXP: 83102
For next: 6518

Since: 03-27-09


Since last post: 9.1 years
Last activity: 7.7 years

Posted on 10-05-09 04:20:38 PM Link
I guess I'll have to reinstall Blender soon.
VL-Tone
Member
Super Mario 64 forum moderator
Level: 53


Posts: 524/621
EXP: 1136647
For next: 20472

Since: 07-27-07

From: Montreal, Canada

Since last post: 4.7 years
Last activity: 8 days

Posted on 10-05-09 07:25:40 PM Link
Time: One second ago - Date: Tomorrow - Weather: Sunshine - Mood: Moody Answer to the universe: Yes
Welcome back Gecko I was wondering, could I use your level to make a Youtube video? I'll give you credit for sure.

Originally posted by messiaen
Nice to see you got motivated . I guess I'll release my little tool (without the buggy material support because I won't have time to work on it this week) so people can have an idea how their .obj files work. The entire level will only use one texture, hopefully with correct texture coordinates.


It will be useful so we can see what kind of problems can arise with different .obj files.

Originally posted by messiaen
One problem I am having is with culling. Usually the face order is correct, however in some cases I have to reverse it to avoid back faces showing instead of the front faces. In one model I made with SketchUp, only a particular part of the mesh was exported with a different face order, but that was perhaps my fault when modeling it and moving some vertexes around.


I'm not sure about that, once I got the thing working properly, I didn't have any culling problems.

Originally posted by messiaen
I looked how you laid out your level file. Are materials tied to specific collision types? I think the best way to go would be to give control over each individual collision triangle. Most of the time, collision type 0x00 will do the job for different angle possibilities. Also, when in the collision mode, what about having an option to disable the lightning? Since collision triangles are sorted by colors, sometimes the lightning can change too much the colors.



Yes the collision types are attributed to materials. I originally planned control over each triangle for all parameters, but that was for version 0.7b. At this point adding that would require some major reworking of the interface. Anyway, you can have control over each collisions triangle by assigning materials to specific triangles in your 3d program. And if you want to have one texture using different collision attributes in different triangles, just create two or more materials with different names that use the same texture.

As for lighting in the collision mode, I think I'll simply disable it, as lighting is not useful anyway for this.


____________________
Gecko
Member
Level: 25


Posts: 45/113
EXP: 83102
For next: 6518

Since: 03-27-09


Since last post: 9.1 years
Last activity: 7.7 years

Posted on 10-05-09 07:37:36 PM Link
Do whatever you like with that level. ^^ I wasn't away from this forum, just kept reading until recent updates. Your interface looks really good. Nice to see that you could find solutions to former design problems you had written about in the past.
messiaen
Catgirl
Level: 68


Posts: 657/1085
EXP: 2596707
For next: 132093

Since: 11-20-07


Since last post: 8.1 years
Last activity: 7.2 years

Posted on 10-06-09 04:18:21 AM (last edited by messiaen at 10-06-09 01:16 PM) Link
Alright, here's the current build of my .OBJ importer (new download link in the following post).

USE IT AT YOUR OWN RISK AND DON'T EXPECT GOOD RESULTS!

It will only work with a special ROM (.ppf patch included in the zip file). The .obj file will replace the main level mesh of Bob-Omb's battlefield.

Usage: obj_import [obj_file] [rom] [scaling] (-mtl) (-culling)
ie: obj_import myfile.obj myrom.z64 300 -mtl

Scaling needs to be an integer value. If you use the -mtl flag, it will try to apply different textures on each material, however this a buggy and untested part of the program. If only the back faces of your model are shown, try using the -culling flag.

It will only work for .obj files in which faces uses the v/vt/vn format (ie, f 1/1/1 2/2/2/ 3/3/3), so if your .obj file doesn't cointan texture coordinates and normals the parsing will fail.

Only triangles are supported, so if your object file use quads or polygons with more faces, be sure to save it again using the "triangulate" function of your 3d modeller.
wwwarea
Member
Level: 21


Posts: 51/74
EXP: 45083
For next: 4860

Since: 08-10-08


Since last post: 9.8 years
Last activity: 9.4 years

Posted on 10-06-09 06:05:41 AM (last edited by wwwarea at 10-06-09 07:26 AM) Link
Hey I got a object imported. But I tried to import a custom texture but I had space in the name and it only said part of the name and now its textures from the game. There's another glitch. There's like a hole in the obj. Yeah I think they were set to triangles.

Photobucket

BTW, the bricks is custom texture from the plug in.
messiaen
Catgirl
Level: 68


Posts: 658/1085
EXP: 2596707
For next: 132093

Since: 11-20-07


Since last post: 8.1 years
Last activity: 7.2 years

Posted on 10-06-09 12:31:36 PM (last edited by messiaen at 10-06-09 01:24 PM) Link
Textures from the material file are ignored, instead textures from the game are assigned. Material support is buggy, remember the main idea of this program is just to test your .obj files.

Judging from your screenshot, try using a bigger scaling value. Have you tried using the "-culling" setting? If nothing works, unfortunately there aren't much workarounds , but if you want send me the .obj file in a private message so I can do a few tests. By way, which program did you use to create the .obj?

By the way, to open the ROM in Toad's Tool 64 you have to disable the checksum check at the Preferences menu.

Edit: updated version of obj_import. This one warns you if you have exceeded the max vertex data (not a limitation of the game but of my program) and if your vertexes are out of range (if that happens, just try a smaller scaling value).
Aamelo
Member
Level: 17


Posts: 17/46
EXP: 21283
For next: 3460

Since: 08-06-09


Since last post: 11.8 years
Last activity: 10.8 years

Posted on 10-06-09 04:39:28 PM Link
How do i use it?

I just made a model is Sketch Up!
messiaen
Catgirl
Level: 68


Posts: 659/1085
EXP: 2596707
For next: 132093

Since: 11-20-07


Since last post: 8.1 years
Last activity: 7.2 years

Posted on 10-06-09 05:46:26 PM Link
I'll make a new thread about my (experimental) importer so people don't confuse it with VL-Tone's importer (Toad's Tool 0.6.0). Amelo, your question will be answered there.
luigiman1928
Member
Level: 17


Posts: 41/46
EXP: 21655
For next: 3088

Since: 02-23-09

From: Gscentral

Since last post: 12.1 years
Last activity: 11.3 years

Posted on 10-06-09 05:52:44 PM (last edited by luigiman1928 at 10-06-09 03:14 PM) Link
EDIT: Never mind. Got to work but Mario enters some where else on screen and falls untill Death.
VL-Tone
Member
Super Mario 64 forum moderator
Level: 53


Posts: 530/621
EXP: 1136647
For next: 20472

Since: 07-27-07

From: Montreal, Canada

Since last post: 4.7 years
Last activity: 8 days

Posted on 10-11-09 02:24:25 PM Link
Time: One second ago - Date: Tomorrow - Weather: Sunshine - Mood: Moody Answer to the universe: Yes
I made a new video to demonstrate an imported level. (Thanks Gecko for your nice level!)

<object width="425" height="344"><embed src="http://www.youtube.com/v/QFK6xvrXRTI&hl=en&fs=1&" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="344"></embed></object>

____________________
Bob-omb8194
Still Explodin'
Level: 80


Posts: 837/1654
EXP: 4671036
For next: 111933

Since: 02-19-09

From: NC, US

Since last post: 10.8 years
Last activity: 10.8 years

Posted on 10-11-09 03:07:38 PM Link
Very nice job, VL-Tone and nice level Gecko! The importer seems to work very well. I just can't wait for it!

I did notice a few small things with the level, just a few small places, but they could be fixed easily. I'm looking forward to use this!

____________________
BigBrain
Member
Level: 22


Posts: 59/85
EXP: 55327
For next: 3023

Since: 09-10-08


Since last post: 8.9 years
Last activity: 6.8 years

Posted on 10-11-09 04:30:42 PM Link
Originally posted by VL-Tone
I made a new video to demonstrate an imported level. (Thanks Gecko for your nice level!)

The comment "Damn bird!" and the bowser thing really made my day, thanks xD
Still a very impressive level though, looking forward to the next-gen SM64 mods when TT 0.6 comes out
Gecko
Member
Level: 25


Posts: 53/113
EXP: 83102
For next: 6518

Since: 03-27-09


Since last post: 9.1 years
Last activity: 7.7 years

Posted on 10-11-09 07:01:04 PM Link
Wow! That was amazing! You did a nice job on dewcorating the empty level and making a nice playable world out of it. That Bowser glitch made me laugh out loud.
AlexAR
Member
Level: 39


Posts: 112/306
EXP: 388572
For next: 16199

Since: 11-30-07


Since last post: 9.1 years
Last activity: 9.0 years

Posted on 10-11-09 08:21:27 PM (last edited by AlexAR at 10-11-09 05:22 PM) Link
I just wanted to pop in here and praise you VL-Tone as well as messiaen on a job well done. Granted I know its not completely ready, but the work you have done deserves huge congrats. These videos of Gecko's level object and that amazing spiral mountain level object really made my jaw drop. (Banjo-Kazooie is one of my favorite games all-time) I really hope you continue on this amazing momentum and get this baby ready because I am truly getting restless now that I have seen the power of our importer.

Again phenomenal work man.


____________________
Try my new game: BrainSplit
GhostMaster3000
Member
Level: 18


Posts: 53/53
EXP: 27662
For next: 2235

Since: 04-07-08

From: United States

Since last post: 12.6 years
Last activity: 12.5 years

Posted on 10-11-09 09:39:03 PM Link
I tried using your importer and when it said "parsing" and "not using mtl " it crashed and did not import the level, what did i do wrong???

____________________
Consoles Own: Atari 2600, NES, Game Boy, PlayStation, Nintendo 64, Game Boy Color, Sega Dreamcast, PlayStation 2, Gamecube, Xbox, Gameboy Advance (and SP), Nintendo DS (and DS Lite), PSP, Xbox 360, and Wii
VL-Tone
Member
Super Mario 64 forum moderator
Level: 53


Posts: 531/621
EXP: 1136647
For next: 20472

Since: 07-27-07

From: Montreal, Canada

Since last post: 4.7 years
Last activity: 8 days

Posted on 10-12-09 01:07:44 AM Link
Time: One second ago - Date: Tomorrow - Weather: Sunshine - Mood: Moody Answer to the universe: Yes
Originally posted by GhostMaster3000
I tried using your importer and when it said "parsing" and "not using mtl " it crashed and did not import the level, what did i do wrong???


For one thing GhostMaster3000, you did post in the wrong topic

I managed to import the Spiral Mountain with textures. I did struggle a lot to find the right texture scaling value, and its still not right. I'm pretty sure there's something wrong with my texture scaling value conversion function.



There's no simple way we'll ever get this level in SM64 to look like it did in Banjo Kazooie. Rare did create a completely new graphic engine to support higher res textures and other stuff. It uses 64x64 pixels textures that the SM64 engine doesn't support (it supports up to 32x64). The BK engine can combine multiple layers of textures, fading them into one another. Polygons are also colorized smoothly in a way I never seen in SM64.

Another thing, I found a lot of places where Mario would simply fall into the ground while walking and die. SM64's collision engine is very flaky, it was probably much more polished in BK.

____________________
wwwarea
Member
Level: 21


Posts: 54/74
EXP: 45083
For next: 4860

Since: 08-10-08


Since last post: 9.8 years
Last activity: 9.4 years

Posted on 10-12-09 01:25:10 AM (last edited by wwwarea at 10-11-09 10:40 PM) Link
Wow, that looks nice. Cant wait for this tool. Wow, Banjo Kazooie - Spiral mountain.

I have a question though, will Toads tool 0.6.0 import obj's into more then one level? I'm not sure if it will. I saw level slots and replacing Bomb omb battle field in the old screen shots.
Pages: 1 2 3 4 5 6 7 8 9 10 ... 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28Next newer thread | Next older thread
Jul - SM64 Hacking (Archive) - Toad's Tool 0.6.0 (On hiatus for an indefinite amount of time) New poll - New thread - Thread closed


Rusted Logic

Acmlmboard - commit 47be4dc [2021-08-23]
©2000-2022 Acmlm, Xkeeper, Kaito Sinclaire, et al.

42 database queries, 11 query cache hits.
Query execution time: 0.147855 seconds
Script execution time: 0.039887 seconds
Total render time: 0.187742 seconds