OutRun2006Tweaks
OutRun2006Tweaks copied to clipboard
[Bug]: DrawDistanceIncrease issue reports
The new DrawDistanceIncrease tweak lets us bump up the draw distance a lot, helping with reducing pop-ins and some of the weird flashing models that show up, changing views like these:
Into these:
Sadly with the way the games scenes are setup pushing the distance too far can cause some LOD models to appear much earlier than they should, eg. in most levels where you can get a peek at the earlier section of a track they'd usually use a LOD version of the track to show it, so if we've extended the draw distance up to that spot the LOD version might get drawn in place of the actual model...
If you notice any issues when using DrawDistanceIncrease please report them here (w/ a screenshot & the level name), sometimes these can be very obvious like a ugly LOD mass appearing in the middle of the track, and sometimes it can be very subtle such as railings/bushes disappearing...
Hoping to add some kind of filter list so we could skip drawing those LOD models when we're extending the distance out, might take some work though, but hopefully if we can get all the LODs added to it we should be able to push things up to 1024+ without issues. (if anyone wants to test with distance at 1024 and report the issues here it'd help a lot)
The draw distance can be changed during gameplay if you want to try comparing some spots, this will require Cheat Engine & extracting both dinput8.dll + dinput8.pdb into game folder, then you should be able to add dinput8.Settings::DrawDistanceIncrease to cheat engine (4 bytes) and change it from there (DrawDistance has to be set above 0 in the INI for this to work though)
Hi emoose
did you know if you drive time attack and you select only 1 Stage there is no popin like in online arcade (xbox) even without your mod,
Ah, I was just taking screenshots and was fighting the pop-in. Wish I checked this sooner lol. Thanks, I'll play on 1024 and see if I notice anything. Does this also apply to sprites that are oriented towards the road that disappear when viewed at other angles? The Notre Dame's spire on Metropolis, for example.
Hi emoose
did you know if you drive time attack and you select only 1 Stage there is no popin like in online arcade (xbox) even without your mod,
This doesn't seem to be 100% consistent. You can easily test this by going to Castle Walls and then driving very slowly around the first couple of corners. You'll see the walls in the next area pop in.
At Casino Town, at the underpass transition, the wall (bottom of building above it?) pops in when you get close. Increase and Behind are both set to 32.
https://streamable.com/p807pd
16
https://streamable.com/alqb8g
Doesn't occur at 0.
transition to legend pops in when you gets close, Increase is set to 16 and 24 and it provides same results.
I noticed that the vertical cables on the Golden Gate bridge require an unusually high drawdistance number to not pop-in (at least 90). Even at the max recommended, 32, the cables will be completely invisible until you're a few feet away from them.
Of course, setting draw distance to 90 introduces other problems as expected, but it's weird that this one area is so resistant to it.
DrawDistanceIncrease = 16, the banners at the end of Tulip have noticeable, sudden pop-in even if you're almost right under it. Another object for the exclusion list?
https://streamable.com/c3cypo
DrawDistanceIncrease = 4, the clouds on highlands have a bit of pop-in.
https://streamable.com/nz407y
DrawDistanceIncrease = 8, seems to only have very slight almost imperceptible pop-in.
https://streamable.com/j83d2v
Canyon has some noticeable pop-in with rocks and foliage in this one spot. DrawDistanceIncrease = 8. Btw Streamable videos only last for 90 days on a free account, so if you plan on working on this later and want these videos for reference, I'd save them.
https://streamable.com/bb0cy8
Back draw distance set to 64, so I guess that's around the upper limit before things start breaking. This only occurred on Metropolis that I've noticed so far.
The buildings straight ahead of me have bad pop-in on Palm Beach. Forward Distance set to 32.
@emoose Have you had any luck with adding textures to the exclusion list? I think the stage transitions are the most important, since those pop up at even very low draw distance values. Legend, one of the forest stages (think it was Big Forest), the tunnel in Metro, etc.
Hi. Is anyone experiencing, or has experienced, performance issues (microstuttering, occasional stronger stutters) with DrawDistanceIncrease enabled? Even at relatively low values such as DrawDistanceIncrease = 6, or DrawDistanceIncrease = 4?
I did more than an hour of testing, racing through the same routes with the same cars multiple times, to make sure it wasn't something else on my end or some other setting, however with DrawDistanceIncrease = 0 these performance issues never happen. Definitely seems to be the culprit. My OutRun2006Tweaks.ini is pretty much vanilla otherwise (only other change I had made was changing ReflectionResolution = 2048 to 1024, since 1024 looks good enough for me and it reduced GPU usage from an average of 15% to 9%).
Some stages are obviously more prone to these performance issues than others. From my testing, Palm Beach, Deep Lake, Desert, Sunny Beach, Bay Area, appear to be the worst.
Later I tried changing SingleCoreAffinity = true to false. This improved things a lot and gets rid of most stuttering when DrawDistanceIncrease is enabled (despite the warnings about crashing/freezing issues in the .ini, it didn't cause any stability issues on my system). There were still a few occasional microstutters, but they become rarer. Later I changed FramerateUnlockExperimental = true to false, and this also seemed to reduce stutters a bit further (not an issue for me since I'm playing at 60 fps). With these two changes I got rid of almost all stuttering.
Keep in mind, none of these changes are necessary for a stutter free gameplay with DrawDistanceIncrease = 0 though. Is this setting supposed to be so performance heavy? (I'm very sensitive to microstuttering issues so it might be possible some people don't even notice it).
My specs are Core i7 10700K + 64 GB DDR4 + RTX 2060 Super, on Windows 10. Not top of the shelf hardware but should be able to run things well.
Every time I go from Milky Way to SkyCrapers before it turns into SkyCrapers, these Trees block my vision.
To fix this, I changed "DrawDistanceIncrease = 4" to "DrawDistanceIncrease = 1" and it seems to fix this issue.
If anyone wants to try hunting down more LOD issues I added a new draw distance exclusion tool in latest actions build (open with F11):
The nodes will update as you drive through the course, so it's probably best to pause game before trying to add exclusions.
(E: updated build at https://github.com/emoose/OutRun2006Tweaks/actions/runs/12218284887 can now hide pause menu for you)
Will probably add some kind of LODExclusions.ini file which the exclusions can be added into, should make it easier to test/update things.
Sounds good, I'll try it out later.
[Stage 20]
0x3 = 0x2C3
Draw distance 3
little bush here pops in. this bend has a lot of objects pop in.
Added exclusion INI reading in https://github.com/emoose/OutRun2006Tweaks/actions/runs/12218726658
If you add those lines to .lods.ini it should hopefully exclude them now
Am I looking for pop-in or specifically for low-res LOD models?
Mostly low-res lods that appear, things like the trees showing on the track that were posted before
afaik it should be able to fix breakages like the one you posted on metropolis before with it too: https://github.com/emoose/OutRun2006Tweaks/issues/97#issuecomment-2394871002
iirc the trees disappearing with high draw-distance there is caused from a bunch of bad nodes, wasn't able to mark them all before but maybe can be fixed now
Ideally we should be able to push draw-distance pretty high if we can mark bad nodes, 64-128+, think that should fix most pop-ins then
Is the draw distance included in the node value, or should I include that? Here's another one. I'll do some more later, I remember that Coniferous Forest has trees pop in on the bunki too.
# LAS VEGAS
[Stage 18]
# Wall texture under tunnel (DD 15)
0x1 = 0x1F
Nah adding the distance value isn't too important, it'd depend on the track section # you're viewing it from afaik.
Might be an issue with bunkis atm, think it's still using the previous stage num even though the nodes that get excluded are from the next stage... might have a fix soon
(E: should be fixed in https://github.com/emoose/OutRun2006Tweaks/actions/runs/12219421972)
Hm some of the disappearances might be some kind of object limit actually, I'd thought the disappearances were caused by bad nodes since excluding some nodes would let them show again, but if you increased draw-dist so more nodes were drawn it goes back to disappearing.
Guess maybe it's not the disabled nodes that fixed it, but disabling nodes just freed up enough space so it would keep drawing.
Not sure if much can be done for that, might have to setup some kind of max-draw-dist for each stage depending on how many things it tries to draw (or figure out what limit we're hitting and make sure draw-dist code doesn't go past it)
Can you temporarily set WindowedHideMouseCursor to false while the debug menu is up? You can't use the controller because the inputs also get sent to the pause menu/game, so you end up unpausing while selecting an option.
We can dummy out the Casino Town wall, I didn't test it so I didn't notice that it removes the entire skyline from above the bridge lol.
This little piece of mountain geometry. Seems safe to exclude.
# ALPINE
[Stage 3]
0x1 = 0x1
Added some quick code to extend games draw buffers and that seemed to fix the disappearances I saw, didn't actually expect that to work lol.
Just did a run with drawdist 1024 and didn't see any major issues, besides a couple floating objects maybe, need to check metropolis though since I know that had a lot of disappearances before
Mouse cursor stuff is a bit annoying in Windows, will see if I can improve it though, maybe for now we can just ignore WindowedHideMouseCursor if the overlay is enabled.
I'm also testing 1024. I was wondering if this kind of stuff needs to be reported since I'm running at the unreasonable draw distance of 1024, not sure if it's LOD or just terrain being rendered early by the DD value. DD216.
# MAYA
[Stage 25]
0x1 = 0x34
Added draw buffer extension in https://github.com/emoose/OutRun2006Tweaks/actions/runs/12224598577
Yeah that kind of terrain is perfect to add, probably some object that you'd see from the end of the map.
Maps like casino town are a bit more difficult though since you have that winding part with buildings on top, iirc one of the mountain maps has some later track floating above the backdrop too, not really sure what best way to handle those is yet, maybe limiting draw-dist during certain sections of the map would help.
# SNOW MOUNTAIN
[Stage 4]
# Piece of floating mountain geometry when entering the stage
0x1 = 0x8
# Random piece of floating geometry above the lift cables, didn't get a close look
0x6 = 0x1E
This seems to clean up a lot of the casino town buildings actually
# LAS VEGAS
[Stage 18]
# Building geo above winding section
0x1 = 0x1F
0x3 = 0x1, 0x3, 0x10, 0x11, 0x1F, 0x21, 0x4E, 0x50
Pushed fix for alt-tabbing at https://github.com/emoose/OutRun2006Tweaks/actions/runs/12224712382 too
# TULIP GARDEN
[Stage 10]
0x1 = 0x1F
# Hill on the road, DD222
Not sure where it comes from originally, I drove a few laps with it turned off and didn't notice any missing hills. I also did a 15c and didn't notice any textures covering the bunki, so I think it's just small stuff that's left now.
I'm not really sure what to look for regarding LoD models, since the game is already fairly low resolution (such as rival cars, which seem to either be stuck on LoD models or just use low-res by default). Do you have an example of an obvious one?