.obj -> .sur converter
-
The result is either you get the convex hull of the connected triangles or every triangle will be made double sided and put in a separate group (I called it splicing), which is convex, because a doubled sided triangle is convex. This way geometry is preserved, but you get more data (that’s how vanilla does it!).
It would be best if you import the converted sur with Adoxas MS sur importer and examine the results. This should help you to understand.
I will develop this tool further depending on your experience. So try to understand it first, I even might change the gui. I don’t know how you guys are thinking so you’ll have to help me with that
-
I updated the main post with some explanations…
-
Good lord is it so hard to convert to OBJ? It’s definitely the way that makes the most sense since you should normally always keep a copy of your original models in some form other than CMP (3ds, obj, ms3d, max, etc.) for later editing, right? With OBJ you get a simple format that works with all tools (no recompiling twenty versions of a 3ds Max plugin because each SDK is incompatible with the previous one) and that isn’t limited by the often poorly documented and/or fleshed out APIs.
I think Schmack went the right way by not making this dependent on MS3D or Max. If a Max plugin was what you wanted, I don’t exactly get the problem. Max -> OBJ -> SUR. Oh gosh, an additional step!
-
FriendlyFire wrote:
Good lord is it so hard to convert to OBJ? It’s definitely the way that makes the most sense since you should normally always keep a copy of your original models in some form other than CMP (3ds, obj, ms3d, max, etc.) for later editing, right? With OBJ you get a simple format that works with all tools (no recompiling twenty versions of a 3ds Max plugin because each SDK is incompatible with the previous one) and that isn’t limited by the often poorly documented and/or fleshed out APIs.I think Schmack went the right way by not making this dependent on MS3D or Max. If a Max plugin was what you wanted, I don’t exactly get the problem. Max -> OBJ -> SUR. Oh gosh, an additional step!
I agree with this completely. Thank you Schmack for working on this tool for us. It will be invaluable in the modding process.
-
Thanks guys!
That’s one reason, the other is, that you should not use the model geometry for collision, but rather a simplified one. So it doesn’t make sense to use the geometry of a .cmp file anyway. You should at least run a poly reducer over it. And the more better way would be to make it like vanilla and rebuild the geometry with convex elements. For the lazy I implemented the splicing, for which I count myself in. In our mod I will try to use spliced geometry, we will have to test whether this results in too much server / client load or not.
-
C’mon ST, surely you’re just being rude. You can’t dismiss something just because it doesn’t conform to your exact specifications or preferred way of doing something. Sounds like you’re telling the guy off for daring to release a tool that’s not exactly how you would like it to be, he doesn’t work for you so you can’t fire him.
I’m steeling at least a weeks supply of carrots off you for being a bitch.
-
I think he is just disappointed ^^ I can understand it, but the reasons why I chose to write it the way it is now, is mostly Freelancers limitation of the .sur format and general collision mesh usage. I think as soon as he understands that he will see why I did it.
For further clarification I updated the main post again…
-
ok another test
- import cmp in milkshape
- export as an obj
- convert this obj in sur
- it works great
it takes me 1 minute … so if you want a “bubble” hitbox it’s just perfect
if not, as me ^^, you have to do by handi don’t have yet tested with a multipart ship but it’s on the way so i came back ^^
-
When unthinking people unjustly accuse me of being nasty and unkind, my fur lies flat on my back, my ears fold back, and my claws suddenly extend…
Why do those of you assume my comments were to Schmackbolzen and not to my pal Gisteron, who took it as it was meant?
Schmackbolzen, you are doing good work, and I very much appreciate the difficulty of this task and the effort you are putting in. I have said this already several times - it seems some here cannot read.
And I understand the reasons for your decisions, and the reason for choosing .obj format. Yes I know it makes the tool independent and it can be used for many modelling programs, and this is a good thing.
I have set out the guidelines and specifications that would make the tool complete, and yes, I will be disappointed if this tool falls short of making an identical vanilla sur, with the options that we need.
Why? Because the other tools all do that already, and we can fix those by adding the hpids to any surs generated with Sur Splicer or Sur Builder, or by working within Sur Exporter v1.1’s limit of 18 sur parts as it already adds hpids and complete with the correct sur shapes for each one too.
Finally it is up to you if you wish to follow them or do it differently, you are the proggie and you are not bound to me in any way. But remember the majority of people here have no clue about what is in a .sur file. The fact that they might be happy is NOT a good measure. They can’t be bothered to go through the pain of extended testing that I have done, in trying to understand why those attempts all failed eventually.
FF: Yes FF it IS a pain to have an extra step when I (or you in some future life) make surs for 50-60 models. It’s not a case of one extra step/click, so stop being a dumb arse. Count the steps and clicks, and repeat 50 times and let’s see if you think the same after even 20 exports. It already takes a lot of extra time to make the convex hull shapes and check them and remodel and do it again. So belt up and go make some more nice lighting and weapon hit effects, leave the surs to those who know the difference.
Until now we lacked the understanding and we still currently lack the tools. We finally proved that the surs are missing important parts, and now we know what those parts are. I also proved that sur parts with gaps between them also work, and this is invaluable to those who want to design bases with remote “island” modules. This tool will hoefully be able to make good surs for those too.
The rest of you seem to be happy with your incomplete surs, and when you have random crashes you are happy with just restarting FL Server. So - be happy.
I am not, I want my (and your) surs to be as problem-free as possible. It seems that some of you think I am alone in wanting the options of shield bubble (for fighters), no shield bubbles but shrink-wrap (weapons, single sur part exports, bases, and large ships for FL compatibility), and close-fitting surs with no shrink-wrap at all (large ships with gaps, bases and large dockable ships). Fine. Then you will never need them, right?
Go think.
Anyway this is my final input, I won’t be dragged into another fracas, and I don’t take kindly to being scoffed at when I am doing things for the common good and benefit to all.
Schmackbolzen, again my thanks and well done for taking this on, it is a difficult thing to achieve. I would be very happy if you choose to follow the specs, it is to help you to make a complete tool, for every modeller who uses it in future,and many are only now getting interested in making mods and new ship models.
One more advice please if you will - please teach a native English speaker what you mean and what your tool does, and let them write the documentation, there are a lot of misunderstandings so far in your description, and it is not your fault but you don’t have complete knowledge of the language, it is not an easy thing to achieve. Thanks again.
-
It seems that some of you think I am alone in wanting the options of shield bubble (for fighters), no shield bubbles but shrink-wrap (weapons, single sur part exports, bases, and large ships for FL compatibility), and close-fitting surs with no shrink-wrap at all (large ships with gaps, bases and large dockable ships). Fine. Then you will never need them, right?
well, you’re not alone but, personnaly, i don’t have an ounce of competence in this area
so my dream is to take a cmp –-> with a tool make a sur directly from the cmp and of course have all covered like weapons …ect …but but but i no longer believe in Santa Claus
and i imagine a good tool requires time
on my mind it’s a first version, let’s see what it becomes -
i doubt the people from microsoft or digital anvil ever had a cmp to sur generator. they rather did model all of their 50-60 surs manually and exported them with a converter. ofc not with a version similar to what schmackbolzen uploaded into this topic. maybe one of their first converters was like that and maybe one of the ones schmack will release in recent future is just what they had in the end. we can be happy that there are programmers doing progress with this format. the perfect tool is coming soon.
-
Well if anyone wants to write the documentation for me I am more than happy
I already asked natives speakers if splicing is the correct word and they said it is (you could also say split). I also think the problem here is that I don’t know what knowledge is missing from my readers. And of course that this is a topic which is not covered with common English so I am having trouble finding the right words.
If you want to try to explain correctly what the tool does you should at least have some knowledge about common collision meshes and the convex stuff. I assumed that people who used this tool in the beta stage would have at least some basic knowledge about how the .sur format is interpreted.
The goal is of course generating a vanilla like .sur file, but I first want to get the main part working, which is vanilla like collision geometry (which I nearly achieved, only the tree generation is not quite the same as I did not exactly find the criteria yet). Later multipart meshes, real hardpoint geometry, shield bubbles will follow. But for now it is important that basic collision works.
Btw. the converter does already more as any previous sur tool did, since it automatically generates the convex hull for each connected triangles it finds or if it differs to much splits them so that the geometry is preserved. Basically it guarantees that every geometry you input will collide correctly (except in some case where the generated tree is still wrong).
If you want to know more about the trees look up binary tree and bsp tree (from which Freelancer seems to use a variation).
-
@ST: Pardon me? I’ve already done enough grunt work to know how it is. I don’t need no lessons from you, as much as I respect you as a modder. Feel free to defend your point, but personal attacks are unnecessary.
Now. Reading your post, it would appear everybody’s fine with broken tools and halfway done SURs. I re-read the entire topic and I cannot surmise what made you say that. Throughout, people are congratulating Schmack on making the tool and that’s about it really.
And here’s the party crasher: it’s almost certain all the vanilla SURs were built by hand. If you’re looking for a tool that’ll reproduce them perfectly, tough luck. Computers have a hard time doing models and I don’t expect they’d have any easier time making SURs for those models. If you want an automated solution, LS’s tool is as good as it gets. If you want truly optimized SURs, then you’ll need to do them by hand, just like how the devs did.
Schmack’s tool is fantastic in that as long as your geometry works, you’re guaranteed to have a working SUR. No fiddling with fucking MS3D trying to understand why it unwelded 34212 vertices and messed up your import. Just export to OBJ from your favorite graphics program and bingo!
Furthermore, it wouldn’t be a stretch to imagine a simple change to support drag and drop. Schmack, I think it’d be nice if you could add support for a configuration file that stores all the options the GUI offers and thus allows people to just drag and drop the OBJ file onto your EXE to produce a SUR file. The process is equivalent to using a command-line tool and typing the name of the OBJ file as the first argument, so it’s simple and it’d streamline the process even further. It then becomes a matter of export, drag, done.
Finally, ST, you set the guidelines and specifications, right? I don’t recall them being approved and you hiring Schmack or any such thing. You told what you wished to see, nothing more. You’re free to be a sad panda if you so desire, but don’t come in like that and say it doesn’t meet the “guidelines”.
-
Thanks for the further explanation, FriendlyFire.
Concerning your suggestion: I have tested it and it is indeed rather simple to support drag and drop. I write in in the file path input field for now. A config file is also easy to make, I can include it in one of the next versions.
-
this is turning out to be a really good tool.
i tested this out on two models. the first one was a normal poly model (1200 verts, about 2300 poly’s) sur file was generated and turned out rather good looking too.
the second model was higher poly model, about 11,000 verts, and about 9000 poly’s. it took a while but it did generate it. i had to redo it because i forgot to remove the hp poly’s. so i removed them and attempted to redo the sur generation, however this is where problems started. from this point forward the application throws a out of memory error 9 out of 10 times while the other 1 out of ten times it simple hangs on the generating tree … method. and it now does not matter the poly or vertex count, it just simply stopped working.
also you may want to consider multi threading the application. specially the routines that are the heart of the app.
cheers though mate, good job so far.
-
I’d argue that you shouldn’t be using a 10k+ polygon model for a SUR file. It should be like a fifth to a tenth of whatever normal model you’re using. At that point, multithreading would have little use because the generation would already be fast enough whatever the case.
I’d much rather see bugs fixed and features implemented