Aller au contenu

Photo

Compiled vs Decompiled Models - Recent Findings (aka Round 2)


  • Veuillez vous connecter pour répondre
28 réponses à ce sujet

#1
Pstemarie

Pstemarie
  • Members
  • 2 745 messages

I have begun compiling the Project Q models which will significantly improve performance - load time - on lower end GPUs and systems. I also discovered something about compiled tile models that I'd thought I'd share:

 

It is not uncommon for tiles to have geometry that extends beyond the normal tile edges - for example tps01_stem01 from the revamped Sigil Tileset. However, such tiles, when compiled, WILL cause a "SQRT Domain" error within the toolset. The only way to get around this issue is to leave the tile as an uncompiled ascii format model.

 

Thus, for best practices, I recommend that, when building tilesets, tile geometry does not extend beyond the limits of the 1000x1000 tile. This is what TileSlicer was made for folks.



#2
cervantes35

cervantes35
  • Members
  • 291 messages

I don't think you can compile animesh or it messes up the animesh. Does this include any overhang as the TNO set has a lot of this so I know it wasn't sliced with the tile slicer. I know I did this with some sigil tiles as it reduced the size considerably because when you slice it you can literally created houndreds of new verts at the slice points.

 

I have never compiled any of my tiles so I did not know it caused this problem.



#3
Pstemarie

Pstemarie
  • Members
  • 2 745 messages

I'm just compiling what I can that won't break the models. Its not really an issue as opposed to a performance boost when playing over a server. A lot of the lag people experience seems to be caused by the engine having to compile models on the fly. Is not as big an issue on today's high end machines.

 

I didn't know it was suspected of causing issues with animesh. I'll have to watch out for that.

 

So far I've only caught the overhang issue on a handful of tiles, but it does seem to be consistent.



#4
MerricksDad

MerricksDad
  • Members
  • 1 611 messages

And here I am making tiles that do specifically that because of the benefits of overhang.


  • Zwerkules et Estelindis aiment ceci

#5
Frush O'Suggill

Frush O'Suggill
  • Members
  • 42 messages

Dumb question, but did Bioware use a different compiler for their models? I know there are a few official tiles that have geometry extending beyond the 1000x1000 limit. The cellar group from HotU comes to mind, for example.


  • MerricksDad aime ceci

#6
cervantes35

cervantes35
  • Members
  • 291 messages
I think that is why TNO was left uncompiled because compiling the animesh caused problems.

I did this so I could test, which I never got around to trying to decrease the number of draws on a texture and see if helped with the frame per second and hopefly improve shadow rendering by not having bits of a mesh spread across several tiles.

#7
OldMansBeard

OldMansBeard
  • Members
  • 152 messages

Animesh doesn't necessarily break when compiled. I compiled the CTP Babylon tiles with animesh "wavy water" like TNO and they worked fine. But it might depend on how the model is constructed and how the animations are defined.

 

Bioware had their own model compiler, different from nwnmdlcomp. It was available for download at one time and I still have a copy of it. It was basically the same code as the engine uses to load ascii models, but pulled out into an executable, The compiled models it generates are slightly different from the ones nwnmdlcomp generates but the differences are not usually important unless you are doing tricky stuff with emitters.. (edit - added: it was never updated to corespond to patch 1.69, which may be why the tno models were left uncompiled)

 

Some Bioware tile groups have meshes that project across tile boundaries, they are compiled and they don't cause SQRT Domain errors in the toolset. Maybe there's more to it, than just that?

 

Come to think of it, as an extreme case, for the tests I was doing in the "draw calls" thread, I made some tiles that were 16 times bigger than normal, compiled them and they didn't break the toolset. So compiling tiles with overhangs as big as 155.00 metres definitely isn't a problem.

 

What does CM3 say about your test models? If it passes them and they break when compiled, then CM3 needs fixing because it shouldn't.


  • Estelindis, Rolo Kipp et MerricksDad aiment ceci

#8
Shadooow

Shadooow
  • Members
  • 4 470 messages

Some Bioware tile groups have meshes that project across tile boundaries, they are compiled and they don't cause SQRT Domain errors in the toolset. Maybe there's more to it, than just that?

Ive stumbled across this error too when I was fixing little errors in models, not sure how Ive created this problem, but running the models via CM3 always helped.


  • MerricksDad aime ceci

#9
OldMansBeard

OldMansBeard
  • Members
  • 152 messages

Ive stumbled across this error too when I was fixing little errors in models, not sure how Ive created this problem, but running the models via CM3 always helped.

The SQRT Domain thing happens when the engine tries to compute the distance between two points (or between a point and a face) that are very close together and, because of rounding errors, gets a negative number for the "square on the hypotenuse", which it can't then take the square root of.

 

I'm speculating, but it could be caused by null or degenerate faces (where two or three verts are nearly coincident). These are almost impossible to spot visually, however hard you look at the model because basically you would need a microscope to see them. That's why we trained CM3 to sniff them out.


  • Zwerkules, Estelindis, Rolo Kipp et 1 autre aiment ceci

#10
Zwerkules

Zwerkules
  • Members
  • 1 323 messages

