Fabulously Optimized

Fabulously Optimized

2M Downloads

Distant Horizons

Madis0 opened this issue ยท 31 comments

commented

CurseForge link

https://www.curseforge.com/minecraft/mc-mods/distant-horizons

CurseForge Mod Distribution

Allowed

Modrinth link

https://modrinth.com/mod/distanthorizons

Source/other link

https://gitlab.com/jeseibel/minecraft-lod-mod

Mod file size

1.18.2 = 2.46 MB | 1.19 = 2.49 MB

What it does

Renders long distances with low detail, meaning anyone can have a long rendering distance

Why should it be in the modpack

Actually exists for 1.18.1 Fabric unlike #86 and unlike #46 and #184 it is usable for low-end computers too

Why shouldn't it be in the modpack

Alpha, untested by me, clainingly incompatible with (some) shaders, not sure if it works in multiplayer and whether it can cache chunks as well

Categories

Performance optimization, Graphics optimization

Additional details

https://youtu.be/PGmCPejswig

commented

With my test, I loaded the hypixel duels lobby entirely, with high settings, low end pc, I was getting around 14-20 fps with random stutters, freezes and sometimes holes in the terrain as stated in previous comments, having worse performance than #46 and #184 in the same settings.

commented

It's a very work in progress too much potential to break, I assume many people will have no idea what it does and how to control it, and #184 now fully supports 1.18.

commented

I've tested it and it's a bit buggy and shader support is also lacking at the moment. When there is shader support it certainly seems like a good addition to FO! (8 render distane)
2022-02-17_20 27 01
2022-02-17_20 27 02

2022-02-17_20 17 49

