Jump to content
  • 0
Sign in to follow this  
z929669

Support for ENB Complex Grass In LOD

Question

@sheson I am wondering if you have looked at complex grass support in LOD. I don't know if it's even possible, given the ENB requirements vs DynDOLOD atlas-texture requirements, but there is no way I can find to get a good LOD match in all lighting/weather conditions with LOD grass behaving similarly to loaded grass in terms of light sources and observer PoV.

Basically, ENB-CG looks at lower-left pixels of 2:1 (vertical:horizontal) texture atlas with diffuse/normal, opacity/specular in the alpha. I'm not sure if this could work using the DynDOLOD atlas and grass components of the super meshes, but figured you would have some idea of the limitations for LOD.

I created CG for vanilla and Cathedral Landscapes for testing purposes if you ever have appetite for looking into it.

Share this post


Link to post
Share on other sites

Recommended Posts

  • 0
8 hours ago, mooit said:

ENB Complex Grass says you don't use these textures for LOD Generation;

What?

8 hours ago, mooit said:

ENB Complex Grass - Patch Compendium for various grass mods at Skyrim Special Edition Nexus - Mods and Community (nexusmods.com)

DynDOLOD3 Alpha97 takes care of this now, or the Complex Grass Author needs to update the complex grass mods to work with the Complex Grass feature?

Creating grass LOD billboards with complex grass texture are supported since Alpha 87. https://dyndolod.info/Changelog

Read the official DynDOLOD documentation and ignore third party posts/guides especially if they are older.

8 hours ago, mooit said:

Also are all the settings to now be changed to 0.500? And I also noticed ';With ENB complex grass' shows all the sections as TopR, no TopB, TopG, BottomR, or BottomG, BottomB.

So if I'm going to use Complex Grass, I should make the settings the same?

On the subject of the grass LOD brightness multipliers, are we still using 1.0 for all of them?

Nowhere in the DynDOLOD documentation does it say to change these vaues to 0.5 or 1.0. If a user needs to change these settings still depends on weather mods and ENB effects or whatever else might change post processing etc. The actual values depends on the mods, settings etc.

As already explained, the defaults for grass is for the vanilla game and the "default settings tested with vanilla complex grass and all other ENB effects disabled."

8 hours ago, mooit said:

LOD4/8/16 should still be Level 0 for Z-fighting, as it was mentioned to me earlier? I'm using Alpha97...

Why would using Level 0 LOD models change anything about z-fighting - if anything they match full models closer, thus are more likely to z-fight.

What does this have to do with complex grass?

8 hours ago, mooit said:

LAST, are there any other new changes I should be aware of that also need editing in any INI, etc.? I did notice the new screen shots for TexGen and DynDOLOD on the wiki.

Read this https://dyndolod.info/Changelog. Read corresponding explanations of the DynDOLOD documentation like https://dyndolod.info/Help/TexGen or https://dyndolod.info/Help/Grass-LOD

8 hours ago, mooit said:

I ran Alpha97 today for the first time, it took twice as long as Alpha95, but I had Complex Grass installed for Folkvangr , and Origins Of Forests, so would the complex grass double the time it takes for Alpha97 to complete?

https://dyndolod.info/Help/Grass-LOD
Note that HD Grass LOD billboards for ENB complex grass use double the triangles, so in case performance is of concern, use half the density.

8 hours ago, mooit said:

Also when I started the game using Alpha97 there was no grass or trees rendered in the distance.

https://dyndolod.info/Help/Grass-LOD#No-Grass-LOD-Check-List

8 hours ago, mooit said:

Going from one version of DynDOLOD to another, do I have to disable DynDOLOD and save the game, then disable, or uninstall DynDOLOD, load the save, then save again?

https://dyndolod.info/Updating

8 hours ago, mooit said:

C:\Users\USER\AppData\Local\Skyrim Special Edition
DynDOLOD_settings
DynDOLOD_SSE_next-object.fid
DynDOLOD_SSE_next-object-esm.fid
DynDOLODesm.fid
DynDOLODesp.fid
Plugins.sseviewsettings


