MoreCulling

MoreCulling

77.1k Downloads

Depth-Based Leaves Culling Behaves Wrongly

Obscure2020 opened this issue ยท 4 comments

commented

Introduction

It has come to my attention that MoreCulling's "Depth" setting for leaves culling works really poorly. It looks quite ugly, and its behavior doesn't match up with what I think a reasonable user would expect from a mode named "Depth." Moreover, its current results are inefficient, culling much fewer faces than it should.

To demonstrate Depth mode's current flaws, I built a long slab of Dark Oak Leaves:

2022-12-15_16 19 26

The Redstone Block pictured above is aligned with the left-hand side of the slab of leaves. All further screenshots were taken while standing on top of the Snow on top of the Redstone Block.

Vanilla Behavior

Here is what we see when we look through the length of the slab of leaves from the front, with Vanilla's non-culled leaves:

2022-12-15_16 21 24

Every front face of each leaf block down the length of the slab is being rendered. This dense coverage of leaves looks really nice, but it's pretty inefficient.

Depth Mode - Expected Behavior

Here is what I would expect to see when I look through the leaves from the front, with Depth mode set to 1:

2022-12-15_16 37 12

Only the frontmost face of the slab of leaf blocks is being rendered. This makes sense. When I set the "Depth" to "1," I would intuitively expect that the leaves would be rendered "one-deep."

Now, here is what I would expect to see when I look through the leaves with Depth mode set to 2:

2022-12-15_16 37 41

Now the front faces of the two closest blocks to the camera are being rendered. This makes sense. When I set the "Depth" to "2," I would intuitively expect that the leaves would be rendered "two-deep."

Depth Mode - Actual Current Behavior

Here is what currently happens when I look through the leaves from the front, with Depth mode set to 1:

2022-12-15_16 50 49

Huh, that's odd. It looks like the frontmost block is being rendered, the second block was skipped, but then all further blocks following that were rendered? Why on earth would anyone want their game to render this way? This is bizarre and inefficient!

Now, here is what currently happens when I look through the leaves with Depth mode set to 2:

2022-12-15_16 51 27

This is even more bizarre. The frontmost block was rendered, the second and third blocks were skipped, and then the blocks begin rendering again following that. What is going on???

How did you get those "Expected Behavior" Screenshots?

I used the mod Cull Less Leaves.

Why don't you just use Cull Less Leaves in conjunction with More Culling?

I can't. Not anymore. Thanks to a new update from isXander, using these two mods in conjunction is no longer possible.

image
image

Desired Solution

More Culling's "Depth" mode should be rewritten to behave exactly as Cull Less Leaves does, plus any further improvements you may want to add to that. In addition, the "Fast" mode should be removed, as it would be functionally equivalent to "Depth" mode set to 1.

While I could go complain to isXander that compatibility should be re-added to Cull Less Leaves, at the end of the day, I actually think isXander is right. More Culling does feature leaves culling. I shouldn't have to install two mods that try to do the same thing. More Culling is the one that needs fixing.

commented

Suggestion: Compare the solutions against actual trees. A lot of people told me they like it more since the back of the tree is not completely missing.
Although yes I can implement a newer method and switch some things around.
I've been really busy lately and don't have that much time to work on my personal mods, so ill have to think about it

commented

No rush. I've been busy for a long time myself. I appreciate your understanding.
Interesting that some folks said they actually like the current implementation. Looks weird to me, I dunno. I got used to how Cull Less Leaves looks.

commented

I ended up spending my remaining free time today to implement it

commented

Dude, you're a real G. Thanks a million.