Jump to content

How to FORCE bGrassFade=0


Recommended Posts

So I'm using Grass Cache Helper NG, and that mod is great (Thanks Shizof). But when I use grass LODs (which also works great, thanks Sheson), there is a blatant gap between the LOD and the actual cell grass as a result of the grass fading prematurely. Normally, most users can just disable this and have grass load into all cells and this works for many people. But for me, my setup just straight REFUSES to disable grass fade. However, I've discovered that when running this setup on NGIO, there is no gap in the LOD? So NGIO somehow can disable it, but Grass Cache Helper, which does have a setting to disable grass fade(and yes this is correct in the settings ini for that mod) cannot seem to disable it. This is slightly frustrating because I have to downgrade to 1.5, not ideal. Literally the only thing keeping me from 1.6 is this issue of bGrassFade. I have scoured every single ini file, I even disable every mod, deleted and used the default for my ini settings. I've used BethINI, I've manually edited every single ini file that are even adjacent to being relevant to have this ini setting be 0. I've even disabled every single mod and had a setup with just grass and grass cache helper ng to see if there was another mod overwriting the setting. Nothing. For some god forsaken reason, only NGIO seems to disable this setting. Normally, I would be happy to just downgrade to 1.5, something I used to do in the past. But there are some critical mods (for me) which are 1.6 only now, so trying to fix this would be great not just for me, but for the other users that struggling with this under the Grass Cache Helper NG page. If anybody has any ideas, please let me know, I will be glad to test it. 

 

Edit: just to be more clear, I mean the bEnableGrassFade setting.

Edited by bruhcubed
Link to comment
Share on other sites

Reference the grass LOD guide for relevant INI settings for grass and generating grass LOD for relatively seamless transitions, proper LOD distances, and no gaps. I suggest to use BethINI to ensure your config settings are correct.

It sounds like you may be using DynDOLOD grass mode 2 or LOD distance settings are off. Also use the latest DynDOLOD alpha, as some bug with LOD4 affected Alpha 161

Link to comment
Share on other sites

bEnableGrassFade is not the setting you are looking for. That controls a slight fade in effect on cell load.

First and most likely possibility is like @z929669 said, perhaps you used DynDOLOD mode 2 instead of mode 1. NGIO only is able to support mode 2. Mode 1 must be used with Grass Cache Helper.

Another possibility is that you may need to override the auto calculated grass distance settings in Grass Cache Helper NG with manual tweaking, setting fGrassStartFadeDistance to a higher value like 99999.

Another possibility is that the grass mod may not have sufficient alpha mipmap threshold in the textures to be sufficiently visible over far distances. This does not seem likely given that NGIO fixes the issue. It is possible that NGIO has an auto fix for that, but I am unaware of that being the case. 

Link to comment
Share on other sites

Hey everybody thanks for the advice,

First off, I absolutely used DynDOLOD mode 1. I made certain to do so in all the grass caches I made. I even used working grass caches from others on the nexus on a clean instance.

I also use BethINI. I am very familiar with grass caching as this is my 4th go at it, and each time before its worked perfectly. 

I would like to try overriding this auto calculated value, but as a bit of warning I have tried disabling the values in the Grass Cache Helper NG file in favor of using proper settings from within BethINI, also following the advice for INI values from the STEP guide. Still even if I do that, I still get grass fade for some reason.

The only thing I have not tried is the sufficient alpha mipmap threshold. However, I have tried two separate grass mods, both which work for other people. These being Seasonal Landscapes with Unfrozen, and Cathedral Landscapes Complex Grass. So unless both of these mods suffer from insufficient alpha mipmaps, I am fairly certain that this is unlikely.

For now, I'll try to override the INI settings and report back with an edit to this post.

Thanks again everybody.

Edit: well, I tried overwriting the grass distance settings to 99999 in BethINI and I can confirm it does nothing. The grass still fades away right at the edge of the cells before the LOD kicks in. If only I could figure out why it works on NGIO and not on Grass Cache Helper. Oh also, I am using the latest version of DynDOLOD. Before it comes up as well, yes, my ini file location on BethINI is directed to the correct profile in MO2.