Is it possible in a next release to keep all this under the DynDOLOD directory instead?

This has nothing to with complex grass.

DynDOLOD stores some data in that folder since its inception several years ago. The files should not be deleted when updating. They should survive an update purposefully.

Plugins.sseviewsettings is from xEdit.

Share this post


Link to post
Share on other sites
  • 0
7 hours ago, mooit said:

ENB Complex Grass says you don't use these textures for LOD Generation;

ENB Complex Grass - Patch Compendium for various grass mods at Skyrim Special Edition Nexus - Mods and Community (nexusmods.com)

DynDOLOD3 Alpha97 takes care of this now, or the Complex Grass Author needs to update the complex grass mods to work with the Complex Grass feature?

I have seen myself that TexGen takes the grass texture atlas and splits it and uses the diffuse. I think it also uses the normal, but I would need to look at the BTO to say for sure. That mod page description should be updated. DynDOLOD supported CG starting months ago or more soon after CG was released for ENB, but now it's even better.

7 hours ago, mooit said:

Also are all the settings to now be changed to 0.500? And I also noticed ';With ENB complex grass' shows all the sections as TopR, no TopB, TopG, BottomR, or BottomG, BottomB.

So if I'm going to use Complex Grass, I should make the settings the same?


;With ENB complex grass
; grass LOD brightness multipliers
ComplexGrassBrightnessTopR=0.500
ComplexGrassBrightnessTopR=0.500
ComplexGrassBrightnessTopR=0.500
; make bottom darker to fake shadowing
ComplexGrassBrightnessTopR=0.500
ComplexGrassBrightnessTopR=0.500
ComplexGrassBrightnessTopR=0.500

On the subject of the grass LOD brightness multipliers, are we still using 1.0 for all of them?


; grass LOD brightness multipliers
GrassBrightnessTopR=0.400
GrassBrightnessTopG=0.445
GrassBrightnessTopB=0.450
; make bottom darker to fake shadowing
GrassBrightnessBottomR=0.200
GrassBrightnessBottomG=0.223
GrassBrightnessBottomB=0.225

 

Yes, we are now recommending 0.5 to simplify end-user ability to modify each color up/down for any particular reason. The important thing is that the values are normalized (all equal) so that they introduce no bias to the color outcome. In so doing, color bias in the outcome can be more easily traced to the source (usually ENB) and potentially corrected there if it's not desired. Setting to 0.5 just means that we will proportionately increase Direct/Ambient brightness in TexGen. Since DynDOLOD alpha 96 changed GC grass LOD support, all of this is a bit different, and the old settings will not really work as consistently.

 

7 hours ago, mooit said:

LOD4/8/16 should still be Level 0 for Z-fighting, as it was mentioned to me earlier? I'm using Alpha97...

LAST, are there any other new changes I should be aware of that also need editing in any INI, etc.? I did notice the new screen shots for TexGen and DynDOLOD on the wiki.

I ran Alpha97 today for the first time, it took twice as long as Alpha95, but I had Complex Grass installed for Folkvangr , and Origins Of Forests, so would the complex grass double the time it takes for Alpha97 to complete?

Also when I started the game using Alpha97 there was no grass or trees rendered in the distance.

Going from one version of DynDOLOD to another, do I have to disable DynDOLOD and save the game, then disable, or uninstall DynDOLOD, load the save, then save again?

Did the behaviour of file creation from DynDOLOD change from Alpha95 to 97? Because I now noticed I have this path, I didn't have before.

C:\Users\USER\AppData\Local\Skyrim Special Edition
DynDOLOD_settings
DynDOLOD_SSE_next-object.fid
DynDOLOD_SSE_next-object-esm.fid
DynDOLODesm.fid
DynDOLODesp.fid
Plugins.sseviewsettings


Is it possible in a next release to keep all this under the DynDOLOD directory instead?

THANKS

Z-fighting is not something I have witnessed in grass. This is usually mountains or trees, since they are large and can be seen at distance. Use Level0 to help with those (we set mountain to be Level0/Level0/Level1).

Your ENB should be whatever it is, but I have evened out our day/night CG settings in ENB since Alpha 96. You will need to experiment with your ENB if necessary.