The SQRT Domain thing happens when the engine tries to compute the distance between two points (or between a point and a face) that are very close together and, because of rounding errors, gets a negative number for the "square on the hypotenuse", which it can't then take the square root of.

 

I'm speculating, but it could be caused by null or degenerate faces (where two or three verts are nearly coincident). These are almost impossible to spot visually, however hard you look at the model because basically you would need a microscope to see them. That's why we trained CM3 to sniff them out.

I've seen this in Bioware tiles, but don't remember in which tileset (probably interior). There are things like cylinders with several segments of which the vertices of the lowest segment were moved up so they ended up in the same place as the lower vertices of the segment above them. This is impossible to spot and I have no idea why they didn't remove the faces before they did this. I only noticed it when I had much more faces selected than should have been there.

Letting CM3 fix those tiles might be a good idea, but don't let it repair walkmesh overhangs because there are alot of those in Bioware tilesets at the edge of tiles and if it only gets fixed for some of them the walkmeshes won't align properly with those of tiles which weren't fixed.


  • OldMansBeard, Rolo Kipp et MerricksDad aiment ceci

#11
OldMansBeard

OldMansBeard
  • Members
  • 152 messages

I've seen this in Bioware tiles, but don't remember in which tileset (probably interior). There are things like cylinders with several segments of which the vertices of the lowest segment were moved up so they ended up in the same place as the lower vertices of the segment above them. This is impossible to spot and I have no idea why they didn't remove the faces before they did this. I only noticed it when I had much more faces selected than should have been there.

Letting CM3 fix those tiles might be a good idea, but don't let it repair walkmesh overhangs because there are alot of those in Bioware tilesets at the edge of tiles and if it only gets fixed for some of them the walkmeshes won't align properly with those of tiles which weren't fixed.

Yes, that would make sense. And yes, if you are fixing walkmesh overhangs with CM3, you basically have to  do the whole tileset or none.



#12
MerricksDad

MerricksDad
  • Members
  • 1 611 messages

Wait....you can do walkmesh overhangs!!!!???


  • Valthrendir aime ceci

#13
Zwerkules

Zwerkules
  • Members
  • 1 323 messages

Walkmesh overhangs will cause problems if the material type of one or both of them is walkable. If it's not walkable they don't cause problems but shouldn't really be there. In Bioware tiles you get those overlapping walkmesh faces a lot in cliffs for example.



#14
Lord Sullivan

Lord Sullivan
  • Members
  • 560 messages

Wait....you can do walkmesh overhangs!!!!???

 

Walkmesh overhangs should not be a problem as long as it does not overlap another one in the group. Naturaly, walkmesh overhangs/overlap from a single tile is not good.

 

[Edit]: Gawd dam, I thought the discussion was about walkmeshes that expend on to other tiles in a tile group to join with the remaining balance of it... like not cut/split straight exactly at the normal edge limit of a tile.



#15
OldMansBeard

OldMansBeard
  • Members
  • 152 messages

Wait....you can do walkmesh overhangs!!!!???

No, that's the point. If you try, it breaks things. But there are some iffy tilesets around where parts of the walkmesh do overhang other parts so CM3 has a feature for fixing this (it works by relaxing vertices so as to rotate the downward-pointing faces until they don't point downwards) but it has to be used carefully. If you relax the verts along one edge of a tile but not along the edge of any possible adjoining tile, you will get a tear in the whole walkmesh and that can be worse than if you left things alone. If you let CM3 fix the whole tileset, though, it will adjust the edges of all the tiles in identical ways, so they all line up again afterwards and there are no overhangs and no tears.

 

This is a bit off-topic, though. This thread is about compiling ...


  • MerricksDad aime ceci

#16
_six

_six
  • Members
  • 919 messages

You can do non-walkable walkmesh overhangs up to a point and may have a good reason to do it. Trapping the camera inside a ceiling, for instance. A walkable floor, with a non-walkable, downwards-facing walkmesh ceiling above it works perfectly fine. The opposite is not the case, and whilst you can occasionally experiment to find things that sort of work, your mileage will vary.

 

Diademus' spider caves did it just fine, and I implemented it in several unreleased works back in the day too with no problems.

 

That said, if you ever let two vertices exist at the same XY coordinates (or within 1cm) but different Z, you'll get weird teleporting bugs when walking over that tile. I've never fully understood why this should be the case, but it's easy enough to avoid.


  • Estelindis, Rolo Kipp et MerricksDad aiment ceci

#17
cervantes35

cervantes35
  • Members
  • 291 messages

OMB I pretty sure Paul ran the said tps01_stem_01 tiles thru CM3 before he tried compiling the model.



#18
Jedijax

Jedijax
  • Members
  • 396 messages

Sorry to make a non-technical post, but this is something we have talked about over the years and it never seems to be definitive in its resolution. Do compiled models actually have an impact on performance? Pstemarie says such is in older systems, but I have never actually seemed to find a co-relation between performance and compiling through the years and on three very different systems. Has anyone actually benchmarked this? I even made clean install tests with no overrides or haks, pure vanilla NWN and didn't find any difference from fully modded one.



#19
OldMansBeard

OldMansBeard
  • Members
  • 152 messages

