-
Notifications
You must be signed in to change notification settings - Fork 3
/
nexus-description.txt
89 lines (68 loc) · 10.1 KB
/
nexus-description.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
[center][b]ParallaxGen is in ALPHA. It has been successfully used by many but is still in development. Please be patient and file detailed bug reports if you encounter any.[/b][/center]
[center]The GitHub page for this open-source project can be found [url=https://github.com/hakasapl/ParallaxGen]here[/url].[/center]
[b][size=6][center][color=#6aa84f]Requirements[/color][/center][/size][/b]
[list]
[*][size=3]Make sure [url=https://aka.ms/vs/17/release/vc_redist.x64.exe]Microsoft Visual C++ Redistributable x64[/url] is installed[/size]
[*][size=3]Make sure .NET 8 runtime is installed, you can get it here [url=https://dotnet.microsoft.com/en-us/download/dotnet/8.0]Download .NET 8.0[/url][/size]
[*][size=3]Mod manager that creates [i]plugin.txt[/i] and [i]loadorder.txt[/i], known to work: [url=https://www.nexusmods.com/about/vortex/]Vortex[/url] and [url=https://www.modorganizer.org/]Mod Organizer 2[/url][/size]
[/list]
[b][size=6][center][color=#6aa84f]Overview[/color][/center][/size][/b]
[size=3]ParallaxGen scans the textures of your load order and creates patched meshes and a plugin to enable shaders on meshes. You need this tool in the following cases:[/size]
[list]
[*][size=3]you installed a mod that contains parallax or complex material textures but does not contain parallax/complex material meshes, note that this is the recommended way to provide textures[/size]
[*][size=3]you created your own parallax textures[/size]
[*][size=3]you do have parallax/complex material meshes, but they are overridden by another mod that does not have parallax/complex material enabled[/size]
[*][size=3]you do have both complex material as well as parallax textures[/size]
[*][size=3]you don't want to use mod author provided meshes because they overwrite meshes from mesh fix mods[/size]
[/list]
[size=6][center][b][color=#6aa84f]Basic usage[/color][/b][/center][/size]
[list=1]
[*][size=3]Please review the [url=https://github.com/hakasapl/ParallaxGen/wiki/Requirements]requirements wiki page[/url][/size]
[*][size=3]Download the latest version from the files section and extract the zip to an empty folder - [b]do not install as a mod in your mod manager[/b] [/size]
[*][size=3]ParallaxGen will detect the game installation folder automatically, but you can override that in the GUI[/size]
[*][size=3]Run [b][i]ParallaxGen.exe[/b][/i] to generate the patched meshes. If you use MO2 add ParallaxGen.exe as an executable and run it from there.[/size]
[*][size=3]In case you get errors or warnings and you are not sure what they mean check out the [url=https://github.com/hakasapl/ParallaxGen/wiki/FAQ]FAQ wiki page[/url]. Otherwise, you can ask in the posts[/size]
[*][size=3]Install the generated file (by default [b][i]ParallaxGen_Output/ParallaxGen_Output.zip[/b][/i]) with your mod manager, the meshes must win every conflict, the generated plugin [b][i]ParallaxGen.esp[/i][/b] must load as late as possible, but before DynDoLOD. LOOT should sort it correctly.[/size]
[*][size=3]If you change textures or meshes in your load, remove the existing [b][i]ParallaxGen_Output[/b][/i] in your mod manager and rerun ParallaxGen.exe[/size]
[/list]
[b][size=6][center][color=#6aa84f]Features[/color][/center][/size][/b]
[size=4]Mesh Patching[/size]
This is the primary goal of ParallaxGen. Despite the name, ParallaxGen can be used for more than just patching meshes for Parallax. Without any configuration, ParallaxGen will patch any mesh in your load order (including meshes in your BSA archives) for [color=#bf9000][b]parallax, complex material, and/or truepbr[/b][/color]. What shapes being patched for which shader is dependent on the textures you have in your load order. Each of those patchers can be disabled using CLI arguments (see the CLI arguments section below).
Before this, mod authors would need to ship pre-patched meshes with their texture mods. The problem with this is that the mesh can be overwritten, or you may want to use a different mesh with this texture, for example a fixed mesh from one of the many mesh fix mods. The goal of this feature is to completely remove this consideration. The winning mesh is the mesh you want, purely based on mesh things like UV fixes, split meshes, the model itself, etc. The winning texture is the one applied to the matching mesh after running ParallaxGen.
In addition, sometimes there is a need to combine shaders in a single mesh. For example, your mountains might be complex material, and your whiterun street might be regular parallax, but a single whiterun street mesh has some rocks on the side of the road. Before, this would have to be done manually using applications like NifSkope. ParallaxGen will know which should be which and patch the mesh automatically for both.
Want to learn more about all the shader types ParallaxGen supports? Check out this [url=https://github.com/hakasapl/ParallaxGen/wiki/History-of-Extended-Shaders]wiki page[/url].
[size=4]Plugin Patching[/size]
Plugins (mainly TXST records) will also be patched according to how the original shapes were patched during mesh patching. A resulting ParallaxGen.esp in the output.
[size=4]Shader Upgrades[/size]
Complex parallax has a lot of limitations that I didn't like, so I implemented shader upgrades into ParallaxGen. What this means is that by passing the [code]--upgrade-shaders[/code] argument, ParallaxGen will generate complex material environment mask files for every parallax height map you have in your load order, if an existing complex material map does not already exist. Then, when patching meshes, ParallaxGen will use those newly generated textures and enable complex material on meshes instead of complex parallax. In most cases you won't see any difference in-game between complex parallax and complex material since ParallaxGen does not add any extra data such as metalness and roughness (so you should still prefer to get complex material mods, which will). However, this will allow you to use single-pass snow shaders (ie. Vanilla or Better Dynamic Snow v3), see parallax on decals, and many more things that complex material supports where complex parallax doesn't. [b]In most cases I recommend enabling this flag always[/b]. This also fixes the dreaded blue/white distant mesh bug with parallax meshes. After running with this option the result will be NO complex parallax in your game.
[color=#6aa84f][size=6][center][b]A Note to Mod Authors[/b][/center][/size][/color]
One of the main goals for ParallaxGen is to allow texture artists to worry about just that, and not the mesh part. Historically parallax or complex material meshes needed to be included in mods for them to work in-game. With ParallaxGen you should be able to ship only textures with your mod, and send your users to here to patch their meshes. That being said, the way ParallaxGen identifies textures is not fool-proof. If your mod follows these guidelines, ParallaxGen will work correctly with it:
[list]
[*]Please make sure your vanilla (non-complex material) environment masks don't have any transparency in them. They should be a single-channel texture.
[*]Please use standard naming conventions always (_p.dds for parallax maps, _m.dds or _em.dds for env mask / complex material etc.). This is critical for ParallaxGen to be able to find files properly.
[*]Please reach out if a mod you are working on does not work well with ParallaxGen
[/list]
[size=6][b][center][color=#6aa84f]CLI arguments[/color][/center][/b][/size]You can add these arguments by editing the executable in MO2/Vortex. Here's what they do:
[code]-v[/code] = Enable verbose mode - will print every NIF it patches
[code]-vv[/code] = Trace mode - don't run this unless trying to report a bug or debugging reasons, it creates a huge amount of output that also slows down the general execution of the program
[code]--autostart[/code] = Enabling this flag will skip the launcher UI and just start using the last saved settings
[size=6][b][center][color=#6aa84f]Linux Users[/color][/center][/b][/size]ParallaxGen mostly seems to work using proton on linux. For now, you will need to disable the output ZIP option in the GUI. GPU acceleration does also work but you need to install d3dcompiler_47 into your prefix.
[size=6][center][color=#6aa84f][b]Contributors[/b][/color][/center][/size]This is an open-source project. We would love to have others contribute as well; check out the project's [url=https://github.com/hakasapl/ParallaxGen]GitHub page[/url] for more information. The following authors have contributed to ParallaxGen:
[list]
[*][url=https://next.nexusmods.com/profile/hakasapl/about-me]hakasapl[/url]
[*][url=https://next.nexusmods.com/profile/Sebastian1981/about-me]Sebastian1981[/url]
[*][url=https://next.nexusmods.com/profile/RealExist/about-me]RealExist[/url]
[/list]
[size=6][b][center][color=#6aa84f]Acknowledgements[/color][/center][/b][/size]
A special thanks to:
[list]
[*]In no particular order the amazing folks on the community shaders discord who answer all my questions (not limited to this list): [url=https://next.nexusmods.com/profile/leostevano/about-me]Leostevano[/url], [url=https://next.nexusmods.com/profile/Tomatokillz/about-me?gameId=1704]Tomato[/url], [url=https://next.nexusmods.com/profile/Faultierfan/about-me]Faultier[/url], [url=https://next.nexusmods.com/profile/RealExist/about-me]RealExist[/url]
[*][url=https://www.nexusmods.com/skyrimspecialedition/users/1366316]Spongeman131[/url] for their SSEedit script [url=https://www.nexusmods.com/skyrimspecialedition/mods/33846]NIF Batch Processing Script[/url], which was instrumental on figuring out how to modify meshes to enable parallax
[*][url=https://www.nexusmods.com/skyrimspecialedition/users/930789]Kulharin[/url] for their SSEedit script [url=https://www.nexusmods.com/skyrimspecialedition/mods/96777/?tab=files]itAddsComplexMaterialParallax[/url], which served the same purpose for figuring out how to modify meshes to enable complex material
[/list]
A ton of libraries were used in this project - send them a thanks!
[list]
[*][url=https://github.com/Mutagen-Modding/Mutagen]Mutagen[/url] for bethesda plugin interaction
[*][url=https://github.com/Ryan-rsm-McKenzie/bsa]rsm-bsa[/url] for reading BSA files
[*][url=https://github.com/ousnius/nifly]nifly[/url] for modifying NIF files
[/list]