Edited by bruhcubed
Link to comment
Share on other sites

In the in-game console, type and verify that the values of the INI settings are being written to memory correctly.

getini "fGrassStartFadeDistance:Grass"
getini "fGrassFadeRange:Grass"
getini "iGrassCellRadius:Grass"
getini "fTexturePctThreshold:Grass"

What are the results, and are they as expected?

Link to comment
Share on other sites

After checking the ini files and comparing to both what is on file and what is displayed. I can confirm that the results are as expected. Here are the values.

fGrassStartFadeDistance: 6144
fGrassFadeRange: 107983
iGrassCellRadius: 2
fTexturePctThreshold: 0

These values were the same across both NGIO and Grass Cache Helper NG, the problem still persists however.

Thanks again for the help!

Link to comment
Share on other sites

43 minutes ago, bruhcubed said:

After checking the ini files and comparing to both what is on file and what is displayed. I can confirm that the results are as expected. Here are the values.

fGrassStartFadeDistance: 6144
fGrassFadeRange: 107983
iGrassCellRadius: 2
fTexturePctThreshold: 0

These values were the same across both NGIO and Grass Cache Helper NG, the problem still persists however.

Thanks again for the help!

What values do you have for these (copied from my own, under 1.6.x)?

SkyrimPrefs.ini

[Grass]
fGrassMaxStartFadeDistance=7000.0000
fGrassMinStartFadeDistance=0.0000
fGrassStartFadeDistance=6144.0000

 

Skyrim.ini
 

[Grass]
bAllowCreateGrass=1
bAllowLoadGrass=0
bDrawShaderGrass=1
bEnableGrassFade=0
fGrassFadeRange=14128

You may need to regen grass LOD, but I can only imagine the problem you describe without screens or video.

Link to comment
Share on other sites

14 hours ago, bruhcubed said:

After checking the ini files and comparing to both what is on file and what is displayed. I can confirm that the results are as expected. Here are the values.

fGrassStartFadeDistance: 6144
fGrassFadeRange: 107983
iGrassCellRadius: 2
fTexturePctThreshold: 0

These values were the same across both NGIO and Grass Cache Helper NG, the problem still persists however.

Thanks again for the help!

fGrassFadeRange should be 14128. Increasing it to very high values might cause the inverse effect, as it functions by slightly sloping the grass gradually into the ground I believe. 

Link to comment
Share on other sites

Here are my settings: 

Skyrim.ini

[Grass]
bAllowCreateGrass=1
bAllowLoadGrass=0
bDrawShaderGrass=1
bEnableGrassFade=0
fGrassFadeRange=14128
fGrassMaxStartFadeDistance=7000.0000
fGrassMinStartFadeDistance=0.0000
fGrassWindMagnitudeMax=65
fGrassWindMagnitudeMin=5
iGrassCellRadius=2
iMaxGrassTypesPerTexure=2
iMinGrassSize=35

SkyrimPrefs.ini

[Grass]
fGrassMaxStartFadeDistance=7000
fGrassMinStartFadeDistance=0
fGrassStartFadeDistance=6144

And here's an image I took a while ago just for context: Imgur Link. I had different settings before but I decided to copy yours. Still does the exact same thing. I also made a "grass test" profile in mo2 and I can confirm that there also no other mods loaded except the essentials to run seasons of skyrim, seasonal landscapes, grass cache helper ng and the grass cache.

This has been utterly confounding so if you know anything, it would be greatly appreciated.

Thanks in advance.

Edit: Also, in regards to the high values, I made sure to double check what the grass fade value was in skyrim after I made the changes to the ini file. The issue persisted however, it outputted the new value of 14128. Unfortunately that ini change did not resolve it.

Edited by bruhcubed
Link to comment
Share on other sites

8 hours ago, bruhcubed said:

Here are my settings: 

Skyrim.ini

