Jump to content

DynDOLOD 3.00 Alpha 180


sheson

Recommended Posts

Next issue. Relevant log text:

TreeReachTree02 [TREE:000B8A74] Meshes\landscape\trees\reachtree02.nif
    Replaced tree, Billboard found, 3D LOD model found
    Billboard_0: textures\terrain\lodgen\skyrim.esm\reachtree02_000b8a74.dds, textures\default_n.dds
    Billboard_1: textures\terrain\lodgen\skyrim.esm\reachtree02_000b8a74_1.dds, textures\terrain\lodgen\skyrim.esm\reachtree02_000b8a74_1_n.dds
    Billboard_2: textures\terrain\lodgen\skyrim.esm\reachtree02_000b8a74_2.dds, textures\terrain\lodgen\skyrim.esm\reachtree02_000b8a74_2_n.dds
    Level0: meshes\dyndolod\lod\trees\reachtree02_af4e809bpassthru_lod.nif using textures\dyndolod\lod\dyndolodtreelod.dds, textures\dyndolod\lod\dyndolodtreelod_n.dds, textures\lod\gkbbranch1lod.dds, textures\lod\gkbbranchlod_n1.dds, textures\lod\tundradriftwoodbranches01lod.dds, textures\lod\tundradriftwoodbranches01lod_n.dds
    Level1: meshes\dyndolod\lod\trees\reachtree02_af4e809bpassthru_lod.nif using textures\dyndolod\lod\dyndolodtreelod.dds, textures\dyndolod\lod\dyndolodtreelod_n.dds, textures\lod\gkbbranch1lod.dds, textures\lod\gkbbranchlod_n1.dds, textures\lod\tundradriftwoodbranches01lod.dds, textures\lod\tundradriftwoodbranches01lod_n.dds
    Level2: meshes\dyndolod\lod\trees\reachtree02_af4e809bpassthru_lod.nif using textures\dyndolod\lod\dyndolodtreelod.dds, textures\dyndolod\lod\dyndolodtreelod_n.dds, textures\lod\gkbbranch1lod.dds, textures\lod\gkbbranchlod_n1.dds, textures\lod\tundradriftwoodbranches01lod.dds, textures\lod\tundradriftwoodbranches01lod_n.dds
    Dynamic: Meshes\landscape\trees\reachtree02.nif using textures\landscape\mountains\mountainslab02.dds, textures\landscape\mountains\mountainslab02_n.dds, textures\landscape\trees\tundradriftwoodbark01.dds, textures\landscape\trees\tundradriftwoodbark01_n.dds, textures\landscape\trees\tundradriftwoodbranches01.dds, textures\landscape\trees\tundradriftwoodbranches01_n.dds, textures\landscape\trees\reachtreebranch01.dds, textures\landscape\trees\reachtreebranch01_n.dds
    LOD4: Level0
    LOD8: Billboard2 using dyndolod_flat_2x2_lod.nif
    LOD16: Billboard1 using internal

This tree's Level0 LOD has leaves, but the full model does not, and I can't determine where the LOD textures are coming from ... at least what I'm finding does not match. The static model is based on reachtree02, and it is 'dead' just like the full model, but LOD is very leafy:

https://imgbox.com/g/vKvHdp95nk

Any direction in troubleshooting would be appreciated.

Link to comment
Share on other sites

3 hours ago, z929669 said:

Next issue. Relevant log text:


