Originally posted by VL-Tone Seeing all the nice level models people built, and how some of them would need multiple-textures, I began to think about how I could easily add multi-texture support in 0.6b...
What I realized is that it wouldn't be that hard. I had big plans for 0.7b so you'd be able to manually set textures to groups of objects and even to the polygon level, right in TT64. The idea was that I wanted to avoid using the .mtl file and external texture files that come with them, simply because there's too much variation on how these are generated by different 3d programs (some use relative file paths for textures, some don't, and they use different types of bitmap textures which TT64 can't all import, and some programs have broken/insufficient support for .MTL files).
But in my planning to avoid using .MTL files, I overlooked a simple solution that doesn't require a complex interface to manually assign textures to groups and polygons inside TT64...
OBJ files use a command called "usemtl texturename" to specify which texture to use for the following faces found in the file. The texture name in the usemtl command is pointing to a set of material parameters in the external .MTL file which also includes the texture file path. What I could do is simply ignore the .MTL file, but still use the usemtl commands found in the .OBJ command.
TT64 would list the texture names found in the .OBJ file, and offer to associate each of them with a 32x32 texture which would be importer right in TT64. When building the N64 polygon draw list code, it's simply a matter of inserting a "texture change" sequence of commands to switch the texture for the following triangles.
Overall, it wouldn't be that hard to implement. The hardest part would be to conceive the interface for the texture list. And to avoid having to create some pop-up menu interface, I would ideally need to extend the width of the importer's interface to 1024 to add the texture list on the right side.
When I first released TT64, a few (very few) people still had 800x600 monitors (laptops) so I always tried to make the interface in these, but hey we're in 2009... If you don't have at least a 1024x768 monitor, well just too bad.
Now the texture list interface in itself is not that complicated to do. The texture associations would be saved in the .T64 level file along with the other parameters. To keep things simple, there would be a fixed maximum number of textures (maybe 12 or 15, what do you guys think?) per level. The complex stuff would be dealing with situations where the texture names, order or amount changed since the last .OBJ importation in a given level file.
Ok, now that I've over-explained myself again. Here's the deal: I found a way to easily add multi-texture support for the importer in 0.6b, but that would mean a few more days of work. But... since my "real-life" job is keeping me busy and I only have 2 days off per week where I can really have time to work on it, this means a few more weeks of waiting.
The poll still indicates that the majority is ready to wait more if it means that the importer will be more "full featured". But seeing you guys starting to get excited about creating polygon models in Blender, it's a little disconcerting not to be able to release it earlier. Still as you guys create more and more level concepts, it becomes clearer and clearer that the real fun would be to have multi-texture import...
That's great news! Your solution to the texture loading issue seems reasonable and it raised a smile when I read about finding the solution to be the hardest part of the problem.
From my point of view, 12-15 textures should be enough, at least for now. I think it's pretty much dependent on how detailed a map can be. If I left my map in its current state, I should get along with maybe 8 textures. As soon as I'd to like to add e.g. rails on top of the building, I'd need a little more. If there's no limitative factor, which could be bugs resulting from the implementation of the RAM extension, I'd suggest a texture number somewhat higher than originally used in every Mario 64 level - (Bob Omb outputs at least 15 level textures excluding object textures).
For the resolution issue, I'd say that 1024x768 was a standard some years ago, it's higher now, but it should be ok as it would leave editing on older machines possible. Speaking off topic, Steampowered has been collecting user machine information for years, you can see the results on the following page: Hardware survey.
Originally posted by VL-Tone
I think that you mean a 2d coordinate on the horizontal plane? That would make sense, since the camera modes were switching in flat-world even though the floor is probably not at the same height as the floors found in the original levels.
That would explain why the castle is actually separated in 3 levels, so that the triggers don't overlap between the first, second floor and the basement.
That's exactly what I thought!
Also, thank you for your comment on my map.  |