Lyall / MGSHDFix

A fix that adds custom resolutions, ultrawide support and much more to the Metal Gear Solid Master Collection.
MIT License
430 stars 8 forks source link

[Feature Request] MGS 3: Increase draw distance on certain objects #44

Open RIKLAVIEGASINTRODUCTION opened 11 months ago

RIKLAVIEGASINTRODUCTION commented 11 months ago

https://github.com/Lyall/MGSHDFix/assets/92535412/2a9f6973-f037-4dc6-8018-39310514b971

I believe the hover craft and some attachments on guards are affected.

emoose commented 10 months ago

Any chance you (or anyone reading) has a savegame near those hovercrafts?

Found a bunch of functions in the exe to do with grass fading / mesh visibility / camera distance checking, but haven't really played the game far enough to run into those hovercrafts yet.

cipherxof commented 10 months ago

Any chance you (or anyone reading) has a savegame near those hovercrafts?

Found a bunch of functions in the exe to do with grass fading / mesh visibility / camera distance checking, but haven't really played the game far enough to run into those hovercrafts yet.

You can load any stage using the dev menu.

https://www.nexusmods.com/metalgearsolidmastercollection/mods/1

emoose commented 9 months ago

Haven't had much time to work on this after the last post, was able to get grass distance to increase but couldn't figure out model distances yet.

If anyone wants to look into it I posted a PDB at https://www.nexusmods.com/metalgearsolid3mc/mods/52 that names ~2500 funcs, the NewGrassMng stuff in there handles most of the grass (there's also NewGrassMng_02 which I think handles trees)

The struct for GrassMng has a far-clipping distance inside which can increase how far it renders (not sure what limits that has tho), changing far-clipping distance also seems to affect the distances of leaf fading/popping.

Maybe models also have some kind of far-clipping distance too but wasn't able to find anything to affect them yet, would guess it's maybe handled in one of the funcs that DG_DrawViewports calls into. (E: the SIG_CameraDisCheck functions might also be worth looking into as well.)