Jump to content

Recommended Posts

Posted
2 hours ago, godescalcus said:

Sorry, can't help it... LOL - you CRC32'd my tampered Nature of The Wild Lands and caught me red handed, so here's my confession. I broke the mod apart to avoid adding everything, as my trees are based on Ulvenwald. So I made Nature "modular", meaning I separated tree definitions, statics, etc to one base plugin, and worldspace referneces to a set of modules containing only what I wanted to add. Added the marsh in its entirety, and the autumn birches plugin because it was all that was needed to override Ulvenwald's fall forest trees. Added Solstheim edits because they would fit into a light plugin, and for good measure... but still haven't tested it extensively. Here's a clip of my frankenstein forests

image.thumb.png.4724536705ddfc2305591ca5314566f9.png

So the reason you see a different CRC32 is because I had to redirect the autumn birch plugin master from the original Nature of The Wild Lands to my broken down version, but that plugin in particular contains no other edits.

I did correct the birch editorIDs on the DenserFallForest plugin, which is a different matter - and seems to have been the one that fixed my problem. DynDOLOD didn't give out the assertion error this time at 6 minutes, and it's been doing its thing for 18 minutes now.

Edit: DynDOLOD finished, thanks!

CRC32 of the full tree model always changes when the NIF is edited and saved. It has noting to do with the plugin or edits of the plugin. If you change the full NIF, then the LOD must be updated with the new CRC32 ... and probably should be rebuilt completely, depending on the change.

Posted (edited)

I'm now a bit confused with what I may or may not have done to the tree models. I did change their textures to bring them closer to aspens ablaze autumn variety, but don't remember doing anything to the meshes - although I cracked them open to check what might have been causing leaves to look a bit blander than their textures would indicate. I don't recall saving the mesh, but then, I may have. I'll reinstall the originals, even because, although DynDOLOD did succeed in generating lods for this build, I ended up with Ulvenwald lods!

Edit: I fetched at least one of the autumn aspens from an earlier version, because it looked prettier :P So there's probably the CRC difference, and since I hadn't gone through the hybrids yet, I overlooked checking whether there was a hybrid for that older mesh. 

Edited by godescalcus
Posted
55 minutes ago, heheloveer said:

https://www.nexusmods.com/skyrimspecialedition/mods/25577

Stumbled upon this mod while trying to write a new LOD generation guide for Chinese players. There's no need to use this mod if Large Reference Bugs Workarounds are applied, right?

https://dyndolod.info/Help/Large-References#Large-Reference-Bugs
Watch the video. That is the bug caused by initial disabled large reference.

A large reference or its enable parent that has the Initially Disabled flag can trigger the bugs. The type of plugin does not matter. It is the cause for the example shown in the video above - the problematic large reference is defined in Skyrim.esm. DynDOLOD can create workarounds for some occurrences, including the vanilla one shown in the video. For all others, a warning message Initially disabled large reference is written to the message log.

This particular bug has been addressed by DynDOLOD since years by making a non large reference copy and hiding the large reference underground. With the the large reference bugs workarounds enabled, it is fixed keeping the actual large reference.

  • Thanks 1
Posted (edited)
35 minutes ago, sheson said:

https://dyndolod.info/Help/Large-References#Large-Reference-Bugs
Watch the video. That is the bug caused by initial disabled large reference.

A large reference or its enable parent that has the Initially Disabled flag can trigger the bugs. The type of plugin does not matter. It is the cause for the example shown in the video above - the problematic large reference is defined in Skyrim.esm. DynDOLOD can create workarounds for some occurrences, including the vanilla one shown in the video. For all others, a warning message Initially disabled large reference is written to the message log.

This particular bug has been addressed by DynDOLOD since years by making a non large reference copy and hiding the large reference underground. With the the large reference bugs workarounds enabled, it is fixed keeping the actual large reference.

Ah yes, that makes sense. I knew the mod was trying to address a large reference bug since I saw that video on your website, even though the author seemed to have no idea how the bug came to be exactly. They said in the description that the mod should only be useful for users with a heavily modded game so I automatically assumed this was a overwritten-by-esp type of bug.

