Skip to content

NifSkope 2.0 Pre-Alpha 1

Pre-release
Pre-release
Compare
Choose a tag to compare
@hexabits hexabits released this 14 Oct 17:52

A very early, experimental build. Registry settings are separate from 1.2 and 1.1.3, so that all three can be run on the same machine (not simultaneously).

Changelog

2015-03-21 (Hotfix)

Certain video cards were experiencing graphical glitches.

If you are experiencing these issues you can download the patched shaders, and extract the .frag files to the shaders folder in the NifSkope directory, overwriting the existing files.


2015-03-06

Major Skyrim Shader Improvements

The goal has always been to reflect as exactly as possible the in-game appearance of Skyrim NIFs. With this release, nearly all Skyrim NIFs are now extremely close to their in-game appearance.

The major new features are:
  • Environment/Cube Mapping (Video)
  • Multi-Layer Parallax (Video)
  • Parallax (Video)
    • Although broken in vanilla, ENB can fix the in-game parallax implementation.
  • Model Space Normals and dedicated Specular map (Example)
  • Face Tint and Hair Tint shaders (Example)
Other new features are:
  • Additional BSLightingShaderProperty & BSEffectShaderProperty values are now sent to the shaders
    • SLSF1_ZBuffer_Test & SLSF2_ZBuffer_Write
      • Now it will be obvious if the correct Z-buffer flags are not set on a mesh.
      • This also means correct translucency rendering, as most translucency is not supposed to write to the Z-buffer. However NifSkope was writing all translucency to the Z-buffer, leading to an ugly "cutout" effect with lots of overlapping translucency.
    • SLSF1_Own_Emit (now correctly affects whether emissive or glow mapping are visible)
    • UV Offset
    • UV Scale
    • Texture Clamp Mode
    • Alpha (Example)
Improved features are:
  • BSEffectShaderProperty
    • Major improvements to the shader code resulting in more accurate shading under all circumstances.
  • Emissive/Glow
    • Emissive values not using Glow Shader are now taken into account as long as SLSF1_Own_Emit is set.
    • Emissive was being incorrectly shadowed by the diffuse light direction.
  • Soft Lighting
    • Completely new algorithm to replace the existing approximation. It is the exact algorithm the game uses.
  • Rim Lighting
    • Was implemented incorrectly.
  • Back Lighting
    • Was implemented incorrectly.
  • Specular lighting model
    • Was using standard Phong model, switched to Blinn-Phong like in most games.
  • Vertex color handling
    • Vertex colors are now correctly accounted for for various effects like glow mapping.
    • If SLSF2_Vertex_Colors is set but Has Vertex Colors is "No", the mesh will correctly blacken.

Effect Animations

Now that nearly all shader properties of a mesh are accounted for in the shaders, it is possible to animate them in NifSkope.

The following animation controllers are now supported: BSLightingShaderPropertyFloatController, BSLightingShaderPropertyColorController, BSEffectShaderPropertyFloatController, BSEffectShaderPropertyColorController, BSNiAlphaPropertyTestRefController

Video

Other features

  • BSOrderedNode rendering support. The order of nodes in a BSOrderedNode is now taken into account and will be rendered in the correct order.
  • Alpha depth sorting.
    • Previous implementation was not sorting by camera depth at all.
    • Alpha blended objects will now sort correctly by their distance from the camera.
  • Quadratic interpolation for animations. Previously all animation used linear interpolation despite the settings. If an animation is set to QUADRATIC_KEY it will now use quadratic interpolation.
  • Brightness controls for directional and ambient light.
  • New Axes overlay (Example)

Fixes and Enhancements

  • Screenshot dialog improvements
    • PNGs were not saving as compressed.
    • Added WebP which at 100% quality is identical to PNG but half the size.
    • Normalized the "JPEG Quality" values so that they give roughly the same image quality between JPEG and WebP.
  • Convex shape generation improvements
    • Now takes the position of the NiTriShape into account.
    • Can now set the Collision Radius from the generation dialog.
  • Correct center of mass position for bhkRigidBody.
  • DEV Restored the ability to right click in the empty area in the Block List tab.
  • DEV Added the context menu to the Header tab.