Sorry to make a non-technical post, but this is something we have talked about over the years and it never seems to be definitive in its resolution. Do compiled models actually have an impact on performance? Pstemarie says such is in older systems, but I have never actually seemed to find a co-relation between performance and compiling through the years and on three very different systems. Has anyone actually benchmarked this? I even made clean install tests with no overrides or haks, pure vanilla NWN and didn't find any difference from fully modded one.

Compiliing speeds up loading. It doesn't speed up performance in-game once all the models have loaded. So to see the difference, you have to measure things like area load times or dwell times when objects are being created dynamically.

 

Separately, and slightly paradoxically, if a model is buggy it might load and function correctly if left uncompiled but not if compiled. That's because the engine is fairly robust and can resolve some kinds of bugs by referencing the context into which the model is being loaded, in ways that a compiler can't because the game context isn't present at that time.

 

It's the ramifications of that second phenomenon that were are debating here. Of course, it's better if models aren't buggy in the first place, but that's hard to achieve,



#20
OldMansBeard

OldMansBeard
  • Members
  • 152 messages

OMB I pretty sure Paul ran the said tps01_stem_01 tiles thru CM3 before he tried compiling the model.

Can I download those models somewhere? I'd like to see what CM3 does with them. If it's doing something inappropriate, maybe I can fix it.


  • MerricksDad aime ceci

#21
Zarathustra217

Zarathustra217
  • Members
  • 221 messages

Whenever I've encountered the "SQRT Domain error", it's been because I've compiled a model with a trimesh/skinmesh that had zero faces. The build-in compiler seems to fix this itself whereas the external compiler does not.

 

Could this be related?


  • Pstemarie aime ceci

#22
OldMansBeard

OldMansBeard
  • Members
  • 152 messages

Whenever I've encountered the "SQRT Domain error", it's been because I've compiled a model with a trimesh/skinmesh that had zero faces. The build-in compiler seems to fix this itself whereas the external compiler does not.

 

Could this be related?

Yes, that's an example of a buggy model that the loader can handle but the compiler can't.

 

It's possible, however, that nwnmdlcomp (assuming that's what you were using) handles this particular bug less well than the BW model compiler would have done. In binary files, there are internal pointers to data arrays (you can see this if you look at the binary data in NWNExplorer). If you have a trimesh with no faces, the face array would have zero elements but there would still be a binary pointer to where the face array would have been. The BW compiler sets the pointer to where the next pointer would have been, which is a vaild place to point to, but nwnmdlcomp sets it to hex zero. Maybe this is what is confusing the loader and causing the error. I'm speculating, though.


  • Zarathustra217 et OldTimeRadio aiment ceci

#23
Pstemarie

Pstemarie
  • Members
  • 2 745 messages

Can I download those models somewhere? I'd like to see what CM3 does with them. If it's doing something inappropriate, maybe I can fix it.

 

No need. The last time I rant the tileset through CM3 was in August 2013. I just ran it through CM3 3.52 last night and all is good. The tile compiles.

 

I love CM3 - never found a model yet that some iteration of that program can't fix - and, like good wine, CM3 gets better with age.

 

Just to clarify - when I used the term "performance" in the OP, I was referring to, as noted by OMB, load time not actual "ingame" performance. I'll try to be clearer in the future.

 

For reference here is the CM3 output for that tile. Note the line in bold red - confirms what Zarathustra stated above (thanks for that) :

 

