Combining animated & world-aligned textures has alignment issues.
GoodClover opened this issue · comments
Minetest version
5.6.0-dev e765988 (latest master as of writing)
Summary
When using animated world-aligned textures:
- They don't perfectly align to the block (this may not be a bug)
- There are weird strips that don't match up, maybe weird off-by-one errors
Steps to reproduce
- Enable block bounds for alignment (F4)
- Place some
gromit:*
nodes. - Try to make sense of it.
Video examples (above test mod)
spin-2022-05-03_16.46.31.mp4
spin-big.mp4
I think this happens with non-world aligned animated textures as well. Massive lava lakes show it pretty well, of course I couldn't find one now, so I had to make this manually. You can see the two lava_source nodes on the left are slightly lighter than they should be.
I think the API mentions, or used to mention something about animated textures not being guaranteed to align at block borders, though I couldn't find it now.
This could be caused by the chunk borders getting in the way of alignment in textures. I might be wrong.
lua-api.txt:7617
:
- scale is used to make texture span several (exactly
scale
) nodes, instead of just one, in each direction. Works for world-aligned textures only.
Note that as the effect is applied on per-mapblock basis,16
should be equally divisible byscale
or you may get wrong results.
If you don't make it an integer divisor of 16 there will be issues, yes. But in my examples I'm using 8 and 16, which fit nicely into 16.
It's never documented that world-aligned and animated textures work together, so this may be something that's just not been tested before?
I use world-aligned animated textures, but it's only for crusted lava, so it's hard to really tell if it worked as it should.
it seems related to chunk borders indeed, as it happens every 16 nodes
textures.mp4
Turns out there's a setting desynchronize_mapblock_texture_animation
that is enabled by default for some unknown reason. This half fixes the issue, but there's still the off-by-one error.