Jump to content

Recommended Posts

I will keep this post brief. Make use of the Help buttons and hover over settings. Do not hesitate to ask questions and provide feedback.

This is early ALPHA to test things and iron out bugs. Certain things may be incomplete, not work as expected or change considerably between versions. In case of error messages, click "Help for this message" if available. 

If making posts or reporting errors, upload/paste these files (if they exist) to a file service or pastebin
..\DynDOLOD\bugreport.txt
..\DynDOLOD\Logs\[DynDOLOD|TexGen]_[TES5|ENDERAL|SSE|TES5VR]_log.txt
..\DynDOLOD\Logs\[DynDOLOD|TexGen]_[TES5|ENDERAL|SSE|TES5VR]_Debug_log.txt

If issue involves LODGen upload/paste
..\DynDOLOD\Logs\LODGen_[TES5|ENDERAL|SSE|TES5VR]_[Worldspace]_log.txt

 

Requirements

 

Installation

  • Install the requirements as usual.
  • Install the Core Files from either DynDOLOD Resources or DynDOLOD Resources SE depending on the used game version. Typically overwrite any files or refer to Load/Overwrite Orders. Install other options as desired.
  • Unpack the DynDOLOD Standalone archive into a new 'DynDOLOD' directory that is outside of special OS folders like 'Programs Files' or 'Program Files (x86)', User, Documents, Desktop, Download and also not in SteamApps, game or any mod manager folders.
  • By default the tools start in Skyrim mode, which is the same as adding the -tes5 command line parameter. Add -sse for Skyrim Special Edition, -tes5vr for Skyrim VR or -enderal for the Enderal Steam Version.

 

LOD Generation

  • Use TexGen to generate object LOD textures and tree/grass LOD billboards into a dedicated output folder and then install as a mod.
  • Use DynDOLOD to generate object LOD (includes grass LOD if enabled), tree and optional dynamic LOD into a dedicated output folder and then install as a mod.

 

Major Feature Changes

  • Generate tree/grass LOD billboards with TexGen
  • Ultra tree LOD is now a checkbox - remember to update the tree mesh rule as desired.
  • Billboard Grass LOD in object LOD Level 4. See next post for details.
  • Generate some (slowly growing) pre-rendered object LOD textures

 

Changelog

3.00 Alpha 30
TexGen.exe - fixed sometimes wrongly applying specular 3.00 Alpha 29
TexGen.exe - improved loading of cubemap textures

3.00 Alpha 28
TexGen.exe/DynDOLOD.exe - added Enderal SE support, uses its own config files in anticipation of Steam version
DynDOLOD.exe - fixed accidentally generating tree LOD instead of object LOD for child world copies
DynDOLOD.exe - add full-model-CRC32 matching for object/dynamic LOD models for automatic support of "dumb" mesh replacer mods
DynDOLOD.exe - fixed not adding center cell data for first dynamic LOD activation
DynDOLOD.exe - added/updated rules for better compatibility
TexGen.exe - properly ignore trees without models or deleted base records
TexGen.exe - added environment/cubemap shader
TexGen.exe - added rendered object LOD textures - most notably vanilla Whiterun and Dwemer Ruins, DynDOLOD Dawnguard castle and more
LODGen.exe - improved parsing of txt files
Texconv.exe - updated to latest version
DynDOLOD_Manual.html - updated explanations information for Enderal
DynDOLOD Resources SE - updated meshes and texture for better compatibility

3.00 Alpha 27
DynDOLOD.exe - added INI setting TerrainUndersideIgnoreWorlds=
LODGen.exe - optimize underside terrain by removing triangles for default terrain height
DynDOLOD-Resources-SE - added patch to enable grass for Whiterun exterior

3.00 Alpha 26
DynDOLOD.exe - add terrain underside references to ESP so they work in all worldspaces

3.00 Alpha 25
DynDOLOD.exe - fixed a problem with thread control
DynDOLOD.exe - fixed patches sometimes being confused about the destination plugin
DynDOLOD.exe - improved enabling/disabling of underside mesh
Papyrus Script - updated objectenabler script

