Deprecate "cutout" render type in favor of "cutout_mipped" when appropriate (at least for vanilla blocks)
djmrFunnyMan opened this issue ยท 9 comments
Request Description
There are very few exceptions where this render type is used correctly. Glass, redstone wire and chains. These blocks melt away into nothing with mipmapping. So unless you have a way of fixing that (ie. anisotropic filtering) these blocks need to have mipmapping disabled.
However most blocks using it probably use it due to MC-114265 which makes mips of those blocks look terrible and mojang would rather disable mipmapping than fix it ๐
Needless to say this causes terrible aliasing. Especially on 1080p
However sodium has MC-114265 fixed. Which means there's no reason to stick to vanillas terrible lack of mipmapping.
Vanilla vs Sodium with forced cutout_mipped
Vanilla vs Sodium with forced cutout_mipped
I see 2 ways of doing this
- Automatically switch "cutout" to "cutout_mipped" but have an API to disable this for some blocks if some mods add blocks that really shouldn't have mipmapping.
- Hardcode each affected vanilla block to "cutout_mipped". Which means mods will be unaffected and you'll need to keep doing this manually each update as mojang adds more blocks.
The first one seems more favourable.
My two cents here:
https://youtu.be/jKLV6uWPvl8
Previously you could do that with Jagges Begone, but the mod seems to be abandoned.
Sodium already merges cutout and cutout mipped render passes as you can see here.
Well that doesn't solve the issue of blocks looking atrocious without mipmapping, which is the main reason I want this, even if there's no performance benefit.
Does Sodium also merge the tripwire render type into the general translucent render type?
There is no intention to "deprecate" the use of non-mipped materials. Doing so would alter the appearance of the game significantly, and cause problems with mods that add their own special blocks.
As was already pointed out, Sodium does not need additional draw calls to render mipped and non-mipped geometry for each render pass, so there is no performance impact.
If this is something that players really want, it would be easy enough to create a standalone mod which allows resource packs to alter the mipmap behavior of block models, without any special considerations needed for compatibility with Sodium.
Sodium already alters the apperance of the game significantly (ie. cloud fog fix)
Fixing this would objectively be a significant change for the better.
And I understand your modded compatibility concerns, that's why you can chose the second way I mentioned and simply change some vanilla blocks to cutout_mipped without messing with anything else.
I understand the points you are making, but you are simply repeating them here, and I don't agree with your assessment that it is "objectively better."
Enabling mip-mapping for these blocks (particularly foliage) significantly alters how much they affect the visuals when further away from the camera. Furthermore, this has already been done for ages in OptiFine and it has always been the source of complaints due to resource pack compatibility issues and such.
Unlike many of the other changes in Sodium (block lighting, fluid shading, biome color interpolation, cloud rendering, etc), they were fixing problems that were obviously the result of broken behavior. This behavior you describe is clearly not a bug, rather it's an intentional behavior that you view as (subjectively) unpleasant.
Well grass is treated as a bug at least MC-195505 and so was pale hanging moss (though marked as won't fix) MC-277120
I do understand your reasoning however. I was just hoping it be added to sodium because there's no actively maintained mod that does this (besides optifine)
And I would argue that aliasing is seen as a bad thing pretty objectively.