TreeReachTree02 [TREE:000B8A74] Meshes\landscape\trees\reachtree02.nif
    Replaced tree, Billboard found, 3D LOD model found
    Billboard_0: textures\terrain\lodgen\skyrim.esm\reachtree02_000b8a74.dds, textures\default_n.dds
    Billboard_1: textures\terrain\lodgen\skyrim.esm\reachtree02_000b8a74_1.dds, textures\terrain\lodgen\skyrim.esm\reachtree02_000b8a74_1_n.dds
    Billboard_2: textures\terrain\lodgen\skyrim.esm\reachtree02_000b8a74_2.dds, textures\terrain\lodgen\skyrim.esm\reachtree02_000b8a74_2_n.dds
    Level0: meshes\dyndolod\lod\trees\reachtree02_af4e809bpassthru_lod.nif using textures\dyndolod\lod\dyndolodtreelod.dds, textures\dyndolod\lod\dyndolodtreelod_n.dds, textures\lod\gkbbranch1lod.dds, textures\lod\gkbbranchlod_n1.dds, textures\lod\tundradriftwoodbranches01lod.dds, textures\lod\tundradriftwoodbranches01lod_n.dds
    Level1: meshes\dyndolod\lod\trees\reachtree02_af4e809bpassthru_lod.nif using textures\dyndolod\lod\dyndolodtreelod.dds, textures\dyndolod\lod\dyndolodtreelod_n.dds, textures\lod\gkbbranch1lod.dds, textures\lod\gkbbranchlod_n1.dds, textures\lod\tundradriftwoodbranches01lod.dds, textures\lod\tundradriftwoodbranches01lod_n.dds
    Level2: meshes\dyndolod\lod\trees\reachtree02_af4e809bpassthru_lod.nif using textures\dyndolod\lod\dyndolodtreelod.dds, textures\dyndolod\lod\dyndolodtreelod_n.dds, textures\lod\gkbbranch1lod.dds, textures\lod\gkbbranchlod_n1.dds, textures\lod\tundradriftwoodbranches01lod.dds, textures\lod\tundradriftwoodbranches01lod_n.dds
    Dynamic: Meshes\landscape\trees\reachtree02.nif using textures\landscape\mountains\mountainslab02.dds, textures\landscape\mountains\mountainslab02_n.dds, textures\landscape\trees\tundradriftwoodbark01.dds, textures\landscape\trees\tundradriftwoodbark01_n.dds, textures\landscape\trees\tundradriftwoodbranches01.dds, textures\landscape\trees\tundradriftwoodbranches01_n.dds, textures\landscape\trees\reachtreebranch01.dds, textures\landscape\trees\reachtreebranch01_n.dds
    LOD4: Level0
    LOD8: Billboard2 using dyndolod_flat_2x2_lod.nif
    LOD16: Billboard1 using internal

This tree's Level0 LOD has leaves, but the full model does not, and I can't determine where the LOD textures are coming from ... at least what I'm finding does not match. The static model is based on reachtree02, and it is 'dead' just like the full model, but LOD is very leafy:

https://imgbox.com/g/vKvHdp95nk

Any direction in troubleshooting would be appreciated.

Check the last overwrite in the load order of the mentioned LOD mode for Level0l. That is what is being used for LOD level 4.

meshes\dyndolod\lod\trees\reachtree02_af4e809bpassthru_lod.nif using textures\dyndolod\lod\dyndolodtreelod.dds, textures\dyndolod\lod\dyndolodtreelod_n.dds, textures\lod\gkbbranch1lod.dds, textures\lod\gkbbranchlod_n1.dds, textures\lod\tundradriftwoodbranches01lod.dds, textures\lod\tundradriftwoodbranches01lod_n.dds

Link to comment
Share on other sites

7 hours ago, sheson said:

Check the last overwrite in the load order of the mentioned LOD mode for Level0l. That is what is being used for LOD level 4.

meshes\dyndolod\lod\trees\reachtree02_af4e809bpassthru_lod.nif using textures\dyndolod\lod\dyndolodtreelod.dds, textures\dyndolod\lod\dyndolodtreelod_n.dds, textures\lod\gkbbranch1lod.dds, textures\lod\gkbbranchlod_n1.dds, textures\lod\tundradriftwoodbranches01lod.dds, textures\lod\tundradriftwoodbranches01lod_n.dds

That's what I mean ... the passthru model doesn't use taht texture, so not sure where this is defined if not here:

image.png

Link to comment
Share on other sites

16 minutes ago, z929669 said:

That's what I mean ... the passthru model doesn't use taht texture, so not sure where this is defined if not here:

image.png

It must be a different file in NifSkope. Use  xEdit asset browser to open the file from the winning container location.

Link to comment
Share on other sites

14 minutes ago, sheson said:

Obviously you have opened a different file in NifSkope. Use MO2 right data tab to find the file/mod or use xEdit asset browser to open the file from the winning container lcoation.

I opened the file referenced:

meshes\dyndolod\lod\trees\reachtree02_af4e809bpassthru_lod.nif 

There is only one in my load order. If I can find the definition, I can try to do something about it.

EDIT: Never mind, I think I have another that I found. Sorry!

Link to comment
Share on other sites

5 minutes ago, z929669 said:

I opened the file referenced:


meshes\dyndolod\lod\trees\reachtree02_af4e809bpassthru_lod.nif 

There is only one in my load order. If I can find the definition, I can try to do something about it.