3.00 Alpha 24
DynDOLOD.exe - enable/disable terrain underside meshes in child worldspaces
DynDOLOD.exe - only generate terrain underside meshes for worldspaces that have LOD level 32
DynDOLOD.exe - fixed ignoring skinned meshes for dynamic LOD
Papyrus Script - new objectenabler script for terrain underside meshes
LODGen.exe - do not fail if optional billboard txt file is not present
LODGen.exe - fixed sometimes not automatically setting passthru for glow shader
LODGen.exe - fixed sometimes not applying replacement textures

3.00 Alpha 23
DynDOLOD.exe/TexGen.exe - fixed not using SSE config files for TES5VR
DynDOLOD.exe - added INI settings TerrainUnderside, TerrainUndersideQuality and TerrainUndersideHeigth to automatically generate and place a terrain NIF that aids in blocking sun rays

3.00 Alpha 22
DynDOLOD.exe - added INI settings DoubleSidedTextureMask and DoubleSidedMeshMask to force double sided flag for specfic meshes or textures
LODGen.exe - DoubleSidedTextureMask= and DoubleSidedMeshMask= added

3.00 Alpha 21
DynDOLOD.exe - ignore billboards without txt files so LODGen does not fail later
LODGen.exe - added GrassDensity= to allow for lower density of grass LOD billboards in object LOD
LODGen.exe - added ThreadSplit= to control ratio of main to sub threads for object LOD generation

3.00 Alpha 20
LODGen.exe - fixed looking up wrong path in BSA for billboard txt

3.00 Alpha 19
DynDOLOD.exe - fixed skipping over some references using LIGH
DynDOLOD.exe - fixed ignoring overwrites from patches
DynDOLOD.exe - fixed not always copying XEMI record from child world to existing parent LOD representations
DynDOLOD.exe - ignore references with only a notice that have been moved out of their original worldspace
DynDOLOD.exe - fixed ignoring XESP parent configuration not working as intended
TexGen.exe - do not leave orphaned billboard files in case they are filtered out

3.00 Alpha 18
DynDOLOD.exe - fixed wrong tree LOD atlas coordinates

3.00 Alpha 17
DynDOLOD.exe - fixed index out of bounds while generating tree LOD texture atlas

3.00 Alpha 16
DynDOLOD.exe - ignore duplicate patches

3.00 Alpha 15
DynDOLOD.exe - default to -memory instead of -speed
DynDOLOD.exe - added duplicate texture removal to object LOD atlas generation
DynDOLOD.exe - added thread limit settings for some Occlusion operations
LODGen.exe - fixed an indexing error
LODGen.exe - added Threads= to limit number of concurrent LOD generation threads, defaults to number of cores

3.00 Alpha 14
DynDOLOD.exe - fixed not ignoring player enable parent for tree LOD
TexGen.exe - fixed a case of not ignoring case

3.00 Alpha 13
DynDOLOD.exe - fixed sometimes leaving ITM records
DynDOLOD.exe - fixed removing alpha channel from texture if NiAlphaProperty threshold is 0
DynDOLOD.exe - fixed sometimes setting unresolved material links
DynDOLOD.exe - fixed not overwriting earlier rules
TexGen.exe - maximize and trim billboard texture based on render instead of vertex bounding box
TexGen.exe - do not generate billboard if textures are missing
LODGen.exe - fixed sometimes not using side-view billboard

3.00 Alpha 12
DynDOLOD.exe - fixed wrong load order detection for ESP only generation

3.00 Alpha 11
DynDOLOD.exe - fixed sometimes modifying other plugins
TexGen.exe - added separate MaxSuperSamples options for grass, tree and objects
LODGen.exe - fixed sometimes not discovering grass billboards correctly

3.00 Alpha 10
DynDOLOD.exe - removed a left over debug check stopping things for no reason

3.00 Alpha 9
DynDOLOD.exe - fixed sometimes copying wrong overwrite record

3.00 Alpha 8
DynDOLOD.exe - fixed sometimes not matching LOD models

3.00 Alpha 7
DynDOLOD.exe - fixed sometimes adding a duplicate textures on atlas

3.00 Alpha 6
DynDOLOD.exe - fixed not adding master for direct childworld copies