Honestly, I think large reference bugs should really get more attention. They can cause some really noticeable visual glitches and the workaround is IMO one of the most important features added by DynDOLOD 3 to date. Hopefully after it gets out of the experimental phase people will have a better understanding of this particular problem and realize its importance.

Edited by heheloveer
Posted (edited)

What's the default fallback for LOD4 when you set the rules to level0, for trees where there is no passthru model installed? Is there a way to force LOD4 to fallback to either 4x2 billboards, or even a full tree model, when the preferred rule is not possible due to non-existing assets?

Edited by godescalcus
Posted
25 minutes ago, godescalcus said:

What's the default fallback for LOD4 when you set the rules to level0, for trees where there is no passthru model installed? Is there a way to force LOD4 to fallback to either 4x2 billboards, or even a full tree model, when the preferred rule is not possible due to non-existing assets?

https://dyndolod.info/Help/Ultra-Tree-LOD#Generating
Depending on the mesh mask rules the LOD for such trees will use (hybrid) 3D tree LOD models (if available) or use tree LOD billboards directly or as fallback in case a 3D tree LOD is not found. The default fallback is defined by the TreeFullFallBack=1 setting in ..\DynDOLOD\Edit Scripts\DynDOLOD\DynDOLOD_[GAME MODE].ini. 1 = Billboard, 2 = Bilboard2 etc.

Posted
3 minutes ago, sheson said:

https://dyndolod.info/Help/Ultra-Tree-LOD#Generating
Depending on the mesh mask rules the LOD for such trees will use (hybrid) 3D tree LOD models (if available) or use tree LOD billboards directly or as fallback in case a 3D tree LOD is not found. The default fallback is defined by the TreeFullFallBack=1 setting in ..\DynDOLOD\Edit Scripts\DynDOLOD\DynDOLOD_[GAME MODE].ini. 1 = Billboard, 2 = Bilboard2 etc.

So, considering your dire warning about setting TreeFullFallBack=0, I might set it to 4 and ensure that any fallback billboards will use the 4x2 model.

As a follow-up question, I noticed my billboard textures were a bit fuzzy, even for large pines... I had texgen units per pixel using the recommended for 1080p (my panel and game resolution are actually 1440p). Would it be absurd to use an even higher density, such as the 5.5 units per pixel recommended for 4k, to ensure the best possible looking LOD4 when I know for starters that most of my trees don't have hybrids? Or are your recommendations already the limit, considering the height of the tree and the closest distance at which LOD4 would be rendered? And would "oversampling" like this have a benefit in alpha channel generation for very finely cut tree models?

Posted
4 minutes ago, godescalcus said:

So, considering your dire warning about setting TreeFullFallBack=0, I might set it to 4 and ensure that any fallback billboards will use the 4x2 model.

As a follow-up question, I noticed my billboard textures were a bit fuzzy, even for large pines... I had texgen units per pixel using the recommended for 1080p (my panel and game resolution are actually 1440p). Would it be absurd to use an even higher density, such as the 5.5 units per pixel recommended for 4k, to ensure the best possible looking LOD4 when I know for starters that most of my trees don't have hybrids? Or are your recommendations already the limit, considering the height of the tree and the closest distance at which LOD4 would be rendered? And would "oversampling" like this have a benefit in alpha channel generation for very finely cut tree models?

See https://dyndolod.info/Help/Texture-Resolution#Determine-Sensible-Texture-Resolutions

LOD is either transparent or opaque with a fixed threshold of 128, e.g. there is no alpha blending only alpha testing.

Posted (edited)

When creating trunk and crown meshes, are there any steps you recommend doing in NifSkope to "tidy things up"?

Do we need to remove animations from crown meshes, or sanitize, or remove invalid stuff or any other "spell" - or does LodGEN perform all the necessary steps when combining them into hybrids? I mean, other than what you describe regarding editing UVs.

In the same vein, should we do anything about trunks prior to render with texgen, like removing collision object when present, or simply remove the crown and save, since texgen only takes "snapshots" of the rendered mesh, and lodgen uses the chosen mesh template for trunks?

Edited by godescalcus
Posted
7 hours ago, godescalcus said:

When creating trunk and crown meshes, are there any steps you recommend doing in NifSkope to "tidy things up"?

Do we need to remove animations from crown meshes, or sanitize, or remove invalid stuff or any other "spell" - or does LodGEN perform all the necessary steps when combining them into hybrids? I mean, other than what you describe regarding editing UVs.

