Jump to content
  • 0

Full grass fade range in active cells


ikonomov

Question

I've noticed an issue recently with grass.  I have tested with both Grass Cache Helper NG and Grass Cache Fixes.  The problem is that I only have the grass switching from the LOD billboards to the loaded cell full model without issues when I walk forward.  I can see the transition but it's hardly noticeable.  If I look back towards the direction I just came from or if I walk backwards, however, the grass doesn't seem to change as expected from the loaded cell grass into the LOD generated billboards.  More specifically, I can still see a portion of grass fading out as I walk backwards, just beyond the full grass in the loaded cell, transitioning to little or no grass and some distance further changing into the LOD grass billboards.  I wonder if this is some known bug and behavior, or maybe something is not working as it should.  I've used NGIO prior to AE and I don't remember having this issue, but it's also possible that I've simply not noticed it.
 

Edited by ikonomov
Link to comment
Share on other sites

11 answers to this question

Recommended Posts

  • 1
1 hour ago, ikonomov said:

I have been using all the recommended settings in the videos uploaded this far.  When using Grass Cache Helper NG most of the important settings are set by a DLL plugin during gameplay and when using Grass Cache Fixes I've made sure all the settings are set as recommended.  For both mods when using DynDOLOD Mode 1 for grass it's expected that grass fade is disabled.  The important settings appear to be fGrassMaxStartFadeDistance, fGrassStartFadeDistance and fGrassFadeRange.  When I set these to 20000 instead of 6144/14128 everything works flawlessly.  The only consequence is likely a slight increase in memory usage due to full grass being delayed when unloading from the active cell, but it could also very well be that there is no difference whatsoever.  The video posted below shows how things work with the values set to 20000.  I've reported my findings to Shizof, the creator of Grass Cache Helper NG, once he is able to test them hopefully he'll update the mod.  With Grass Cache Fixes no update is necessary since those values can be manually changed as needed.

 

Test only increasing fGrassStartFadeDistance. fGrassMaxStartFadeDistance should only modify the in-game slider. Test what happens if you set fGrassFadeRange to 0 and fGrassStartFadeDistance to 20272.

Link to comment
Share on other sites

  • 1
10 minutes ago, ikonomov said:

Yeah, works fine with fGrassFadeRange to 0 and fGrassStartFadeDistance to 20272 as well.  I also set fGrassMaxStartFadeDistance to 20272.  So if fGrassStartFadeDistance is the distance from the player at which the grass will start to fade, this is really the only value that's relevant if we aren't using the fading feature and fGrassFadeRange doesn't matter.  I makes sense that these are the values that should be used.  DoubleYou, why did you use 6144/14128 in your mod if fading is expected to be disabled?

So the Fade Range gradually fades the height of grass. By setting Fade Start to the maximum, you are telling the grass to never fade the height in the loaded cells. Your grass isn't tall enough so it benefits from a higher fade start, as the height decrease is too much and it is fading into the ground. This will depend upon the grass mods used. Generally Fade Range can save some performance which is why I advise using higher values of it across the full 20272 (hypotenuse) range, but in your case you need to lower Fade Range and increase Fade Start.

The Fade In effect that needs to be disabled is a different type of fade altogether.

Link to comment
Share on other sites

  • 0
On 3/2/2024 at 2:10 AM, ikonomov said:

I've noticed an issue recently with grass.  I have tested with both Grass Cache Helper NG and Grass Cache Fixes.  The problem is that I only have the grass switching from the LOD billboards to the loaded cell full model without issues when I walk forward.  I can see the transition but it's hardly noticeable.  If I look back towards the direction I just came from or if I walk backwards, however, the grass doesn't seem to change as expected from the loaded cell grass into the LOD generated billboards.  More specifically, I can still see a portion of grass fading out as I walk backwards, just beyond the full grass in the loaded cell, transitioning to little or no grass and some distance further changing into the LOD grass billboards.  I wonder if this is some known bug and behavior, or maybe something is not working as it should.  I've used NGIO prior to AE and I don't remember having this issue, but it's also possible that I've simply not noticed it.