3.00 Alpha 5
DynDOLOD.exe - demoted duplicate cell exception to a warning
DynDOLOD.exe - check for childless worldspaces 
DynDOLOD.exe - fixed not adding master for enable parent of object activators
DynDOLOD.exe - improved reading of grass data
DynDOLOD.exe - added INI setting AlphaFactor= to control internal mipmap alpha coverage
DynDOLOD.exe - improved normalization of assets paths
TexGen.exe - ^^which means finding textures with rooted texture paths found in NIF

3.00 Alpha 4
DynDOLOD.exe - fixed trying to add references for empty parent models for glow LOD
DynDOLOD.exe - report missing base record LOD definitions if automatic matching fails
DynDOLOD.exe - do not add worshippers to cells added by ESP
DynDOLOD.exe - fixed forced load order resulting in orphaned records 
DynDOLOD.exe - double check if there are duplicate cells
DynDOLOD.exe - monitor for duplicate triplets
DynDOLOD.exe - properly blame ESP not setting MSTT DATA - Flags 0x4 
TexGen.exe - fixed localization preventing rendering
TexGen.exe - fixed sometimes writing wrong CRC32 for textures

3.00 Alpha 3
DynDOLOD.exe - ignore inconsequential unresovled errors in DLC and paid mods

3.00 Alpha 2
DynDOLOD.exe - fixed INI setting typo
DynDOLOD Help - updated grass LOD settings information for No Grass In Objects version 6

3.00 Alpha 1
DynDOLOD.exe - converted all remaining external pas scripts to native code
DynDOLOD.exe - added ultra LOD as a GUI option
DynDOLOD.exe - export binary terrain file for LODGen
DynDOLOD.exe - export grass LOD billboard file for LODGen
TexGen.exe - converted all remaining external pas scripts to native code
TexGen.exe - added OpenGl renderer and options to generate object LOD textures and tree/grass LOD billboards from models
LODGen.exe - added support for reading Skyrim Special Edition CGID grass data files to place grass billboards in static object LOD meshes
LODGen.exe - PathGrass= path to folder with xy.cgid files
LODGen.exe - GrassMap= file with simple (NIF_FormID) billboard filename to fully qualified (textures\terrain\LODGen\...) billboard filename
LODGen.exe - GrassBrightness*= vertex color multipliers to control overall brightness of grass
LODGen.exe - use optional binary terrain file for pre-pass removing unseen faces for object LOD, TerrainData= as for terrain LOD

 

Share this post


Link to post
Share on other sites

Grass LOD (..\DynDOLOD\docs\help\GrassLOD.html)

32382-1607527597-1755354873.jpeg32382-1607527592-663108581.jpeg32382-1607527474-837888443.jpeg32382-1607527468-1980935158.jpeg

Grass LOD is currently only available for Skyrim Special Edition.

Grass LOD uses grass LOD billboards in object LOD, similar to ultra tree LOD. TexGen can be used to automatically generate the grass LOD billboards.

Grass LOD generation requires a warmed precache from No Grass In Objects for the current load order. It uses the *.CGID files found in the ..\Data\Grass\ folder.

 

Settings

Use version 6 or higher of No Grass In Objects.

Set UseGrassCache = True and OnlyLoadFromCache = True in ..\NetScriptFramework\Plugins\GrassControl.config.txt.

Grass LOD can either start right beyond the active cells (uGridsToLoad) or beyond the large reference distance (uLargeRefLODGridSize).

Set GrassLargeReference to 0 in ..\DynDOLOD\Edit Scripts\DynDOLOD\DynDOLOD_SSE.ini so grass LOD starts right beyond the active cells (uGridsToLoad, default = 5). Use this with DynDOLODGrassMode = 1 in ..\NetScriptFramework\Plugins\GrassControl.config.txt.

Set GrassLargeReference to 1 in ..\DynDOLOD\Edit Scripts\DynDOLOD\DynDOLOD_SSE.ini so grass LOD starts right beyond the large reference distance (uLargeRefLODGridSize, typically between 5 = off and 11). Use this with DynDOLODGrassMode = 2 in ..\NetScriptFramework\Plugins\GrassControl.config.txt.

