Repository navigation
Releases: floyd68/NIFDiff
Releases · floyd68/NIFDiff
Release list
NIFDiff 1.4.176
1.4.176
Fixes
- FaceGen hair that rendered completely invisible in some mods (a bad
texture-alpha value baked into the file) now shows correctly by default -
a new "Fix Hair Alpha" toggle lets you see the file's raw value instead - Fixed a stale thumbnail highlight left behind in other panes after Sync
Files moved a picked file into them - Faster, more responsive startup and thumbnail loading, especially in
large modded folders with many FaceGen files
NIFDiff 1.3.171
1.3.171
FaceGen
- Support for FaceGen face geometry (heads/eyes/mouth/hair) - previously
unsupported, now compares and renders correctly
NIFDiff 1.2.168
Changelog
Versions are fixed MAJOR.MINOR.REVISION values maintained in
app/res/version.h.in. Every released binary maps back to the commit carrying
the matching v<version> tag. See RELEASING.md.
Entries are written for users, not for the git history: what changed in
the app, not which files moved.
1.2.168
Node & Bone Diff
- New overlay panel (
L) comparing the full NiNode hierarchy across panes:
translation/rotation/scale changes, added/removed/reparented nodes, and
ambiguous-match detection - Export the diff to CSV or JSON
- Havok
bhkCompressedMeshShapechunk materials are compared and surfaced in
the existing Material diff panel
Diff Table
- Transform diff columns are resizable by drag, with compact labels kept for
narrow status/type columns
Images
- Panning is no longer clamped to the image bounds - pan freely regardless of
zoom or rotation
Fixes
- The Texture Inspector now consistently owns every mouse event over its
panel, including double-clicks, instead of some falling through to the
viewport underneath
1.1.163
Textures
- Any pane can show a texture (
.dds/.png/.tga/.bmp/...) in place of a
NIF - the same pane, the same thumbnail strip, swapping content as you browse - Smooth pointer zoom, rotation-aware clamped pan, 90°/180° rotation, fit to
screen, and a switchable smooth/nearest sampling mode - A live dimensions/format/zoom/rotation info bar, plus a full detail dialog
(I) that adds mip level and source compression - Browse a DDS's mip chain directly (
Ctrl+[/Ctrl+], or the context
menu's Mip Level submenu), each level labelled with its resolution - Checkerboard backdrop behind transparency, R/G/B/A channel isolation, and a
per-pane Alpha Channel override (Auto / Transparency / Opaque) for the rare
case the automatic policy gets it wrong - Lossless alpha handling throughout - loose/uncompressed alpha is treated as
transparency, block-compressed alpha as data, so a parallax normal map is
no longer darkened by its own height channel - Compressed DDS (BC1-BC7) uploads straight to the GPU in its native block
format - 4K textures open effectively instantly, and a cache keyed on path
and mip level makes revisiting one instant too - A loading spinner and a "Failed to load image" state, so a bad file never
leaves stale content on screen or pollutes Recent Files - Screenshot (
F12/ context menu) now captures an image pane's actual
on-screen view, not just NIF panes - Double-click a row in the Texture Inspector to open that material's
resolved texture - loose or from inside an archive - directly in an image
pane, reusing the texture already decoded for the 3D view
Resources
- Register Game Data folders for every supported game at once - Detect
finds and registers Skyrim LE, Skyrim SE and Fallout 4 in one click,
Set Active assigns a folder to whichever game the active pane's NIF
belongs to - Texture lookups are scoped to the NIF's own game, so two games' assets
sharing a relative path can no longer cross-resolve to the wrong one - A saved session's file living inside a BSA/BA2/archive now restores
correctly on restart (previously only plain filesystem paths did)
Shell
- The thumbnail strip browses inside BSA/BA2/ZIP/7z/RAR archives now, not
just folders - an archive appears as a navigable tile, its contents list
like loose files, and picking one opens it straight out of the archive - The window title now follows the active pane's file, not just the app name
- The thumbnail strip shows real decoded preview thumbnails for image files
too, not just NIF 3D renders
Fixes
- A custom shader placed in a subfolder can
#include "Common.hlsli"and
its own nested includes correctly, instead of silently falling back to the
built-in shader
1.0.116
First public release.
Compare
- 1-8 panes in an equal-width grid, added and removed at runtime
- Synced views / lighting / file selection across panes, each toggleable
- SYNCED / UNIQUE corner badges flag a pane whose file name is the odd one out
- Single-instance forwarding: opening a .nif whose name matches one already
open lands in a new pane of the same window - so a mod manager's
"open every conflicting file" fills one window with all of them - Material diff panel (
I): the selected sub-mesh's shader/texture-slot/
material values tabled against the same-named mesh in every other pane,
differences highlighted, loose-vs-BSA source markers included - Texture inspector (
T): per-slot format / size / mip count / resolved
source with R/G/B/A channel isolation
Rendering
- Full Skyrim/SE vanilla lit path (specular, glow, env maps, model-space
normals, multilayer parallax, tint masks, effect shaders, decals, alpha) - Parallax (
_p.dds) with parallax occlusion mapping and self-shadowing - Complex material (ENB / Community Shaders
_m.dds) with a probe that
rejects flat/binary alphas rather than running POM on a fake height field - True PBR (Community Shaders / PBRNifPatcher) with GGX/Cook-Torrance,
displacement POM and procedural IBL ambient specular - Per-path toggles (Parallax / Complex Mat / True PBR) and per-channel
toggles (Diffuse / Vertex Colors / Specular / Emissive / Lighting) - 4x MSAA, vertex normal/tangent overlays, wireframe, grid/axes
Navigation
- Orbit / pan / zoom-to-cursor plus Alt chords (Maya/Blender muscle memory)
- On-screen XYZ gizmo per pane; click a nub to animation-snap to that view
- Blender numpad views, orthographic mode, orbit-around-selection
- Close-up floors so pan/zoom never freeze up close; zoom dollies through
the pivot into a model's interior
Animation
- NIF-embedded transform animations play back: Play/Pause, sequence
dropdown, scrubbable Time slider, Loop, Speed 0.25-2x - Sync Anim keeps every pane phase-locked on one clock
- Idle CPU stays at zero when nothing is playing
Resources
- Engine-order texture resolution: override folders -> the NIF's directory
-> Game Data -> BSA/BA2, with Game Data auto-detection - Unresolved diffuse renders magenta rather than passing as plain white
- Process-wide texture pooling; async parse/load/decode so panes appear
immediately and models stream in during the archive scan
Shell
- Per-pane folder thumbnail strips with real 3D thumbnails, keyboard
navigation and type-to-select - Drag & drop (left 75% replaces, right 25% inserts a new pane)
.niffile association, session persistence in
%LOCALAPPDATA%\NIFDiff\NIFDiff.ini, window placement clamped to a
monitor's work area- Collapsible, responsive bottom control strip
- User-editable HLSL shaders with 1s hot reload, a content-hash bytecode
cache, andshaders.inibinding rules for routing meshes to custom shaders