Read https://dyndolod.info/Official-DynDOLOD-Support-Forum#Post-Logs  which DynDOLOD log and debug log to upload when making posts.

You have a problem with full grass render distance. It is fading out too early before a row of cells is unloaded and replaced by LOD.
DynDOLOD does not affect full grass. DynDOLOD does not change how the game works. https://dyndolod.info/How-LOD-Works
Disable all LOD with tll. What remains are the active cells, which contain the full grass.
Full grass is controlled by INI settings. https://stepmodifications.org/wiki/Guide:Skyrim_INI/Grass
Make sure full grass always renders to the edge of the active cells.

NGIO renders full grass to the edge of the uGridsToLoad with setting DynDOLODGrassMode=1 in its INI.
Grass Cache Helper NG explains that it "Automatically calculates and sets iGrassCellRadius, fGrassStartFadeDistance, fGrassFadeRange using uGridsToLoad setting" in its description. AFAIK it requires AutoGrassDistanceSettings=1 and EnableGrassFade=0 in its INI.
Make sure the DLL plugin of either of these mods is actually active and working.

Link to comment
Share on other sites

  • 0
On 3/2/2024 at 9:11 AM, sheson said:

Read https://dyndolod.info/Official-DynDOLOD-Support-Forum#Post-Logs  which DynDOLOD log and debug log to upload when making posts.

You have a problem with full grass render distance. It is fading out too early before a row of cells is unloaded and replaced by LOD.
DynDOLOD does not affect full grass. DynDOLOD does not change how the game works. https://dyndolod.info/How-LOD-Works
Disable all LOD with tll. What remains are the active cells, which contain the full grass.
Full grass is controlled by INI settings. https://stepmodifications.org/wiki/Guide:Skyrim_INI/Grass
Make sure full grass always renders to the edge of the active cells.

NGIO renders full grass to the edge of the uGridsToLoad with setting DynDOLODGrassMode=1 in its INI.
Grass Cache Helper NG explains that it "Automatically calculates and sets iGrassCellRadius, fGrassStartFadeDistance, fGrassFadeRange using uGridsToLoad setting" in its description. AFAIK it requires AutoGrassDistanceSettings=1 and EnableGrassFade=0 in its INI.
Make sure the DLL plugin of either of these mods is actually active and working.

I understand that the problem I have is with full grass in the loaded cell and not with DynDOLOD.  I first posted my question in the Grass Cache Helper NG, after making sure that it is using the correct settings and the DLL is active:

GrassCacheHelperNG.ini
[Settings]
AutoGrassDistanceSettings=1
EnableGrassFade=0

Shizof replied:

Quote

This is not related to this mod, it's related to lods.
If the grass is fading in and out smoothly, then this mod is working correctly for you. Grass lods are separate things and sheson would probably explain it better for you, but I don't think partial loading grass lods for unloaded cells is something that's implemented, that's why you are experiencing that.

I'm not sure he understood my explanation of the problem.  I decided afterwards to test with Grass Cache Fixes because when using this solution I can check and make sure that all related settings are set correctly:

Skyrim.ini
[General]
uGridsToLoad (not set)
[Grass]
bAllowCreateGrass=0
bAllowLoadGrass=1
fGrassMaxStartFadeDistance=6144.0000
fGrassMinStartFadeDistance=0.0000
bEnableGrassFade=0

SkyrimPrefs.ini
[Grass]
iGrassCellRadius (not set)
fGrassMaxStartFadeDistance=6144.0000
fGrassMinStartFadeDistance=0.0000
fGrassStartFadeDistance=6144.0000
fGrassFadeRange=14128

Grass Cache Fixes.ini
[Display]
bShadowsOnGrass=1
[Grass]
bAllowCreateGrass=0
bAllowLoadGrass=1
bEnableGrassFade=0
fGrassFadeRange=14128
bGenerateGrassDataFiles=0

I know some of these are redundant, but I wanted to be 100% certain.  I've also checked to make sure that there aren't any other .ini files in the Data folder to overwrite any settings.

Link to comment
Share on other sites

  • 0
On 3/2/2024 at 7:19 PM, ikonomov said:

I understand that the problem I have is with full grass in the loaded cell and not with DynDOLOD.  I first posted my question in the Grass Cache Helper NG, after making sure that it is using the correct settings and the DLL is active:

GrassCacheHelperNG.ini
[Settings]
AutoGrassDistanceSettings=1
EnableGrassFade=0

Shizof replied:

I'm not sure he understood my explanation of the problem.  I decided afterwards to test with Grass Cache Fixes because when using this solution I can check and make sure that all related settings are set correctly:

Skyrim.ini
[General]
uGridsToLoad (not set)
[Grass]
bAllowCreateGrass=0
bAllowLoadGrass=1
fGrassMaxStartFadeDistance=6144.0000
fGrassMinStartFadeDistance=0.0000
bEnableGrassFade=0

SkyrimPrefs.ini
[Grass]
iGrassCellRadius (not set)
fGrassMaxStartFadeDistance=6144.0000
fGrassMinStartFadeDistance=0.0000
fGrassStartFadeDistance=6144.0000
fGrassFadeRange=14128

Grass Cache Fixes.ini
[Display]
bShadowsOnGrass=1
[Grass]
bAllowCreateGrass=0
bAllowLoadGrass=1
bEnableGrassFade=0
fGrassFadeRange=14128
bGenerateGrassDataFiles=0

I know some of these are redundant, but I wanted to be 100% certain.  I've also checked to make sure that there aren't any other .ini files in the Data folder to overwrite any settings.

This is the DynDOLOD support forum. Full grass render distance has noting to do wit LOD. I do not provide generic modding or third party mod support.

fGrassFadeRange may be limited by fGrassMaxStartFadeDistance. AFAIK, if you use Grass Cache Helper NG you should not use Grass Cache Fixes.
Remove unnecessary mods and restore vanilla INIs. Install one mod as explained. Doublecheck it is setup correctly and works, for example in case of Grass Cache Helper NG check the SKSE log. If all that is the case, ask the mod author for help.

  • Thanks 1
Link to comment
Share on other sites

  • 0

Thank you for the reply sheson.  I've done some more testing and I am posting my findings that I've recorded here so that it could be referenced in the future.  I've posted the same results in the Grass Cache Helper NG thread.

SSE generated grass
NGIO grass cache
SSE generated grass, but with fGrassStartFadeDistance=14128 and fGrassMaxStartFadeDistance=14128.

What appears to be the problem is that just before the full grass is unloaded from the active cell it is being faded.  In the videos I've kept DynDOLOD disabled to show it more clearly.  Because the active cell is not unloaded yet and LOD has not loaded, the grass billboards are not yet loaded, so it creates a gap where there's no grass or the grass is faded.  This must be a limitation of the game.  When it's unloading grass it looks like bEnableGrassFade is always used in some form and it cannot be disabled.

Link to comment
Share on other sites

  • 0

I think I've found a solution.  Simply extending the fade range (fGrassFadeRange=20000 and fGrassStartFadeDistance=20000).  DoubleYouC in Grass Cache Fixes must have derived with fGrassStartFadeDistance=6144 and fGrassFadeRange=14128 numbers when the LOD was being unloaded and the active cell loaded, but didn't account for the scenario when it's reversed.  I wonder if it really makes any difference what those numbers are as long as it goes further enough beyond the loaded cell since the full grass (without NGIO) can only extend in the loaded cell anyways.

Link to comment
Share on other sites

  • 0
4 hours ago, ikonomov said:

I think I've found a solution.  Simply extending the fade range (fGrassFadeRange=20000 and fGrassStartFadeDistance=20000).  DoubleYouC in Grass Cache Fixes must have derived with fGrassStartFadeDistance=6144 and fGrassFadeRange=14128 numbers when the LOD was being unloaded and the active cell loaded, but didn't account for the scenario when it's reversed.  I wonder if it really makes any difference what those numbers are as long as it goes further enough beyond the loaded cell since the full grass (without NGIO) can only extend in the loaded cell anyways.

I suggest you either make certain that your grass distance/fade game INI settings are correct or use BethINI Pie to do so. The INI settings in your third video essentially is not set to fade with those tweaks. IIRC, this can help with performance ... but I do recall that LOD out/full in (walking forward) might have better transitions than LOD in/full out (waling backward). Also, I think that player movement speed must be < 250 for proper LOD load/unload ("player.setav speedmult" in console).

