[RELZWIPZ]PyFFI: Python File Format Interface

Post » Tue May 08, 2012 2:30 pm

Does this tool log errors it encounters when it runs so that meshes that bug out can be examined to see why?

Output is minimal in the moment, I hacked it together in 48 hours. I am running it in this moment on the mesh.bsa, no missing files yet. Most files go down by between 1/5th and 1/6th of the original size (80%-90%).
You'll get the general exception-output from niflib, for everything else we have to start forming it from it's raw state. :)

Also, will it cover the necessary additional cleanup for _far.nif files?

Which is that? Ah, uhm, I think it means removing attributes and stuff? No, it has no knowledge of anything, it just eats up anything which resembles a NIF and spits another NIF out.
If someones explains me what I'd have to do I can put purging and reduction into the tool.
User avatar
Kara Payne
 
Posts: 3415
Joined: Thu Oct 26, 2006 12:47 am

Post » Wed May 09, 2012 2:30 am

I was referring to this portion of the RAEVWD readme:
* Collision data removed. If actual collision grids were still present, the branches have been deleted entirely. It's impossible to collide with a VWD object.
* Animation controllers removed. It is impossible to animate a VWD object, so this data is bloat.
* Geometry morphers removed. If a mesh had these, they've been removed, as they are only useful in animation.
* All NiStringsixtraData blocks removed. These are nearly always associated with collision.
* All BSX Flags removed. These are nearly always used for collision and animation.
* All NiSpecularProperty blocks removed. Leaving these in place causes visual anomalies, most notably the "every VWD turned yellow" issue.
* All NiBinaryExtraData blocks (tangent/normal spaces) removed. This data is not required for VWD meshes and helps tremendously in reducing memory usage.
* All parallax flags turned off. The distances involved make this useless anyway.
* All meshes have been assigned lowres textures instead of hires ones.
* Nearly all NiAlphaProperty blocks removed. If the mesh required it for transparency, it was kept. If this is left on a mesh that does not require it, visual anomalies can result.
* All NiVertexColorProperty blocks removed. These lead to some cases of black VWD objects.

These extra steps would only be done on a _far.nif file.

Although, yes, reduction code would be nice too, but that's not what I'm after :P
User avatar
Marta Wolko
 
Posts: 3383
Joined: Mon Aug 28, 2006 6:51 am

Post » Tue May 08, 2012 4:11 pm

I was referring to this portion of the RAEVWD readme:
These extra steps would only be done on a _far.nif file.

Has that been done manually?
User avatar
Mrs shelly Sugarplum
 
Posts: 3440
Joined: Thu Jun 15, 2006 2:16 am

Post » Tue May 08, 2012 6:54 pm

Yes, when I did that initially, PyFFI did not have the ability to do it. So it was all manually removed from each file. A process which took weeks. My fingers still cringe in fear of it ever happening again.
User avatar
LuBiE LoU
 
Posts: 3391
Joined: Sun Jun 18, 2006 4:43 pm

Post » Tue May 08, 2012 1:46 pm

Oh man.
So I can look into PyFFi what it is doing to replicate that, assuming it now does it automatically?
User avatar
Justin Hankins
 
Posts: 3348
Joined: Fri Oct 26, 2007 12:36 pm

Post » Tue May 08, 2012 8:17 pm

Yes, specifically the clean_farnif spell.
User avatar
Anne marie
 
Posts: 3454
Joined: Tue Jul 11, 2006 1:05 pm

Post » Tue May 08, 2012 10:44 pm

Yes, when I did that initially, PyFFI did not have the ability to do it. So it was all manually removed from each file. A process which took weeks. My fingers still cringe in fear of it ever happening again.

And that work is certainly appreciated. :bowdown:
User avatar
Rhi Edwards
 
Posts: 3453
Joined: Fri Jul 28, 2006 1:42 am

Post » Tue May 08, 2012 1:30 pm