CG increases the time of TexGen marginally, but I haven't noticed any noticeable diff in DynDOLOD.

Always clean save between loading of different DynDOLOD outputs (unless they have the same plugin bits ... i.e., if you change TexGen settings but not the mod list)

Those paths have existed for me since April, but that's a question for @sheson

Share this post


Link to post
Share on other sites
  • 0
1 hour ago, z929669 said:

I have seen myself that TexGen takes the grass texture atlas and splits it and uses the diffuse. I think it also uses the normal, but I would need to look at the BTO to say for sure.

Of course the normalmap texture is being used when grass LOD billboards for complex are generated.
Use the Preview option of TexGen and change the drop down from Diffuse to Normal and compare that to whatever grass has no complex texture.

1 hour ago, z929669 said:

Yes, we are now recommending 0.5 to simplify end-user ability to modify each color up/down for any particular reason. The important thing is that the values are normalized (all equal) so that they introduce no bias to the color outcome. In so doing, color bias in the outcome can be more easily traced to the source (usually ENB) and potentially corrected there if it's not desired.

The default for complex grass is set to 0.75 together with the default for TexGen for exactly this reason, so people can increase brightness. It should leave a bit more fidelity. Nobody is ever going to need to double the brightness.

 Also, with the vanilla complex grass and vanilla game weathers and no other ENB effects but complex grass enabled there seemed to a slight red tint, hence its brightness is a bit lower.

Share this post


Link to post
Share on other sites
  • 0
46 minutes ago, sheson said:

Of course the normalmap texture is being used when grass LOD billboards for complex are generated.
Use the Preview option of TexGen and change the drop down from Diffuse to Normal and compare that whatever grass has no complex texture.

The default for complex grass is set to 0.75 together with the default for TexGen for exactly this reason, so people can increase brightness. It should leave a bit more fidelity. Nobody is ever going to need to double the brightness.

 Also, with the vanilla complex grass and vanilla game weathers and no other ENB effects but complex grass enabled there seemed to a slight red tint, hence its brightness is a bit lower.

Normal being used as well, got it. I assumed as much but want to be careful to state what I don't know for certain. (sidebar: then the alpha CG pixel indicator should be present. Coupled with the fact that all grass LOD on a given BTO share shader properties --and you have total control of the BTO, then ENB should be able to target with CG-related algorithm ... not sure why Boris is saying otherwise).

Default config settings all makes sense, since the config is based on vanilla tested outcomes. We are using an algorithm that works for the Step SSE build (Cathedral weathers, landscapes, and Step ENB). Setting all at a single value for CG and non-CG grass just makes instructions and support simpler, and it should work similarly for those not using our exact build. I can add a note about this though to clarify for pure vanilla CG users.

Share this post


Link to post
Share on other sites
  • 0
45 minutes ago, z929669 said:

Normal being used as well, got it. I assumed as much but want to be careful to state what I don't know for certain. (sidebar: then the alpha CG pixel indicator should be present. Coupled with the fact that all grass LOD on a given BTO share shader properties --and you have total control of the BTO, then ENB should be able to target with CG-related algorithm ... not sure why Boris is saying otherwise).

This all makes sense, since the config is based on vanilla tested outcomes. We are using an algorithm that works for the Step SSE build (Cathedral weathers, landscapes, and Step ENB). Setting all at a single value for CG and non-CG grass just makes instructions and support simpler.

The generated grass LOD billboards have a diffuse and normalmap texture for the default (LOD) shader and are then added to the object LOD diffuse/normalmap atlas textures.

The default (LOD) shaders are not made by ENB to support a single at texture that contains both diffuse and normalmap. Only the ENB full grass shader needs/supports that. There is no reason to use that workaround for shaders that already support the usage of more than one texture.

  • Like 1

Share this post


Link to post
Share on other sites
  • 0
47 minutes ago, sheson said:

The generated grass LOD billboards have a diffuse and normalmap texture for the default (LOD) shader and are then added to the object LOD diffuse/normalmap atlas textures.

