CMP to SUR Conversion Tests
-
@ Quark - It will split meshes up into parts only if they contain more than 1 mesh. It is determined by the VMeshRef. I will make it optional. The main reason is because I haven’t got the bits linkage part worked out yet and the separate mesh part is already fully working. I will continue to work on figuring out how it’s designed so hopefully I can get the multi-part working (multiple meshes in 1 sur part). Tests show that without the linkage it uses the last sur with the same crc. As in if there are 10 parts named Root, only #10 will be used for collision.
-
ST thinks this is well worth waiting for and buys boxes of dried crackers, pull-to-open cans of bully beef and bottled water…
-
… added some chocolates and Nutella today…
-
ST… washed and dried his sleeping bag today, it was getting a bit smelly from the dampness in this unused room…!!
-
(grabs a pom pom… stands next to ST)
Lancer Lancer… he’s our man… he cant do it… noone can…
L.A.N.C.E.R. (shakes pom poms)… dam not enough for a human pyramid yet… oh well back to the start…
-
Hehehe it’s getting close. I will post when I have good news.
-
-
… it’s awfully dark in here…
-
**Actually the holdup has been the mesh rebuilder. I have completed that part of the code but unfortunately the mesh isn’t being recognized by FL. I believe the problems lies in the Fix format. After studying multiple different Fix, Pris and Rev nodes in binary, something is amiss in the current knowledge about those node types. Maybe Adoxa might be willing to help determine what values are actually used (hint, hint)
The current is for Fix…
Parent name string
Child string at offset 0x40
Center x,y,z at 0x74
Position offset at 0x80
3x3 rotation matrix at offset 0x8c
Next part at offset 0xb0I’ve noticed the 0x70 is always 0x00000000
The position is always valid floats so that part looks good.
The rotation matrix is a different story, the only consistent values are the x,y,z floats, ie at 0x8f, 0x9f & 0xaf, the rest sometimes contain totally invalid float values such as 0x0000000F or 0x80000000 (infinite value, same as 0x7FFFFFFF). For a matrix this doesn’t work since it invalidates the matrix.Everything else seems to work at the present time, the UTF editors and HardCMP have no trouble loading the rebuilt cmp files, any help would be appreciated.**
-
Here’s all the Cons nodes (from the XML Project - when I said it decoded everything I really meant it).
struct Vector { float x, y, z; }; struct Matrix { Vector i, j, k; }; // \Cmpnd\Cons\{Fix,Trans,Loose} // Trans isn't in any of the vanilla files struct FIX { char parent[64]; char child[64]; Vector position; Matrix orientation; }; // \Cmpnd\Cons\{Pris,Rev} struct REV { char parent[64]; char child[64]; Vector position; Vector offset; Matrix orientation; Vector axis; float minmax[2]; // don't seem to be used }; // \Cmpnd\Cons\Cyl struct CYL // not in any of the vanilla files { char parent[64]; char child[64]; Vector position; Vector offset; Matrix orientation; Vector axis; float minmax[4]; // don't seem to be used }; // \Cmpnd\Cons\Sphere struct SPHERE { char parent[64]; char child[64]; Vector position; Vector offset; Matrix orientation; float minmax[6]; // don't seem to be used }; ```I've called it **position** here, but after looking at the UTF Editor, I probably should have stuck with **origin**. I only think it's minimum and maximum angles, but a quick play with the debugger showed they were never read; the problem is some of the bases uses really large values, which seems to belie their use as angles. I've used Matrix as three Vectors, because that's how Paul Isaac defined it in **View UTF**, a mod utility for Conquest: Frontier Wars. (It's a bit temperamental, which is why I've never mentioned it before now. There's also an unpack utility, which should create/extract UTF files, but it didn't work at all.)
-
**Thanks, thats pretty much the same layout I’m using for each of the nodes. Hadn’t seen the CYL type though, good find. I have seen sphere used in the cityscape models.
In this case I will simply run FL in debug mode and see why it’s giving me a ‘can’t create compound part’ error. It gives me exactly the number of errors as there are new parts. Odd since the program completely rebuilds the Fix node from the data it reads and also has all of the children for the VMeshRef’s + the Cmpnd entries…**
-
Drat!
Shaved my long grey beard off, thinking I would have LS’s utility by now and have to do some fast serious work needing sleek streamlined facial lines…
It’s so cold without it!
And I notice some stray mice have moved in here too…
-
**After bugging FF for awhile about FL Dev
Ok, the model rebuilder is not working which means the sur builder is not working….
Something is missing in the understanding of the cmp model format. I have generated Cons-Fixed entries, VMeshRef entries and all of the Cmpnd entries perfectly according to the layout that is currently understood to be the proper formats. Unfortunately this is is not working…
HardCmp displays it correctly…
UTF editor shows the nodes in the proper place and exports the data as it should be…
FL only shows the the original VMeshRef’s sometimes…One thing I found during this is that ‘lod1’ is NOT a requirement, look at nomad_lair.cmp for an example…
Any help would be appreciated, files upon request…**
-
LancerSolurus wrote:
Something is missing in the understanding of the cmp model format. I have generated Cons-Fixed entries,
Errm… I hope you mean Cons-Fix ??
Not Cons-Fixed!!
P1p3r’s .cmp exporter also caused a Cons-Fixed problem, we have to rename those nodes as Cons-Fix.
-
Any progress pals?
-
Lancer? Yoo-hoooooo!!! Lan-cer?
Anyone seen him? No posts at digitalbrilliance either!
Maybe he’s burning the midnight oils on this utility? Nah? Sure? Hmmm…
Eeeee-lo-oooooooo?
Has he been captured by the Thyroids? Toroids? Er… Tannoys? Triffids? Teletubbies! Aha! They’re the ones!
-
Okay ST, I’m sorry but don’t post in this topic again. This is spam, plain and simply, and if you don’t want me to consider you a spambot and deal with you as I would with them, cut the chatter.
LS will post back when he has progress and that’s all there is to it.