Yes, when I did that initially, PyFFI did not have the ability to do it. So it was all manually removed from each file. A process which took weeks. My fingers still cringe in fear of it ever happening again.

Wow, that's crazy :o. In my use of RAEVWD, I never realized the real volume of work you had to put into it. Thanks :)!

On an unrelated matter, after PyFFIng all of my mod-provided meshes, I was experiencing many CTDs. I eventually tracked down at least one sure-fire CTD to the PyFFIed meshes for Let the People Drink. Is this a known issue, and I just shouldn't try to PyFFI them, or is there a specific exception I should add to my Optimiztion Kit ini files? I assume this has something to do with LtPD's animated waterfalls/pools/fountains/etc.
User avatar
Michael Russ
 
Posts: 3380
Joined: Thu Jul 05, 2007 3:33 am

Post » Tue May 08, 2012 4:02 pm

There is a serious bug in one of LtPD's fountain meshes that can cause this. I'm not sure myself which one it is, though. :confused:
User avatar
Celestine Stardust
 
Posts: 3390
Joined: Fri Dec 01, 2006 11:22 pm

Post » Tue May 08, 2012 7:24 pm

There is a serious bug in one of LtPD's fountain meshes that can cause this. I'm not sure myself which one it is, though. :confused:

So long as it's not just me - I had been worried that memory-eating aside, perhaps something _else_ was wrong with my PyFFI setup :P. I'm fine with not optimizing LtPD's meshes.

Just to clarify, is this a bug such that I'd be better off uninstalling LtPD? Or is it just a bad interaction between LtPD and PyFFI?

It takes a NIF and restructures the mesh. First it converts triangle-strips to triangle-lists. Then it does some basic indexing of the mesh, which in turn will remove all unused and double points (duplication is given by pos+UVs+normal+color for the vertex). Then it reassignes all the indices of UV, weights of bones etc. to the new indices. After that it fires up a raytracer which optimizes the index-order for maximum overdraw (to take advantage of early-z from the graphics card) and vertex cache. After that in addition it reorders all the vertex-positions for maximized local vertex buffer fit. Then it writes the NIF out again.

This is an example from a original Ob-mesh:
anvilaltar01.nif, before "515.862", after "421.326"
25% removed vertices
50% removed indices (as an effect of less vertices, and removal of degenerate indices necessary for strips)

The file here is A-okay. The UVs are good, the normals are good, no holes ...
The tool runs on files and directories.

That sounds very appealing... I could sure use a boost in my machine's capability to handle Oblivion's geometry. Unfortunately my setup is still pretty unstable for the moment. I think that until I get things working fairly solidly, I'd make a poor tester, since I could easily have you chasing down bugs that have nothing to do with the new tool :P.
User avatar
Jeneene Hunte
 
Posts: 3478
Joined: Mon Sep 11, 2006 3:18 pm

Post » Wed May 09, 2012 12:39 am

Yes, specifically the clean_farnif spell.

Okay, implemented. There seems to be a few mistakes in it though I believe:
a ) If you remove the VertexColorProperty, you have to remove VertexColorData as well I think
b ) Removing SpecularProperty will prevent any shiny object to "glitter" far away, maybe it's not there yet, but you know what I do with OBGE :P
c ) Removing SpecularProperty & APPLY_HILIGHT2 (parallax mapping) will become odd looking when your LOD-kick-in-distance is actually low, I already got strange far geometry with my POM (far is visibly brighter overall)
d ) Removing TB from the TNB will kill any correct normal-mapping, then you could throw the normals and the normal-texture away as well, you do have effects from normal-maps even over half the continent (textures normally get visibly darker), and there isn't really any performance hit from it

Point d is pretty severe. Maybe you didn't see it because the textures aren't really distinguishable at far distances, but in effect the normal-map became just random-noise because the TNB-matrix which is required for normal-mapping in tangent-space just got non-sense. That the _fars are too bright is a thorn in my eyes since I use them. :)

