X0nk / Bliss-Shader

A minecraft shader which is an edit of chocapic v9
Other
574 stars 35 forks source link

Floodfill incorrect shadows on most custom block models #286

Open DanLCD opened 3 months ago

DanLCD commented 3 months ago

Describe the bug

With Floodfill turned off, custom blocks that are not a full block model render correctly and as expected. Floodfill off However, when turned on and under artificial light (not sunlight), these blocks begin to almost completely darken up inward, leading to some rather annoying visuals. Floodfill on Some vanilla models appear to be unaffected by this phenomenon, as are these two pots: Decorated Pot & Flower Pot with Floodfill on Some others, however, are subject to it. Redstone dust, for example: Redstone dust with Floodfill on Although it is mainly noticeable with blocks from other mods. Blocks affected and unaffected by this This only happens with artificial lighting, however, as the blocks are unaffected under sunlight. Redstone dust under sunlight Custom block (from Macaw's Holidays) under sunlight It is not a matter of lighting either, as even if the blocks get a light source next to them the problem persists. Only handheld lights manage to get rid of it. Lit redstone lamp with Floodfill on Torch placed with Floodfill on Handheld torch with Floodfill on

Describe how your minecraft is set up

2024-08-26_12 52 51

Describe how to reproduce the bug

Turn Floodfill on with everything else in default. Place any block that isn't a full-block model in a space without sunlight and with another placed light source.

DanLCD commented 3 months ago

Related: #235 #228 #201 #170

DanLCD commented 3 months ago

Would love to see this getting resolved, as these shaders along with Floodlight are such eye candy :) 2024-08-26_15 46 13 (this spotlight effect comes from usage of a lvl 0 Light block from vanilla, discovered this accidentally but in retrospective it seems relevant to this issue now lol) 2024-08-26_15 47 31 2024-08-26_15 49 25

X0nk commented 3 months ago

To give a little bit of context; for the whole floodfill effect to work, it needs to know what blocks are where, relative to the world. the shader loader mod (iris/optifine) does not give this information at all, so the shader has to find that data all it by itself. I'm sure you don't want to hear a lengthy explanation of 3d voxel space meticulously checking for something or nothing within the world, so i will just cut to the end

The shader has to manually list what blocks are light sources, and if a block should not block light. by default everything except air, is automatically a light blocking thing. Otherwise, the shader would need to manually list all things that should block light. that list is... significantly larger, so that's never gonna happen.

to stop specific blocks from blocking light, you need to manually add those blocks to the list of blocks that should not block light

One other thing, the "voxel space" or 3D grid of the world is atleast 1x1x1 meter/1 block in volume for each grid unit. model shape does not exist in that voxel space. only the voxel shape exists. and that shape is 1 block large. So things that block light, but have had their model changed to be less than 1 block large, will still block light as if its 1 block large, regardless of what the model is.

IMoist commented 3 months ago

Related: #235 #228 #201 #170

and #291

X0nk commented 3 months ago

yes, all of those are the same issue. some of them have been cleared away simply by putting block ID's in the groups that best fit them, like i explained above