tps01_stem01.mdl loaded.
  in emitter em_smoke06, "opacity" interpreted as "alpha"
  in emitter em_smoke05, "opacity" interpreted as "alpha"
  in emitter em_smoke04, "opacity" interpreted as "alpha"
  in emitter em_smoke03, "opacity" interpreted as "alpha"
  in emitter em_smoke02, "opacity" interpreted as "alpha"
  in emitter em_smoke01, "opacity" interpreted as "alpha"
  deleted faceless trimesh node(s) [line08,line09]
  aabb node walkmesh01 set to render 0
  aabb node walkmesh01 set to shadow 0
  decimal snap applied to node positions and mesh vertices
  tverts snapped to 1/512
  tverts welded in [cylinder04_5]
  warning - tverts of mesh12 are fragmented in 21 groups 
  warning - tverts of mesh20 are fragmented in 15 groups 
  renormalized tverts in 188 objects
  warning - aabb node walkmesh01 has 1 downward-pointing face(s) [102] 
  face 102: [[1.64,-3.01,2.5],[2.21,-2.73,2.45],[2.16,-2.94,8.21]]
  aabb data rebuilt
  warning - object191_3 is positioned off-tile at [12.883333333333335,7.908333333333334] 
  warning - object191_2 is positioned off-tile at [12.7475,7.345] 
  warning - object191_1 is positioned off-tile at [13.196666666666667,6.56] 
  warning - mesh436_4 is positioned off-tile at [5.265000000000001,-1.7958333333333327] 
  warning - mesh436_2 is positioned off-tile at [5.550000000000001,-2.1424999999999996] 
  warning - mesh26_3_3 is positioned off-tile at [11.180833333333332,9.424166666666666] 
  warning - mesh26_3_2 is positioned off-tile at [11.435416666666667,8.088333333333333] 
  warning - mesh26_3_1 is positioned off-tile at [10.114285714285714,10.77190476190476] 
  warning - mesh26_3 is positioned off-tile at [10.567948717948717,7.761538461538463] 
  warning - mesh26_2 is positioned off-tile at [12.545666666666667,6.587666666666666] 
  warning - mesh26_1 is positioned off-tile at [12.173888888888888,4.947222222222223] 
  warning - mesh22_3 is positioned off-tile at [7.3075,-0.7775000000000001] 
  warning - mesh22_2 is positioned off-tile at [8.48611111111111,-0.885] 
  warning - mesh22_1 is positioned off-tile at [6.584444444444444,-1.615] 
  warning - mesh21_5 is positioned off-tile at [2.0693333333333332,12.632666666666667] 
  warning - mesh21_4 is positioned off-tile at [2.594,11.824666666666666] 
  warning - mesh21_3 is positioned off-tile at [1.9853333333333336,11.075333333333333] 
  warning - mesh21_2 is positioned off-tile at [1.0853333333333333,11.422666666666666] 
  warning - mesh21_1 is positioned off-tile at [1.7760000000000002,11.868666666666666] 
  warning - mesh10_7 is positioned off-tile at [1.6516666666666668,5.746666666666667] 
  warning - mesh10_3 is positioned off-tile at [5.60095238095238,-2.036666666666666] 
  warning - mesh10_2 is positioned off-tile at [8.448333333333334,-0.1161111111111111] 
  warning - mesh09_2 is positioned off-tile at [9.628333333333334,2.1341666666666668] 
  warning - mesh09_1 is positioned off-tile at [9.651333333333334,0.09000000000000002] 
  warning - mesh08_9 is positioned off-tile at [4.012499999999999,7.727499999999999] 
  warning - mesh08_8 is positioned off-tile at [8.610555555555557,-1.3711111111111112] 
  warning - mesh08_7 is positioned off-tile at [6.8966666666666665,8.399166666666666] 
  warning - mesh08_5 is positioned off-tile at [8.545555555555557,7.301666666666667] 
  warning - mesh08_4 is positioned off-tile at [9.412500000000001,4.793333333333333] 
  warning - mesh08_3_2 is positioned off-tile at [4.316666666666666,10.203333333333335] 
  warning - mesh08_3_1 is positioned off-tile at [2.3833333333333333,8.642] 
  warning - mesh08_3 is positioned off-tile at [4.557777777777778,5.689444444444445] 
  warning - mesh08_2 is positioned off-tile at [9.275833333333335,0.8766666666666667] 
  warning - mesh08_1 is positioned off-tile at [7.526666666666666,0.226] 
  warning - line05_1 is positioned off-tile at [1.8283333333333334,11.8525] 
  warning - cylinder601_2 is positioned off-tile at [0.8720000000000003,-5.008] 
  warning - cylinder601_1 is positioned off-tile at [0.8300000000000001,-5.172] 
  warning - cylinder94_4 is positioned off-tile at [-0.4305555555555556,9.221666666666666] 
  warning - cylinder94_3 is positioned off-tile at [-0.044666666666666674,9.524] 
  warning - cylinder94_2 is positioned off-tile at [-0.22833333333333333,9.138888888888888] 
  warning - cylinder94_1 is positioned off-tile at [-0.01611111111111141,9.280555555555555] 
  warning - cylinder93_4 is positioned off-tile at [-2.2516666666666665,5.6066666666666665] 
  warning - cylinder93_3 is positioned off-tile at [-2.12,6.076666666666667] 
  warning - cylinder93_2 is positioned off-tile at [-2.0394444444444444,5.657777777777778] 
  warning - cylinder93_1 is positioned off-tile at [-1.9522222222222223,5.897222222222222] 
  warning - cylinder90_4 is positioned off-tile at [5.709444444444444,12.517777777777775] 
  warning - cylinder90_3 is positioned off-tile at [6.085,12.416111111111112] 
  warning - cylinder90_2 is positioned off-tile at [5.762777777777778,12.370555555555555] 
  warning - cylinder90_1 is positioned off-tile at [5.95,12.32] 
  warning - cylinder76_4 is positioned off-tile at [6.336111111111111,11.334444444444443] 
  warning - cylinder76_3 is positioned off-tile at [6.833333333333333,11.19111111111111] 
  warning - cylinder76_2 is positioned off-tile at [6.414444444444444,11.122222222222222] 
  warning - cylinder76_1 is positioned off-tile at [6.662222222222223,11.049444444444443] 
  warning - cylinder75_5 is positioned off-tile at [20.575833333333332,4.970833333333334] 
  warning - cylinder75_4 is positioned off-tile at [20.225833333333334,5.685] 
  warning - cylinder75_3 is positioned off-tile at [20.48,5.018333333333333] 
  warning - cylinder75_2_4 is positioned off-tile at [20.036666666666665,5.6658333333333335] 
  warning - cylinder75_2_3 is positioned off-tile at [19.50333333333333,5.394166666666667] 
  warning - cylinder75_2_2 is positioned off-tile at [20.245833333333334,5.6466666666666665] 
  warning - cylinder75_2_1 is positioned off-tile at [19.751666666666665,5.295833333333333] 
  warning - cylinder75_2 is positioned off-tile at [19.779999999999998,5.5287500000000005] 
  warning - cylinder75_1_7 is positioned off-tile at [19.97111111111111,5.821666666666667] 
  warning - cylinder75_1_6 is positioned off-tile at [20.32111111111111,5.854444444444444] 
  warning - cylinder75_1_5 is positioned off-tile at [20.593888888888888,5.6305555555555555] 
  warning - cylinder75_1_4 is positioned off-tile at [20.628333333333334,5.279444444444445] 
  warning - cylinder75_1_3 is positioned off-tile at [20.40277777777778,5.006111111111111] 
  warning - cylinder75_1_2 is positioned off-tile at [20.051111111111112,4.969444444444445] 
  warning - cylinder75_1_1 is positioned off-tile at [19.779444444444444,5.193888888888888] 
  warning - cylinder75_1 is positioned off-tile at [19.74722222222222,5.547777777777778] 
  warning - cylinder74_9 is positioned off-tile at [15.9475,12.972499999999998] 
  warning - cylinder74_8 is positioned off-tile at [15.004166666666666,13.269166666666667] 
  warning - cylinder74_7 is positioned off-tile at [16.601666666666667,12.585833333333333] 
  warning - cylinder74_6 is positioned off-tile at [16.815833333333334,12.815833333333334] 
  warning - cylinder74_5 is positioned off-tile at [16.916666666666664,13.098000000000003] 
  warning - cylinder74_4 is positioned off-tile at [17.1175,13.064166666666667] 
  warning - cylinder74_3 is positioned off-tile at [16.774166666666666,12.619166666666667] 
  warning - cylinder74_2_1 is positioned off-tile at [16.58416666666667,12.369166666666667] 
  warning - cylinder74_2 is positioned off-tile at [16.744666666666664,12.344] 
  warning - cylinder74_1 is positioned off-tile at [15.87166666666667,13.208333333333332] 
  warning - cylinder73_5 is positioned off-tile at [14.684166666666666,11.205] 
  warning - cylinder73_4 is positioned off-tile at [14.171666666666667,11.744166666666667] 
  warning - cylinder73_3 is positioned off-tile at [14.628333333333334,11.190833333333334] 
  warning - cylinder73_2_4 is positioned off-tile at [14.61,11.285] 
  warning - cylinder73_2_3 is positioned off-tile at [14.175,10.860000000000001] 
  warning - cylinder73_2_2 is positioned off-tile at [14.606666666666667,11.463333333333333] 
  warning - cylinder73_2_1 is positioned off-tile at [14.237499999999999,10.9775] 
  warning - cylinder73_2 is positioned off-tile at [14.39625,11.077916666666667] 
  warning - cylinder73_1_7 is positioned off-tile at [13.951666666666668,11.338888888888889] 
  warning - cylinder73_1_6 is positioned off-tile at [14.082777777777777,11.671111111111111] 
  warning - cylinder73_1_5 is positioned off-tile at [14.493333333333332,11.802916666666668] 
  warning - cylinder73_1_4 is positioned off-tile at [14.888333333333334,11.35888888888889] 
  warning - cylinder73_1_3 is positioned off-tile at [14.758333333333333,11.025555555555556] 
  warning - cylinder73_1_2 is positioned off-tile at [14.429444444444444,10.881666666666666] 
  warning - cylinder73_1_1 is positioned off-tile at [14.095555555555556,11.011666666666667] 
  warning - cylinder73_1 is positioned off-tile at [14.746666666666668,11.645] 
  warning - cylinder70_4 is positioned off-tile at [8.672777777777778,9.899444444444445] 
  warning - cylinder70_3 is positioned off-tile at [8.995,9.501666666666667] 
  warning - cylinder70_2 is positioned off-tile at [8.608888888888888,9.691666666666666] 
  warning - cylinder70_1 is positioned off-tile at [8.769444444444446,9.493888888888888] 
  warning - cylinder15_2_4 is positioned off-tile at [17.469166666666666,5.8950000000000005] 
  warning - cylinder15_2_3 is positioned off-tile at [16.78333333333333,5.835] 
  warning - cylinder15_2_2 is positioned off-tile at [17.49,5.726666666666667] 
  warning - cylinder15_2_1 is positioned off-tile at [16.817500000000003,5.565833333333334] 
  warning - cylinder15_2 is positioned off-tile at [17.13041666666667,5.8575] 
  warning - cylinder15_1_7 is positioned off-tile at [16.73111111111111,5.771111111111111] 
  warning - cylinder15_1_6 is positioned off-tile at [17.083888888888886,5.966111111111111] 
  warning - cylinder15_1_5 is positioned off-tile at [17.518333333333334,5.738333333333333] 
  warning - cylinder15_1_4 is positioned off-tile at [17.555555555555554,5.118888888888889] 
  warning - cylinder15_1_3 is positioned off-tile at [17.202222222222222,4.9255555555555555] 
  warning - cylinder15_1_2 is positioned off-tile at [16.814444444444444,5.0361111111111105] 
  warning - cylinder15_1_1 is positioned off-tile at [16.620555555555555,5.385555555555555] 
  warning - cylinder15_1 is positioned off-tile at [17.669166666666666,5.555833333333332] 
  warning - cylinder07_11 is positioned off-tile at [12.4925,5.774166666666668] 
  warning - cylinder07_10 is positioned off-tile at [12.584999999999999,5.230833333333334] 
  warning - cylinder07_9_1 is positioned off-tile at [11.600833333333334,5.469166666666667] 
  warning - cylinder07_9 is positioned off-tile at [12.309999999999999,5.605833333333334] 
  warning - cylinder07_8 is positioned off-tile at [11.6925,5.608333333333333] 
  warning - cylinder07_7 is positioned off-tile at [11.774166666666668,5.1075] 
  warning - cylinder07_6_1 is positioned off-tile at [11.641666666666666,5.218333333333334] 
  warning - cylinder07_6 is positioned off-tile at [12.354166666666666,5.3341666666666665] 
  warning - cylinder07_5 is positioned off-tile at [11.314166666666665,5.399166666666666] 
  warning - cylinder07_4 is positioned off-tile at [11.349166666666667,5.1625000000000005] 
  warning - cylinder07_3 is positioned off-tile at [10.681666666666668,5.280833333333334] 
  warning - cylinder07_2 is positioned off-tile at [10.852857142857143,5.22904761904762] 
  warning - cylinder07_1 is positioned off-tile at [10.72,5.043333333333333] 
  warning - cylinder04_10 is positioned off-tile at [1.72,13.28] 
  warning - cylinder04_9 is positioned off-tile at [3.015,12.5325] 
  warning - cylinder04_8 is positioned off-tile at [3.0149999999999997,11.035] 
  warning - cylinder04_7 is positioned off-tile at [1.72,10.29] 
  warning - cylinder04_6 is positioned off-tile at [0.4224999999999999,11.035] 
  warning - cylinder04_5 is positioned off-tile at [2.3430952380952386,11.15095238095238] 
  warning - cylinder04_4 is positioned off-tile at [0.8426666666666668,12.670666666666666] 
  warning - cylinder04_3 is positioned off-tile at [1.719444444444444,11.782777777777776] 
  warning - cylinder04_2_11 is positioned off-tile at [0.21944444444444444,13.302222222222222] 
  warning - cylinder04_2_10 is positioned off-tile at [1.181111111111111,13.847777777777777] 
  warning - cylinder04_2_9 is positioned off-tile at [2.286111111111111,13.840555555555554] 
  warning - cylinder04_2_8 is positioned off-tile at [3.237222222222222,13.281111111111109] 
  warning - cylinder04_2_7 is positioned off-tile at [3.7805555555555554,12.318888888888887] 
  warning - cylinder04_2_6 is positioned off-tile at [3.7727777777777782,11.21722222222222] 
  warning - cylinder04_2_5 is positioned off-tile at [3.216111111111111,10.267777777777779] 
  warning - cylinder04_2_4 is positioned off-tile at [2.257222222222222,9.722222222222221] 
  warning - cylinder04_2_3 is positioned off-tile at [1.1522222222222223,9.729444444444445] 
  warning - cylinder04_2_2 is positioned off-tile at [0.1988888888888889,10.28888888888889] 
  warning - cylinder04_2_1 is positioned off-tile at [-0.34666666666666657,11.246111111111112] 
  warning - cylinder04_2 is positioned off-tile at [-0.3383333333333333,12.347777777777779] 
  warning - cylinder04_1 is positioned off-tile at [1.7188888888888887,11.78277777777778] 
  warning - cylinder01_2_6 is positioned off-tile at [14.200000000000001,1.3541666666666667] 
  warning - cylinder01_2_5 is positioned off-tile at [14.555,1.6827777777777773] 
  warning - cylinder01_2_4 is positioned off-tile at [14.053333333333335,1.4841666666666666] 
  warning - cylinder01_2_3 is positioned off-tile at [14.0425,1.6966666666666668] 
  warning - cylinder01_2_2 is positioned off-tile at [14.171666666666667,1.8641666666666667] 
  warning - cylinder01_2_1 is positioned off-tile at [14.3675,1.8883333333333334] 
  warning - cylinder01_2 is positioned off-tile at [14.406666666666666,1.4372222222222222] 
  warning - cylinder01_1 is positioned off-tile at [14.428333333333335,1.63] 
  warning - box04_4 is positioned off-tile at [14.933333333333332,8.674166666666666] 
  warning - box04_3_2 is positioned off-tile at [16.51,7.0424999999999995] 
  warning - box04_3_1 is positioned off-tile at [16.670666666666666,7.492] 
  warning - box04_3 is positioned off-tile at [16.6875,7.510833333333334] 
  warning - box04_2_7 is positioned off-tile at [16.38666666666667,9.001666666666667] 
  warning - box04_2_6 is positioned off-tile at [16.71333333333333,9.190833333333334] 
  warning - box04_2_5 is positioned off-tile at [16.98,9.166666666666666] 
  warning - box04_2_4 is positioned off-tile at [16.677222222222223,8.342777777777778] 
  warning - box04_2_3 is positioned off-tile at [17.0275,8.760833333333334] 
  warning - box04_2_2 is positioned off-tile at [16.658,8.802000000000001] 
  warning - box04_2_1_1 is positioned off-tile at [16.090666666666667,8.369333333333332] 
  warning - box04_2_1 is positioned off-tile at [15.851666666666663,8.598333333333333] 
  warning - box04_2 is positioned off-tile at [16.634166666666665,8.490833333333333] 
  warning - box04_1 is positioned off-tile at [16.054933333333338,8.456133333333334] 
  warning - windowbars04 is positioned off-tile at [12.818958333333335,8.279583333333335] 
  warning - window04 is positioned off-tile at [12.569666666666667,8.212] 
  warning - sphere01 is positioned off-tile at [1.8215277777777779,11.842916666666666] 
  warning - plane13 is positioned off-tile at [-2.0116666666666667,5.949999999999999] 
  warning - plane12 is positioned off-tile at [5.918333333333333,12.246666666666666] 
  warning - plane11 is positioned off-tile at [6.43,11.196666666666667] 
  warning - plane10 is positioned off-tile at [8.826666666666668,9.5] 
  warning - plane09 is positioned off-tile at [10.45,5.0649999999999995] 
  warning - plane03 is positioned off-tile at [11.995000000000001,5.425] 
  warning - plane02 is positioned off-tile at [0.020000000000000046,9.206666666666667] 
  warning - plane01 is positioned off-tile at [13.67,0.27] 
  warning - object191 is positioned off-tile at [12.348749999999999,8.95125] 
  warning - object190 is positioned off-tile at [12.047333333333333,7.680666666666667] 
  warning - object189 is positioned off-tile at [12.804930555555558,8.307638888888889] 
  warning - object188 is positioned off-tile at [13.194,9.349333333333334] 
  warning - object187 is positioned off-tile at [13.397333333333334,9.642666666666667] 
  warning - object186 is positioned off-tile at [13.973333333333334,7.042] 
  warning - object184 is positioned off-tile at [12.993333333333332,8.377916666666664] 
  warning - object43 is positioned off-tile at [1.76,-5.145833333333333] 
  warning - object16 is positioned off-tile at [14.299666666666667,6.977777777777778] 
  warning - object01 is positioned off-tile at [17.138333333333335,12.61595238095238] 
  warning - mesh464 is positioned off-tile at [-0.3011111111111112,9.251111111111111] 
  warning - mesh463 is positioned off-tile at [0.007500000000000007,9.181666666666667] 
  warning - mesh462 is positioned off-tile at [-2.1644444444444444,5.707777777777778] 
  warning - mesh461 is positioned off-tile at [-2.025,5.870833333333333] 
  warning - mesh458 is positioned off-tile at [5.846666666666668,12.555555555555555] 
  warning - mesh457 is positioned off-tile at [5.9025,12.3025] 
  warning - mesh451 is positioned off-tile at [6.480833333333334,11.1775] 
  warning - mesh450 is positioned off-tile at [6.688888888888888,11.162222222222221] 
  warning - mesh449 is positioned off-tile at [8.78,9.5525] 
  warning - mesh448 is positioned off-tile at [8.714444444444444,9.773333333333333] 
  warning - mesh440 is positioned off-tile at [0.5920000000000001,-5.051] 
  warning - mesh29 is positioned off-tile at [14.379999999999999,1.6083333333333332] 
  warning - mesh28 is positioned off-tile at [14.394761904761907,-0.14019047619047623] 
  warning - mesh27 is positioned off-tile at [16.981851851851854,5.266851851851851] 
  warning - mesh26 is positioned off-tile at [12.290606060606063,6.634545454545454] 
  warning - mesh25 is positioned off-tile at [11.67688888888889,7.8420000000000005] 
  warning - mesh24 is positioned off-tile at [1.7750000000000001,11.867999999999999] 
  warning - mesh23 is positioned off-tile at [1.776,11.866999999999999] 
  warning - mesh22 is positioned off-tile at [7.385333333333335,-0.9030000000000002] 
  warning - mesh21 is positioned off-tile at [1.1373333333333333,12.385333333333332] 
  warning - mesh20 is positioned off-tile at [1.7745555555555557,11.867555555555555] 
  warning - mesh19 is positioned off-tile at [10.659,7.589166666666667] 
  warning - mesh18 is positioned off-tile at [18.12547619047619,12.398809523809524] 
  warning - mesh14 is positioned off-tile at [10.45,5.1225000000000005] 
  warning - mesh13 is positioned off-tile at [14.468333333333334,1.2822222222222222] 
  warning - mesh12 is positioned off-tile at [5.268688524590164,4.356174863387978] 
  warning - mesh11 is positioned off-tile at [0.04999999999999999,7.569166666666667] 
  warning - mesh10 is positioned off-tile at [5.226182795698924,3.8976881720430123] 
  warning - mesh09 is positioned off-tile at [5.1672881355932185,7.327062146892659] 
  warning - mesh06 is positioned off-tile at [9.073333333333334,-0.5616666666666665] 
  warning - mesh05 is positioned off-tile at [12.578888888888889,5.521111111111111] 
  warning - mesh04 is positioned off-tile at [5.614056603773584,6.1637106918238995] 
  warning - mesh03 is positioned off-tile at [1.3307407407407408,12.17074074074074] 
  warning - mesh02 is positioned off-tile at [11.756923076923076,7.7150427350427355] 
  warning - mesh01 is positioned off-tile at [12.155277777777778,0.24277777777777773] 
  warning - line07 is positioned off-tile at [1.8250000000000002,11.85] 
  warning - line06 is positioned off-tile at [1.825,11.848333333333333] 
  warning - line05 is positioned off-tile at [1.8283333333333334,11.852500000000001] 
  warning - line04 is positioned off-tile at [1.8150000000000002,11.841666666666667] 
  warning - line03 is positioned off-tile at [1.8216666666666668,11.855] 
  warning - line02 is positioned off-tile at [1.828888888888889,11.838888888888889] 
  warning - groundplane04 is positioned off-tile at [11.336693657219975,4.932672064777329] 
  warning - grime04 is positioned off-tile at [12.593333333333334,8.236666666666668] 
  warning - doorbase is positioned off-tile at [13.179999999999998,7.858333333333333] 
  warning - cylinder601 is positioned off-tile at [0.746,-5.102666666666666] 
  warning - cylinder95 is positioned off-tile at [0.09312500000000001,9.0975] 
  warning - cylinder94 is positioned off-tile at [-0.2789743589743589,9.517948717948718] 
  warning - cylinder93 is positioned off-tile at [-2.303846153846154,5.935897435897435] 
  warning - cylinder92 is positioned off-tile at [-1.908125,5.855625] 
  warning - cylinder91 is positioned off-tile at [0.42800000000000005,7.4675] 
  warning - cylinder90 is positioned off-tile at [5.939722222222223,12.600277777777778] 
  warning - cylinder89 is positioned off-tile at [5.895,12.21] 
  warning - cylinder77 is positioned off-tile at [6.45875,11.06125] 
  warning - cylinder76 is positioned off-tile at [6.632777777777778,11.449722222222222] 
  warning - cylinder75 is positioned off-tile at [20.273333333333333,5.52875] 
  warning - cylinder74 is positioned off-tile at [13.53,13.721666666666666] 
  warning - cylinder73 is positioned off-tile at [14.246250000000002,11.622916666666669] 
  warning - cylinder72 is positioned off-tile at [18.27907894736842,12.528947368421052] 
  warning - cylinder71 is positioned off-tile at [8.705,9.46] 
  warning - cylinder70 is positioned off-tile at [8.986944444444443,9.816666666666668] 
  warning - cylinder69 is positioned off-tile at [10.331875,5.12375] 
  warning - cylinder68 is positioned off-tile at [14.481388888888889,1.6551388888888887] 
  warning - cylinder67 is positioned off-tile at [14.296666666666667,1.369861111111111] 
  warning - cylinder66 is positioned off-tile at [4.357373737373737,5.998383838383838] 
  warning - cylinder65 is positioned off-tile at [14.135468750000001,1.5663541666666667] 
  warning - cylinder26 is positioned off-tile at [1.8255555555555556,11.85] 
  warning - cylinder15 is positioned off-tile at [17.104833333333335,5.235500000000001] 
  warning - cylinder11 is positioned off-tile at [1.77475,11.868833333333333] 
  warning - cylinder10 is positioned off-tile at [11.723212121212121,7.947939393939395] 
  warning - cylinder07 is positioned off-tile at [12.02392156862745,5.386470588235293] 
  warning - cylinder04 is positioned off-tile at [0.4225,12.5325] 
  warning - cylinder01 is positioned off-tile at [14.1025,1.6491666666666664] 
  warning - box04 is positioned off-tile at [14.753333333333334,9.19111111111111] 
  warning - box03 is positioned off-tile at [6.213333333333334,-2.1327777777777777] 
  warning - model tps01_stem01 contains data that will be ignored by the NWN engine [lightningsubdiv] 
  warning - model tps01_stem01 contains data that NWMax 0.8b cannot handle [blurlength,sizeend_y,sizestart_y,threshold] 
  Fixes made = 2289
tps01_stem01.mdl written.
tps01_stem01.wok written


#24
OldMansBeard

OldMansBeard
  • Members
  • 152 messages

 

No need. The last time I rant the tileset through CM3 was in August 2013. I just ran it through CM3 3.52 last night and all is good. The tile compiles.

 

I love CM3 - never found a model yet that some iteration of that program can't fix - and, like good wine, CM3 gets better with age.

 

Just to clarify - when I used the term "performance" in the OP, I was referring to, as noted by OMB, load time not actual "ingame" performance. I'll try to be clearer in the future.

 

 

That's great.

 

Could you try something? Could you take the buggy version, with the faceless trimeshes still in it, and compile it with the BW compiler? See how that behaves in the toolset? If my theory about the zero pointers is right, it won't show the SQRT Domain error,



#25
Pstemarie

Pstemarie
  • Members
  • 2 745 messages

BioWare compiler failed to compile it. I might be doing something wrong. You just put the tiles in the "Inbox" then hit the BAT file, right?