I have to look which shaders are used when the normal-map is absent though, and how they behave.

That sounds very appealing... I could sure use a boost in my machine's capability to handle Oblivion's geometry. Unfortunately my setup is still pretty unstable for the moment. I think that until I get things working fairly solidly, I'd make a poor tester, since I could easily have you chasing down bugs that have nothing to do with the new tool :P.

I have cases on some original files where the maximum overdraw (some worst-case: polygon over polygon over polygon caused by the winding of the shape) got down by a factor of 3000. We're discussing how we can proof-case this optimizer, because the FRAPS-FPS in NifSkope is frozen (because there is no consecusive refresh), so I can't tell you real-world number right away.

I though about two manequin-rooms with lots of complex meshes, one with normal one with optimizes mesh-versions.

+-----+|     |#1    #2|     |+-----+

So you can walk from one to the other and check FPS instantly without replacing meshes and restarting and changing all what-not circumstances/conditions which make it very difficult to have comparable numbers.

Here's the tool for testing:
http://paradice-insight.us/stuff/oblivion/NIFopt.7z
User avatar
Alexander Horton
 
Posts: 3318
Joined: Thu Oct 11, 2007 9:19 pm

Post » Wed May 09, 2012 4:20 am


Here's the tool for testing:
http://paradice-insight.us/stuff/oblivion/NIFopt.7z

Application crashes (x32 and x64) with a BEX error

error message (x64 and spell -stripstolists):
Spoiler
Problemsignatur:
Problemereignisname: BEX64
Anwendungsname: nifopt_x64.exe
Anwendungsversion: 0.0.0.0
Anwendungszeitstempel: 4e4e3763
Fehlermodulname: nifopt_x64.exe
Fehlermodulversion: 0.0.0.0
Fehlermodulzeitstempel: 4e4e3763
Ausnahmeoffset: 000000000025fe84
Ausnahmecode: c0000417
Ausnahmedaten: 0000000000000000
Betriebsystemversion: 6.1.7601.2.1.0.256.1
Gebietsschema-ID: 1031
Zusatzinformation 1: 23fa
Zusatzinformation 2: 23fab7259dd31b9c5d8d9879abbba4d3
Zusatzinformation 3: b805
Zusatzinformation 4: b8051459aec7ca2e81842e8551a7c027
used file: SBlmCorsetFull.nif form the mod HGEC_Sinblood_LethalMajestyOutfit_fixed-39756-1-0
User avatar
Vera Maslar
 
Posts: 3468
Joined: Wed Sep 27, 2006 2:32 pm

Post » Tue May 08, 2012 11:54 am

Application crashes (x32 and x64) with a BEX error

Give it an output name. I updated the download with a few fixes.
BTW there are no strips in the file to convert. ;)
User avatar
Sarah Unwin
 
Posts: 3413
Joined: Tue Aug 01, 2006 10:31 pm

Post » Tue May 08, 2012 12:27 pm

Give it an output name.

:thumbsup:

Replaces this nif- file optimizer the PyFFI- Optimizer (part triangles re-ordering)?

Usage with PyFFI optimize spell:
first PyFFI, second nifopt or ?
User avatar
Lil'.KiiDD
 
Posts: 3566
Joined: Mon Nov 26, 2007 11:41 am

Post » Wed May 09, 2012 3:13 am

:thumbsup:

Replaces this nif- file optimizer the PyFFI- Optimizer (part triangles re-ordering)?

Yes.

Usage with PyFFI optimize spell:
first PyFFI, second nifopt or ?

Would have no effect. If you have a sane NIF you won't need PyFFI, removing duplicates and empty nodes is the only use for PyFFI in this case.
User avatar
Abi Emily
 
Posts: 3435
Joined: Wed Aug 09, 2006 7:59 am

Post » Tue May 08, 2012 12:26 pm