[Grass]
bAllowCreateGrass=1
bAllowLoadGrass=0
bDrawShaderGrass=1
bEnableGrassFade=0
fGrassFadeRange=14128
fGrassMaxStartFadeDistance=7000.0000
fGrassMinStartFadeDistance=0.0000
fGrassWindMagnitudeMax=65
fGrassWindMagnitudeMin=5
iGrassCellRadius=2
iMaxGrassTypesPerTexure=2
iMinGrassSize=35

SkyrimPrefs.ini

[Grass]
fGrassMaxStartFadeDistance=7000
fGrassMinStartFadeDistance=0
fGrassStartFadeDistance=6144

And here's an image I took a while ago just for context: Imgur Link. I had different settings before but I decided to copy yours. Still does the exact same thing. I also made a "grass test" profile in mo2 and I can confirm that there also no other mods loaded except the essentials to run seasons of skyrim, seasonal landscapes, grass cache helper ng and the grass cache.

This has been utterly confounding so if you know anything, it would be greatly appreciated.

Thanks in advance.

Edit: Also, in regards to the high values, I made sure to double check what the grass fade value was in skyrim after I made the changes to the ini file. The issue persisted however, it outputted the new value of 14128. Unfortunately that ini change did not resolve it.

Read through the DynDOLOD grass documentation, especially the last two sections.

Also increase iMaxGrassTypesPerTexure to a value of at least seven (for CL, we recommend 15).

You have redundant settings in Skyrim.ini, so I recommend that you delete Skyrim.ini, SkyrimPrefs.ini and SkyrimCustom.ini, relaunch the game via Steam launcher, quit the launcher without starting the game, and rerun BethINI according to our instructions. Make certain that your INI paths are set correctly and that no mods are providing conflicting INI settings. If you use MO, it's pretty easy:

image.png

Link to comment
Share on other sites

16 hours ago, z929669 said:

Read through the DynDOLOD grass documentation, especially the last two sections.

Also increase iMaxGrassTypesPerTexure to a value of at least seven (for CL, we recommend 15).

You have redundant settings in Skyrim.ini, so I recommend that you delete Skyrim.ini, SkyrimPrefs.ini and SkyrimCustom.ini, relaunch the game via Steam launcher, quit the launcher without starting the game, and rerun BethINI according to our instructions. Make certain that your INI paths are set correctly and that no mods are providing conflicting INI settings. If you use MO, it's pretty easy:

image.png

So I followed this all to the T, ensuring that I deleted all of the files in both the "MyGames" folder and the Grass Test profile folder. I also set the ini paths to the Grass Test folder path after MO2 ended up grabbing a copy of the vanilla settings from the MyGames folder after the I ran it from the steam launcher. Then I imitated exactly every single setting in your link regarding BethINI. Unfortunately, the fade still exists between active cells and lod cells. I also made sure that no mods are providing conflicting ini settings. The only one is the Unofficial Skyrim Special Edition Patch, as I have disabled all other mods, and the ini settings there were not at all relevant.

As for my NGIO settings, here they are in full below the spoiler. 

Spoiler

########################################################################################################################
#   Ray cast enabled                                                                                                   #
#                                                                                                                      #
# Use ray casting to detect where grass shouldn't grow (inside rocks or roads).                                        #
#                                                                                                                      #
#    Type: (boolean)                                                                                                   #
########################################################################################################################

RayCast = True

########################################################################################################################
#   Ray cast height                                                                                                    #
#                                                                                                                      #
# The distance above grass that must be free. 200 is slightly more than player height.                                 #
#                                                                                                                      #
#    Type: (float)                                                                                                     #
########################################################################################################################

RayCastHeight = 150

########################################################################################################################
#   Ray cast depth                                                                                                     #
#                                                                                                                      #
# The distance below grass that must be free.                                                                          #
#                                                                                                                      #
#    Type: (float)                                                                                                     #
########################################################################################################################

RayCastDepth = 5

