CMP Import/export dll
-
Thanks for the quick fix!
I just iterate through all vertices per group and look for the min and max values per axis. In the end you have 6 values (or 2 Vectors / Points) defining the bounding box. That should be the quickest way to do it. -
Perfect. Thanks P1p3r, the CMP Exporter exports my CMP now with perfect center coordinates. Schmackis SUR converter creates now in combination with your CMP exporter a really perfect ship.
Now the next and best generation of Freelancer ships can come! -
Amen!!
-
Geting a weird error when using this exporter seen here:
http://i113.photobucket.com/albums/n240/Alucard1_01/errordllexporter.png
Any ideas why it’s missing parts of the words used?
-
I just remembered, this only occurs when you first use the exporter. It uses the last filename for the VMeshLibrary.lod then replaces it when a new filename is selected. But if there was no last filename, it cannot replace it. This should be fixed soon.
-
Your radius calculation is wrong. If I use a box with the size 80x80m, your radius is just 40, but it would need to be 69,28 or a bit bigger (tolerance value).
Schmackbolzen will write how to solve the problem via vector calculation.
-
The problem is that the .cmp disappears too early out of view. For a correct radius you can e.g. calculate the center of each bounding box axis, then get the distance from each value to the max value per axis and from that calculate the vector length which is your radius.
-
I not following you guys here. What’s with the radius and why is it dissapearing too early. What is dissapearing too early?
The radius of an 80M x 80M box, is 40M.
I calculated the radius as the longest distance from the center of the box to the farthest axis.
So that a box that’s 80M long, 20M wide and 20M tall would have a radius of 40M. That’s half of 80M. From the center of the longest distance.Maybe if you could send me a copy of your exporter I wuold have a better Idea of what I would have to change.
-
The radius in that case is sqrt(40²+40²+40²)=69.282. It’s the length of the vector from center to the farthest corner.
-
The radius set in the CMP files are responsible for the drawing of a CMP(-part). If the radius of a part is to small, it will disappear from the view to early.
If you got ANY shape, you need to be sure that the sphere with your radius covers the whole shape.
All edges and corner points of a 80x80 box will be outside of a sphere with the radius 40, This sphere/radius just hits the outer surface of the box in just 1 point, nothing else. It will disappear to early.
You need to calculate the radius by doing the following:
The distance from the Center and the farthest corner point of the bounding box.And be sure to do this for every cmp part
-
Sorry, but Schmacki already wrote his example equationfor the vector you need.
You always need the longest vector from the center of the bounding box and set this value for the radius. -
To formulate it more in the mathematical sense:
center(min,max)=min + ((max - min) : 2);distance(min,max)=max-center(min,max)
radius(minx,miny,minz,maxx,maxy,maxz)=
sqrt(distance(minx,maxx)²,distance(miny,maxy)²,distance(minz,maxz)²)
This is just what I wrote but this time in strict mathematical notation. “distance” is of course the distance from the center, I shortened the name to keep it readable. -
I’m sorry but I am unable to get either to work. Using 1.7.1 and 1.7.2, not wanting to mess with the cmp export 0.2 (which works just fine) in my 1.8.4. What am I doing wrong that your CMP import/export isn’t doing right for me?
Fus
-
Besides the radius problem of the CMP and it’s parts I found another problem a lot of people will maybe get:
If you want to create LOD models, your LOD meshes need to have the same center point like the original ones.
The problem: Because of the poly reduction, the geometry and so the bounding box can change. Your exporter now generates another center point for the same shippart. In fact this means: LOD models can get big gaps between its parts because the original “high” poly mesh and the LOD mesh have different center points.Another problem is animating the CMP meshes: For rotating animations you need to center the CMP part directly in Milshape where you want to have its rotation axis. Your program in fact always overrides this center point (the root in this case) with its own, bounding box based center point.
Both problems need the same solution:
You have to include a possible manual override for the center points of each CMP group your exporter wants to create.
By this you can, for example with the LODs, always give the LOD parts the same center like the FIX has, so they will be always at the same position with their center.Oh and, why didnt you reacted to all our requests (some of them are really important for a perfect CMP exporter) in the last weeks? You are some kind of personated hope for a working CMP plugin So please please keep working for the whole communiy and its future.
-
I will be implementing these changes somethim this week. Will the using the bounding for the radius and setting LOD’s to use bounding boxes from LOD0. Just haven’t had time to sit in front of the computer.
@Fusion,
What exactly are the plugins doing or not doing?
-
P1p3r wrote:
@Fusion,What exactly are the plugins doing or not doing?
That’s easy. I don’t see them in either my import or export menus. All I see is my 2.7 importer and my 0.2 exporter. There is no other FL references at all in those menus for your dlls.
Fus
-
I know that from another person. He has the same problem: The plugin seems to be invisible in Milkshape.
Just for completeness:
I had a very similar problem with the 3db exporter plugin for milkshape. With using Win7 it just disappeared. Until today I didn’t get it working again (anyway unnecessary now).
It may be a problem of Milkshape.@Piper:
It’s really nice to hear how you want to solve our problems