Okay, implemented. There seems to be a few mistakes in it though I believe:
a ) If you remove the VertexColorProperty, you have to remove VertexColorData as well I think
So far as I'm aware not addressing that block hasn't ever caused any problems visually.

b ) Removing SpecularProperty will prevent any shiny object to "glitter" far away, maybe it's not there yet, but you know what I do with OBGE :P
Yes, I realize under OBGE you're probably going to do more than the vanilla game is capable. In the vanilla game, specular distance doesn't operate that far out, and all you end up with is yellow LOD as far as the eye can see if you don't take it off.

c ) Removing SpecularProperty & APPLY_HILIGHT2 (parallax mapping) will become odd looking when your LOD-kick-in-distance is actually low, I already got strange far geometry with my POM (far is visibly brighter overall)
Similarly here, without OBGE involved in some way, Parallax data does not operate that far out. Or if it does, it's too far away to notice.

d ) Removing TB from the TNB will kill any correct normal-mapping, then you could throw the normals and the normal-texture away as well, you do have effects from normal-maps even over half the continent (textures normally get visibly darker), and there isn't really any performance hit from it
I've actually tried this with the complete removal of normal maps. LOD may be working differently, because there is a noticeable difference in quality if they're tossed out. The game won't crash either way, but it *IS* making use of the normal maps even without the tangent space data. Obviously you can't do this at near-distance because the game will often just crash.

I've also never noticed the _fars being any brighter or dimmer than their near distance counterparts - unless something is triggering an anomaly.
User avatar
SWagg KId
 
Posts: 3488
Joined: Sat Nov 17, 2007 8:26 am

Post » Tue May 08, 2012 2:55 pm

So far as I'm aware not addressing that block hasn't ever caused any problems visually.

No I just mean there is (possibly) some then redundant data left in the file. I think the VertexColorProperty configures how to treat the VertexColor-array that may reside in the file. It was more adressed to the niftools-programmers, if the spell removed the property, the related data should go out of the window as well.

Yes, I realize under OBGE you're probably going to do more than the vanilla game is capable. In the vanilla game, specular distance doesn't operate that far out, and all you end up with is yellow LOD as far as the eye can see if you don't take it off.

Lately there are real strange things I read, like parallax+glow supposely doesn't work. I'd like to see test-cases, because I'm pretty sure they should work and are possibly buggy, unintendedly. This is another of those. Of this at least I guess I can make a test-case quick myself. So you say if I put a spec-map on a IC-far and I look from Cloudruler it's going yellow?
BTW anyone every tried 16bit floating point spec-maps with spec-values above 1.0? I'm pretty sure you could make glitterring on far thing this way right now. Of course you won't get the star, but's a thing we may have one day in OBGE.

Similarly here, without OBGE involved in some way, Parallax data does not operate that far out. Or if it does, it's too far away to notice.

No, I said when the config says far-LOD kicks in at say 3000 units the model can still be so big you'll see every wrinkle and it'll look weird. On the other hand all of this is highly dependent of the specific far. I understand now, after looking over them, none of them has anything beyond base-textures, is that right?

I've actually tried this with the complete removal of normal maps. LOD may be working differently, because there is a noticeable difference in quality if they're tossed out. The game won't crash either way, but it *IS* making use of the normal maps even without the tangent space data. Obviously you can't do this at near-distance because the game will often just crash.

Normal-mapping won't work as intended without the full TNB. It's not necessary to state the geometry empirically renders still "fine". :) It's okay for me, just sayin' there is probably more to come (discussion, fixes, ...). When we auto-reduce hi to lores and bake the geometry-differences into a normalmap we go back to TNB anyway. :)
What is possible though is reconstruct TB in the shader (I did that with the terrain-LODs, I added normals, and based on UV+N I reconstructed TB inside the shader). I have to fork the shaders inside the engine anyway for LOD (can you believe the shader for eyes and armor is the same as for the tarrein, arggg), so we can do special shaders for LOD-elements.
What does work is using only normals in the NIF without normap-mapping, of course.