2014-12-11

  • Bugfix: Previous changes to the cell editing behavior prevented using widgets in the Value column of an array's parent row, e.g. the Update button, or Color > Set All.
  • NifSkope now listens on a different IPC port for file I/O so you can now have both NifSkope 1.x and NifSkope 2.x running simultaneously. _2014-12-20: Build has been updated in place to remove this feature. It was causing more problems than it was solving._
  • BSWaterShaderProperty stub class to remove missing NiProperty warning. Note: The warning came from the renderer and had no bearing on the NIF data or its integrity. The stub silences the warning and nothing else, i.e. there was not any kind of rendering support added.
  • BSFurnitureMarkerNode now correctly rotates the furniture based on its Heading value.
  • Drag/drop NIF file(s) to NifSkope window to open them.
  • BTO/BTR initial support
    • The different texture paths (BTO/BTR start with Data/Textures instead of just Textures) are accounted for. Note: Meshes such as BTR files without Has Normals + model space normals (SLSF flag) currently render very dark. This is a lighting issue with or without shaders on. For the terrain files, it seems temporarily setting the scale to 1.0 makes it brighter if you really need to see the textures.
  • Changes to file extension handling to accommodate BTO/BTR.
    • Save As dialog no longer defaults to NIF in the "Save As Type" dropdown, it instead defaults to whatever extension you have open.
  • Multiple cross-platform build improvements. Also a few code changes to get NifSkope compiling on Linux.
  • Initial command line parsing system for passing in arguments to NifSkope.
    • Currently only option is --port or -p. This allows you to manually define which port NifSkope uses, in the event your firewall hates the chosen port, or you would like to run multiple versions simultaneously (e.g. 2.0, 2.1, etc.)
      • NifSkope listens by default to port 12584. To change this you can add, for example, --p 12585 to the end of your Target value in the NifSkope shortcut's Properties window.

Update Notes

Not a ton of big improvements in this build. Releasing now mostly for bug fixes.


2014-10-28

  • File windows will now show as modified by appending an asterisk (*) to the window title, as is standard in most document-based applications.
    • Any change to the NIF data will now be seen as a modification, whether or not Undo is supported for that action.
  • Save Confirmation dialog will now account for all modifications (i.e. if there is an asterisk in the window title it will prompt you).
  • An edited value will no longer enter the Undo stack or cause the file to be counted as modified if the value is the exact same before and after (e.g. Set 'Scale' from 1.0 to 1.0)
    • This happened most often when double clicking the value but cancelling the edit.
  • [WIP] New message box system
    • Differentiates visually between info, warning, and error.
    • Messages attempt to be succinct and user-readable, hiding specifics behind a "Show Details" button.
    • Messages which are "spammy" in nature will be appended to the "Show Details" area of a single message box.
  • [Enhancement] The previous NiDefaultAVObjectPalette selection fix/enhancement has been changed to work more generally as it could happen with any blocks which do not inherit NiAVObject such as controller blocks like NiGeomMorpherController.
  • [Enhancement] Many improvements to row/column edit behavior / edge cases
    • Context menu for Spells will no longer show up when right-clicking disabled rows or columns which are not editable.
    • Several columns which should not have editable values are no longer editable (e.g. 'Array1')
    • Double clicking a bool value in a disabled / version-mismatched row will no longer toggle it.
    • Clicking the 'TXT' button in disabled / version-mismatched rows for string types will no longer bring up the string editor.

Update Notes

The message box system is a work in progress and may sometimes feel more annoying than the previous log system. The application should ideally never show more than one message box at a time, so please report any use cases which cause multiple message boxes to show up simultaneously. Eventually a secondary message log system will be put in place for messages which do not need to be displayed in a modal dialog box.


2014-10-14

  • _LIMITED_ Undo/Redo support
    • NOTE Currently limited to the editing of most values. No additions/deletions or Spells are supported at this time.
  • Save Confirmation dialog
    • NOTE Currently only accounts for undoable actions. Meaning: Save Confirmation relies on Undo/Redo and thus does not prompt you in all cases.
  • Non-Undoable Action confirmation dialog i.e. it warns you before you make a change which cannot currently be undone.
    • Suppressible via "Do not ask again" checkbox in the dialog window.
    • This will remain in place until all actions are supported via Undo/Redo.
  • [Enhancement] Clicking on meshes in the viewport will no longer select the inapproriate block in the Block List when the NIF has a NiDefaultAVObjectPalette block.

Fixes

  • Filename will now be filled in Save As dialog.
  • Filepath in statusbar will now update after Saving As a new filename.
  • Crash after exit when displaying collision for certain bhkConvexVerticesShapes. Related to new algorithm from 2014-10-09 release.

