Cauldron models are very unoptimized, causing render lag
The bug
Cauldrons are perhaps one of the most complex block models in vanilla Minecraft, using 58 texture planes. We can therefore expect pretty much any situation which uses a lot of cauldrons, such as an automatic dripstone lava farm, to cause quite a significant amount of rendering lag due to having to render several tens of planes per cauldron. We, however, can do better.
Attached to this ticket is a resource pack which perfectly recreates the vanilla cauldron (and I've thoroughly tested this to be sure; there are no visual differences unless you clip inside of the cauldron) using just 46 texture planes instead, cutting out 12 unneccessary texture planes. This resource pack also fixes the three cauldrons containing a fluid level (adding in one extra plane to fix MC-205095).
It would be possible to optimize cauldrons even further using an approach described in MC-262427 and also utilized in MC-262452. However, due to MC-262462, this cannot currently be done.
How to reproduce
Refer to MC-262427, MC-262452 and/or MC-262461 and extrapolate.
How to fix
Replace the "cauldron.json", "template_cauldron_level1.json", "template_cauldron_level2.json" and "template_cauldron_full.json" files currently in Minecraft with the model files in the resource pack. Mojang have my full permission to use these optimized model files. Optimization is always a good thing.
Linked Issues
testing discovered1
relates to15
Created Issue:
Cauldron models are very unoptimized, causing render lag
Relates to MC-262427,
MC-262433, MC-262452 and MC-262461.The bug
Cauldrons are perhaps one of the most complex block models in vanilla Minecraft, using 58 texture planes. We can therefore expect pretty much any situation which uses a lot of cauldrons, such as an automatic dripstone lava farm, to cause quite a significant amount of rendering lag due to having to render several tens of planes per cauldron. We, however, can do better.
Attached to this ticket is a resource pack which perfectly recreates the vanilla cauldron (and I've thoroughly tested this to be sure; there are no visual differences unless you clip inside of the cauldron) using just 46 texture planes instead, cutting out 12 unneccessary texture planes. This resource pack also fixes the three cauldrons containing a fluid level (adding in one extra plane to fix MC-205095).
It would be possible to optimize cauldrons even further using an approach described in
MC-262433and also utilized in MC-262452. However, due toMC-262462, this cannot currently be done.How to reproduce
Refer to MC-262427,
MC-262433, MC-262452 and/or MC-262461 and extrapolate.How to fix
Replace the "cauldron.json", "template_cauldron_level1.json", "template_cauldron_level2.json" and "template_cauldron_full.json" files currently in Minecraft with the model files in the resource pack. Mojang have my full permission to use these optimized model files. Optimization is always a good thing.
relates to
testing discovered
Relates to MC-262427,
MC-262433, MC-262452 and MC-262461.The bug
Cauldrons are perhaps one of the most complex block models in vanilla Minecraft, using 58 texture planes. We can therefore expect pretty much any situation which uses a lot of cauldrons, such as an automatic dripstone lava farm, to cause quite a significant amount of rendering lag due to having to render several tens of planes per cauldron. We, however, can do better.
Attached to this ticket is a resource pack which perfectly recreates the vanilla cauldron (and I've thoroughly tested this to be sure; there are no visual differences unless you clip inside of the cauldron) using just 46 texture planes instead, cutting out 12 unneccessary texture planes. This resource pack also fixes the three cauldrons containing a fluid level (adding in one extra plane to fix MC-205095).
It would be possible to optimize cauldrons even further using an approach described in
MC-262433and also utilized in MC-262452. However, due toMC-262462, this cannot currently be done.How to reproduce
Refer to MC-262427,
MC-262433, MC-262452 and/or MC-262461 and extrapolate.How to fix
Replace the "cauldron.json", "template_cauldron_level1.json", "template_cauldron_level2.json" and "template_cauldron_full.json" files currently in Minecraft with the model files in the resource pack. Mojang have my full permission to use these optimized model files. Optimization is always a good thing.
relates to
Relates to
MC-252693,MC-260296and MC-262527.The bug
Cauldrons are perhaps one of the most complex block models in vanilla Minecraft, using 58 texture planes. We can therefore expect pretty much any situation which uses a lot of cauldrons, such as an automatic dripstone lava farm, to cause quite a significant amount of rendering lag due to having to render several tens of planes per cauldron. We, however, can do better.
Attached to this ticket is a resource pack which perfectly recreates the vanilla cauldron (and I've thoroughly tested this to be sure; there are no visual differences unless you clip inside of the cauldron) using just 46 texture planes instead, cutting out 12 unneccessary texture planes. This resource pack also fixes the three cauldrons containing a fluid level (adding in one extra plane to fix MC-205095).
It would be possible to optimize cauldrons even further using an approach described in
MC-262433and also utilized in MC-262452. However, due toMC-262462, this cannot currently be done.How to reproduce
Refer to MC-262427,
MC-262433, MC-262452 and/or MC-262461 and extrapolate.How to fix
Replace the "cauldron.json", "template_cauldron_level1.json", "template_cauldron_level2.json" and "template_cauldron_full.json" files currently in Minecraft with the model files in the resource pack. Mojang have my full permission to use these optimized model files. Optimization is always a good thing.
Relates to
MC-252693,MC-260296andMC-262527.The bug
Cauldrons are perhaps one of the most complex block models in vanilla Minecraft, using 58 texture planes. We can therefore expect pretty much any situation which uses a lot of cauldrons, such as an automatic dripstone lava farm, to cause quite a significant amount of rendering lag due to having to render several tens of planes per cauldron. We, however, can do better.
Attached to this ticket is a resource pack which perfectly recreates the vanilla cauldron (and I've thoroughly tested this to be sure; there are no visual differences unless you clip inside of the cauldron) using just 46 texture planes instead, cutting out 12 unneccessary texture planes. This resource pack also fixes the three cauldrons containing a fluid level (adding in one extra plane to fix MC-205095).
It would be possible to optimize cauldrons even further using an approach described in
MC-262433and also utilized in MC-262452. However, due toMC-262462, this cannot currently be done.How to reproduce
Refer to MC-262427,
MC-262433, MC-262452 and/or MC-262461 and extrapolate.How to fix
Replace the "cauldron.json", "template_cauldron_level1.json", "template_cauldron_level2.json" and "template_cauldron_full.json" files currently in Minecraft with the model files in the resource pack. Mojang have my full permission to use these optimized model files. Optimization is always a good thing.
Relates to
MC-252693,MC-260296, MC-262527,MC-262652and MC-262689.The bug
Cauldrons are perhaps one of the most complex block models in vanilla Minecraft, using 58 texture planes. We can therefore expect pretty much any situation which uses a lot of cauldrons, such as an automatic dripstone lava farm, to cause quite a significant amount of rendering lag due to having to render several tens of planes per cauldron. We, however, can do better.
Attached to this ticket is a resource pack which perfectly recreates the vanilla cauldron (and I've thoroughly tested this to be sure; there are no visual differences unless you clip inside of the cauldron) using just 46 texture planes instead, cutting out 12 unneccessary texture planes. This resource pack also fixes the three cauldrons containing a fluid level (adding in one extra plane to fix MC-205095).
It would be possible to optimize cauldrons even further using an approach described in
MC-262433and also utilized in MC-262452. However, due toMC-262462, this cannot currently be done.How to reproduce
Refer to MC-262427,
MC-262433, MC-262452 and/or MC-262461 and extrapolate.How to fix
Replace the "cauldron.json", "template_cauldron_level1.json", "template_cauldron_level2.json" and "template_cauldron_full.json" files currently in Minecraft with the model files in the resource pack. Mojang have my full permission to use these optimized model files. Optimization is always a good thing.
Relates to
MC-252693,MC-260296,MC-262527,MC-262652and MC-262689.The bug
Cauldrons are perhaps one of the most complex block models in vanilla Minecraft, using 58 texture planes. We can therefore expect pretty much any situation which uses a lot of cauldrons, such as an automatic dripstone lava farm, to cause quite a significant amount of rendering lag due to having to render several tens of planes per cauldron. We, however, can do better.
Attached to this ticket is a resource pack which perfectly recreates the vanilla cauldron (and I've thoroughly tested this to be sure; there are no visual differences unless you clip inside of the cauldron) using just 46 texture planes instead, cutting out 12 unneccessary texture planes. This resource pack also fixes the three cauldrons containing a fluid level (adding in one extra plane to fix MC-205095).
It would be possible to optimize cauldrons even further using an approach described in
MC-262433and also utilized in MC-262452. However, due toMC-262462, this cannot currently be done.How to reproduce
Refer to MC-262427,
MC-262433, MC-262452 and/or MC-262461 and extrapolate.How to fix
Replace the "cauldron.json", "template_cauldron_level1.json", "template_cauldron_level2.json" and "template_cauldron_full.json" files currently in Minecraft with the model files in the resource pack. Mojang have my full permission to use these optimized model files. Optimization is always a good thing.
Relates to
MC-252693,MC-260296and MC-262527.The bug
Cauldrons are perhaps one of the most complex block models in vanilla Minecraft, using 58 texture planes. We can therefore expect pretty much any situation which uses a lot of cauldrons, such as an automatic dripstone lava farm, to cause quite a significant amount of rendering lag due to having to render several tens of planes per cauldron. We, however, can do better.
Attached to this ticket is a resource pack which perfectly recreates the vanilla cauldron (and I've thoroughly tested this to be sure; there are no visual differences unless you clip inside of the cauldron) using just 46 texture planes instead, cutting out 12 unneccessary texture planes. This resource pack also fixes the three cauldrons containing a fluid level (adding in one extra plane to fix MC-205095).
It would be possible to optimize cauldrons even further using an approach described in
MC-262433and also utilized in MC-262452. However, due toMC-262462, this cannot currently be done.How to reproduce
Refer to MC-262427,
MC-262433, MC-262452 and/or MC-262461 and extrapolate.How to fix
Replace the "cauldron.json", "template_cauldron_level1.json", "template_cauldron_level2.json" and "template_cauldron_full.json" files currently in Minecraft with the model files in the resource pack. Mojang have my full permission to use these optimized model files. Optimization is always a good thing.
relates to
relates to
relates to
relates to
relates to
relates to
relates to
Relates to
MC-252693,MC-260296andMC-262527.The bug
Cauldrons are perhaps one of the most complex block models in vanilla Minecraft, using 58 texture planes. We can therefore expect pretty much any situation which uses a lot of cauldrons, such as an automatic dripstone lava farm, to cause quite a significant amount of rendering lag due to having to render several tens of planes per cauldron. We, however, can do better.
Attached to this ticket is a resource pack which perfectly recreates the vanilla cauldron (and I've thoroughly tested this to be sure; there are no visual differences unless you clip inside of the cauldron) using just 46 texture planes instead, cutting out 12 unneccessary texture planes. This resource pack also fixes the three cauldrons containing a fluid level (adding in one extra plane to fix MC-205095).
It would be possible to optimize cauldrons even further using an approach described in
MC-262433and also utilized in MC-262452. However, due toMC-262462, this cannot currently be done.How to reproduce
Refer to MC-262427,
MC-262433, MC-262452 and/or MC-262461 and extrapolate.How to fix
Replace the "cauldron.json", "template_cauldron_level1.json", "template_cauldron_level2.json" and "template_cauldron_full.json" files currently in Minecraft with the model files in the resource pack. Mojang have my full permission to use these optimized model files. Optimization is always a good thing.
Relates to
MC-252693andMC-260296.The bug
Cauldrons are perhaps one of the most complex block models in vanilla Minecraft, using 58 texture planes. We can therefore expect pretty much any situation which uses a lot of cauldrons, such as an automatic dripstone lava farm, to cause quite a significant amount of rendering lag due to having to render several tens of planes per cauldron. We, however, can do better.
Attached to this ticket is a resource pack which perfectly recreates the vanilla cauldron (and I've thoroughly tested this to be sure; there are no visual differences unless you clip inside of the cauldron) using just 46 texture planes instead, cutting out 12 unneccessary texture planes. This resource pack also fixes the three cauldrons containing a fluid level (adding in one extra plane to fix MC-205095).
It would be possible to optimize cauldrons even further using an approach described in
MC-262433and also utilized in MC-262452. However, due toMC-262462, this cannot currently be done.How to reproduce
Refer to MC-262427,
MC-262433, MC-262452 and/or MC-262461 and extrapolate.How to fix
Replace the "cauldron.json", "template_cauldron_level1.json", "template_cauldron_level2.json" and "template_cauldron_full.json" files currently in Minecraft with the model files in the resource pack. Mojang have my full permission to use these optimized model files. Optimization is always a good thing.
Relates to
MC-252693andMC-260296.The bug
Cauldrons are perhaps one of the most complex block models in vanilla Minecraft, using 58 texture planes. We can therefore expect pretty much any situation which uses a lot of cauldrons, such as an automatic dripstone lava farm, to cause quite a significant amount of rendering lag due to having to render several tens of planes per cauldron. We, however, can do better.
Attached to this ticket is a resource pack which perfectly recreates the vanilla cauldron (and I've thoroughly tested this to be sure; there are no visual differences unless you clip inside of the cauldron) using just 46 texture planes instead, cutting out 12 unneccessary texture planes. This resource pack also fixes the three cauldrons containing a fluid level (adding in one extra plane to fix MC-205095).
It would be possible to optimize cauldrons even further using an approach described in
MC-262433and also utilized in MC-262452. However, due toMC-262462, this cannot currently be done.How to reproduce
Refer to MC-262427,
MC-262433, MC-262452 and/or MC-262461 and extrapolate.How to fix
Replace the "cauldron.json", "template_cauldron_level1.json", "template_cauldron_level2.json" and "template_cauldron_full.json" files currently in Minecraft with the model files in the resource pack. Mojang have my full permission to use these optimized model files. Optimization is always a good thing.
relates to
The bug
Cauldrons are perhaps one of the most complex block models in vanilla Minecraft, using 58 texture planes. We can therefore expect pretty much any situation which uses a lot of cauldrons, such as an automatic dripstone lava farm, to cause quite a significant amount of rendering lag due to having to render several tens of planes per cauldron. We, however, can do better.
Attached to this ticket is a resource pack which perfectly recreates the vanilla cauldron (and I've thoroughly tested this to be sure; there are no visual differences unless you clip inside of the cauldron) using just 46 texture planes instead, cutting out 12 unneccessary texture planes. This resource pack also fixes the three cauldrons containing a fluid level (adding in one extra plane to fix MC-205095).
It would be possible to optimize cauldrons even further using an approach described in
MC-262433and also utilized in MC-262452. However, due toMC-262462, this cannot currently be done.How to reproduce
Refer to MC-262427,
MC-262433, MC-262452 and/or MC-262461 and extrapolate.How to fix
Replace the "cauldron.json", "template_cauldron_level1.json", "template_cauldron_level2.json" and "template_cauldron_full.json" files currently in Minecraft with the model files in the resource pack. Mojang have my full permission to use these optimized model files. Optimization is always a good thing.
The bug
Cauldrons are perhaps one of the most complex block models in vanilla Minecraft, using 58 texture planes. We can therefore expect pretty much any situation which uses a lot of cauldrons, such as an automatic dripstone lava farm, to cause quite a significant amount of rendering lag due to having to render several tens of planes per cauldron. We, however, can do better.
Attached to this ticket is a resource pack which perfectly recreates the vanilla cauldron (and I've thoroughly tested this to be sure; there are no visual differences unless you clip inside of the cauldron) using just 46 texture planes instead, cutting out 12 unneccessary texture planes. This resource pack also fixes the three cauldrons containing a fluid level (adding in one extra plane to fix MC-205095).
It would be possible to optimize cauldrons even further using an approach described in MC-262427 and also utilized in MC-262452. However, due to
MC-262462, this cannot currently be done.How to reproduce
Refer to MC-262427, MC-262452 and/or MC-262461 and extrapolate.
How to fix
Replace the "cauldron.json", "template_cauldron_level1.json", "template_cauldron_level2.json" and "template_cauldron_full.json" files currently in Minecraft with the model files in the resource pack. Mojang have my full permission to use these optimized model files. Optimization is always a good thing.
The bug
The specifications for hanging propagules are several times larger than they need to be.
Many of the model elements of hanging propagules are flat planes, meaning that only two sides of said elements are ever visible (e.g. top and bottom). However, the model files define faces for all six sides of these planes as if they were full cuboids, despite the fact that due to being planes, four of these "sides" have zero area and are mathematically impossible to see. Despite being invisible in practice, the game tries to render these anyway, causing a bunch of render lag we really don't need (and may be in part responsible for MC-250246).
If we modify the propagule models to delete these unwanted faces, we can see a noticeable uptick in framerate in regions containing large amounts of mangrove propagules, while not changing how they look in the slightest.
As it is in vanilla, hanging mangrove propagules of ages 2, 3 and 4 are the most complex block models in the game, beating even vanilla cauldrons. We can more than half the amount of faces that every type of propagule needs, though, without changing anything visual about them at all. To be specific:
- Age 0 propagules use 42 faces, but only need 18
- Age 1 propagules use 48 faces, but only need 22
- Age 2, 3 and 4 propagules use 60 faces (two more than the cauldron at 58 - see MC-262470), but only need 26
I believe MC-260296 was the exact same issue as this (zero-width faces), but with pink petals, and was fixed promptly while this still remains an issue.
How to reproduce
(Note: Due to MC-118624, we cannot create a superflat world to demonstrate this issue like with other optimization tickets I've made.)
- Download the attached resource pack
- Go to a region of your creative world you don't care about (you can use a default superflat world for this to cut out any unwanted FPS lag sources)
- Execute this command:
/fill ~-50 ~1 ~-50 ~50 ~1 ~50 minecraft:mangrove_leaves[persistent=true] - Repeat the command, replacing both cases of "~1" with "~3", "~5", ... up to some odd number you're happy with
- Without moving, now execute the following command:
/fill ~-50 ~0 ~-50 ~50 ~0 ~50 minecraft:mangrove_propagule[age=4,hanging=true] - Repeat this command as well, replacing both "~0" instances with even numbers until you're one lower than the odd number you previously stopped at
- Use Spectator mode to fly out of this mess, then go to one of the corners of this infernal mangrove lasagna you've created and switch back to Creative mode
- Point the player camera at this preposterous pile of propagule plywood
- Set your render distance to 4 chunks
- Open the FPS meter by using F3+2
- Observe how it performs with the vanilla resources versus with the attached propagule fix resource pack
Expected results
Acceptable framerates.
Actual results
A client lagfest.
How to fix
This should be a very easy fix. The resource pack attached contains complete fixes for all five affected mangrove propagule models, so it should be as easy as just replacing the five vanilla hanging propagule models with those in the resource pack. I've also deleted some redundant lines from the model files which rotate elements by 0 degrees, which is identical to doing nothing.
As I've said many times before (do I even need to say this anyway?), Mojang have my full permission to use all of these model files to fix this issue, and are strongly encouraged to do so. Everyone wants the game to perform better, and this is just one way we can make that happen.
Relates to: MC-260296 MC-262427 MC-262452 MC-262461 MC-262470 MC-262527 MC-262641 MC-262652 MC-262689 MC-262953 MC-267127 MC-267315 MC-267864 MC-279350
The bug
The current multipart system for walls can use more quads than are necessary to achieve an identical visual result. Making Minecraft render more quads increases render lag, so decreasing the amount needed will improve performance.
The case in question is much the same as MC-267281, arising where two opposite connections of a wall are either both "low" or both "tall". Minecraft, by default, will render one model in each direction, with a total of two. However, the exact same visual outcome can be achieved using a single, continuous model, reducing the amount of quads used for this case from 10 to 6. Since there are no texture mapping issues on walls (unlike MC-109478 and MC-225819/MC-267871), this fix also completely preserves their appearance, so we get no bonus fixes.
How to reproduce
- Create this superflat world:
minecraft:barrier;minecraft:the_void
- Initiate flying mode
/fill -30 -63 -30 30 -56 30 cobblestone_wall
/fill -30 -55 -30 30 -48 30 cobblestone_wall
/tp @s 0 0 0 0 90
- Compare framerates with and without the attached resource pack using F3+2
Expected results
Vanilla's framerates would be ideal.
Actual results
The resource pack gives better results.
How to fix
Adopt the system demonstrated by this resource pack for walls. I give Mojang full permission to use this resource pack to fix this optimization problem.
Relates to: MC-260296 MC-262427 MC-262452 MC-262461 MC-262470 MC-262527 MC-262641 MC-262652 MC-262689 MC-262953 MC-267127 MC-267281 MC-267315 MC-267864 MC-279350 MC-279354
The bug
Bamboo fences, like other fence types (see MC-267281), are not modelled in a way which is optimal for rendering performances. As a result, areas which use large amounts of bamboo fences will decrease framerate much more than otherwise should be the case.
Bamboo fences use a fundamentally different system for modelling compared to other fences, which is why I'm reporting this separately from the other fences. Tragically the issues with the normal fence model have carried over to the system used for bamboo fences.
The model system bamboo fences use is also more complicated than is neccessary - it uses four models for orthogonal connections, whereas this optimized system achieves a visually identical outcome using just three.
Note that since bamboo models use a unique texture rather than just copying the bamboo planks texture, the texture mapping will need to be shifted around. A modified version is found within the attached resource pack - the visual outcome will be identical, but existing resource packs will need to be changed by their authors to fit around it (assuming they don't take the lazy route and just copy over the old, terrible models).
How to reproduce
- Create a creative Superflat world with the following preset:
minecraft:barrier;minecraft:the_void
- Enter flying mode by double pressing the jump button
- Run the command
/tp @s 0 -20 0 0 90
- Run the command
/fill -30 -63 -30 30 -56 30 bamboo_fence
- Open the performance graphs via F3+2
- Switch between the default resources and the attached resource pack, comparing the performance
Expected results
Good framerates in vanilla.
Actual results
We can do far better.
How to fix
Simply implement the resources in the attached resource pack into vanilla. I give Mojang my full permission and encouragement to use these files to make vanilla Minecraft run better.
Further notes
Mipmapping will be affected, however this is a non-issue.
The bamboo fence item model is also updated to fit the new system.
Many of the old model files can be safely deleted once the new ones are added, as this improved system renders them completely superseded.
Confirmed in 1.21.3