Then most likely the load order changed between generating LOD and now. Generate LOD for the current load order.

Link to comment
Share on other sites

@sheson

Per the doc, to modify 'fullness' of tree branches in Level0-2 statics, it is suggested that the NiAlphaProperty alpha threshold should be modified rather than the alpha in the BSLightingShaderProperty. I am not noticing any change in Nifskope or in game after changing alpha threshold in NiAlphaProperty of the static from 140 to 0. I also am guessing that the value of 140 is interpreted as 128, due to the cap.

I am changing this in the static model without re-running DynDOLOD ... must I regenerate via DynDOLOD to see the change in game?

Link to comment
Share on other sites

1 hour ago, z929669 said:

@sheson

Per the doc, to modify 'fullness' of tree branches in Level0-2 statics, it is suggested that the NiAlphaProperty alpha threshold should be modified rather than the alpha in the BSLightingShaderProperty. I am not noticing any change in Nifskope or in game after changing alpha threshold in NiAlphaProperty of the static from 140 to 0. I also am guessing that the value of 140 is interpreted as 128, due to the cap.

I am changing this in the static model without re-running DynDOLOD ... must I regenerate via DynDOLOD to see the change in game?

LOD is generated for the current load order with the LOD assets that are installed at the time. In particular, object LOD are a collection of supermeshes made from combining LOD models. The generated object LOD files (which are just large NIF models) are loaded and placed in the game.
If the load order or the LOD assets change used for LOD generation change, LOD needs to be generated again for the new load order and/or assets to be show in generated LOD.

The alpha setting on the shader defines the transparency of the surface regardless of any alpha information in the texture.

As explained in the manual, in case a model used for LOD generation has a NiAlphaProperty, the threshold value of it is used to adjust the alpha of the input texture (and the mipmaps that are generated for it with alpha-to-coverage) to account for the fixed threshold of LOD while the texture is added to the LOD atlas texture. the threshold is quantized into 16 steps to prevent ending up with too many similarly adjusted textures.

For the changed thresholds in the LOD models to have an effect on the generated LOD meshes and textures, the LOD meshes and textures need to be generated after changing the LOD models.

Link to comment
Share on other sites

1 hour ago, sheson said:

The alpha setting on the shader defines the transparency of the surface regardless of any alpha information in the texture.

As explained in the manual, in case a model used for LOD generation has a NiAlphaProperty, the threshold value of it is used to adjust the alpha of the input texture (and the mipmaps that are generated for it with alpha-to-coverage) to account for the fixed threshold of LOD while the texture is added to the LOD atlas texture. the threshold is quantized into 16 steps to prevent ending up with too many similarly adjusted textures.

Alright, the need to regen makes sense. I wasn't thinking comprehensively. The 3D statics textures are not used directly but rather in the supermeshes (which are used directly), so change to any aspect of the static mesh must then be incorporated into the supermesh during LOD(re)Gen to be resolved in game. Sound correct?

Regarding alpha (sorry to rehash what is probably 'basic' prerequisite knowledge):

  • There are potentially two definitions in the static model.
    1. One inherent to any textures referenced by the model
    2. One defined in the BSLightingShaderProperty (what I assume you mean by "alpha setting on the shader")
  • NiAlphaProperty alpha threshold value affects #1 and NOT #2?
  • #2 on the 3D static is binary, and should only be 0 or 1?
  • Alpha threshold value/16? If the threshold is 128, 64, or 0, what are the relative impacts to the crown appearance in game?

 

Link to comment
Share on other sites

So unrelated to my follow-up Qs just above, I have questions on LODgen efficiency for testing. I want to only generate and use 3D statics and not tree billboards (so that I can determine if any 3D statics are borked without having to guess if I am looking at a tree billboard). I know I need to tick "Tree/Gass LOD Billboards" & 'Render' option in TexGen, but which of the two top options is necessary? I'm also unsure what these settings correspond to in DynDOLOD:

image.pngimage.png

Link to comment
Share on other sites

2 hours ago, z929669 said:

Alright, the need to regen makes sense. I wasn't thinking comprehensively. The 3D statics textures are not used directly but rather in the supermeshes (which are used directly), so change to any aspect of the static mesh must then be incorporated into the supermesh during LOD(re)Gen to be resolved in game. Sound correct?