I've also never noticed the _fars being any brighter or dimmer than their near distance counterparts - unless something is triggering an anomaly.

Maybe it's a problem of the lowres not matching the hires textures. It's very apparent on fortruins, they stick out of the landscape like no good. Are the lores-textures in any way special? Do the UVs of lo and hi res meshes perfectly match? Because if not+yes maybe we should make a hires-to-lores converter to fix that up?

BTW, should we move to the RAVWD-thread for this. We can continue discussion the tool here though. Does it work? I have like 6 broken GeomMorpher here, all other files are apparently sane (have not checked if the bones survived ...). Converting O-meshes.bsa takes around 10-15 minutes.
User avatar
CxvIII
 
Posts: 3329
Joined: Wed Sep 06, 2006 10:35 pm

Post » Wed May 09, 2012 2:58 am

Yeah, I'll respond over there...
User avatar
Alyna
 
Posts: 3412
Joined: Wed Aug 30, 2006 4:54 am

Post » Tue May 08, 2012 4:35 pm

Bump. Tool works? I found a few bailouts in Vvardenfell Imports, but 20GB of other meshes convert. I have to look at damaged bones and morphers though, visually. As in NifSkope you don't see that stuff.
User avatar
N Only WhiTe girl
 
Posts: 3353
Joined: Mon Oct 30, 2006 2:30 pm

Post » Tue May 08, 2012 8:37 pm

Bump. Tool works? I found a few bailouts in Vvardenfell Imports, but 20GB of other meshes convert. I have to look at damaged bones and morphers though, visually. As in NifSkope you don't see that stuff.

Creatures and Clothes are a big problem (distorted upper clothes, distorted rats). Armor I haven't tried. Weapons, landscape, architecture (far- nif), rocks, dungeons (folder ...) seems to be no big problem (some cave roots are distorted).
User avatar
Tamara Dost
 
Posts: 3445
Joined: Mon Mar 12, 2007 12:20 pm

Post » Tue May 08, 2012 6:28 pm

Wow, I already filed two bugs on the Nif-bugtracker. Seems I have to fix the core library-code a little bit while I progress.
Vvardenfell Imports is a good test-set. I wonder though (just from a logic PoV), why do Adamantium helmets have vertex-deformers, I mean they aren't out of flexible Adamantium, right? :P
User avatar
Soraya Davy
 
Posts: 3377
Joined: Sat Aug 05, 2006 10:53 pm

Post » Tue May 08, 2012 10:57 pm

Have you looked at the exception list that PyFFI is not supposed to touch? I think some of the mentioned distortions are because things that shouldn't be getting touched are still being modified, like helms that have *.egm files etc. I think havok roots were part of that exclusion set.
User avatar
Shelby Huffman
 
Posts: 3454
Joined: Wed Aug 08, 2007 11:06 am

Post » Wed May 09, 2012 1:38 am

I saw the the filter, but of course I have no idea about the roots. Though I'm going to try to fix up everything I find without the need for a filter. I have "The Conformulator"'s source code (hey scanti, walking in your footsteps :teehee: ) so I expect you'll see .egm support.
User avatar
Kelvin Diaz
 
Posts: 3214
Joined: Mon May 14, 2007 5:16 pm

Post » Wed May 09, 2012 12:23 am

Okay, progress:
http://paradice-insight.us/stuff/oblivion/NIFopt.7z

- EGM support
- fixed removal of faces in all cases (morphs, partitions, egms, etc.)
- fixed the entire SkinPartition thing, that didn't work at all
- more comprehensive output (tells you when repairs have been applied, or when there is some suspicious stuff in the file)
- converts SkinPartition-strips to lists as well now
- optimization for the SkinPartitions as well (though the vertices are in base-mesh order, no vertex-map reordering)