The default (LOD) shaders are not made by ENB to support a single at texture that contains both diffuse and normalmap. Only the ENB full grass shader needs/supports that. There is no reason to use that workaround for shaders that already support the usage of more than one texture.

OK, so it still seems like ENB could target/modify/inform/query the default LOD shader in the BTO, so I don't understand his comment about "math is regular as for any object". Full grass and LOD grass are different objects.

PS: In other words, it seems to me like you made it easy for him, but IDK.

PSS: I assume you tested "Vanilla Complex Grass for ENB" mod using default latest 0.475 ENB without modification?

Share this post


Link to post
Share on other sites
  • 0
1 hour ago, z929669 said:

OK, so it still seems like ENB could target/modify/inform/query the default LOD shader in the BTO, so I don't understand his comment about "math is regular as for any object". Full grass and LOD grass are different objects.

PS: In other words, it seems to me like you made it easy for him, but IDK.

PSS: I assume you tested "Vanilla Complex Grass for ENB" mod using default latest 0.475 ENB without modification?

There is nothing easy about editing shaders.

The default (LOD) shader has no clue what the current data represents. It simply has some shader flags/values and textures to do math with. Finding/Using a unique combination of flags/settings in the LOD shader may not be trivial.

Complex grass tests where done with Vanilla Complex Grasses for ENB and ENB 0.475 with only the complex grass effect enabled and any multiplier/amount means it does not affect things.

  • Thanks 1

Share this post


Link to post
Share on other sites
  • 0
1 hour ago, sheson said:

 

Thanks for sharing. These results are similar to testing screens Enzombie posted on that ENB discussion. Vanilla complex grass LOD seems to have less of a difference with full at varying ToD (in the otherwise vanilla game) than Cathedral grasses in Step. It's still most contrasting at midday, but it's only very subtle. With CL grasses under Cathedral Weathers, there is more variation between LOD/full complex grass. The sweet spot is still there, but just a bit less forgiving at midday and/or dawn/dusk, depending on weather and which you are optimizing (or the happy medium between the two).

Ultimately, the difference seems to be due to the vectors of the normal faces of LOD grass billboard models being tangent to sky/ground, whereas the normal faces of loaded grass are at non-perpendicular angles to sky/ground (something between 45-90 degrees):

SkyrimSE 2022-09-14 23-17-54-82.jpg

Given that grass LOD is static and lighting effects are more limited, there is probably no way to compensate outside of randomly varying the billboard normal-face angles relative to the horizontal. I have it matching pretty well in my instance, but vanilla seems more forgiving.

Share this post


Link to post
Share on other sites
  • 0
1 hour ago, z929669 said:

Thanks for sharing. These results are similar to testing screens Enzombie posted on that ENB discussion. Vanilla complex grass LOD seems to have less of a difference with full at varying ToD (in the otherwise vanilla game) than Cathedral grasses in Step. It's still most contrasting at midday, but it's only very subtle. With CL grasses under Cathedral Weathers, there is more variation between LOD/full complex grass. The sweet spot is still there, but just a bit less forgiving at midday and/or dawn/dusk, depending on weather and which you are optimizing (or the happy medium between the two).

Ultimately, the difference seems to be due to the vectors of the normal faces of LOD grass billboard models being tangent to sky/ground, whereas the normal faces of loaded grass are at non-perpendicular angles to sky/ground (something between 45-90 degrees):

SkyrimSE 2022-09-14 23-17-54-82.jpg

Given that grass LOD is static and lighting effects are more limited, there is probably no way to compensate outside of randomly varying the billboard normal-face angles relative to the horizontal. I have it matching pretty well in my instance, but vanilla seems more forgiving.

The direction of the normal vectors of full grass NIF with Nifskope.
TundraGrass01.jpg
These normal vectors are baked into the normal map textures of the HD grass LOD billbaord.

The direction of the normal vectors in DynDOLOD_flat_4x2alt_lod.nif with NiSkope.
DynDOLOD_flat_4x2alt_lod.nif.jpg

The direction of normal vectors of complex grass LOD billboards in BTO with NikSkope.
complexgrassinbto.jpg