In case the grass LOD brightness or color seems off (it might depend on weathers or ENB settings), change the GrassBrightnessTop and GrassBrightnessBottom settings in ..\DynDOLOD\Edit Scripts\DynDOLOD\DynDOLOD_SSE.ini.

Change GrassDensity=100 to a lower value in ..\DynDOLOD\Edit Scripts\DynDOLOD\DynDOLOD_SSE.ini to thin out grass LOD for better performance.

 

Generating

Generate grass LOD billboards with TexGen and install the TexGen output as usual.

To enable grass LOD generation, set Grass=1 in ..\DynDOLOD\Edit Scripts\DynDOLOD\DynDOLOD_SSE.ini.

Generate object LOD as usual.

 

Updating

In case only the grass placements in the precache have changed, start DynDOLOD in expert mode, select the desired worldpace and click the Execute LODGen button. Then merge the new output with the existing output, overwriting all older files.

In case only the grass textures have been changed, update the grass LOD billboards with TexGen, then start start DynDOLOD in expert mode, select the desired worldpace and click the Rebuild Atlas button. Then merge the new output with the existing output, overwriting all older files.

To only switch the GrassLargeReference setting, change GrassLargeReference to True or False in ..\DynDOLOD\Edit Scripts\Export\LODGen_SSE_Export_[WORLDSPACE].txt, start DynDOLOD in expert mode, select the desired worldpace and click the Execute LODGen button. Then merge the new output with the existing output, overwriting all older files. Remeber to also change the setting to 0 or 1 in the ..\DynDOLOD\Edit Scripts\DynDOLOD\DynDOLOD_SSE.ini for future LOD generation.

To test different GrassBrightnessTop or GrassBrightnessBottom settings, change GrassLargeReference in ..\DynDOLOD\Edit Scripts\Export\LODGen_SSE_Export_[WORLDSPACE].txt, start DynDOLOD in expert mode, select the desired worldpace and click the Execute LODGen button. Then merge the new output with the existing output, overwriting all older files.

To test different grass LOD densities, change the GrassDensity setting in ..\DynDOLOD\Edit Scripts\Export\LODGen_SSE_Export_[WORLDSPACE].txt, start DynDOLOD in expert mode, select the desired worldpace and click the Execute LODGen button. Then merge the new output with the existing output, overwriting all older files.

To speed things up, limit generation to LOD Level 4 by using the Specific Chunk dropdowns. Use the West/South coordinates to generate and test with a specific BTO file until the desired results are found.

 

Performance

Unsurprisingly showing millions of grass LOD billboards on screen can require a lot of resources.

Try lowering LOD Level 4 distance (fBlockLevel0Distance) in the DynDOLOD SkyUI MCM Settings page or the SkyrimPrefs.INI.

Visually the object LOD for mountains suffers from the shorter distance especially. Consider adding a mesh rule anywhere before the last '\' rule to compensate:
Mesh mask = mountains
LOD Level 4 = Level0
LOD Level 8 = Level0
LOD Level 16 = Level1 or Level2
Flags = VWD
Grid = Far LOD
Reference = Unchanged

Consider using less dense grass settings. Remember to update the cache.

To only generate grass LOD with less density, change GrassDensity=100 to a lower value in ..\DynDOLOD\Edit Scripts\DynDOLOD\DynDOLOD_SSE.ini to thin out grass LOD.

 

Troubleshooting

Not all grass types have LOD / grass LOD billboards

  • Check TexGen generates grass LOD billboards for all desired grass types. Plugins from mods often forget to set object bounds on base records, which filters them out from automatic grass/tree LOD billboard generation. See ..\DynDOLOD\docs\help\TexGenConfiguration.html for more details.

Error processing grass data *.cgid Unable to read beyond the end of the stream. System.IO.EndOfStreamException

  • Delete the *.cgid file. Load the game, open console and type "cow Tamriel x y" without the quotes and the values for x and y from the *.cgid filename to load directly into the cell. No Objects In Grass should then generate the file anew, which hopefully can then be read.

