MoreCulling

MoreCulling

77.1k Downloads

aggressive BlockState Culling for snow layer when using Physics Mod

VL4DST3R opened this issue · 14 comments

commented

[This is a copy of my comment on the Curseforge page]

The "aggressive BlockState Culling" this mod does for the snow "layer" clashes with the dynamic snow created by Physics Mod. Since the mod allows you to leave trails through the top snow layers, once you walk through it you get to see the underlying snow texture that this mod culls, effectively leaving holes in the world where you walked. Is there any way to disable it specifically for snow like you can for powder snow?

commented

I believe setting the modded snow block in the mod menu settings would prevent this. Although there is currently a bug preventing this that will be fixed in the upcoming release

commented

Still having this problem with version 0.12.3.

Playing Minecraft 1.19.2 using Quilt Loader 0.17.8 and Quilted Fabric API 4.0.0-beta.24+0.68.0

Physics mod is 2.9.2 (pro version required for snow physics)

2022-12-21_02 11 18

Not only is the problem described by @VL4DST3R still present, there is an additional problem.
Physics mod implements LODs for its snow models. Further away means lower LOD. The lower LODs don't quite entirely cover all of the terrain that would be normally covered by LOD0 (up close).

Since it appears MoreCulling uses the LOD0 snow model to determine what blocks are hidden, this causes distant snowy terrain to have very unpleasant holes.

2022-12-21_02 11 32

The setting "Modded blockstate culling" has no effect, disabled or not.

commented

@SmirkVG I also had this issue, i ended up disabling the option to turn blocks below snow layers into physicsmod-enabled snow voxels, and just leave them as-is. It will still make snow blocks and the snow layer react to physics and so far it seems fine.

Here is a snow igloo that i rubbed my face against to see how it would look like:
2022-12-20_23 35 41
Notice the grass blocks underneath the top snow layer (which are also rendered as snow in this case) are being solid.

I'm a bit behind in therms of updates (1.19.0) but for the sake of posterity, i achieved the above result with moreculling 1.19.1-0.10.0 and physics mod v89a (both for fabric)

commented

i ended up disabling the option to turn blocks below snow layers into physicsmod-enabled snow voxels, and just leave them as-is.

That setting I actually use as a preference, you can see it in the first image I attached. Notice how you can see the stone blocks beneath the snow layer.

It seems MoreCulling’s behavior has changed since 0.10.0, becoming even more aggressive (which is good in most scenarios, just not this one). I recommend @FxMorin re-open this issue in regards to the latest version of the mod.

@VL4DST3R, out of curiosity, did you not also have the other issue I mentioned above related to how snowy hills appear at a distance?

commented

I did as well, i mentioned the other one in my initial report since it was far more distracting and actually game-breaking, since you would basically have no floor to stand on.

commented

Just be warned that the amount of time I have to fix this is very very small. It's also not very high priority.
I recommend the physics mod to use the correct culling shape for its snow models.
Also turning physics mod off in my settings should have worked

commented

No rush @FxMorin, just means I will have to make compromises between visual fidelity and performance, which is the case for every game ever, lol.
But I agree with you on the point that it would be more ideal if the physics mod were to prevent its distant LODs from having holes in its geometry.

As for disabling the mod, MoreCulling’s mod compatibility config pane (reached through mod menu) did not list the physics mod. Like I mentioned before, I tried the blanket fix that, if I’m understanding its function correctly, disables MoreCulling’s effects on ALL mods, but it did not make a difference.

Can I add the physics mod manually to the actual config file, and what would be the syntax?

commented

Wouldn't having a way to mark individual blocks to skip from culling address this issue entirely? A blacklist basically.

commented

What do you mean the blanket fix?
Also yes you should be able to by using the mods if, however if it's not there I don't think it will work

commented

I won't be able to find the issue without the having the physics mod myself, so this will probably not get fixed

commented

But don't you already have a list of blocks to check to enable the culling in the first place? Considering you can already toggle on/off certain things, i imagine his suggestion would be more of the same, no?

commented

I won't be able to find the issue without the having the physics mod myself, so this will probably not get fixed

With the Pro version of the Physics Mod having gone free recently, reproducing the issue is now possible. Unfortunately, only the (previous) "free" version is listed in typical Minecraft mod databases such as Modrinth and CurseForge, but the formerly paid version "Pro" (now free) can be downloaded from the author's Ko-Fi page without an account.

Personally, I think implementing a fix for the behavior itself would be unnecessarily overcomplicated. I also don't see the author of the Physics Mod ever bothering with MoreCulling's API.

MoreCulling currently allows the user to disable culling on a case-by-case basis for all blocks from a specified mod, but this broad approach does not account for mods that change blocks already in Minecraft. Also, some mods add tons of blocks, and it would be a shame to have to disable culling on that mod entirely when, perhaps, only one block in that mod is causing a problem. Therefore, I'd suggest revisiting this suggestion from above:

Wouldn't having a way to mark individual blocks to skip from culling address this issue entirely? A blacklist basically.

A system in which the user was allowed to remove culling on blocks by adding their ID to a blacklist -- in this case, "minecraft:snow", and "minecraft:snow_layer" -- is the ultimate compatibility fix. Adding only the prefix of a block ID, such as "minecraft" to the list would allow users to easily disable an entire mod.

commented

Doing so would also be incredibly more expensive as I would need to do this check on all blocks.
I might do performance testing for this, however currently I dont have the time to do so

commented

Any updates on this? Unless disabling BlockState Culling entirely on 1.20.1 it is still broken with physics mod.