@jonwd7 jonwd7 released this Oct 25, 2016

Assets 3

Please note that the release date directly above is not accurate, as I occasionally update this release with new builds. Please check the latest date in the changelog below.

Changelog

2016-11-07

Correct Flags for BSXFlags, NiAVObject (Nodes and Shapes)

The flags for NiAVObject (NiNode, *TriShape, etc.) were severely out of date and I decoded their actual values. The same goes for BSXFlags which didn't have all the options listed.


(Note: Just because the options are there to check doesn't mean you should. :) The last 8 bits of the NiAVObject flags are not even supposed to be read from the file, and for BSXFlags there are several more options past what I've shown, but I believe they are runtime-only)

Major memory leak fixes

There was a shameful number of memory leaks, most of which predated my involvement with the program. The number was so high that it made it hard for me to find the ones that mattered. After actually sitting down and attempting to fix them, I've managed to eliminate every leak I could find during normal usage.

Memory that wasn't leaking was also reduced slightly, and I will be focusing on usage more in future releases.

2016-10-29

Skinning Improvements

  • New Skinning toggle: skinning
    • Allows you to preview a mesh in its skinned and unskinned state.
  • SSE and FO4 meshes are now skinned.
    • For SSE this means they will now look the same as the same Skyrim mesh.
    • For FO4 this means clothing/armor/etc will no longer appear below the floor (grid) as well as fixing the appearance of many creatures.
    • FO4 also benefits from now being able to show in-mesh skinned animations (e.g. the refrigerator and certain ammo boxes have skinned open/close animations in the NIF file).
  • Extended bone bound visualization to Skyrim/SkyrimSE (See: https://i.imgur.com/iX6mWIB.jpg) which was previously only for FO4 meshes.
    • This helps diagnose issues with visibility/flickering, i.e. if the bounds are not aligned with the visible mesh the game will not be able to correctly calculate visibility.

New Spells

  • Triangulate All Strips (Batch)
    • Lots of older modded meshes should have their NiTriStrips converted to NiTriShapes and this does that for the whole file.
  • Add Tangent Spaces and Update (Batch)
    • Turns the tangent flags on in NiTriShapeData and then runs Update All Tangent Spaces for the whole file.
  • Remove Unused Strings (Optimize)
    • Will clean up the strings stored in the NIF header which are no longer used by any blocks.

Fixes

  • SSE NIFs with skyrimhd\build\pc\data\ prepended to their texture paths will now load their textures correctly.
  • Fixed a Skyrim/SSE shader error causing black artifacts, most noticeably the opposite side of double sided geometry.

2016-10-25

  • Initial Skyrim Special Edition support.
    • Support for new NIF version.
    • Skyrim shaders updated to recognize SSE NIFs, and should render identically to the original.
    • Support for new BSA version for both Archive Browser and texture loading.
    • Auto-detect in Settings > Resources > Paths/Archives updated to recognize SSE.
    • UV Editor updated for SSE NIFs.
    • NOTE: Some spells have not been updated for either SSE (or FO4) and may not show up in menus or may not work.
  • FO4 support updates
    • Greatly improved rendering, using near-exact lighting models for diffuse/specular as compared to in-game. To be specific, the game uses Oren-Nayar for diffuse and Torrance-Sparrow for specular.
    • UV Editor updated for FO4 NIFs.
    • Re-enabled auto-sanitize on save for FO4 NIFs.
  • Resolved issues with opening NifSkope via double-clicking NIFs such as broken shaders.
  • Massive speedups to certain block operations like Copy/Paste Branch. My go-to test case was a certain node in a very large FO4 NIF, with very deep hierarchy. Before refactoring it took 16 minutes to delete and was reduced to about 16 seconds. Which is still slow, but I've done about all I can without a complete rewrite.
  • Moderate speedups (1.5-2.0x) for all file loading, more noticeable on FO4 (and by extension SSE) NIFs whose vertex data is hard for NifSkope to parse.
  • Removed a spell from the spells that run during "Auto-sanitize before save" which would reorder blocks. This can cause a lot of issues in Skyrim where the order matters for texture set overrides, or could break rendering of decals or things like moss in game. The spell can still be run manually.
  • Rendering
    • Increased max framerate to 144 FPS.
    • Fixed the texture filesystem watcher, which reloads a texture when it's been modified on disk. This was broken during the port from Qt 4 to Qt 5, 3 years ago.
  • UI fixes and improvements
    • Completely redid the "Hide version mismatched rows" to be much more efficient, and work for more things. It hides everything that does not apply for that block, not solely those based on NIF version. Having it on no longer greatly slows down many operations.
    • Float editor precision increased. Before, merely double clicking on a float and then canceling the edit would effectively truncate a float from full to half precision. Note: This only happened during manual editing i.e. opening and immediately saving a file would not truncate float precision.
    • Uint editor fixed to allow input values > INT_MAX. Before, to copy/paste a large number in a number box, you'd have to convert it from unsigned to signed. Also added the ability to input numbers as hex.
    • Added a "Copy Transform" button to the inspect widget. This allows you to copy the world transform of a block for use with Transform > Apply, as Transform > Copy in the context menu can only copy local transforms. My specific use case was to be able to get the world transform of bone nodes in actor skeleton NIFs, for use in AO (Art Object) NIFs.
  • Two new spells
    • Sanitize > Fix Invalid Block Names - Corrects common issues with node and shape names such as duplicates, missing names, or names which will cause the NIF to crash the game like 'BSX'.
    • Export/Import Binary - This allows you to export or import binary data to/from file, e.g. exporting the embedded Havok files used for FO4 collision to their own file, editing them, and then re-importing them.

Known Issues

  • Editing shader flags on BSLightingShaderProperty can randomly crash, but I stopped being able to reproduce it and therefore cannot debug it.
  • There was some kind of lighting regression for double-sided geometry, so one side will appear too dark. Possibly caused by FO4 updates to the renderer.
  • Import is STILL disabled and will stay that way indefinitely.
  • Many Spells have not been updated for either SSE/FO4. I will update them as they are requested.

Changes Prior to 2.0.dev6

For the previous changelog visit the 2.0.dev5 release page.