Now I want to know how can I see damaged morphers or [...] without actually applying it in Oblivion? NifSkope does not show those.

Edit: Side-question: Is there somewhere BSA source-code besides the OBMM source-code, so I may optimize directly from BSA-to-BSA?
Edit: Problematic meshes:


Better Cities - Meshes\meshes\architecture\bettercitiesresources\anvilbayexp\boatmod.nif:
- doesn't load vertices, NifSkope shows it corrupt, from 5.0.0
Better Cities - Meshes\meshes\bettercitiesresources\clothes\pregnantdress.nif
- contains a bone with 0 weights, from 5.0.0
Vvardenfell Imports\meshes\vvardenfellarmormod\high indoril\*.nif
Apachii Goddess Store\meshes\*somewhere*.nif
- several NIFs which have identically connected but differently percolated faces
(I fixed that in the code)
Vvardenfell Imports\meshes\vvardenfellarmormod\hlaalu\hlaalucuirass.nif
- the file bugs out niflib, Upperbody:0 is loaded twice, even NifSkope goes all wonky
Apachii Goddess Store\meshes\*somewhere*.nif
EyeCandy Compilation\meshes\*somewhere*.nif
- some NULL extra-datas
(I fixed that in the code)
TamRes - Complement\meshes\tamres\tamres\armor\legionmagerobe\m\robebmage.nif
- contains an illegal combination of TriShape+TriStripData
Oscuro's Oblivion Overhaul/meshes/armor/growlf/Fantasy/boots.nif
- contains a SkinPartition without VertexMap
Oscuro's Oblivion Overhaul/meshes/Weapons/throttle/tkIcxthSword.nif
- contains an unattached BinaryExtraData, this produces a fatal load error
Apachii Goddess Store\meshes\clothes\apachii\wigscorean\*
- most contain broken tangent-space vectors
CyrodiilUpgradeResourcePack/Meshes/architecture/CyrodiilUpgradeOverhaul/LRFarmHouses/houselower01.nif
- kaputt (missing 5 blocks)
CyrodiilUpgradeResourcePack/Meshes/architecture/CyrodiilUpgradeOverhaul/IceCavern/exterior/ELicicle01.nif
- kaputt (missing 2 blocks)
CyrodiilUpgradeResourcePack/Meshes/architecture/CyrodiilUpgradeOverhaul/IceCavern/interior/ELrmwalllong01.nif
CyrodiilUpgradeResourcePack/Meshes/architecture/CyrodiilUpgradeOverhaul/IceCavern/interior/ELwhalllong01.nif
- kaputt (missing 1 block)


I converted without hickups (besides the above):