The direction of normal vectors of basic grass LOD billboards in BTO with NikSkope.
basicgrassinbto.jpg

As is obvious in the game and my video the complex grass billboards are lit from the side the sun is shining from (e.g. the direction the normal vector faces), while the opposite face is darker. Just like the full complex grass. Hence the sun facing side of full complex grass and their billboard is brightest when the sun is near the horizon.

Basic full grass and its grass LOD has the same brightness of either side of the their double-sided triangle and are brightest at noon when the sun is highest. Hence their normal vector face upwards.

In every case, full grass and LOD grass has x, y, z rotation and in every case the normal vectors are rotated accordingly with the model.

Share this post


Link to post
Share on other sites
  • 0
37 minutes ago, sheson said:

The direction of the normal vectors of full grass NIF with Nifskope.
TundraGrass01.jpg

The direction of the normal vectors in DynDOLOD_flat_4x2alt_lod.nif with NiSkope.
DynDOLOD_flat_4x2alt_lod.nif.jpg

The direction of normal vectors of complex grass LOD billboards in BTO with NikSkope.
complexgrassinbto.jpg

The direction of normal vectors of basic grass LOD billboards in BTO with NikSkope.
basicgrassinbto.jpg

As is obvious in the game and my video the complex grass billboards are lit from the side the sun is shining from (e.g. the direction the normal vector faces), while the opposite face is darker. Just like the full complex grass. Hence the sun facing side of full complex grass and their billboard is brightest when the sun is near the horizon.

Basic full grass and its grass LOD has the same brightness of either side of the their double-sided triangle and are brightest at noon when the sun is highest. Hence their normal vector face upwards.

OK, so it looks like the CG billboards are not perfect verticals but angled a bit up/down, and the normal vectors are quite variable. All I can say is that the normals image I posted demonstrates the difference in normals between LOD and full grass. Here's that file BTW if you want to try. Set EnablePrepass=true in enbseries.ini while using this FX: enbeffectprepass.fx

Share this post


Link to post
Share on other sites
  • 0
45 minutes ago, z929669 said:

OK, so it looks like the CG billboards are not perfect verticals but angled a bit up/down, and the normal vectors are quite variable. All I can say is that the normals image I posted demonstrates the difference in normals between LOD and full grass. Here's that file BTW if you want to try. Set EnablePrepass=true in enbseries.ini while using this FX: enbeffectprepass.fx

You have not opened DynDOLOD_flat_4x2alt_lod.nif in Nifskope and checked the normal vector values...

The vectors are not angled. They are correct (as if the plane is not angled) and match the way the normalmap texture of the billboard is generated.

The vectors are not variable. The vectors rotate with the Model. That is the standard for everything including full grass.

Of course the normal vectors of the full model and flat billboard model point in different directions. The reason is obvious when checking the models.
The normal vectors of the full model are baked into the billboard normal map texture together with the normal map texture of the complex grass texture.

  • Thanks 1

Share this post


Link to post
Share on other sites
  • 0
38 minutes ago, sheson said:

You have not opened DynDOLOD_flat_4x2alt_lod.nif in Nifskope and checked the normal vector values...

The vectors are not angled.

I was looking at the two planes and how they intersect at 90 degrees, but the planes are angled at about 15 degrees from the vertical.

I don't know how to show the normal vecors as you have done.

Share this post


Link to post
Share on other sites
  • 0
34 minutes ago, z929669 said:

I was looking at the two planes and how they intersect at 90 degrees, but the planes are angled at about 15 degrees from the vertical.

I don't know how to show the normal vecors as you have done.

Nifskope shows the normal vectors when you click on "Normals" in the block details of the NiTroShapeData to check their values.

Share this post


Link to post
Share on other sites
  • 0
37 minutes ago, sheson said:

Nifskope shows the normal vectors when you click on "Normals" in the block details of the NiTroShapeData to check their values.

OK, so I can see they are horizontal vectors (0 I think) in DynDOLOD_flat_4x2alt_lod.nif:

image.png

Face normals are angled?

image.png

.... but how do you show them in red as you have done in the BTO?

image.png

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
Sign in to follow this  

  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...

Important Information

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