Jon Posted March 6, 2015 Share Posted March 6, 2015 NifSkope 2.0.dev7 (Updated: 2017-12-18) SupportNifTools DiscordNifTools Forum DevelopmentGitHub ReleasesGitHub Issues MediaYouTube DevlogNifSkope 1.1.x - 2.0 ComparisonsEffect Shader Comparison I have been quietly developing NifSkope for over a year now and at this point finally feel comfortable with having a RELz/WIPz thread. This is a pre-alpha because there is a multitude of features I have not implemented yet but plan to. I decided though at this point there are so many improvements that I should be sharing them now instead of waiting for the program to be more feature complete. Changelog 2.0.dev7 2.0.dev6 (SSE support) 2.0.dev5 2.0.dev4 (FO4 support) 2.0.dev3 2.0.dev2 2.0.dev1 The full changelog is quite long so here is a non-comprehensive summary of the 1.1.3 to 2.0 changes: Skyrim support: Meshes are now generally WYSIWYG 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) Correct specular, normal mapping, emissive/glow, soft lighting, rim lighting, back lighting BSLightingShaderProperty & BSEffectShaderProperty values are now reflected in the shaders Many SLSF1/SLSF2 flags which control appearance. UV Offset, UV Scale, Emissive Color, Emissive Multiple, Glossiness, Specular Color, Specular Strength, Alpha, Falloff, Lighting Effect 1, Lighting Effect 2 Collision Correct scale (was 10x too small) bhkCompressedMeshShape display (the primary collision type in Skyrim) bhkConvexVerticesShape improvements Effect Animations Video BSOrderedNode support - Rendered in correct order Skyrim / F:NV texture path, BSA detection BTO/BTR files Facegeom files UI Undo/Redo (limited) Header tab Lighting Widget - Brightness, light direction, texturing toggles New Open/Save widgets Recent Files list Expand/Collapse buttons in Block List and Block Details Save Confirmation dialog Screenshot dialog Open multiple files from Open dialog or Windows Explorer Drag/drop files to viewport to open Rendering ~3x higher FPS Improved anti-aliasing and anisotropic filtering Improved decal rendering / removed z-fighting Visualization modes New grid/axes Quadratic interpolation for animations which use it Correct alpha depth sorting FYIs You can install 2.0 alongside previous versions. It will attempt to migrate settings and the two versions will not interfere with each other. This version is pre-alpha and feature incomplete. I will share a feature roadmap at some point. At this point I have not touched anything that could affect the integrity of the NIF data, so despite this being pre-alpha/experimental, I would consider it stable. Obviously if you find a NIF which this version saves differently than previous versions, please inform me. Your computer may not support the shaders or you may receive shader compilation errors upon opening. Please share the messages here and in the meantime you can turn off the Use Shaders option in the Render settings. Special Thanks Collaborators: neomonkeus, ttl269, skyfox69, deedes Testers: MadCat221, Arthmoor, Hana, Lorelai, Dwip, DSoS, Nico coiN, Tamira Astralify, MadCat221, usotaro and 3 others 6 Link to comment Share on other sites More sharing options...
Jon Posted March 6, 2015 Author Share Posted March 6, 2015 (edited) Known Issues (FO4) - Import is DISABLED. We don't know enough about the data formats to reasonably allow for this in general use cases. - Visible position of skinned meshes is often incorrect. Known Issues - When editing Shader Flags I have experienced a rare, non-reproducible crash. Edited April 11, 2016 by Jon Link to comment Share on other sites More sharing options...
Mator Posted March 7, 2015 Share Posted March 7, 2015 Is there any possibility for batch changing of nif texture paths on multiple nif files being supported sometime in the near future? Link to comment Share on other sites More sharing options...
Jon Posted March 7, 2015 Author Share Posted March 7, 2015 General batch processing is something that is planned. Near future... probably not. It would also need to be a Spell to be run, so I'd first need to know your use case to make the Spell. Are we talking about changing absolute file paths to relative ones? On that same train of thought, I would eventually like to make Spells scriptable by the end user. So I wouldn't necessarily need to implement a Spell for you to do whatever it is you needed to do with texture paths. You could just script it yourself. Link to comment Share on other sites More sharing options...
zilav Posted March 7, 2015 Share Posted March 7, 2015 Thanks for update, big improvement over the previous version.Some notes after brief preview- show axis / show collision / toolbar animation / toolbar LOD options are not saved, I need to toggle them every time manually- this version (and your previous one 1.3) doesn't allow me to set float fractional values. For example if I try to change lighting effect in shader property to something like "1.5000" it will set to 1.0000 It doesn't even allow me to type '.' dot, only comma can be entered, and if I try to use 1,5 it will set to 0.0000 Only whole numbers work like 1.0000 2.0000 3.0000 etc., that's for all floats in any nodes and UI windows with floats like Transform. My regional settings in Windows use comma for floats 123,4567 but I'd like NifScope to always use dot regardless, like xEdit does. Link to comment Share on other sites More sharing options...
Jon Posted March 7, 2015 Author Share Posted March 7, 2015 1. Yes, this is wholly intentional. A departure from the previous methods. Changing those options before also propagated across all open windows which is a terrible way to do it. This is because the "Show" options were tied into the Settings class, which I've already mentioned is getting replaced. Basically the viewport was asking the Settings class ~20x per second if the "Show" options were checked or unchecked. After improving the FPS in this version to 60FPS that would have meant that it would be checking 60x per second whether those options were checked, and again like I mentioned it would change these options across all windows. What if you want collision off in one window and on in another? The solution is that the "Show" options should be state based and held in the Scene/viewport for each window. Since they are also right there on the toolbar now it's not much of an inconvenience that they are all off each time. However, part of the new Settings class will be a set of "Startup Defaults" where you set which things you always want to be on or off each time a new window is created. 2. Yes, there are many internationalization issues. The inputs accept your platform's regional settings but other parts of the program aren't set up to handle this. If it's an urgent issue you just need to change your platform settings, because unfortunately I'm not even sure how to fix this issue in particular. With that said I am willing to PM you test builds to see if I can pin down where the input behavior needs to change. Link to comment Share on other sites More sharing options...
zilav Posted March 7, 2015 Share Posted March 7, 2015 Yes I would like to test any builds. Link to comment Share on other sites More sharing options...
zilav Posted March 9, 2015 Share Posted March 9, 2015 Users with switchable integrated/dedicated gfx cards are getting this error if not using dedicated card https://www.dropbox.com/s/u8f2y3tujo3gdr8/NifError.jpg?dl=0 Maybe add some check to show a more meaningful message? The other issue is vertex alpha Old nifscope: https://www.dropbox.com/s/s1fteanaerzgtoj/AlphaExplicitOld.png?dl=0 2.0 alpha: https://www.dropbox.com/s/g3fkzphob5722xb/AlphaExplicitNew.jpg?dl=0 Link to comment Share on other sites More sharing options...
Sjors Boomschors Posted March 9, 2015 Share Posted March 9, 2015 jonwd7 thanks for al the work you did in this new NifSkope build.I think we all have been waiting a very long time for this to happen. I hope you understand the bugs / points in the screenshots. http://postimg.org/image/lmwazaxv7/ 1# ERROR after start NifSkope. =========================== sk_env.prog: Fragment info ------------- 0(45) : error C5041: cannot locate suitable resource to bind parameter "b" sk_multilayer.prog: Fragment info ------------- 0(49) : error C5041: cannot locate suitable resource to bind parameter "b" =========================== http://postimg.org/image/mqgfb9iib/ 2# Resource handling issues. http://postimg.org/image/kj7l9lnub/ 3# Viewport settings reset at startup. My GPU is a MSI Nvidia Geforce 6200. Link to comment Share on other sites More sharing options...
Jon Posted March 9, 2015 Author Share Posted March 9, 2015 FYI You can copy/paste the text in the "Show Details" pane of the message box instead of taking a screenshot. Users with switchable integrated/dedicated gfx cards are getting this error if not using dedicated card The other issue is vertex alpha Shaders: Yes, more meaningful messages is already planned. Like I mention above, anyone getting errors will just have to rename or delete their shaders folder for now. Switchable graphics is not something I know how to detect so they'll just need to make sure they're using the dedicated graphics before starting NifSkope. Vertex Alpha: I wouldn't be surprised if NifSkope 2.0 is more correct. Actually I'd be very surprised if 2.0 wasn't the correct one. The mesh may be missing its SLSF Vertex Alpha flag. The old version handled vertex alpha a certain way regardless of mesh settings. It would be nice to know what mesh that is so I can check. 1# ERROR after start NifSkope. 2# Resource handling issues. 3# Viewport settings reset at startup. 1. I'll look into the shader error. Can you copy/paste the full text here? Note: A GeForce 6200 is borderline too old. It may be the issue, it may not. From what I can tell it just meets the OpenGL 2.1 requirement but there may still be other issues. So, I may not be able to resolve such an issue and you may not be able to use the shaders. 2. I haven't touched how other games are detected. The codebase looks for an "Installed Path" key on: "HKEY_LOCAL_MACHINE\\SOFTWARE\\Bethesda Softworks\\Morrowind" "HKEY_LOCAL_MACHINE\\SOFTWARE\\Bethesda Softworks\\Oblivion" "HKEY_LOCAL_MACHINE\\SOFTWARE\\Bethesda Softworks\\Fallout3" "HKEY_LOCAL_MACHINE\\SOFTWARE\\Bethesda Softworks\\FalloutNV" "HKEY_LOCAL_MACHINE\\SOFTWARE\\Bethesda Softworks\\Skyrim" The first three were there like that when I took over the codebase. If you do not have an "Installed Path" key at the above addresses it will not find anything. 3. I go into detail about this above. As an update on the situation, I already have a build with a new settings class: Ignore the general emptiness/unfinishedness. Texture paths and BSA handling will go under "Resources". There will be other categories than General/Render/Resources, but as I said it's very incomplete. The old settings window will be getting phased out entirely. I may release a build where I have both Settings windows still in play if it's going to take me too long to completely phase out the old window. Link to comment Share on other sites More sharing options...
Sjors Boomschors Posted March 10, 2015 Share Posted March 10, 2015 http://postimg.org/image/lmwazaxv7/ 1# ERROR after start NifSkope. =========================== sk_env.prog: Fragment info ------------- 0(45) : error C5041: cannot locate suitable resource to bind parameter "b" sk_multilayer.prog: Fragment info ------------- 0(49) : error C5041: cannot locate suitable resource to bind parameter "b" =========================== My GPU is a MSI Nvidia Geforce 6200. I just wanted to report the ERROR message, as I have no idea what its telling me. If the GPU is to old then so be it, but then I atleast know where the issue is from. Thanks for looking into it. Link to comment Share on other sites More sharing options...
Jon Posted March 10, 2015 Author Share Posted March 10, 2015 Sjors, Your card does support OpenGL 2.1 but it seems that maybe it doesn't support enough multitexturing units or varying/uniform/sampler variables in the shader. The only two shaders giving you errors are the more complex ones. I may PM you a test build that will output some OpenGL variables that will help me determine if I can opt to load simpler versions of the Environment and Multi-Layer Parallax shaders in the case of your video card. It seems you can load the other shaders just fine, so if you want you can delete just the files that start with "sk_env" and "sk_multilayer" in the shaders folder. Link to comment Share on other sites More sharing options...
Sjors Boomschors Posted March 11, 2015 Share Posted March 11, 2015 Feel free to send it, I do not mind to test it! Link to comment Share on other sites More sharing options...
Jon Posted March 21, 2015 Author Share Posted March 21, 2015 Shaders Hotfix Some graphics cards / drivers do not seem to correctly initialize shader vectors leading to graphical glitches. If you have the problem: 1. Download shaders_2015-03-21.7z 2. Extract the .frag files to the shaders folder in the NifSkope directory, overwriting the existing files. The fixed files will be included in the main package come next release. Link to comment Share on other sites More sharing options...
InsanePlumber Posted March 22, 2015 Share Posted March 22, 2015 Thank you for updating and development of this very useful application. P.S. shaders_2015-03-21.7z It works perfectly completely eliminated graphical glitches. Link to comment Share on other sites More sharing options...
zilav Posted March 25, 2015 Share Posted March 25, 2015 When I try to add a new folder in Options\Settings\Rendering, it always adds "Choose new folder" no matter what I entered. Link to comment Share on other sites More sharing options...
Jon Posted March 25, 2015 Author Share Posted March 25, 2015 There is a "Folder" button that you click with the line highlighted which opens a file dialog. I've changed this behavior in the new Settings window. You no longer have two separate buttons you need to press. At this point the old Settings window has been completely replaced. I will actually be releasing a new version shortly. It's a bit light on the settings for now: https://imgur.com/a/5OgGh#0 ... but more settings will be added with each release. I also still need to replicate the "Show Hidden" functionality of previous versions. I may get around to doing that before releasing. Link to comment Share on other sites More sharing options...
Jon Posted March 26, 2015 Author Share Posted March 26, 2015 NifSkope 2.0.dev2 (2015-03-25) Summary - New Settings dialog- Many new settings- SLSF2_Weapon_Blood support (Gallery)- Grid toggle with "G", separated from Show Axes- Restored "Show Hidden" behavior for viewing all meshes even if their Flags are set to Hidden. --- Edit: Package updated 2015-03-26 to address the crashing issue mentioned below. Link to comment Share on other sites More sharing options...
zilav Posted March 26, 2015 Share Posted March 26, 2015 NifSkope 2.0.dev2 (2015-03-25) Thanks! But it crashes when I try to open this mesh, previous dev version from 6 March worked fine. Well, almost fine. If I browse to BSSegmentedTriShape block and expand Segments section, there are some flags set on a segment. Double clicking on them sets them to 0 and NifScope asks to save changes. WastelandNV.Level4.X40.Y4.nif Link to comment Share on other sites More sharing options...
Jon Posted March 26, 2015 Author Share Posted March 26, 2015 I'm not getting crashing with the NIF you've provided. But also I don't have FO:NV and thus I don't have the textures. It's possible it's an issue with the texture loading but I don't see how. The Flags issue is because BSSegmentedTriShape actually has entirely wrong decoding for that block. There are newer XML versions but they create other issues with NifSkope that I haven't accounted for. You can read about the decoding here: https://github.com/niftools/nifxml/pull/42 Link to comment Share on other sites More sharing options...
Arthmoor Posted March 26, 2015 Share Posted March 26, 2015 Crashed for me too. Windows error output if it helps: Problem signature: Problem Event Name: APPCRASH Application Name: NifSkope.exe Application Version: 0.0.0.0 Application Timestamp: 04eb41f8 Fault Module Name: Qt5Widgets.dll Fault Module Version: 5.3.2.0 Fault Module Timestamp: 01d8d530 Exception Code: c0000005 Exception Offset: 0003ce54 OS Version: 6.1.7601.2.1.0.768.3 Locale ID: 1033 Additional Information 1: 0a9e Additional Information 2: 0a9e372d3b4ad19135b953a78882e789 Additional Information 3: 0a9e Additional Information 4: 0a9e372d3b4ad19135b953a78882e789 Link to comment Share on other sites More sharing options...
Jon Posted March 26, 2015 Author Share Posted March 26, 2015 I've pulled the release because I don't understand the issue and I can't debug it either. ---- Edit: OK, so it had to do with the state of the registry between dev1 and dev2 and it doesn't have anything to do with any specific file. I didn't properly reset my registry settings to a dev1-like state when testing the migration between versions and so I didn't catch a bug. Link to comment Share on other sites More sharing options...
smokex Posted March 26, 2015 Share Posted March 26, 2015 Also, NifSkope uses the QHull library which was hosted on Gitorious. You'll need to change the reference in gitmodules to point to the repository over at github now that Gitorious is going down. It should be moved by the end of May. https://about.gitlab.com/2015/03/03/gitlab-acquires-gitorious/ Link to comment Share on other sites More sharing options...
zilav Posted March 26, 2015 Share Posted March 26, 2015 I'm not getting crashing with the NIF you've provided. But also I don't have FO:NV and thus I don't have the textures. It's possible it's an issue with the texture loading but I don't see how. The Flags issue is because BSSegmentedTriShape actually has entirely wrong decoding for that block. There are newer XML versions but they create other issues with NifSkope that I haven't accounted for. You can read about the decoding here: https://github.com/niftools/nifxml/pull/42 Actually this is a mesh generated by FNVLODGen, source code for segment https://code.google.com/p/skyrim-plugin-decoding-project/source/browse/LODGen/NifMain/BSSegment.cs Link to comment Share on other sites More sharing options...
smokex Posted March 26, 2015 Share Posted March 26, 2015 I was crashing on load as well but when I built from source, it seems to run fine. Could you try rebuilding and making a new download package? Edit: Never mind I was building the 1.2 branch. Edit Edit: After rebuilding again on 2.0 branch I can confirm still no problems running. I did get error during shader compilation messages but then oddly it looks like all the shaders are working fine: ob_parallax+glowmap.prog: The fragment shader uses varying HalfVector, but previous shader does not write to it. ob_parallax.prog: The fragment shader uses varying HalfVector, but previous shader does not write to it. ob_parallax_vcol_ad.prog: The fragment shader uses varying HalfVector, but previous shader does not write to it. Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now