Regarding alpha (sorry to rehash what is probably 'basic' prerequisite knowledge):

  • There are potentially two definitions in the static model.
    1. One inherent to any textures referenced by the model
    2. One defined in the BSLightingShaderProperty (what I assume you mean by "alpha setting on the shader")
  • NiAlphaProperty alpha threshold value affects #1 and NOT #2?
  • #2 on the 3D static is binary, and should only be 0 or 1?
  • Alpha threshold value/16? If the threshold is 128, 64, or 0, what are the relative impacts to the crown appearance in game?

 

The NiAlphaPropertety requires/works with the alpha channel of the texture.

The Alpha setting on the shader defines  how how opaque the entire texture is regardless of its alpha channel.
It can have any value between 0 and 1, even in LOD. It is always set to 1 in the LOD  meshes.

You adjust the threshold in the LOD model asset. Since this can not be done in the generated LOD meshes, DynDOLOD adjusts the threshold in the LOD texture, so it works with the hardcoded LOD meshes threshold of 128.

The impact is that the threshold of the full model is used to adjust the alpha channel of the input full texture when it is being added to the LOD texture atlas and becomes a LOD texture, so that whatever pixels in the full model are transparent/opaque are also transparent/opaque in the LOD despite the LOD having a hardcoded threshold of 128.

 

Link to comment
Share on other sites

2 hours ago, z929669 said:

So unrelated to my follow-up Qs just above, I have questions on LODgen efficiency for testing. I want to only generate and use 3D statics and not tree billboards (so that I can determine if any 3D statics are borked without having to guess if I am looking at a tree billboard). I know I need to tick "Tree/Gass LOD Billboards" & 'Render' option in TexGen, but which of the two top options is necessary? I'm also unsure what these settings correspond to in DynDOLOD:

image.pngimage.png

I suggest to read the included TexGen manual and help.
The first options has been available for years and still generates a select list of object LOD textures.
As has been discussed over and over again for years, that first option can not update rendered object LOD textures. Now with the addition of the second option, a select list of rendered object LOD can updated as well.
"Stitched object LOD textures are direct derivativs of resized full textures."
"Rendered object LOD textures are rendered from special models in the ..\DynDOLOD\Edit Scripts\DynDOLOD\Render\Objects\ folder."

DynDOLOD will use whatever object LOD textures are currently installed in the load order. If they are not updated with TexGen, some will still be vanilla, some will be from DynDOLOD Resources for vanilla and some from mods.

All options that are enabled by default are "necessary" so that default object LOD and tree LOD generation use the best possible  textures for the current load order. 

Unless you have a 4k or 8k monitor you not need to set 1024 in TexGen for the stitched or rendered object LOD textures.

Remember that DynDOLOD 3 ALPHA is work in progress.  I still need to update the texts, since nobody really pays much attention to t he manuals.

From the help: "This sets the typical base size of the generated object LOD textures. The default is 256."
Currently the generated stitched/rendered object textures can be anything from 32 to 2k with the base of 256.
The defaults are good for a screen resolution of 1440p and lower.

The stitched and rendered object LOD textures will probably also get a max texture size dropdown like the billboards.

The dropdowns in DynDOLOD say "Max tile size..."
From the help:
"Max tile size LOD
sets the maximum resolution a single object LOD texture can occupy on the object LOD texture atlas."
 "Max tile size full sets the maximum resolution a single full texture can occupy on the object LOD texture atlas."

If a texture is larger, it is shrunk to the max tile size when it is added to the texture atlas.

Again, the default are supposed to be good for 1440p.

In a future update I plan to add more explanations to the manual, including how to determine live in the game the best resolution for a LOD texture in addition to the more mathematical explanations for billboards.

Link to comment
Share on other sites

Great responses. Thanks a LOT for taking the time.

I have read through all of the relevant manuals by now, but I can get hung up on phraseology and semantics, so sometimes seeing it explained in a different or familiar context really helps.

The good news is that I think I am picking it up with your continued responses and can share what I know likewise ... without spreading misinformation intentionally or otherwise!

Link to comment
Share on other sites

Having some issues using Dyndolod 3 for SSE (texgen works fine) where it says (Atleast this is how i interpret it) I'm missing files from some mods? Jedi Trees instructions said to use Texgen to generate billboards so I'm not sure what the issue is.

https://pastebin.com/J8DCjReg

Is this an issue or something I can ignore, because it seems like some trees do infact not have billboards (And I'm pretty sure its the Jedi Trees ones) 

Edited by patriklannebrink
Link to comment
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 Guidelines, Privacy Policy, and Terms of Use.