sheson Posted June 7, 2024 Author Posted June 7, 2024 32 minutes ago, drift123 said: The debug log is 157 mb so I can't attach it but I put the DynDOLOD_SSE_log.txt which is for the generation with grass LOD at 53 FPS. There was a warning about a missing mesh from ELFX but I assumed that isn't relevant for the grass LOD in Whiterun. There are some other warnings too but they didn't get listed in the summary page after generating LOD. Several of these warnings including the ELFX warning were present before generating grass LOD where I was getting 81 FPS but I don't know for sure if they were all present. I'm going to test the extended grass feature in NGIO and see what the performance impact is in comparison to the grass LOD. DynDOLOD_SSE_log.txt 973.33 kB · 0 downloads Here are the INI settings for grass-related mods that were used: Veydosebrom INI: Reveal hidden contents [Grass] bAllowCreateGrass=1 bAllowLoadGrass=0 fGrassFadeRange=18000 iMaxGrassTypesPerTexure=15 iMinGrassSize=20 NGIO Grass Control Reveal hidden contents [Debug] ;Enable additional debug logging. Debug-Log-Enable = false [RayCastConfig] ;Use ray casting to detect where grass shouldn't grow (inside rocks or roads). Ray-cast-enabled = true ;The distance above grass that must be free. 200 is slightly more than player height. Ray-cast-height = 150.000000 ;The distance below grass that must be free. Ray-cast-depth = 5.000000 ;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. Ray-cast-collision-layers = 1 2 13 20 31 ;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 ! Ray-cast-ignore-forms = [GrassConfig] ;Enable much more grass without having to change mod files. Super-dense-grass = false ;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. Super-dense-mode = 8 ;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. Profiler-report = false ;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). Use-grass-cache = true ;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 Extend-grass-distance = false ;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. Extend-grass-count = true ;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. Ensure-max-grass-types-setting = 15 ;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. Overwrite-grass-distance = 7000.000000 ;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. Overwrite-grass-fade-range = 18000.000000 ;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. Overwrite-min-grass-size = -1 ;Apply this scale to every piece of grass everywhere. For example 0.5 makes all grass pieces half the size it should be. Global-grass-scale = 1.000000 ;This will change how grass works. It means grass can only ever be loaded from files and not generated during play. Only-load-from-cache = true ;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. Skip-pregenerate-world-spaces = DLC2ApocryphaWorld;DLC01Boneyard;WindhelmPitWorldspace ;If this is not empty then skip every worldspace that isn't in this list. Only-pregenerate-world-spaces = AlftandWorld;Blackreach;BloatedMansGrottoWorld;BluePalaceWingWorld;DarkwaterWorld;DeepwoodRedoubtWorld;DLC01Boneyard;DLC01FalmerValley;DLC01SoulCairn;DLC1AncestorsGladeWorld;DLC1DarkfallPassageWorld;DLC1ForebearsHoldout;DLC1HunterHQWorld;DLC1VampireCastleCourtyard;DLC2SolstheimWorld;EastEmpireWarehouse;EldergleamSanctuaryWorld;FallowstoneCaveWorldEnd;FallowstoneCaveWorldStart;FrostmereCryptWorld;JaphetsFollyWorld;KarthspireRedoubtWorld;KatariahWorld;LabyrinthianWorld03;LabyrinthianWorld04;MarkarthWorld;MossMotherCavernWorld;RedEagleRedoubtWorld;RiftenWorld;ShadowgreenCavernWorld;SkuldafnWorld;SolitudeWorld;Sovngarde;Tamriel;WhiterunDragonsreachWorld;WhiterunWorld;WindhelmPitWorldspace;WindhelmWorld ;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 DynDOLOD-Grass-Mode = 1 ;Maximum number of attempts to generate a grass cache before skipping a cell. Max-Failures = 2 Grass Cache Helper NG INI: Reveal hidden contents [Settings] UseCGID = 1 #This option will make Skyrim use .cgid files for grass loading instead of .gid. It's not recommended to set this to 0. Instead, keep everything named as .cgid. ForceNoGrassWorlds = KatariahWorld #Comma separated worldspace editorids list to set to No Grass flag. ForceGrassWorlds = WhiterunWorld #Comma separated worldspace editorids list to remove No Grass flag from. SetGrassLoadCreate = 1 #Automatically sets bAllowCreateGrass, bAllowLoadGrass, bGenerateGrassDataFiles settings in the game ini by checking if you are generating precache or not. AutoGrassDistanceSettings = 1 #Automatically calculates and sets iGrassCellRadius, fGrassStartFadeDistance, fGrassFadeRange using uGridsToLoad setting. EnableGrassFade = 0 #Automatically sets bEnableGrassFade setting to 0. This is recommended if you are using Grass LODs. As explained in the first post, my signature or https://dyndolod.info/Official-DynDOLOD-Support-Forum#Post-Logs, zip large log files and use a file service to upload them. You do not seem to use seasons, so it is unclear why you are using Grass Cache Helper NG. If you want to compare performance requirements of full grass to grass LOD, make sure to extend it to the same distance as LOD Level 4 as explained in https://dyndolod.info/Help/Grass-LOD#Performance If you want to decrease performance requirements of grass LOD, reduce the density and/or shorten the LOD Level 4 distance as explained in https://dyndolod.info/Help/Grass-LOD#Performance https://dyndolod.info/FAQ#Long-running-time-or-output-several-GB-in-file-size
drift123 Posted June 7, 2024 Posted June 7, 2024 3 hours ago, sheson said: As explained in the first post, my signature or https://dyndolod.info/Official-DynDOLOD-Support-Forum#Post-Logs, zip large log files and use a file service to upload them. You do not seem to use seasons, so it is unclear why you are using Grass Cache Helper NG. If you want to compare performance requirements of full grass to grass LOD, make sure to extend it to the same distance as LOD Level 4 as explained in https://dyndolod.info/Help/Grass-LOD#Performance If you want to decrease performance requirements of grass LOD, reduce the density and/or shorten the LOD Level 4 distance as explained in https://dyndolod.info/Help/Grass-LOD#Performance https://dyndolod.info/FAQ#Long-running-time-or-output-several-GB-in-file-size Debug log.txt: https://ufile.io/m4yuf08u The grass cache guides I read instructed to use Grass Cache Helper NG. I guess I could set those INI settings manually... With extended full grass to 60000 blocks on Level 4 I had about 23 FPS compared to 53 FPS with grass LOD in the same range. So I guess grass LOD is just much more taxing than I had expected. What is interesting is I only lost about 3 FPS in Whiterun tundra moving the slider from 60000 to 0 for Level 4 LOD without grass LOD installed but otherwise the same settings. So the grass LOD appears to be much more taxing than the 3D tree and object LOD in Level 4, because I lose about 30 FPS by enabling just the grass and keeping everything else the same. From what I remember the switch from 2D ultra tree LOD to 3D trees was about a 10 FPS difference. Would it be possible to create a rule so that Level 4 grass LOD is at 30000, while keeping the Level 4 ultra tree & object LOD at the 60000 range? I'd rather shorten the range of the grass LOD only. I also faintly remember being able to bake grass textures into the terrain LOD before this grass LOD was possible, which could look fine on the more distant terrain.
sheson Posted June 7, 2024 Author Posted June 7, 2024 16 minutes ago, drift123 said: Debug log.txt: https://ufile.io/m4yuf08u The grass cache guides I read instructed to use Grass Cache Helper NG. I guess I could set those INI settings manually... With extended full grass to 60000 blocks on Level 4 I had about 23 FPS compared to 53 FPS with grass LOD in the same range. So I guess grass LOD is just much more taxing than I had expected. What is interesting is I only lost about 3 FPS in Whiterun tundra moving the slider from 60000 to 0 for Level 4 LOD without grass LOD installed but otherwise the same settings. So the grass LOD appears to be much more taxing than the 3D tree and object LOD in Level 4, because I lose about 30 FPS by enabling just the grass and keeping everything else the same. From what I remember the switch from 2D ultra tree LOD to 3D trees was about a 10 FPS difference. Would it be possible to create a rule so that Level 4 grass LOD is at 30000, while keeping the Level 4 ultra tree & object LOD at the 60000 range? I'd rather shorten the range of the grass LOD only. I also faintly remember being able to bake grass textures into the terrain LOD before this grass LOD was possible, which could look fine on the more distant terrain. Grass cache generation with NGIO does not require Grass Cache Helper NG. Object LOD uses 3 LOD level, 4, 8 and 16. Whatever the LOD meshes of level 4 depict, shows in the area between the edge of the active cells and the object LOD level 8 meshes and can not be made to stop rendering earlier. That would require changes to the engine and/or shaders. See https://dyndolod.info/How-LOD-Works and https://dyndolod.info/Help/Object-LOD
sheson Posted June 7, 2024 Author Posted June 7, 2024 18 hours ago, KRZ said: This one's looking good in xEdit. Unknown 2 only. No crashes in game either. I've attached DynDOLOD logs, just in case. DynDOLOD_SSE_Debug: https://mega.nz/file/1OVi3ATa#WQN_Iquyedx69e_4LHhKnCn8BMfQCy4DbkwtNf9cHfw I'll start another run with Sirenroot and SLaWF and share the results once I got them. Great success. Unknown 2 only. DynDOLOD_SSE_Debug: https://mega.nz/file/0GdmWY6B#PuPZGFUWPAUm1a1rM7S0YbUGebjXv7GjKfrk2mmc_TU This one's with Sirenroot + SLaWF. The text-files containing 'Complete' in their title are including Sirenroot + SLaWF. May I ask how the mismatch came to happen? It sounds like something more people should encounter so I'm still sceptical I messed up somewhere. Thank you for all the troubleshooting help! Error Check 170C.txt 1.47 kB · 1 download DynDOLOD_SSE_log.txt 1.15 MB · 1 download Error Check 170C Complete.txt 1.47 kB · 1 download DynDOLOD_SSE_log Complete.txt 1.15 MB · 1 download DynDOLOD.esm Complete.zip 1 MB · 0 downloads Let me know if this test version works - no unresolved form IDs and no crashes. https://mega.nz/file/BBAWlCwA#wn7-2iAs803THnasndswcCYH0wFWwV473creTLtoK8I Let me know if Alpha-171 fixes the issue properly for you. For speed DynDOLOD creates the large reference list on the worldspace record directly without using the usual xEdit functions that also take care of load order form IDs and the master list being in sync. This requires the master list to be final when DynDOLOD creates the list. A change somewhere else means if circumstances are right, the master list could change after, which is hopefully addressed in this test version.
KRZ Posted June 7, 2024 Posted June 7, 2024 (edited) 4 hours ago, sheson said: Let me know if this test version works - no unresolved form IDs and no crashes. https://mega.nz/file/BBAWlCwA#wn7-2iAs803THnasndswcCYH0wFWwV473creTLtoK8I Let me know if Alpha-171 fixes the issue properly for you. For speed DynDOLOD creates the large reference list on the worldspace record directly without using the usual xEdit functions that also take care of load order form IDs and the master list being in sync. This requires the master list to be final when DynDOLOD creates the list. A change somewhere else means if circumstances are right, the master list could change after, which is hopefully addressed in this test version. Sorry I missed the test version and only now respond to 171 It's looking good however. I've attached the xEdit Error Check below but there are no unresolved FormIDs and I've had no crashes either. I think this could be it. Thank you for continously troubleshooting and also for the easy to understand explanation of what's been wrong!! Error Check 171.txt Edited June 7, 2024 by KRZ
sheson Posted June 7, 2024 Author Posted June 7, 2024 40 minutes ago, KRZ said: Sorry I missed the test version and only now respond to 171 It's looking good however. I've attached the xEdit Error Check below but there are no unresolved FormIDs and I've had no crashes either. I think this could be it. Thank you for continously troubleshooting and also for the easy to understand explanation of what's been wrong!! Error Check 171.txt 1.47 kB · 0 downloads Looking good. Thanks for testing and letting us know.
drift123 Posted June 7, 2024 Posted June 7, 2024 7 hours ago, sheson said: Grass cache generation with NGIO does not require Grass Cache Helper NG. Object LOD uses 3 LOD level, 4, 8 and 16. Whatever the LOD meshes of level 4 depict, shows in the area between the edge of the active cells and the object LOD level 8 meshes and can not be made to stop rendering earlier. That would require changes to the engine and/or shaders. See https://dyndolod.info/How-LOD-Works and https://dyndolod.info/Help/Object-LOD Alright thanks for the info I'll have to keep testing to see what looks and performs best.
drift123 Posted June 10, 2024 Posted June 10, 2024 (edited) If I increase the imingrasssize to 120 for grass precache to save performance, could I then change that setting back to 20 after the grass LOD is generated, so that the loaded cell grass density is not affected? I want to save performance on the grass LOD while maintaining the density of full grass in the loaded cell. The idea is to reduce the number of placements drastically. Would this approach require me to keep bAllowCreateGrass enabled after the fact? As I understand the grass cache files affect both the loaded cell full grass and the grass LOD if bAllowLoadGrass is enabled. I'm also unsure if the grass density setting in Dyndolod is identical to changing the imingrasssize during grass precaching? Or do these settings work differently? Even at 25 the performance hit was quite heavy and the grass LOD still looked very dense, which makes me think that reducing density for the precache generation may be the solution. Thanks. Edited June 10, 2024 by drift123 correction
sheson Posted June 10, 2024 Author Posted June 10, 2024 5 hours ago, drift123 said: If I increase the imingrasssize to 120 for grass precache to save performance, could I then change that setting back to 20 after the grass LOD is generated, so that the loaded cell grass density is not affected? I want to save performance on the grass LOD while maintaining the density of full grass in the loaded cell. The idea is to reduce the number of placements drastically. Would this approach require me to keep bAllowCreateGrass enabled after the fact? As I understand the grass cache files affect both the loaded cell full grass and the grass LOD if bAllowLoadGrass is enabled. I'm also unsure if the grass density setting in Dyndolod is identical to changing the imingrasssize during grass precaching? Or do these settings work differently? Even at 25 the performance hit was quite heavy and the grass LOD still looked very dense, which makes me think that reducing density for the precache generation may be the solution. Thanks. https://dyndolod.info/Help/Grass-LOD#Settings Change the Density dropdown to a lower value in the advanced mode of DynDOLOD under the Grass LOD checkbox to thin out grass LOD for better performance. https://dyndolod.info/Help/Advanced-Mode#Grass-LOD Density sets the percentage of grass LOD billboards that are being generated. 50 means only half of the grass placements are added for better performance but thinner grass LOD in the distance. Set it to 15 or lower to further reduce performance requirements.
drift123 Posted June 10, 2024 Posted June 10, 2024 (edited) On grass density 10 I lose about 15-20 FPS (~80 to 60) in the Whiterun tundra compared to no grass LOD. It seems that the color of the LOD matches the full grass, except for some reason the LOD only displays the green grass models and not the brown grass. Is this functioning as intended? Edit: well I tried an ENB and then the green LOD grass changed to light brown...so I think it is just the weather and lighting doing this Edited June 10, 2024 by drift123 typo
sheson Posted June 10, 2024 Author Posted June 10, 2024 1 hour ago, drift123 said: On grass density 10 I lose about 15-20 FPS (~80 to 60) in the Whiterun tundra compared to no grass LOD. It seems that the color of the LOD matches the full grass, except for some reason the LOD only displays the green grass models and not the brown grass. Is this functioning as intended? Edit: well I tried an ENB and then the green LOD grass changed to light brown...so I think it is just the weather and lighting doing this If a specfic type of full grass model has no LOD representation see https://dyndolod.info/Help/Grass-LOD#No-Grass-LOD-Check-List 1
drift123 Posted June 10, 2024 Posted June 10, 2024 7 hours ago, sheson said: If a specfic type of full grass model has no LOD representation see https://dyndolod.info/Help/Grass-LOD#No-Grass-LOD-Check-List It's just bizarre because when I enable ENB, suddenly both the green and brown grass types become visible in the LOD. I don't know how to explain that but the lighting is doing something funky. Strangely enough, the ENB makes the LOD match the full grass better than no ENB, it just needs to be a little darker I think.
sheson Posted June 10, 2024 Author Posted June 10, 2024 2 hours ago, drift123 said: It's just bizarre because when I enable ENB, suddenly both the green and brown grass types become visible in the LOD. I don't know how to explain that but the lighting is doing something funky. Strangely enough, the ENB makes the LOD match the full grass better than no ENB, it just needs to be a little darker I think. It is known that ENB settings affects grass LOD color/brightness. ENB typically does not change the visibility of LOD or transparency of textures. Use tfc to get close to LOD. No logs and no useful screenshots like a close up of LOD with tfc were provided.
The_Franks Posted June 11, 2024 Posted June 11, 2024 (edited) I cannot seem to get my Aspen tree lod working with Seasons of Skyrim. In the winter, the close trees change, but the far trees stay leafy. xEdit shows there is no dyndolod_base for treeWinterAspen, even though those are DLC01 objects that are all over the falmer valley. TreeAspen01_dyndolod_base exists, but without treewinterAspen01_dyndolod_base, how can I swap them in the winter? There is only one tree swap in the dyndolod_win.ini, and that is a treepineforest03 to treepineforest03snow and yet all of the pines are working correctly. I have attached some logs, but the debug is 14MB as a 7zip, so it is too big. This section of it shows that it is processing the winter aspens "[00:16] [LoadRecordsString] <Debug: Processing DLC1TreeFloraMountainFlower02Yellow,False Dawnguard.esm DLC1TreeFloraMountainFlower02Yellow "Mountain Flower" [TREE:02002A77]> [00:16] [LoadRecordsString] <Debug: Processing TreeWinterAspen01 Dawnguard.esm TreeWinterAspen01 [TREE:02003AC5]> [00:16] [LoadRecordsString] <Debug: Processing TreeWinterAspen02 Dawnguard.esm TreeWinterAspen02 [TREE:02003AC9]> [00:16] [LoadRecordsString] <Debug: Processing TreeWinterAspen03 Dawnguard.esm TreeWinterAspen03 [TREE:02003ACA]> [00:16] [LoadRecordsString] <Debug: Processing TreeWinterAspen04,False Dawnguard.esm TreeWinterAspen04 [TREE:02003ACB]> [00:16] [LoadRecordsString] <Debug: Processing TreeWinterAspen05 Dawnguard.esm TreeWinterAspen05 [TREE:02003ACC]> [00:16] [LoadRecordsString] <Debug: Processing TreeWinterAspen06 Dawnguard.esm TreeWinterAspen06 [TREE:02003ACF]>" So they are being processed (except 4, too small?). The . I included the falmer valley log, because it mentions them, and the tamriel log, because it does not. Is there a command I can put in the dyndolod_win.ini to force the change whether it wants to or not? Something like "[Trees] ;TreePineForest03_DynDOLOD_BASE|TreePineForestSnow03_DynDOLOD_BASE 0x64972~DynDOLOD.esm|0x64973~DynDOLOD.esm" from the bottom, but for treeAspen01_dyndolod_base to treeWinterAspen01_dyndold_base? What is the editor ID for the lod of the DLC01 winter aspen? I can't find one at all. TreeAspen01_dyndolod_base is there, but no winter version. Thanks for the help. Let me know if you need any more logs or anything. Logs.7z Edited June 11, 2024 by The_Franks
The_Franks Posted June 11, 2024 Posted June 11, 2024 2 hours ago, The_Franks said: I cannot seem to get my Aspen tree lod working with Seasons of Skyrim. In the winter, the close trees change, but the far trees stay leafy. xEdit shows there is no dyndolod_base for treeWinterAspen, even though those are DLC01 objects that are all over the falmer valley. TreeAspen01_dyndolod_base exists, but without treewinterAspen01_dyndolod_base, how can I swap them in the winter? There is only one tree swap in the dyndolod_win.ini, and that is a treepineforest03 to treepineforest03snow and yet all of the pines are working correctly. I have attached some logs, but the debug is 14MB as a 7zip, so it is too big. Nevermind. I don't know why I am trying to make a mod that already exists. Seasonal Aspens took care of the winter. Not sure why it works, and even though I was doing the same thing with different names, it didn't. Unless it was because I needed to unpack the textures from the BSA. Oh, well. I am a results guy, so I cannot argue with this working. Now I just need to clean up the mess I made in my folder and mods.
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now