Update Notes

As of this release, refactoring has begun on the viewport area. This is to make way for the addition of widgets such as buttons, text, or menus into the viewport itself (versus the toolbars or docks). If you notice that any existing viewport functionality has broken in this release, please report it.


2014-10-09

  • Fixed display of CVS collision (bhkConvexVerticesShape). Previous algorithm (1.2 and earlier) drew all edges instead of only exterior ones.

dragonbonestorso01_20141009_15-24-05
(More Examples)


2014-10-07

Since 1.2 Alpha

  • Redone UI
    • Separate dock/widget for NIF Header.
    • New Open/Save widgets
    • Recent Files list
    • Expand/Collapse buttons in Block List and Block Details
      • Warning: Expanding extremely large files is not recommended.
    • Statusbar widgets
      • Filepath of current NIF, shortcut to open NIF location in Windows Explorer.
      • Progress bar for loading/saving.
    • Toolbar widgets hide when not needed, such as Animation, LOD toolbars.
  • Major shader overhaul. Generally much better reproduction of in-game appearance.
    • Shaders are still WIP (accuracy not guaranteed) but currently support:
      • Specular
      • Normal mapping
      • Glow mapping
      • Soft lighting
      • Rim lighting
      • Back lighting
    • BSLightingShaderProperty and BSEffectShaderProperty parameter support such as:
      • UV Offset
      • UV Scale
      • Emissive Color
      • Emissive Multiple
      • Glossiness
      • Specular Color
      • Specular Strength
      • Lighting Effect 1
      • Lighting Effect 2
    • Lighting Shader flags which are reflected in viewport: SLSF1_Specular, SLSF1_Vertex_Alpha, SLSF2_Double_Sided, SLSF2_Vertex_Colors, SLSF2_Glow_Map, SLSF2_Soft_Lighting, SLSF2_Rim_Lighting, SLSF2_Back_Lighting
    • Effect Shader flags which are reflected in viewport: SLSF1_Greyscale_To_PaletteAlpha, SLSF1_Greyscale_To_PaletteColor, SLSF1_Use_Falloff
  • Visualization Modes
    • Lighting Only - Removes diffuse texture so you can see only normal, specular, and glow information
    • Silhouette Mode - Makes model solid black. Ideal for seam/hole detection.
  • Toggling of various lighting/shading options
    • Textures (Alt + T)
    • Vertex Colors (Alt + V)
    • Specular (Alt + H)
    • Glow (Alt + G)
    • Disable Shading (Alt + S)
  • Lighting widget to easily modify and visualize light direction, as well as toggle certain options.
  • Color Picker (Alt-Click) in viewport to set background color from the NIF's colors. (This currently does not save the color between application instances)
  • Redone Editor and Furniture Marker visualization. Instead of "Draw Furniture" there is now "Show Markers" which also includes Editor Markers.
    • Support for new BSFurnitureMarkerNode in Skyrim.
  • New grid/ground option. (Axes are currently disabled for now until they are redone.)
  • [Enhancement] Screenshot dialog enhancements
    • Supersampling Render a picture at 1x, 2x, 4x, or 8x the size of your viewport.
  • [Enhancement] Columns can be rearranged and this is saved/restored the same as column widths.
  • [Enhancement] Type/Value columns swapped by default, to best make use of horizontal space on smaller screens.

Summary of 1.2 alpha changes

  • Screenshot dialog
  • Open multiple files at once
  • FPS bumped to 60
  • Improved anti-aliasing and anisotropic filtering
  • Improved decal rendering / removed z-fighting
  • Skyrim support:
    • bhkCompressedMeshShape display (the primary collision type in Skyrim).
    • BSLODTriShape support in Spells (e.g. Update All Tangent Spaces)
    • BSEffectShaderProperty support for 'Edit UV'
    • Havok scale fixes
    • LOD slider for BSLODTriShape visualization
  • Skyrim / F:NV auto-detection
  • Skyrim / F:NV BSA detection

See previous 1.2.0a releases for all post-1.1.3 changes.

Known Issues

Non-reproducible crash when editing bitflags (e.g. SLSF shader flags). If you can manage to create reproducible steps to cause the crash please let me know.

OpenGL support has been rather dodgy when it comes to the new shaders. Some integrated graphics will report errors despite supporting OpenGL 2.1 (a rather ancient version in 2014).

Screenshots

Overview

Header