TES Skyrim 0.279
Forum rules
new topics are not allowed in this subsection, only replies.
new topics are not allowed in this subsection, only replies.
- Author
- Message
-
Offline
- *blah-blah-blah maniac*
- Posts: 17557
- Joined: 27 Dec 2011, 08:53
- Location: Rather not to say
Re: TES Skyrim 0.279
Probably you have seen Dragon's Dogma Online, but in january single player game will be released (xbox360 and ps3 version originally). But seems online have very similar fighting mechanics, which is epic.
_________________
i9-9900k, 64Gb RAM, RTX 3060 12Gb, Win7
i9-9900k, 64Gb RAM, RTX 3060 12Gb, Win7
-
Offline
- Posts: 33
- Joined: 06 Aug 2013, 05:04
Re: TES Skyrim 0.279
Wow! I was very happy to see Dragon's Dogma coming to PC, as well. It was a highly underrated game, in my opinion. (Probably could have been much better if not oversaw by Crapcom publisher...) Makes me even more excited for the game, now that you say you plan to modify it. With it being a console port by a Japanese studio, it will likely need an ENB makeover.ENBSeries wrote:Recently i have seen the news (outdated for today) that Dragon's Dogma game will be released for PC in january. Great news, i like it very much and hope to modify it (if the port will be "compatible" with modding and stable enough).
-
Offline
- *master*
- Posts: 194
- Joined: 12 Feb 2014, 17:05
Re: TES Skyrim 0.279
found out that it will also have highres textures, and actually pretty decent tonemapping.
_________________
Win10x64 (fall creators update) | Intel i5-2500k | Nvidia GTX 970 | 16GB
Win10x64 (fall creators update) | Intel i5-2500k | Nvidia GTX 970 | 16GB
-
Offline
- Posts: 6
- Joined: 09 Apr 2015, 23:36
Re: TES Skyrim 0.279
Wow! Great news. Really excited for that. A nice surprise. (Though Dragon's Dogma being released for PC at all, was also a nice surprise!) Looking forward to what you can do with it!ENBSeries wrote:Recently i have seen the news (outdated for today) that Dragon's Dogma game will be released for PC in january. Great news, i like it very much and hope to modify it (if the port will be "compatible" with modding and stable enough).
Also, in relation to the AO discussion. isn't HBAO+ (not conventional HBAO) physically-based? I thought I remember reading that somewhere, but it's been awhile.
Though I must say, your own custom-rolled AO is top-of-the-line, and fantastic. It'd be nice to see more developers embrace something similar. (Which could be said for a lot of the things you work on, haha.)
-
Offline
- Posts: 92
- Joined: 12 Jul 2012, 04:54
Re: TES Skyrim 0.279
Before Boris rants about the term "physically based", I can tell you the answer is no. AO is an approximation of 1 part of global illumination. HBAO+ is just a well rounded solution to rendering HBAO quickly. HBAO itself is also not physically-based, it doesn't take into account nearly enough information to even be close.MittenFacedLad wrote: Also, in relation to the AO discussion. isn't HBAO+ (not conventional HBAO) physically-based? I thought I remember reading that somewhere, but it's been awhile.
Though I must say, your own custom-rolled AO is top-of-the-line, and fantastic. It'd be nice to see more developers embrace something similar. (Which could be said for a lot of the things you work on, haha.)
From NVIDIA's website: "HBAO uses a physically-based algorithm that approximates an integral with depth buffer sampling." They use the world physically-based very very loosely. They raytrace AO, then compare it with their AO solution until it looks close enough. A misuse of a buzz word imo
I do agree Boris's AO is really good, maybe he can share some source with us devs on the forum
_________________
CPU: Intel i5-2400 | GPU: GTX 660 | RAM: 8GB | OS: Windows 10 64-bit Preview build 10072 | Drivers: 350.12
CPU: Intel i5-2400 | GPU: GTX 660 | RAM: 8GB | OS: Windows 10 64-bit Preview build 10072 | Drivers: 350.12
-
Offline
- *blah-blah-blah maniac*
- Posts: 17557
- Joined: 27 Dec 2011, 08:53
- Location: Rather not to say
Re: TES Skyrim 0.279
Why ao in other games sucks (in 99% of them), even if someone written about algorithm that it kinda physically based or at least looks like that:
1) ao is computed and applied like white objects are placed in synthetic room with white ground and white sky as hemisphere light emitter, black-white model. Fixed in enbseries only by the way it's applied, to affect ambient color (which is simplest form of sky light) instead of entire screen and color of models affect amount of lighting, so black color do not reflect light, but have a lot of darkening from ao, while white objects reflect lot of light, but ao amount is tiny.
2) sampling range is very small because of performance reasons, very much noise of algorithms by the nature of sampling, screen space limitations. Fixed in enbseries by huge amount of time wasted for inventing noise in space functions and it's filter parameters, while default 0.3 range is several times bigger than in all games i have seen, even about twice bigger than ao in gta5 (most games use very thin ao).
3) ao itself is not enough for fake GI, ssil helps here. Again, almost no games have this (ssdo was published later), because they ignore it in general, they can't apply it properly by lighting math instead of image overlay, because it's at least twice slower than just ao. Fixed in enbseries, ssil exist from first version of the mod, lighting math applied correctly by both reflecting color of objects and multiplying result with albedo instead of fake math for scene overlay.
4) ao and il do not use self intersection and self shadowing for tracing rays because of performance reasons. Hbao do have this computation for ao only, but at cost of very low range, basically it looks like lines with self occlusion enabled. Unfixed in ENBSeries, because videocards not able to compute this, too much performance required for valid per ray steps occlusions without misses, may be in dx11 i'll be able to precompute this.
5) Almost all games (and nvidia driver) use ao for geometry from depth buffer data, which produce triangulation artifacts or solutions against this simply bypass ao for low anges. Very few games (Metro Last Light if i remember) compute ao from per pixel normals, which is have very high quality of details (every texture brick have ao), but works badly by noise amount generated (require much more samples) and classic noise filtering code greatly degrade details. Fixed in enbseries (for deferred only versions possible) by long time testing/inventing noise distribution functions and tricky filters, increasing sampling quality of course, applying pre-filtering and antialiasing. With these crazy optimizations basic triangles based ao looks ideal even for sampling ranges near to screen size. Game developers simply unable to f* up their life doing all these tests to achieve any similar effect.
So, i'm proud of my ao/il and don't believe someone will find anything else better, algorithms themselves do not allow to move around any more and absolutely different computations must be used for any progress for gi implementation, may be i'll try out another ideas for upcoming games or once for Skyrim, they have lot of minimal computation requirements, similar to my current ao/il summary, but have higher scalability above that, who knows if it worth time, some developers moving in that direction already, nvidia f.e. with "their" volumetric ao rasterisation.
1) ao is computed and applied like white objects are placed in synthetic room with white ground and white sky as hemisphere light emitter, black-white model. Fixed in enbseries only by the way it's applied, to affect ambient color (which is simplest form of sky light) instead of entire screen and color of models affect amount of lighting, so black color do not reflect light, but have a lot of darkening from ao, while white objects reflect lot of light, but ao amount is tiny.
2) sampling range is very small because of performance reasons, very much noise of algorithms by the nature of sampling, screen space limitations. Fixed in enbseries by huge amount of time wasted for inventing noise in space functions and it's filter parameters, while default 0.3 range is several times bigger than in all games i have seen, even about twice bigger than ao in gta5 (most games use very thin ao).
3) ao itself is not enough for fake GI, ssil helps here. Again, almost no games have this (ssdo was published later), because they ignore it in general, they can't apply it properly by lighting math instead of image overlay, because it's at least twice slower than just ao. Fixed in enbseries, ssil exist from first version of the mod, lighting math applied correctly by both reflecting color of objects and multiplying result with albedo instead of fake math for scene overlay.
4) ao and il do not use self intersection and self shadowing for tracing rays because of performance reasons. Hbao do have this computation for ao only, but at cost of very low range, basically it looks like lines with self occlusion enabled. Unfixed in ENBSeries, because videocards not able to compute this, too much performance required for valid per ray steps occlusions without misses, may be in dx11 i'll be able to precompute this.
5) Almost all games (and nvidia driver) use ao for geometry from depth buffer data, which produce triangulation artifacts or solutions against this simply bypass ao for low anges. Very few games (Metro Last Light if i remember) compute ao from per pixel normals, which is have very high quality of details (every texture brick have ao), but works badly by noise amount generated (require much more samples) and classic noise filtering code greatly degrade details. Fixed in enbseries (for deferred only versions possible) by long time testing/inventing noise distribution functions and tricky filters, increasing sampling quality of course, applying pre-filtering and antialiasing. With these crazy optimizations basic triangles based ao looks ideal even for sampling ranges near to screen size. Game developers simply unable to f* up their life doing all these tests to achieve any similar effect.
So, i'm proud of my ao/il and don't believe someone will find anything else better, algorithms themselves do not allow to move around any more and absolutely different computations must be used for any progress for gi implementation, may be i'll try out another ideas for upcoming games or once for Skyrim, they have lot of minimal computation requirements, similar to my current ao/il summary, but have higher scalability above that, who knows if it worth time, some developers moving in that direction already, nvidia f.e. with "their" volumetric ao rasterisation.
_________________
i9-9900k, 64Gb RAM, RTX 3060 12Gb, Win7
i9-9900k, 64Gb RAM, RTX 3060 12Gb, Win7
-
Offline
- Posts: 7
- Joined: 18 Sep 2015, 22:31
Re: TES Skyrim 0.279
Well, I thought I would post to ask for memory advice to see if anyone could give me suggestions to help make my Skyrim more stable.
Hardware specs just in case:
CPU - i7 3770k oc @4.5GHz
Memory - GSkill Trident X QC 32 GB DDR3 @2133MHz
GPU - EVGA 6 GB GeForce GTX 980 Ti Classified
OS - Windows 7 x64 Professional
So for memory patches I'm running just enboost mostly with ENB 0.279, and of course the memory patch that comes with SKSE. I also find some times I have to run SafetyLoad because I just can't get some saves to load without it. Also I get a fair amount of stuttering in my game (though I have reduced it with some tweaks), seemingly the worst when new cells are being loaded (I run ugrids = 7... I don't dare go any higher lol). However, when I run EnableUnsafeMemoryHacks=true, my game runs smooth as butter, but it's also fairly unstable. So the settings I usually run:
[MEMORY]
ExpandSystemMemoryX64=false
ReduceSystemMemoryUsage=true
DisableDriverMemoryManager=false
DisablePreloadToVRAM=false
EnableUnsafeMemoryHacks=true
ReservedMemorySizeMb=512
VideoMemorySizeMb=10240
EnableCompression=false
AutodetectVideoMemorySize=false
I run 10240 in videomemorysize because I remember reading somewhere that no matter how much memory you have, that is the maximum value you can set anyway. I've also never gone over like 4gb of vram usage anyway. I run mostly 2k or under textures because any higher and stuttering becomes a massive pain in the ass. I only run 4k textures on my character and armor really. That's about it.
When I set ExpandSystemMemoryX64 to true (I have EnableUnsafeMemoryHacks set to false with this enabled), my game CTDs at the main menu just before the options (load, new game, etc) appear every single time. I used to run this set to true, but can't now for some reason. That was before I changed my video card and upgraded to 0.279.
When I run EnableUnsafeMemoryHacks=true (I have ExpandSystemMemoryX64 set to false with this enabled), I get almost 0 stuttering whatsoever. It plays super smooth, and load screens are near instantaneous as well. However, I seemingly cannot load games with it enabled whatsoever. It will CTD right before it loads every time. In order to actually play with this setting, I usually have to start a new game, and then load a previous save. But I cannot just straight load any game from the main menu or it CTDs every time. I also get the occasional CTD when loading certain cells, or some times when fast traveling. Other than that, the game runs super smooth. I would love to keep this setting set to true if I can figure out how to stop the CTDs with it on.
With both of those set to false, I can load up games fairly reliably and play, but it's far from a smooth experience. I get micro/macro stutter when turning my camera sharply, and occasionally freezes that can last 5-10 seconds. If I run SafetyLoad with both set to false, I can pretty reliably load games with no issue and seldom get CTDs. It just sucks when actually playing because of the stuttering.
With regards to my SKSE memory heap setup: I run the initial heap at 768mb (+256, so 1024), and the second still runs at 256. I originally ran with just 512mb (+256 so 768) as my initial heap, but then when I started using War Zones I started hitting that 512mb cap on the initial heap which started to cause CTDs in my game, so I had to up it to 768. So far I haven't come anywhere near hitting that yet, and my scrap never gets to 256 so I don't feel I need to increase that value.
I've looked at the SKSE crash dumps when I get a CTD and it's a memory corruption error every single time. Same exact code too. Memtest and driver scanner software revealed no issues, so I figure I'm just doing something wrong with my memory settings.
Any recommendations on what to change to improve my experience? Honestly EnableUnsafeMemoryHacks=true has been a massive improvement for actual playability in my game because I was getting some pretty insane micro/macro stutter when turning my camera, and at times even freezes that would last up to 5-10 seconds. With EnableUnsafeMemoryHacks=true, this almost never happens. However as I said, it makes my game more unstable because I have trouble loading save games, and have semi-frequent CTDs when bursting my ram (fast travel, quick cell changes, etc). I would like to find a way to make this setting work though.
Any help or suggestions would be appreciated. Thanks!
Hardware specs just in case:
CPU - i7 3770k oc @4.5GHz
Memory - GSkill Trident X QC 32 GB DDR3 @2133MHz
GPU - EVGA 6 GB GeForce GTX 980 Ti Classified
OS - Windows 7 x64 Professional
So for memory patches I'm running just enboost mostly with ENB 0.279, and of course the memory patch that comes with SKSE. I also find some times I have to run SafetyLoad because I just can't get some saves to load without it. Also I get a fair amount of stuttering in my game (though I have reduced it with some tweaks), seemingly the worst when new cells are being loaded (I run ugrids = 7... I don't dare go any higher lol). However, when I run EnableUnsafeMemoryHacks=true, my game runs smooth as butter, but it's also fairly unstable. So the settings I usually run:
[MEMORY]
ExpandSystemMemoryX64=false
ReduceSystemMemoryUsage=true
DisableDriverMemoryManager=false
DisablePreloadToVRAM=false
EnableUnsafeMemoryHacks=true
ReservedMemorySizeMb=512
VideoMemorySizeMb=10240
EnableCompression=false
AutodetectVideoMemorySize=false
I run 10240 in videomemorysize because I remember reading somewhere that no matter how much memory you have, that is the maximum value you can set anyway. I've also never gone over like 4gb of vram usage anyway. I run mostly 2k or under textures because any higher and stuttering becomes a massive pain in the ass. I only run 4k textures on my character and armor really. That's about it.
When I set ExpandSystemMemoryX64 to true (I have EnableUnsafeMemoryHacks set to false with this enabled), my game CTDs at the main menu just before the options (load, new game, etc) appear every single time. I used to run this set to true, but can't now for some reason. That was before I changed my video card and upgraded to 0.279.
When I run EnableUnsafeMemoryHacks=true (I have ExpandSystemMemoryX64 set to false with this enabled), I get almost 0 stuttering whatsoever. It plays super smooth, and load screens are near instantaneous as well. However, I seemingly cannot load games with it enabled whatsoever. It will CTD right before it loads every time. In order to actually play with this setting, I usually have to start a new game, and then load a previous save. But I cannot just straight load any game from the main menu or it CTDs every time. I also get the occasional CTD when loading certain cells, or some times when fast traveling. Other than that, the game runs super smooth. I would love to keep this setting set to true if I can figure out how to stop the CTDs with it on.
With both of those set to false, I can load up games fairly reliably and play, but it's far from a smooth experience. I get micro/macro stutter when turning my camera sharply, and occasionally freezes that can last 5-10 seconds. If I run SafetyLoad with both set to false, I can pretty reliably load games with no issue and seldom get CTDs. It just sucks when actually playing because of the stuttering.
With regards to my SKSE memory heap setup: I run the initial heap at 768mb (+256, so 1024), and the second still runs at 256. I originally ran with just 512mb (+256 so 768) as my initial heap, but then when I started using War Zones I started hitting that 512mb cap on the initial heap which started to cause CTDs in my game, so I had to up it to 768. So far I haven't come anywhere near hitting that yet, and my scrap never gets to 256 so I don't feel I need to increase that value.
I've looked at the SKSE crash dumps when I get a CTD and it's a memory corruption error every single time. Same exact code too. Memtest and driver scanner software revealed no issues, so I figure I'm just doing something wrong with my memory settings.
Any recommendations on what to change to improve my experience? Honestly EnableUnsafeMemoryHacks=true has been a massive improvement for actual playability in my game because I was getting some pretty insane micro/macro stutter when turning my camera, and at times even freezes that would last up to 5-10 seconds. With EnableUnsafeMemoryHacks=true, this almost never happens. However as I said, it makes my game more unstable because I have trouble loading save games, and have semi-frequent CTDs when bursting my ram (fast travel, quick cell changes, etc). I would like to find a way to make this setting work though.
Any help or suggestions would be appreciated. Thanks!
-
Offline
- *blah-blah-blah maniac*
- Posts: 530
- Joined: 30 Jan 2012, 13:18
Re: TES Skyrim 0.279
Mind if I step in? Boris, I know that you can't and won't share actual code from your AO but as I'm working on my own one atm I'd fancy a bit more insight about your algorithms, what these noise functions do in comparison to regular pseudo random generators, how you achieve the performance you do, how you mix AO and IL with original scene and so on. Though if you don't want to, that's perfectly fine to me.
-
Offline
- *blah-blah-blah maniac*
- Posts: 552
- Joined: 11 Apr 2012, 03:24
Re: TES Skyrim 0.279
I haven't been on these boards in about a year, anyway I noticed that the last iteration of 0.279 happened 3 months ago. Will there be another update soon? Will you be working on any new features?
_________________
i5-6600k -- Nvidia GTX 970 -- 16Gb ram @3200mhz
i5-6600k -- Nvidia GTX 970 -- 16Gb ram @3200mhz
-
Offline
- *blah-blah-blah maniac*
- Posts: 17557
- Joined: 27 Dec 2011, 08:53
- Location: Rather not to say
Re: TES Skyrim 0.279
DjaySaint
I can't help, you trying to do what is impossible for the game. Don't think anybody else may help too. For sure your memory amount is wrong, better set value which dx9 version of VRamSizeTest reported. Unsafe memory hack mode do not makes clones of data in RAM and just using VRAM, so when you run out of VRAM, game crash occur.
evok99
When i do not release any mods, this just means i'm busy with something else and doesn't mean new versions will not be made.
Marty McFly
Functions are noise pattern computation based on frac with different arguments. Pure random noise with smooth distribution uncomparable lower quality, while frac based is kinda stretched, screwed tiling which is greatly smoothed by bilateral filter. You may set keyboard or gui variables to tweak shader constants and to find your own best, the same did i. The problem is in mixing sampling ranges of at least two passes (separately) of bilateral filter and noise pattern. Generic filter range which theoretically coorect do not work. Instead, i'm filtering several noisy waves in two passes instead of just blurring per pixel. Noisy waves means that frac generates irregular noise which repeats as ocean at the storm, huge and small waves when looking at the pattern. In the past (in gta4 also) i have used sincos and frac, but in latest just several fracs and pure arithmetics for performance reasons. Also bilateral filter depending on filtering type setting may use normal map with angle based separation to fix extreme blurriness with per pixel ssao (per trianle don't need this).
To optimize performance i can only suggest to not use constants for sampling, computations for every sampling point must be computed inside the cycle and i used 2d vector rotation by matrix for that. Everything else in optimization is about knowledge which ops in which order and registers are slower or faster, so all gpu units fully utilized at same time as memory bandwidth (even some dummy calculations are used to boost performance). There are other tricks, but i'd like to make a paper about them, because nobody use such optimization methods for shaders, they are require tracking of source code and generated assembly (or writing in assembly) to boost performance several times instead of ruin it.
AO and IL mixing are the same as computation of indirect lighting for software renderer with exception that method of AO applied differ and have selection parameter for users. Scene color is demuxed in to ambient, albedo, lighting with shadows, then AO and IL applied on to them and everything mixed back to color. The only trick is to tweak how much AO applied to objects with dark and bright areas instead of just multiplication. Most types of blending (7 total if i remembe in Skyrim) are various versions of invalid math which have different look and may look better than proper math.
I can't help, you trying to do what is impossible for the game. Don't think anybody else may help too. For sure your memory amount is wrong, better set value which dx9 version of VRamSizeTest reported. Unsafe memory hack mode do not makes clones of data in RAM and just using VRAM, so when you run out of VRAM, game crash occur.
evok99
When i do not release any mods, this just means i'm busy with something else and doesn't mean new versions will not be made.
Marty McFly
Functions are noise pattern computation based on frac with different arguments. Pure random noise with smooth distribution uncomparable lower quality, while frac based is kinda stretched, screwed tiling which is greatly smoothed by bilateral filter. You may set keyboard or gui variables to tweak shader constants and to find your own best, the same did i. The problem is in mixing sampling ranges of at least two passes (separately) of bilateral filter and noise pattern. Generic filter range which theoretically coorect do not work. Instead, i'm filtering several noisy waves in two passes instead of just blurring per pixel. Noisy waves means that frac generates irregular noise which repeats as ocean at the storm, huge and small waves when looking at the pattern. In the past (in gta4 also) i have used sincos and frac, but in latest just several fracs and pure arithmetics for performance reasons. Also bilateral filter depending on filtering type setting may use normal map with angle based separation to fix extreme blurriness with per pixel ssao (per trianle don't need this).
To optimize performance i can only suggest to not use constants for sampling, computations for every sampling point must be computed inside the cycle and i used 2d vector rotation by matrix for that. Everything else in optimization is about knowledge which ops in which order and registers are slower or faster, so all gpu units fully utilized at same time as memory bandwidth (even some dummy calculations are used to boost performance). There are other tricks, but i'd like to make a paper about them, because nobody use such optimization methods for shaders, they are require tracking of source code and generated assembly (or writing in assembly) to boost performance several times instead of ruin it.
AO and IL mixing are the same as computation of indirect lighting for software renderer with exception that method of AO applied differ and have selection parameter for users. Scene color is demuxed in to ambient, albedo, lighting with shadows, then AO and IL applied on to them and everything mixed back to color. The only trick is to tweak how much AO applied to objects with dark and bright areas instead of just multiplication. Most types of blending (7 total if i remembe in Skyrim) are various versions of invalid math which have different look and may look better than proper math.
_________________
i9-9900k, 64Gb RAM, RTX 3060 12Gb, Win7
i9-9900k, 64Gb RAM, RTX 3060 12Gb, Win7