########################################################################################################################
#   Ray cast collision layers                                                                                          #
#                                                                                                                      #
# Which collision layers to check when raycasting. Not recommended to change unless you know what you're doing. These  #
# are collision layer index from CK separated by space.                                                                #
#                                                                                                                      #
#    Type: (string)                                                                                                    #
########################################################################################################################

RayCastCollisionLayers = "1 2 13 20 31"

########################################################################################################################
#   Ray cast ignore forms                                                                                              #
#                                                                                                                      #
# Which objects will raycast ignore. This can be useful if you want grass to still grow from some objects (such as     #
# roads). The format is formid:formfile separated by ; for example "1812A:Skyrim.esm;1812D:Skyrim.esm" would add       #
# RoadChunkL01 and RoadChunkL02 forms to ignore list. Base forms go here not object references!                        #
#                                                                                                                      #
#    Type: (string)                                                                                                    #
########################################################################################################################

RayCastIgnoreForms = ""

########################################################################################################################
#   Super dense grass                                                                                                  #
#                                                                                                                      #
# Enable much more grass without having to change mod files.                                                           #
#                                                                                                                      #
#    Type: (boolean)                                                                                                   #
########################################################################################################################

SuperDenseGrass = False

########################################################################################################################
#   Super dense mode                                                                                                   #
#                                                                                                                      #
# How the super dense mode is achieved. Not recommended to change for normal play. This does nothing unless you enable #
# SuperDenseGrass setting. 7 is normal game (meaning nothing is actually changed), 6 or less would be much less grass, #
# 8 is dense, 9 is ?, 10+ is probably crash city.                                                                      #
#                                                                                                                      #
#    Type: (int32)                                                                                                     #
########################################################################################################################

SuperDenseMode = 8

########################################################################################################################
#   Profiler report                                                                                                    #
#                                                                                                                      #
# Whether to track how much time is taken to generate grass. Whenever you open console the result is reported. Try     #
# disabling all settings except profiler, go to game and in main menu 'coc riverwood', after loading open console to   #
# see normal game time. Then enable settings and check again how it changed. Remember to coc from main menu instead of #
# loading save because it might not be accurate otherwise.                                                             #
#                                                                                                                      #
#    Type: (boolean)                                                                                                   #
########################################################################################################################

ProfilerReport = False

########################################################################################################################
#   Use grass cache                                                                                                    #
#                                                                                                                      #
# This will generate cache files in /Data/Grass/ and use those when we have them. Any time you change anything with    #
# your mod setup you must delete the contents of that directory so new cache can be generated or you will have bugs    #
# like floating grass or still grass in objects (that were changed by mods).                                           #
#                                                                                                                      #
#    Type: (boolean)                                                                                                   #
########################################################################################################################

UseGrassCache = True

########################################################################################################################
#   Extend grass distance                                                                                              #
#                                                                                                                      #
# Set true if you want to enable extended grass distance mode. This will allow grass to appear outside of loaded       #
# cells. Relevant ini settings:                                                                                        #
# SkyrimPrefs.ini [Grass] fGrassStartFadeDistance                                                                      #
#                                                                                                                      #
#    Type: (boolean)                                                                                                   #
########################################################################################################################

ExtendGrassDistance = False

########################################################################################################################
#   Extend grass count                                                                                                 #
#                                                                                                                      #
# Allow more grass to be made in total. This is needed if you use very dense grass or have large draw distance.        #
# Otherwise it will reach a limit and just stop making grass leaving weird empty squares.                              #
#                                                                                                                      #
#    Type: (boolean)                                                                                                   #
########################################################################################################################

ExtendGrassCount = False

########################################################################################################################
#   Ensure max grass types setting                                                                                     #
#                                                                                                                      #
# Makes sure that the max grass types per texture setting is set to at least this much. Can be useful to make sure     #
# your INI isn't being overwritten by anything. Most grass replacer mods require this. Set 0 to disable any            #
# verification.                                                                                                        #
#                                                                                                                      #
#    Type: (int32)                                                                                                     #
########################################################################################################################

EnsureMaxGrassTypesPerTextureSetting = 15

