ALL settings in SkyrimPrefs.ini CAN be placed inside Skyrim.ini and work, BUT settings in SkyrimPrefs.ini will take precedence over values in Skyrim.ini. Only settings with a hard-coded property attached to them will work in SkyrimPrefs.ini. Furthermore, settings in mod INI files (where an ini file is the same name as a plugin) will take precedence over values in SkyrimPrefs.ini and Skyrim.ini. For this reason I have contemplated removing the SkyrimPrefs INI guide and combining it with the Skyrim INI guide.
Arisu when he collected all the INI settings for Skyrim in January 2012 found hundreds of settings, including bShadowsOnGrass, to be "not used anywhere in the game." The only place he was found to be wrong were with some controller related settings due to the fact that he did not have a controller connected.
In game testing of fields of grass around Whiterun when I tested showed absolutely no perceptible difference with the setting on and off, the same being true for bDrawShadows. If the setting does anything, ENB must be reading it.
Well .... iPresentInterval ONLY has impact when placed in Skyrim.ini. It has no effect when placed in SkyrimPrefs.ini. I did extensive testing to confirm this (so did Tech), and the evidence is in the bugs thread I think.
What do you mean here?
I understand the INI hierarchy, and this theoretically should mean that ALL INI settings can be placed into Skyrim.ini. Only in cases where one is running under multiple user profiles (thus validating use of SkyrimPrefs.ini) or loading specific plugins that depend upon specific INI settings (thus validating plugin INIs) have need of the other INI files. EDIT: a good way to invoke ENB-specific INI settings may be to use a dummy plugin or dummy mod with the INI overrides.
Unfortunately, settings like iPresentInterval break the supposed rules (perhaps you mean Skyrim.ini??), which tells me that there are INI settings that are hard coded into the game EXE (or DLLs?) that can only be overridden from Skyrim.ini and nowhere else.
Additionally, we have to assume that not all INI settings are created equally: ?most? settings can be invoked from any valid INI file. These settings must have default values coded within the EXE that can be overridden; however, other "higher-level" settings can only be invoked from Skyrim.ini (e.g., iPresentInterval), so these settings must have special treatment for some reason ... ultimately, I don't trust that the general hierarchical INI rules apply in all cases.
By the same token
But, when in doubt, test again, and I do believe it does do something, just not what you would have thought:
bShadowsOnGrass allows objects casting shadows to cast shadows upon grass! Also, as some kind of byproduct, it changes the locations where grass is rendered.
How did I figure that out? Below are three tests. First is with bShadowsOnGrass=1. Second is bShadowsOnGrass=0. Third is with bShadowsOnGrass=1 again. First and Third shots look identical, even though First was a setup shot and third was a save load of the same position. I had to check file hashes just to believe somehow they weren't carbon copies. The game is consistent on where it renders grass!
Also notice that the Trees casting shadows actually show upon the grass when bShadowsOnGrass=1.
In other news, I found out I can create 1920x1080 screenshots if I do it in windowed mode on my 1366x768 screen. Tune in tomorrow to where we hear of the tragedy of my laptop blowing up due to some obscure INI setting!
Yes, this was my understanding of how that setting was supposed to work (and it should not affect grass rendering at all ... as you show here, the save game has that data). It does cause a significant performance hit though in terms of FPS. Good performance tip.