Shivering Isles and it's RAEVWD
Final report: processed files: 1439 processed faces: 2266755 modified meshes: 3229 fixed meshes: 0 damaged meshes: 0 broken hierarchy: 72Final report: processed files: 132 processed faces: 237419 modified meshes: 2 fixed meshes: 0 damaged meshes: 0 broken hierarchy: 0
Knights
Oscuro's Oblivion Overhaul
Final report: processed files: 1809 processed faces: 3400849 modified meshes: 1557 fixed meshes: 9 damaged meshes: 0 broken hierarchy: 0
Better Daedric Shrines (all of them)
Final report: processed files: 1212 processed faces: 1937166 modified meshes: 987 fixed meshes: 0 damaged meshes: 0 broken hierarchy: 54
Sheogorad
Final report: processed files: 1166 processed faces: 1082148 modified meshes: 140 fixed meshes: 0 damaged meshes: 0 broken hierarchy: 4
Better Cities
Final report: processed files: 3577 processed faces: 6918121 modified meshes: 80 fixed meshes: 0 damaged meshes: 0 broken hierarchy: 2
All Natural
Final report: processed files: 394 processed faces: 2835151 modified meshes: 12 fixed meshes: 0 damaged meshes: 0 broken hierarchy: 0
Oblivion and it's RAEVWD
Final report: processed files: 8032 processed faces: 13674383 modified meshes: 17502 fixed meshes: 0 damaged meshes: 0 broken hierarchy: 162Final report: processed files: 630 processed faces: 841505 modified meshes: 19 fixed meshes: 0 damaged meshes: 0 broken hierarchy: 0
Artifacts
Final report: processed files: 1328 processed faces: 2390081 modified meshes: 546 fixed meshes: 0 damaged meshes: 0 broken hierarchy: 0
SentinelsLegendaryWeaponsAndArmors
Final report: processed files: 160 processed faces: 374195 modified meshes: 15 fixed meshes: 0 damaged meshes: 0 broken hierarchy: 0
Vvardenfell Imports
Final report: processed files: 782 processed faces: 4850839 modified meshes: 357 fixed meshes: 2 damaged meshes: 0 broken hierarchy: 3
Apachii Goddess Store
Final report: processed files: 1456 processed faces: 13625917 modified meshes: 923 fixed meshes: 52 damaged meshes: 0 broken hierarchy: 0
EyeCandy Compilation
Final report: processed files: 2069 processed faces: 12429420 modified meshes: 1446 fixed meshes: 14 damaged meshes: 0 broken hierarchy: 0
TamRes - Complement
Final report: processed files: 87 processed faces: 277182 modified meshes: 151 fixed meshes: 4 damaged meshes: 0 broken hierarchy: 1
TamRes - Complement II
Final report: processed files: 120 processed faces: 379964 modified meshes: 14 fixed meshes: 2 damaged meshes: 0 broken hierarchy: 0
TamRes - Meshes
Final report: processed files: 788 processed faces: 2134355 modified meshes: 150 fixed meshes: 3 damaged meshes: 0 broken hierarchy: 0
TamRes - Landscape
Final report: processed files: 1210 processed faces: 1295281 modified meshes: 1151 fixed meshes: 76 damaged meshes: 0 broken hierarchy: 0
TWMP Summerset - Meshes
Final report: processed files: 633 processed faces: 1490167 modified meshes: 11 fixed meshes: 0 damaged meshes: 0 broken hierarchy: 4
TWMP Valenwood Elsweyr
Final report: processed files: 151 processed faces: 199161 modified meshes: 117 fixed meshes: 1 damaged meshes: 0 broken hierarchy: 0
Elsweyr Anequina
Final report: processed files: 1439 processed faces: 2555803 modified meshes: 439 fixed meshes: 35 damaged meshes: 0 broken hierarchy: 4
User avatar
ruCkii
 
Posts: 3360
Joined: Mon Mar 26, 2007 9:08 pm

Post » Wed May 09, 2012 3:20 am

I have optimized with nifopt_x64
DLCFrostcrag
DLCHorseArmor
DLCOrrery
DLCShiveringIsles - Meshes
DLCThievesDen
DLCVileLair
Knights
Oblivion - Meshes

I use four directories
1. original files (V:\test-1)
2. stripstolists files (V:\test-1a)
3. optimizelists files (V:\test-1b)
4. optimizeparts files (V:\test-1c)


and got one crash
error message:
Spoiler
Problemsignatur:
Problemereignisname: APPCRASH
Anwendungsname: nifopt_x64.exe
Anwendungsversion: 0.0.0.0
Anwendungszeitstempel: 4e50e1a7
Fehlermodulname: nifopt_x64.exe
Fehlermodulversion: 0.0.0.0
Fehlermodulzeitstempel: 4e50e1a7
Ausnahmecode: 40000015
Ausnahmeoffset: 000000000026e04e
Betriebsystemversion: 6.1.7601.2.1.0.256.1
Gebietsschema-ID: 1031
Zusatzinformation 1: 454e
Zusatzinformation 2: 454e82e2ead489910c7645a45e081559
Zusatzinformation 3: fd78
Zusatzinformation 4: fd78d472f303822a808b31cf061c2693