########################################################################################################################
#   Overwrite grass distance                                                                                           #
#                                                                                                                      #
# Overwrite fGrassStartFadeDistance from any INI. If this is zero or higher then the grass distance will always be     #
# taken from this configuration instead of any INI. This can be useful if you have a million things overwriting your   #
# INI files and don't know what to edit, so you can just set it here. For example 7000 is vanilla highest in-game      #
# grass slider. If you want to set higher you need to enable ExtendGrassDistance setting as well or it will not look   #
# right in-game. What the setting actually means is that grass will start to fade out at this distance. Actual total   #
# grass distance is this value + fade range value.                                                                     #
#                                                                                                                      #
#    Type: (float)                                                                                                     #
########################################################################################################################

OverwriteGrassDistance = 6144

########################################################################################################################
#   Overwrite grass fade range                                                                                         #
#                                                                                                                      #
# Overwrite fGrassFadeRange from any INI. If this is zero or higher then the grass fade range will always be taken     #
# from this configuration instead of any INI. This determines the distance it takes for grass to completely fade out   #
# starting from OverwriteGrassDistance (or fGrassStartFadeDistance if you didn't use the overwrite). If you want the   #
# grass fade out to not be so sudden then increase this value. Probably recommended to keep this at least half of the  #
# other setting.                                                                                                       #
#                                                                                                                      #
#    Type: (float)                                                                                                     #
########################################################################################################################

OverwriteGrassFadeRange = 14128

########################################################################################################################
#   Overwrite min grass size                                                                                           #
#                                                                                                                      #
# Overwrite iMinGrassSize from any INI. If this is zero or higher then the grass density setting (iMinGrassSize) will  #
# be taken from here instead of INI files. Lower values means more dense grass. 50 or 60 is normal mode with somewhat  #
# sparse grass (good performance). Lowering the value increases density! 20 is very high density. You should probably  #
# not set lower than 20 if you decide to change it. The grass form density setting itself still mostly controls the    #
# actual density of grass, think of iMinGrassSize more of as a cap for that setting.                                   #
#                                                                                                                      #
#    Type: (int32)                                                                                                     #
########################################################################################################################

OverwriteMinGrassSize = 40

########################################################################################################################
#   Global grass scale                                                                                                 #
#                                                                                                                      #
# Apply this scale to every piece of grass everywhere. For example 0.5 makes all grass pieces half the size it should  #
# be.                                                                                                                  #
#                                                                                                                      #
#    Type: (float)                                                                                                     #
########################################################################################################################

GlobalGrassScale = 1

########################################################################################################################
#   Only load from cache                                                                                               #
#                                                                                                                      #
# This will change how grass works. It means grass can only ever be loaded from files and not generated during play.   #
#                                                                                                                      #
#    Type: (boolean)                                                                                                   #
########################################################################################################################

OnlyLoadFromCache = True

########################################################################################################################
#   Skip pregenerate world spaces                                                                                      #
#                                                                                                                      #
# When pre-generating grass then skip worldspaces with this editor IDs. This can greatly speed up generating if we     #
# know the worldspace will not need grass at all.                                                                      #
#                                                                                                                      #
#    Type: (string)                                                                                                    #
########################################################################################################################

SkipPregenerateWorldSpaces = "DLC2ApocryphaWorld;DLC01Boneyard;WindhelmPitWorldspace"

########################################################################################################################
#   Only pregenerate world spaces                                                                                      #
#                                                                                                                      #
# If this is not empty then skip every worldspace that isn't in this list.                                             #
#                                                                                                                      #
#    Type: (string)                                                                                                    #
########################################################################################################################