![Uploading 2022-02-17_20.20.46.pngโ€ฆ
2022-02-17_20 18 30

2022-02-17_20 20 44

2022-02-17_20 21 48
2022-02-17_20 21 42
2022-02-17_20 21 18
2022-02-17_20 20 47

commented

After testing it in single-player worlds, it seems great. While it has no shader support as of yet and has some holes in the world during the initial chunk loading after joining a world, there is an extensive configuration that could probably fix the latter.

However, I think that its addition to FO should be postponed because of a fatal flaw:
2022-02-18_15 50 42
This screenshot was taken in the Hypixel lobby after joining and leaving Skyblock. I have no idea how the mod works but I'd presume this issue has something to do with the way that you join and leave different worlds inside a single server. But the mod does seem to be great otherwise and if there was (or is) some way to stop its functionality in servers via its config then it would make for a great addition to FO right now.

commented

I will say that Multiverse servers make this mod be very buggy, as it will show other worlds. Haven't tested it myself, or with nether/end though.

commented

is it possible to run this mod on opengl 3.1 version?

commented

I don't think this is a big problem, how optifine handle these situations?

I haven't used optifine since 1.19 came out, so I can't say for sure
I don't think the situations of singleplayer and multiplayer are different in optifine

Without shaders it was the same and I guess it is the same now
With shaders in optifine back then, LODs were rendered not as too bright/dark as Iris did
However, it was impossible to play at 15 fps with medium shaders and Distant Horizons settings

commented

So there is support for shaders ๐ŸŒ„
However, I think that this mod should not be present in the modpack, since it's fully revealed only in a singleplayer
In multiplayer, you will just see the absence of fog near you, since it will take an extremely long time to travel and load chunks

commented

So there is support for shaders ๐ŸŒ„ However, I think that this mod should not be present in the modpack, since it's fully revealed only in a singleplayer In multiplayer, you will just see the absence of fog near you, since it will take an extremely long time to travel and load chunks

I don't think this is a big problem, how optifine handle these situations?

commented

Regarding shaders support, I don't think it should be a concern since Distant Horizons will just show a warning that X shader pack doesn't support DH and turn itself off until shaders are disabled or a compatible pack is picked instead.

Looks like there's also multiverse support now based on similarities but not sure how it would handle voids on servers like skyblock since these are well, similar, and might indicate the same world.
edit: checked on hypixel now and seems to be working correctly in this regard after setting similarity to 0.5

Gets a bit buggy with the zoom mod tho

commented

Yes, there was a bug when the LODs were cut off when zooming on them. However, it's no longer there.

Now, there is another one. It's more of an inevitability than a real bug.
With a low render distance, all non-solid blocks in vanilla chunks acquire a pre-LOD state or something. I suppose this was implemented so that a hole wouldn't appear there when unloading these chunks, and instead a LOD chunk seamlessly inserted.

commented

I played around with this mod in FO and I don't notice any buggy behavior with the zoom mod. It still needs some more work in its current state, but it's shaping up to be a very promising mod.

commented

You can see this effect here:
image

commented

With a low render distance, all non-solid blocks in vanilla chunks acquire a pre-LOD state or something.

How low of a render distance did you use to notice this?

commented

How low of a render distance did you use to notice this?

About 8 to have a good fps with shaders.

I'll take a screenshot as soon as I have time.

commented

I have noticed that issue, mostly when watching real water turn into LODs and vise versa. I'd imagine that this will be improved upon just as they improved the general look of the LODs from previous versions. Even then, I personally don't find it very noticeable as my eyes move towards the mountains and other structures.

commented

Yes, I haven't noticed it for a long time either.
These are the implementation features that will probably remain in their current form for a long time.

commented

However, there is still a problem that some structures may partially or completely fail to load as LODs, leaving only the LOD terrain instead of themselves.
In my case, this applies to all types of ships from the mod When Dungeons Arise: Seven Seas, floating villages from Tidal Towns and other structures, some of which are located near the water.

The second problem partially follows the first one.
When trying to load such bugged chunks and then leave them, Distant Horizons may not update them at all. In general, this applies to any noticeable update in chunks. For example, after the explosion of a large amount of dynamite or a nuke in the chunks, and then quickly leaving them.
I don't know exactly how long it is necessary to stay near these chunks within a vanilla view range, but I think 5 minutes will definitely be enough. Otherwise, the algorithm for updating nearby LODs apparently doesn't have time to prioritize the threads to this.

commented

So the Distant Horizons v2.2.0 came out.
Personally, I really noticed an increase in the speed of creating LODs of the world by about 25% on my heavily modified instance. This applies to any dimension, vanilla ones, from datapacks or mods.
Also, many problems with LOD chunks in the ocean have really disappeared. Before that, I constantly noticed black spots and oddities in the middle of the ocean or where the monuments and other underwater structures are generated.

I have an i5-7600K CPU and a GTX 1060 of 6 GB (yes, I am so old).
With a vanilla view range of 10 chunks and 64 DH chunks with default settings of the Complementary shaders, I have from 40 to 60 fps. When on the plain or in the ocean, FPS reaches 80-90, and when in the forest or on a mountain it can fell to 30.
Without shaders, with the same view range settings, I had 150-200 fps.

Noisium and C2ME truly increase the loading speed of LODs even more, so my instance with Distant Horizons cannot exist without them.

commented

Yeah, this update really helped. I no longer saw partially torn structures, including those on the water.

commented

I just did a new test with DH (version 2.2.1-a) at settings I personally think are more in line with the default settings of FO. With the render distance set to 6 and DH's render distance set to 32 I get reasonable performance. I get around 76-81 FPS with around 32% of the LODs loaded in. I have a low end laptop and I plan on redoing the performance tests soon. The mods used were: Sodium, EntityCulling, Iris, Lithium, More Culling, FerriteCore, ImmediatelyFast, ModernFix, and FPS-Display.

I also noticed a significant benefit with Noisium! After 6 minutes at the same settings and seed, the world with Noisium enabled generated a significantly more than the one without. I have two pictures below showing the difference:

Without Noisium:
NoNisiom

With Noisium:
WithNoisium

commented

However, there is still a problem that some structures may partially or completely fail to load as LODs, leaving only the LOD terrain instead of themselves.
In my case, this applies to all types of ships from the mod When Dungeons Arise: Seven Seas, floating villages from Tidal Towns and other structures, some of which are located near the water.

The second problem partially follows the first one.
When trying to load such bugged chunks and then leave them, Distant Horizons may not update them at all. In general, this applies to any noticeable update in chunks. For example, after the explosion of a large amount of dynamite or a nuke in the chunks, and then quickly leaving them.
I don't know exactly how long it is necessary to stay near these chunks within a vanilla view range, but I think 5 minutes will definitely be enough. Otherwise, the algorithm for updating nearby LODs apparently doesn't have time to prioritize the threads to this.

Do you still have this issue with version 2.2.1-a? There was a bug were feature generation was broken when Lithium was used.

commented

Do you still have this issue with version 2.2.1-a? There was a bug were feature generation was broken when Lithium was used.

I just looked at the changelog.

However, I used Fabric 1.20.4 for my tests, and the list of changelog:

  • Fix Lithium breaking DH world gen for MC 1.20.1 and older

However, I think here's what will help me:

  • Change delayed LOD modified save from 2 seconds -> 500 ms
  • This should make LODs appear to update slightly faster

I'll test it myself when I have time.