LODGenx64.exe takes a long time or uses a lot of memory

  • Unsurprisingly generating millions grass LOD billboards requires time and memory.
  • Test with a higher value for LODGenThreadSplit= setting in ..\DynDOLOD\Edit Scripts\DynDOLOD\DynDOLOD_SSE.ini to try to reduce peak memory usage.
  • In case there are high resolution terrain LOD meshes installed in the load order, temporarily disable them to see if using the vanilla terrain LOD meshes requires less memory.
  • Use less dense grass for the grass cache and/or lower the GrassDensity in ..\DynDOLOD\Edit Scripts\DynDOLOD\DynDOLOD_SSE.ini setting so less memory is required to generate grass LOD and to increase performance in game.
  • Remove or disable generation of select grass LOD billboards to generate less grass LOD.

Share this post


Link to post
Share on other sites

Why TexGen gives me this error? Always generated correctly and the mod doesn't have any error.

 

image.png

Edited by Delta

Share this post


Link to post
Share on other sites

Cool!

 

Do we want to set "ExtendGrassDistance = True" in the NGIO config file?  Thanks.

You don't need to either way. DynDOLODGrassMode=2 extends automatically.

Share this post


Link to post
Share on other sites

Why TexGen gives me this error? Always generated correctly and the mod doesn't have any error.

 

image.png

The plugin has a duplicate form id as reported by the xEdit plugin loader.

 

The duplicate form id can be removed by loading the plugin in CK and saving it.

Share this post


Link to post
Share on other sites

The plugin has a duplicate form id as reported by the xEdit plugin loader.

 

The duplicate form id can be removed by loading the plugin in CK and saving it.

Weird, the previous version of TexGen didn't warn me. However, it worked, thank you!

Share this post


Link to post
Share on other sites

Do we need to uninstall all billboards that were used in the V2 generation process? Or are the old filepaths ignored by TexGen now that they're no longer needed?

Side note: Congrats and thank you on the tree and grass billboard generation. Having to find or manually create tree billboards was a pain. I didn't think they would ever get automated so this is beyond incredible.

Share this post


Link to post
Share on other sites

Do we need to uninstall all billboards that were used in the V2 generation process? Or are the old filepaths ignored by TexGen now that they're no longer needed?

Side note: Congrats and thank you on the tree and grass billboard generation. Having to find or manually create tree billboards was a pain. I didn't think they would ever get automated so this is beyond incredible.

 

The billboards generated by TexGen have the same path and filename. So the TexGen output will take priority over the original billboards anyways. You can keep them installed, it shouldn't matter.

 

If you keep the original ones installed, you can use that to double check in MO2 if TexGen indeed created all the billboards you expect to have.

 

../DynDOLOD/docs/help/TexGenConfiguration.html explains how to control which billboards TexGen creates. in case you want to mix or whatever.

 

However, for now I assume that the generated billboards will always be the better and preferred option in the future.

Share this post


Link to post
Share on other sites

The billboards generated by TexGen have the same path and filename. So the TexGen output will take priority over the original billboards anyways. You can keep them installed, it shouldn't matter.

 

If you keep the original ones installed, you can use that to double check in MO2 if TexGen indeed created all the billboards you expect to have.

 

../DynDOLOD/docs/help/TexGenConfiguration.html explains how to control which billboards TexGen creates. in case you want to mix or whatever.

 

However, for now I assume that the generated billboards will always be the better and preferred option in the future.

 

Awesome, thanks for the clarification and yes, I would expect the generated ones to look better. Can't wait to try this out!

Share this post


Link to post
Share on other sites
Hi, I got this error when I tried to generate LODs in DynDOLOD 3. Didn't get this on the 2.8 version. I see that it is related to the Forgotten Seasons CC, but this isn't fixable by me according to SSEdit. Do I fix this by unchecking the worldspace in DynDOLOD?

Sorry if this is the wrong place to post this.

[Main Instruction]

Unresolved FormID [0500091C]

 

[Content]

Scripts Script Properties Property Value Object Union Object v2 FormID [0500091C] < Error: Could not be resolved > 

cctwbsse001-puzzledungeon.esm might be the wrong version. 

Error in cctwbsse001-puzzledungeon.esm DLCDwarvenPuzzleDungeon_StaffPedestal "Altar of the Seasons" [ACTI:05000883]

Share this post


Link to post
Share on other sites

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 account

Sign in

Already have an account? Sign in here.

Sign In Now

×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.