In the same vein, should we do anything about trunks prior to render with texgen, like removing collision object when present, or simply remove the crown and save, since texgen only takes "snapshots" of the rendered mesh, and lodgen uses the chosen mesh template for trunks?

https://dyndolod.info/Help/3D-Tree-LOD-Model
The basic idea is to split a full model into two static (collision, animation, skin, bone data etc. removed) files.

See any of the crowns ..\DynDOLOD\docs\trees.ultra\tools\hybrids\input\*passthru_lod.nif and trunks ..\DynDOLOD\Edit Scripts\DynDOLOD\Render\Skyrim\Billboards\DynDOLOD\lod\trees\*_trunk.nif included in the DynDOLOD Standalone download archive. Everything else that is not needed is properly removed to avoid issues or errors.

The separated crowns for the 3D tree LOD model creation is irrelevant for TexGen. It just creates the billboards textures and text files from the trunks.

Posted (edited)

I made the separate trunk and crown meshes for 187 of Ulvenwald's 350 tree models (which, by my estimation, correspond to 99% of the trees referenced) and combined them with lodgen, then installed the hybrids as a new mod. Ran texgen and dyndolod and the result is (as expected) much better than before, but ran into an issue where the hybrid models seem to be more then 2x the size of the full model (adding 2 in-game screenshots to illustrate). In no moment did I manually edit anything about the meshes, simply followed instructions to produce the hybrids. Used as tree rules: Lod4=Level0; Lod8=Lod16=Billboard4; Lod32=Billboard6; VWD on; grid=FarLOD. In texgen I used texture sizes and bit density as recommended for 1440p, then ticked both Tree and HD Tree (not Rendered, since I had already built the hybrids).

Do I need additional steps to make the hybrid lods match the full model in scale?

Example screenshots (second screenshot taken past the first small pine, but the ruins are good for scale)

20230510080017_1.thumb.jpg.c6657edfd1530467699b1ca2c7353120.jpg20230510080025_1.thumb.jpg.90822f3f29802a6aaa0fec27d92b5d44.jpg

I also noticed the hybrids seem to react to light differently than the full models (brighter), but I could probably live with that for now, one problem at a time ;) Appreciate your help in getting this far, and would be happy if I could fix the issue with scale.

Edited by godescalcus
Posted
1 hour ago, godescalcus said:

I made the separate trunk and crown meshes for 187 of Ulvenwald's 350 tree models (which, by my estimation, correspond to 99% of the trees referenced) and combined them with lodgen, then installed the hybrids as a new mod. Ran texgen and dyndolod and the result is (as expected) much better than before, but ran into an issue where the hybrid models seem to be more then 2x the size of the full model (adding 2 in-game screenshots to illustrate). In no moment did I manually edit anything about the meshes, simply followed instructions to produce the hybrids. Used as tree rules: Lod4=Level0; Lod8=Lod16=Billboard4; Lod32=Billboard6; VWD on; grid=FarLOD. In texgen I used texture sizes and bit density as recommended for 1440p, then ticked both Tree and HD Tree (not Rendered, since I had already built the hybrids).

Do I need additional steps to make the hybrid lods match the full model in scale?

Example screenshots (second screenshot taken past the first small pine, but the ruins are good for scale)

20230510080017_1.thumb.jpg.c6657edfd1530467699b1ca2c7353120.jpg20230510080025_1.thumb.jpg.90822f3f29802a6aaa0fec27d92b5d44.jpg

I also noticed the hybrids seem to react to light differently than the full models (brighter), but I could probably live with that for now, one problem at a time ;) Appreciate your help in getting this far, and would be happy if I could fix the issue with scale.

https://stepmodifications.org/forum/topic/18689-tree-lod-scale-troubleshooting/
If a 3D tree LOD model does not match the size of the full model tree, then there is a problem with the 3D tree LOD model.
As explained before, while the game typically ignores translation, rotation, scale on the root node when placing references, LOD generation does not. Remove any translation, rotation and scale from the root of the 3D tree LOD model.

https://dyndolod.info/Help/Ultra-Tree-LOD#3D-Tree-LOD-Brightness

Posted (edited)
8 hours ago, sheson said:

https://dyndolod.info/Help/3D-Tree-LOD-Model
The basic idea is to split a full model into two static (collision, animation, skin, bone data etc. removed) files.

See any of the crowns ..\DynDOLOD\docs\trees.ultra\tools\hybrids\input\*passthru_lod.nif and trunks ..\DynDOLOD\Edit Scripts\DynDOLOD\Render\Skyrim\Billboards\DynDOLOD\lod\trees\*_trunk.nif included in the DynDOLOD Standalone download archive. Everything else that is not needed is properly removed to avoid issues or errors.

The separated crowns for the 3D tree LOD model creation is irrelevant for TexGen. It just creates the billboards textures and text files from the trunks.

I compared my crowns with those shipped with DynDOLOD as you suggested, and there are differences you can notice on the node tree. I also didn't perform any special steps to remove animation, skin and bone data (I did remove collision meshes, if that's enough for removing collision). I've seen your instructions to remove skin, also about UV editing - and I checked a few of these meshes at random and saw their UVs were ok, so I skipped checking all of them, for the purpose of what is still just an experiment. I'm aware of the need to remove animations, I think, because you told me so years ago on discord - but I can't find the relevant instructions there, or in the manual. I'll look around. I also remember your suggestion to use a couple of "spells" on nifskope as "general good practice", but fail to recall which.

One other issue is that I noticed how the original meshes have a huge number of vertices - is there a good "hack" to batch optimise them? Another of zilav's magic wands? Or does it have to be done one by one - and in such case, can Nifskope handle it? I've read the post you linked in your later answer about tree scale and noticed that 3DS Max can be used for this (optimisation, assuming that includes reducing vertex count), but considering I don't have the program (and Blender is free) - can Blender be used (productively) for the whole workflow of optimising crown meshes?

Edited by godescalcus
Posted
8 hours ago, sheson said:

The separated crowns for the 3D tree LOD model creation is irrelevant for TexGen. It just creates the billboards textures and text files from the trunks.

It seems like you are saying here that if the full model is used as the treeModel_CRC32_trunk.nif, one would still get trunk billboards when using Render option. I've never tried that and always have removed crown/collision.

I've also found that leaving the Tree_Anim shader flag doesn't hurt anything, and not messing with removing this flag is a big time saver.

6 hours ago, godescalcus said:

I made the separate trunk and crown meshes for 187 of Ulvenwald's 350 tree models (which, by my estimation, correspond to 99% of the trees referenced) and combined them with lodgen, then installed the hybrids as a new mod. Ran texgen and dyndolod and the result is (as expected) much better than before, but ran into an issue where the hybrid models seem to be more then 2x the size of the full model (adding 2 in-game screenshots to illustrate). In no moment did I manually edit anything about the meshes, simply followed instructions to produce the hybrids. Used as tree rules: Lod4=Level0; Lod8=Lod16=Billboard4; Lod32=Billboard6; VWD on; grid=FarLOD. In texgen I used texture sizes and bit density as recommended for 1440p, then ticked both Tree and HD Tree (not Rendered, since I had already built the hybrids).

Do I need additional steps to make the hybrid lods match the full model in scale?

Example screenshots (second screenshot taken past the first small pine, but the ruins are good for scale)

20230510080017_1.thumb.jpg.c6657edfd1530467699b1ca2c7353120.jpg20230510080025_1.thumb.jpg.90822f3f29802a6aaa0fec27d92b5d44.jpg

I also noticed the hybrids seem to react to light differently than the full models (brighter), but I could probably live with that for now, one problem at a time ;) Appreciate your help in getting this far, and would be happy if I could fix the issue with scale.

Scale and relative positioning of crown/trunk will be off if you copy the crown/trunk with 1.0 scaling and 0.0 transform/rotation when it's a child of a parent/grandparent node that has scaling != 1.0 or transform/rotation != 0.0. You must extrapolate that info from all parents, summing the transforms/rotations and multiplying the scales from all parents.

You can optimize the crowns using a 3D app like Blender, Maya, or 3Ds Max. That's a whole other ball of wax though. There's also things like InstaLOD, but that's not free or easy to get a trial

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
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...

Important Information

By using this site, you agree to our Guidelines, Privacy Policy, and Terms of Use.