Jump to content

Recommended Posts

Posted (edited)

Hey sheson,
I'm crashing in cities (only Riften and Whiterun tested) with DynDOLOD A-170 generated output. I've tried disabling the DynDOLOD Output which got rid of the issue and I rolled back to A-169, generated a new output and had no issue. Crash Logs are included in Logs.zip, DynDOLOD_SSE_Debug (https://mega.nz/file/UacwCRLb#BzV3vb1x-dauLDoHt4rHjQOrNXzYHn8fS2_bk4s-4To) as always had been to large.

Could you have a look? Thanks!

Logs.zipFetching info...

Edited by KRZ
Posted
  On 6/4/2024 at 3:45 PM, sheson said:

As I mentioned, the 3D LOD assets point the normal vector upwards so that double side triangles have equal brightness on either side and are brightest if the light shines from the top (they are actually slightly angled, so not exactly)

You could test removing the double sided flag and right click a BSTriShape, Mesh, Face normals, then again right click a BSTriShape, Mesh, Update Tangent Space.

If those work better, to restore the now missing "back triangles", convert the meshes to Skyrim (NiTriShapes) format with CAO. Duplicate the crown shape with right click on the NiTriShape, Block, Copy and right click on the root 0 BSFadeNode, Block, Paste. Then right click the NiTriShape, Mesh, Flip faces, Flip normals, Update Tangent Space.

Expand  

Thanks for the instructions I will try this out with all the LOD meshes and see if it works.

Posted
  On 6/4/2024 at 4:29 PM, KRZ said:

Hey sheson,
I'm crashing in cities (only Riften and Whiterun tested) with DynDOLOD A-170 generated output. I've tried disabling the DynDOLOD Output which got rid of the issue and I rolled back to A-169, generated a new output and had no issue. Crash Logs are included in Logs.zip, DynDOLOD_SSE_Debug (https://mega.nz/file/UacwCRLb#BzV3vb1x-dauLDoHt4rHjQOrNXzYHn8fS2_bk4s-4To) as always had been to large.

Could you have a look? Thanks!

Logs.zip 1.18 MB · 1 download

Expand  

If you are absolutely sure that the load order did not change after generating the output with alpha 170 let me know for follow up questions/troubleshooting..

Otherwise, generate a LOD patch from scratch with the latest alpha for the current load order, to verify that the crash still happens.
If it does, upload new DynDOLOD log and debug log and new crash log and keep the output around for follow up questions/troubleshooting.

Posted (edited)

Do the settings used while generating a grass precache affect the performance of grass LOD? Or is LOD grass performance solely a matter of the Texgen and Dyndolod settings? I'm a bit confused as to whether the grass precache that is generated via the MO2 plugin is actually affecting the grass LOD density or other performance variables or if that is solely determined after the fact with the billboard and LOD settings. I used No grass in objects with grass helper NG to generate the precache but I'm not sure if the grass INI settings are influencing the quality of precache generation or if they only affect full grass appearance in the loaded cell.

Edited by drift123
typo
Posted
  On 6/4/2024 at 7:38 PM, drift123 said:

Do the settings used while generating a grass precache affect the performance of grass LOD? Or is LOD grass performance solely a matter of the Texgen and Dyndolod settings? I'm a bit confused as to whether the grass precache that is generated via the MO2 plugin is actually affecting the grass density or other performance variables or if that is determined after the fact with the billboard and LOD settings. I used No grass in objects with grass helper NG to generate the precache but I'm not sure if the grass INI settings are influencing the quality of precache generation or if they only affect full grass appearance in the loaded cell.

Expand  

https://dyndolod.info/Help/Grass-LOD
The grass cache contains grass model and placement information.

https://dyndolod.info/Help/Grass-LOD#Settings
In case the grass pre-cache was generated with SuperDenseGrass/Super-dense-grass = True, expect really long object LOD generation times. Lower the density to 33% or less.

https://dyndolod.info/Help/Grass-LOD#Performance

There are settings that change the amount of full grasses and the density of full grass in the cache. There more full grass, the more LOD grass, the higher the performance requirement. The denser the placements, the denser the grass LOD, the higher the performance requirements.

Posted
  On 6/4/2024 at 7:44 PM, sheson said:

https://dyndolod.info/Help/Grass-LOD
The grass cache contains grass model and placement information.

https://dyndolod.info/Help/Grass-LOD#Settings
In case the grass pre-cache was generated with SuperDenseGrass/Super-dense-grass = True, expect really long object LOD generation times. Lower the density to 33% or less.

https://dyndolod.info/Help/Grass-LOD#Performance

There are settings that change the amount of full grasses and the density of full grass in the cache. There more full grass, the more LOD grass, the higher the performance requirement. The denser the placements, the denser the grass LOD, the higher the performance requirements.

Expand  

So to be clear, the grass "pre-cache" is referring to the file generation using the MO2 plugin that launches Skyrim and crashes then relaunches Skyrim and outputs the CGID files?

Whereas the grass "cache" is the grass LOD output the Dyndolod creates? Or are the pre-cache and cache synonymous? As I understand it both the LOD grass and full grass are cached for better performance compared to the vanilla loading technique.

I have Superdense grass set to false and Dyndolod mode to 1 in the grass control .ini for No Grass In Objects mod. I'm only rendering full grass in the 5x5 loaded cell but it was still a heavy performance hit. I'm aware that I can lower the grass density in Dyndolod and lower the billboard quality in TexGen. Is there any performance reason to regenerate the CGID pre-cache files if SuperDenseGrass was false and the load order is the same?

Posted
  On 6/4/2024 at 8:34 PM, drift123 said:

So to be clear, the grass "pre-cache" is referring to the file generation using the MO2 plugin that launches Skyrim and crashes then relaunches Skyrim and outputs the CGID files?

Whereas the grass "cache" is the grass LOD output the Dyndolod creates? Or are the pre-cache and cache synonymous? As I understand it both the LOD grass and full grass are cached for better performance compared to the vanilla loading technique.

I have Superdense grass set to false and Dyndolod mode to 1 in the grass control .ini for No Grass In Objects mod. I'm only rendering full grass in the 5x5 loaded cell but it was still a heavy performance hit. I'm aware that I can lower the grass density in Dyndolod and lower the billboard quality in TexGen. Is there any performance reason to regenerate the CGID pre-cache files if SuperDenseGrass was false and the load order is the same?

Expand  

cache = precache = the files in the ..\data\grass\ folder generated by NGIO.

https://dyndolod.info/Help/Grass-LOD
Grass LOD uses grass LOD billboards in object LOD, similar to ultra tree LOD. [..] Grass LOD is generated for LOD level 4 only.
Grass LOD generation requires a warmed (current) grass precache for the current load order. It uses the *.CGID files found in the ..\Data\Grass\ folder.

If you do not change any settings that affect the data in the cache, like changing the filenames of full grass models, the number of full grasses per landscape texture or the density full grass, then there is no need to generate the grass cache again, as it will be more or less the same.

Posted (edited)
  On 6/3/2024 at 7:23 AM, sheson said:

It is correct. The screenshotted reference xx00C938 using Meshes\jk's blue palace\sbluepalacegate.nif also has Meshes\jk's blue palace\sbluepalacegate.nif in the BTO because of that mesh mask rule. The full model gate can be seen in the BTO. That reference is not involved in the issue you are seeing. As I suspected, I found the different reference to be xx5A004B in BluePalaceTerrace.esp. That is the one that is being replaced to a completely different model because of sos_seasons_vigilant_win.ini defines that swap.

You can look up these references (BA00C938 and 325A004B) in the export file LODGen_SSE_Export_Tamriel_WIN.txt to see which reference uses which LOD model in the BTO in the end.

Expand  

There was a typo in SoS_Seasons_Vigilant_WIN.ini, but I didn't notice because SoS_Seasonspatch_WIN.ini is taking priority on my build. I would have expected that at least one of the 10,000 people who have downloaded the mod would have noticed it and reported the bug, but apparently not. I have updated the mod now with a fix.

  On 6/3/2024 at 7:23 AM, sheson said:

I got confused with Base Object Swapper. Seasons INIs can have any file name and DynDOLOD does load them alphabetically (can be checked in the debug log). So "zzzConfig wins over aaaConfig". The problem is that SOS treats the filenames case sensitive while xEdit - like Windows - by default does not. For example, a is loaded after B by SOS. I will address that in the next alpha (including making sure the underscore sorts the same way - its after uppercase but before lowercase usually)

Expand  

Thanks for the clarification. I was a bit scared when you said you were using load order for determining priority rules, since that could have caused a lot of mismatches for other types of objects (like trees). But isn't Base Object Swapper also sorting alphabetically? It isn't documented, but I assumed that was the case, which is also what I have experienced during my testing. And are you sure about the case sensitivity? It sounds weird to me that a would load after B.

Edited by Jonado
Posted
  On 6/4/2024 at 8:58 PM, sheson said:

If you do not change any settings that affect the data in the cache, like changing the filenames of full grass models, the number of full grasses per landscape texture or the density full grass, then there is no need to generate the grass cache again, as it will be more or less the same.

Expand  

Does that include these settings?

NGIO:
Ensure-max-grass-types-setting = 15
Overwrite-min-grass-size = -1

Veydosebrom:
iMaxGrassTypesPerTexure=15
iMinGrassSize=20

I have good performance with full grass at the default Veydosebrom ini settings above (in the loaded 5x5 cell), so I used these settings to generate the CGID cache files. I'm going to try non-HD grass billboards and a lower density setting in Dyndolod, but not sure if these specific ini settings for the grass cache are relevant to grass LOD performance.

Posted
  On 6/4/2024 at 10:02 PM, Jonado said:

There was a typo in SoS_Seasons_Vigilant_WIN.ini, but I didn't notice because SoS_Seasonspatch_WIN.ini is taking priority on my build. I would have expected that at least one of the 10,000 people who have downloaded the mod would have noticed it and reported the bug, but apparently not. I have updated the mod now with a fix.

Thanks for the clarification. I was a bit scared when you said you were using load order for determining priority rules, since that could have caused a lot of mismatches for other types of objects (like trees). But isn't Base Object Swapper also sorting alphabetically? It isn't documented, but I assumed that was the case, which is also what I have experienced during my testing. And are you sure about the case sensitivity? It sounds weird to me that a would load after B.

Expand  

Yes you are correct, both BOS and DynDOLOD also sort the BOS INIs alphabetical. Same issue with the case sensitivity though - that I double checked with the logs. So that will be fixed as well. 

Posted
  On 6/4/2024 at 11:05 PM, drift123 said:

Does that include these settings?

NGIO:
Ensure-max-grass-types-setting = 15
Overwrite-min-grass-size = -1

Veydosebrom:
iMaxGrassTypesPerTexure=15
iMinGrassSize=20

I have good performance with full grass at the default Veydosebrom ini settings above (in the loaded 5x5 cell), so I used these settings to generate the CGID cache files. I'm going to try non-HD grass billboards and a lower density setting in Dyndolod, but not sure if these specific ini settings for the grass cache are relevant to grass LOD performance.

Expand  

Ensure-max-grass-types-setting changes number of full grasses per landscape texture. Overwrite-min-grass-size changes density of full grass.

As explained by NGIO, the above settings overwrite iMaxGrassTypesPerTexure and iMinGrassSize in the Skyrim/mod INI.

Changing these settings changes full grass amount and density, so the positions. So the cache and the LOD should be updated to reflect those changes.

Posted

Hi,

I'm here because I'm a little bit desperate... The new update of No grass in object for AE is amazing, I have beautiful grass LODs but now I have a new problem...

I will try to explain it. You can see grass LOD in the distance but the loaded grass near the player is fading before disappearing completely when walking away. Please watch the video for more details.

May someone help me please, it makes me have nightmares.

 

Posted
  On 6/5/2024 at 8:42 AM, MitchBandito said:

Hi,

I'm here because I'm a little bit desperate... The new update of No grass in object for AE is amazing, I have beautiful grass LODs but now I have a new problem...

I will try to explain it. You can see grass LOD in the distance but the loaded grass near the player is fading before disappearing completely when walking away. Please watch the video for more details.

May someone help me please, it makes me have nightmares.

Expand  

DynDOLOD does not do anything to full grass. Set the appropriated settings in NGIO GrassControl.config.txt to control full grass and its max render distance.

https://dyndolod.info/Help/Grass-LOD
With No Grass In Objects full grass can be rendered past the active cells, so Grass LOD can either start right beyond the active exterior cells (uGridsToLoad), which has better for performance - or beyond the large reference distance (uLargeRefLODGridSize). The DynDOLODGrassMode/DynDOLOD-Grass-Mode 1 or 2 setting controls the distance of full grass respectively.
Set the same desired Mode in the advanced mode of DynDOLOD under the Grass LOD checkbox and for DynDOLODGrassMode/DynDOLOD-Grass-Mode in the settings file. While the DynDOLODGrassMode/DynDOLOD-Grass-Mode setting can be changed at any time, the Mode used to generate grass LOD is baked into the object LOD meshes.

If you have problems with full grass and NGIO, you need to ask on the NGIO forum or comments.

Posted (edited)
  On 6/4/2024 at 7:30 PM, sheson said:

If you are absolutely sure that the load order did not change after generating the output with alpha 170 let me know for follow up questions/troubleshooting..

Otherwise, generate a LOD patch from scratch with the latest alpha for the current load order, to verify that the crash still happens.
If it does, upload new DynDOLOD log and debug log and new crash log and keep the output around for follow up questions/troubleshooting.

Expand  

Welp, you were right that my LO had changed - I've been wondering about that cause the RAM address was different in those crash logs. Below I've attached all logs from a new A170 run with identical LO this time (also identical to A169). Sadly the crashes persisted. I've also tested whether crashes would occur in Markarth, Windhelm or Solitude as well and they didn't (or I just haven't found the spot).

DynDOLOD_SSE_Debug: https://mega.nz/file/IGtykIzI#j9kKzjggkK3vStV3a9oIAQIjyyzQurM66J_OjvCuM0M
 

Logs.zipFetching info...

Edited by KRZ
Posted
  On 6/5/2024 at 9:21 AM, KRZ said:

Welp, you were right that my LO had changed - I've been wondering about that cause the RAM address was different in those crash logs. Below I've attached all logs from a new A170 run with identical LO this time (also identical to A169). Sadly the crashes persisted. I've also tested whether crashes would occur in Markarth, Windhelm or Solitude as well and they didn't (or I just haven't found the spot).

DynDOLOD_SSE_Debug: https://mega.nz/file/IGtykIzI#j9kKzjggkK3vStV3a9oIAQIjyyzQurM66J_OjvCuM0M

Logs.zip 1.18 MB · 0 downloads

Expand  

The mentioned records are parent > child copies. There should not be really anything different between the references/base records in Alpha 169 and 170.

Lets just look at one crash log: crash-2024-06-05-08-57-45.log
Base record WRHouseStables01 with form ID 0x000627AA
used by reference 0x130BAEC0 in DynDOLOD.esm

Since you have both outputs, do the following:

Lookup the reference in xEdit by its EditorID in DynDOLOD.esm in both outputs. Enter skyrimesm_099F21_WhiterunWorld_DynDOLOD_PARENT_DynDOLOD_NOLO into the Editor ID field top left of xEdit and hit Enter key and wait for it to find it. Obviously it should find the reference 0x130BAEC0 for the output put from 170. The form ID will different in the DynDOLOD.esm for the output of 169.

Compare the references if there is anything different.
Both should use the same base record 0x000627AA in Skyrim.esm, which seems not to be overwritten by any plugin and define Architecture\WhiteRun\WRBuildings\WRHouseStables01.nif. It (and any textures it uses) should also be identical for both load orders. Let me know in case this is not the vanilla NIF and if it comes from a mod and which.

If so far you haven't found a difference compare, check the Cell 0x00071E94 the reference resides in and compare the overwrites in the DynDOLOD.esm and Occlussion.esp for both output if there is anything different.

Let me know if you can spot anything different or obvious errors or if everything looks the same.

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.