console window:
Spoiler
processing "innerbodyemissive.nif"
processing "lefthandemissive.nif"
processing "outerbodyemissive.nif"
processing "righthandemissive.nif"
processing "shrink.nif"
processing "skeleton.nif"
processing "berserkerchest.nif"
processing "berserkerlegs01.nif"
processing "bonepauldronl.nif"
processing "capskull.nif"
processing "goblegs01.nif"
processing "goblinchest01.nif"
processing "goblinhandl.nif"
processing "goblinhandr.nif"
processing "goblinhead.nif"
processing "goblinhelmet.nif"
processing "handlberserker.nif"
processing "handlberskir.nif"
processing "handrberserker.nif"
processing "handrberskir.nif"
processing "head.nif"20
processing "leathercap01.nif"
processing "leathercap02.nif"
processing "pauldronl.nif"
processing "pauldronr.nif"
processing "ramhornl.nif"
processing "ramhornr.nif"
processing "shamanbag.nif"
processing "shamancape.nif"
processing "shamanchest.nif"
processing "shamanhelmet.nif"
processing "shamanlegs01.nif"
processing "skeleton.nif"
processing "skirmisherchest01.nif"
processing "skirmisherlegs01.nif"
processing "tribalsymbola3.nif"
processing "tribalsymbolb.nif"
processing "tribalsymbolc.nif"
processing "tribalsymbold.nif"
processing "tribalsymbole.nif"
processing "tribalsymbolf.nif"
processing "tribalsymbolg.nif"
processing "upperarmarmorl.nif"
processing "upperarmarmorr.nif"
processing "bridle.nif"

This application has requested the Runtime to terminate it in an unusual way.
Please contact the application's support team for more information.

part of the logfile:
Spoiler
...

# V:\test-2b/Oblivion - Meshes/meshes/creatures/goblin/tribalsymbolf.nif #############################################

- TribalSymbolF:0 ------------------------------------------------------
processing:
Vertices : 19 to 18 (94.7368%)
Faces : 20 to 20 (100.0000%)
optimizing:
Clusters : 19
CacheIn/Out : 1.056x (0.950/0.900)
OverdrawIn/Out : 7.474x (0.002/0.000)
OverdrawMaxIn/Out: 9.710x (0.139/0.014)
TootleOptimize = 0.0010 seconds
MeasureOverdraw = 0.0150 seconds
OptimizeVertexMemory = 0.0000 seconds

notes:
Removed degenerate vertices (vertices without faces).

# V:\test-2b/Oblivion - Meshes/meshes/creatures/goblin/tribalsymbolg.nif #############################################

- TribalSymbolG:0 ------------------------------------------------------
processing:
Vertices : 20 to 18 (90.0000%)
Faces : 20 to 20 (100.0000%)
optimizing:
Clusters : 1


Log files
- http://www.4shared.com/file/d-UYE_JS/test-1.html
- http://www.4shared.com/file/Ur3hyrjl/test-2.html



The PyFFI optimization process (spell optimize) calls some "sub"- spells
- fix_delunusedroots (execution parallel)
- opt_cleanreflists (execution parallel)
- fix_detachhavoktristripsdata (execution parallel)
- fix_texturepath (execution parallel)
- fix_clampmaterialalpha (execution parallel)
- fix_bhksubshapes (execution parallel)
- fix_emptyskeletonroots (execution parallel)
- opt_mergeduplicates (execution series)
- opt_geometry (execution series) <--- mesh optimization process (I think)
- opt_collisionbox (execution series)
- opt_collisiongeometry (execution series)

Which of these spells are a part of nifopt or could be a part?
[x] opt_geometry
User avatar
Casey
 
Posts: 3376
Joined: Mon Nov 12, 2007 8:38 am

PreviousNext

Return to IV - Oblivion