Then use Grass Cache Helper NG, generate grass LOD (mode 1), and post that video for comparison. Maybe this is what you posted in your first video in the original post? Just want to confirm you had all recommended game INI settings for grass fade with LOD and DynDOLOD Mode 1 with Crass Cache Helper NG.

I think it's normal to see some transition effects when moving backwards or during cell load/unload (game limitations, it's not perfect).

Link to comment
Share on other sites

  • 0
Posted (edited)
20 hours ago, z929669 said:

I suggest you either make certain that your grass distance/fade game INI settings are correct or use BethINI Pie to do so. The INI settings in your third video essentially is not set to fade with those tweaks. IIRC, this can help with performance ... but I do recall that LOD out/full in (walking forward) might have better transitions than LOD in/full out (waling backward). Also, I think that player movement speed must be < 250 for proper LOD load/unload ("player.setav speedmult" in console).

Then use Grass Cache Helper NG, generate grass LOD (mode 1), and post that video for comparison. Maybe this is what you posted in your first video in the original post? Just want to confirm you had all recommended game INI settings for grass fade with LOD and DynDOLOD Mode 1 with Crass Cache Helper NG.

I think it's normal to see some transition effects when moving backwards or during cell load/unload (game limitations, it's not perfect).

I have been using all the recommended settings in the videos uploaded this far.  When using Grass Cache Helper NG most of the important settings are set by a DLL plugin during gameplay and when using Grass Cache Fixes I've made sure all the settings are set as recommended.  For both mods when using DynDOLOD Mode 1 for grass it's expected that grass fade is disabled.  The important settings appear to be fGrassMaxStartFadeDistance, fGrassStartFadeDistance and fGrassFadeRange.  When I set these to 20000 instead of 6144/14128 everything works flawlessly.  The only consequence is likely a slight increase in memory usage due to full grass being delayed when unloading from the active cell, but it could also very well be that there is no difference whatsoever.  The video posted below shows how things work with the values set to 20000.  I've reported my findings to Shizof, the creator of Grass Cache Helper NG, once he is able to test them hopefully he'll update the mod.  With Grass Cache Fixes no update is necessary since those values can be manually changed as needed.

Edit: With Grass Cache Helper NG AutoGrassDistanceSettings=0 can be used to allow setting those values manually.

 

Edited by ikonomov
Link to comment
Share on other sites

  • 0
Posted (edited)
4 hours ago, DoubleYou said:

Test only increasing fGrassStartFadeDistance. fGrassMaxStartFadeDistance should only modify the in-game slider. Test what happens if you set fGrassFadeRange to 0 and fGrassStartFadeDistance to 20272.

Yeah, works fine with fGrassFadeRange to 0 and fGrassStartFadeDistance to 20272 as well.  I also set fGrassMaxStartFadeDistance to 20272.  So if fGrassStartFadeDistance is the distance from the player at which the grass will start to fade, this is really the only value that's relevant if we aren't using the fading feature and fGrassFadeRange doesn't matter.  It makes sense that these are the values that should be used.  DoubleYou, why did you use 6144/14128 in your mod if fading is expected to be disabled?

Edited by ikonomov
Link to comment
Share on other sites

  • 0
Posted (edited)
On 3/3/2024 at 8:57 PM, DoubleYou said:

So the Fade Range gradually fades the height of grass. By setting Fade Start to the maximum, you are telling the grass to never fade the height in the loaded cells. Your grass isn't tall enough so it benefits from a higher fade start, as the height decrease is too much and it is fading into the ground. This will depend upon the grass mods used. Generally Fade Range can save some performance which is why I advise using higher values of it across the full 20272 (hypotenuse) range, but in your case you need to lower Fade Range and increase Fade Start.

Thank you for the reply and great explanation.  I've passed on the information to Shizof in case he decides to update his mod.  I was under the impression that your mod's only purpose was to make it possible to use DynDOLOD 3.0 grass billboards in AE, but you just made me realize that it was a false assumption.

Edited by ikonomov
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.