OnlyPregenerateWorldSpaces = "00WHThePitWorldspace;0ICBBanditFortressWorld;0WHMiniBearQuestWorld;aaaWereBalokDungeonWorld;Blackreach;BlindCliffCaveWorld;BloatedMansGrottoWorld;BluePalaceWingWorld;BrinewaterGrottoWorld;BSHeartland;BSKTestWorld;CWILustratoriumWorld;CWISanctuaryWorld;CYRBiomeTesting;CYRFrostfireGlade;CYRGreenLeafGlade;CYRTestWorld;DarkwaterWorld;DeepwoodRedoubtWorld;Dimfrost;DLC01Boneyard;DLC01FalmerValley;DLC01SoulCairn;DLC1AncestorsGladeWorld;DLC1DarkfallPassageWorld;DLC1ForebearsHoldout;DLC1HunterHQWorld;DLC1VampireCastleCourtyard;DLC2SolstheimWorld;EastEmpireWarehouse;ECSSShiveringIsles;ECSSzDummyMarkerWorld;EldergleamSanctuaryWorld;FallowstoneCaveWorldEnd;FallowstoneCaveWorldStart;Falskaar;FalskaarStargazerGroveWorld;FrostmereCryptWorld;JaphetsFollyWorld;KarthspireRedoubtWorld;KatariahWorld;MarkarthWorld;MossMotherCavernWorld;PalePass;RiftenWorld;SancreTorWorld;ShadowgreenCavernWorld;SkuldafnWorld;SolitudeWorld;Sovngarde;Tamriel;WhiterunDragonsreachWorld;WhiterunWorld;WindhelmPitWorldspace;WindhelmWorld;WindPassWorld;WyrmstoothWorld;zAoMWitchWorld;zBMLamaeWorld;zCHOldForestWorld;zCHTrueEndWorld;zCOBruiantWorld;zGHCradleWoodsWorld;zGHFelixRealm;zGHHinnomRealm;zGHTempleWardWorld;zGHVaerminaRealm;zGHWitchForestWorld;zLrhLalanoaRealm;zRevNamiraRealm"

########################################################################################################################
#   DynDOLOD Grass Mode                                                                                                #
#                                                                                                                      #
# Enable grass compatibility mode with DynDOLOD Grass LODs. Valid values:                                              #
# 0 = Disabled                                                                                                         #
# 1 = Display grass only in active cells (without fade) and let DynDOLOD handle inactive cell Grass                    #
# 2 = Display grass only in active cells and large ref loaded cells (without fade) and let DynDOLOD handle grass       #
# outside of large ref cells                                                                                           #
#                                                                                                                      #
#    Type: (int32)                                                                                                     #
########################################################################################################################

DynDOLODGrassMode = 1
 

It has worldspaces relevant to mods but I think that should not affect anything.

Link to comment
Share on other sites

I don't know why it isn't working for you. Your settings are all correct. The only thing I can really see is that your grass seems extremely short and stubby in comparison to the grass in LOD. It seems more dense in LOD than in full, which doesn't make sense. Perhaps somehow your grass mod isn't the same as your grass cache? Or your grass cache is from different landscape?

Link to comment
Share on other sites

This line of thought occurred to me as well, but I tried with CL and that did not seem to work either. I already talked about this in depth with Shizof and we were both stumped so I thought STEP might have the answer. One of the only things that I thought of is that it might be hardware based? But I have no idea where that would even begin. If it concerns you, I have an AMD 6750XT. But then why would NGIO work and not Grass Cache Helper? It's all very confusing.

EDIT: Additionally, I have tried grass caches from the Nexus and even that did not work with Grass Cache Helper NG.

Edited by bruhcubed
Link to comment
Share on other sites

3 hours ago, bruhcubed said:

This line of thought occurred to me as well, but I tried with CL and that did not seem to work either. I already talked about this in depth with Shizof and we were both stumped so I thought STEP might have the answer. One of the only things that I thought of is that it might be hardware based? But I have no idea where that would even begin. If it concerns you, I have an AMD 6750XT. But then why would NGIO work and not Grass Cache Helper? It's all very confusing.

EDIT: Additionally, I have tried grass caches from the Nexus and even that did not work with Grass Cache Helper NG.

I doubt it's anything to do with hardware. There's a config issue somewhere.

I would post with DynDOLOD logs on that forum to troubleshoot. Even if it's not LOD, sheson may know something related to this issue.

Other than that, did you regen your grass cache using the same setup you are running now?

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.