mirror of
https://github.com/X0nk/Bliss-Shader.git
synced 2024-12-23 01:59:39 +08:00
add support for Iris BLOCK_EMISSION_ATTRIBUTE to auto add lights to the floodfill
This commit is contained in:
parent
9bc16c418d
commit
b001751de4
@ -8,7 +8,7 @@ separateAo = true
|
|||||||
rain.depth = false
|
rain.depth = false
|
||||||
beacon.beam.depth = true
|
beacon.beam.depth = true
|
||||||
|
|
||||||
iris.features.optional = ENTITY_TRANSLUCENT REVERSED_CULLING COMPUTE_SHADERS CUSTOM_IMAGES
|
iris.features.optional = ENTITY_TRANSLUCENT REVERSED_CULLING COMPUTE_SHADERS CUSTOM_IMAGES BLOCK_EMISSION_ATTRIBUTE
|
||||||
|
|
||||||
#if RESOURCEPACK_SKY == 2
|
#if RESOURCEPACK_SKY == 2
|
||||||
sun=true
|
sun=true
|
||||||
|
@ -16,7 +16,11 @@ Read the terms of modification and sharing before changing something below pleas
|
|||||||
|
|
||||||
#ifdef IS_LPV_ENABLED
|
#ifdef IS_LPV_ENABLED
|
||||||
attribute vec4 mc_Entity;
|
attribute vec4 mc_Entity;
|
||||||
|
#ifdef IRIS_FEATURE_BLOCK_EMISSION_ATTRIBUTE
|
||||||
|
attribute vec4 at_midBlock;
|
||||||
|
#else
|
||||||
attribute vec3 at_midBlock;
|
attribute vec3 at_midBlock;
|
||||||
|
#endif
|
||||||
attribute vec3 vaPosition;
|
attribute vec3 vaPosition;
|
||||||
|
|
||||||
uniform mat4 shadowModelViewInverse;
|
uniform mat4 shadowModelViewInverse;
|
||||||
@ -48,9 +52,12 @@ void main() {
|
|||||||
renderStage == MC_RENDER_STAGE_TERRAIN_SOLID || renderStage == MC_RENDER_STAGE_TERRAIN_TRANSLUCENT ||
|
renderStage == MC_RENDER_STAGE_TERRAIN_SOLID || renderStage == MC_RENDER_STAGE_TERRAIN_TRANSLUCENT ||
|
||||||
renderStage == MC_RENDER_STAGE_TERRAIN_CUTOUT || renderStage == MC_RENDER_STAGE_TERRAIN_CUTOUT_MIPPED
|
renderStage == MC_RENDER_STAGE_TERRAIN_CUTOUT || renderStage == MC_RENDER_STAGE_TERRAIN_CUTOUT_MIPPED
|
||||||
) {
|
) {
|
||||||
vec3 originPos = playerpos + at_midBlock/64.0;
|
vec3 originPos = playerpos + at_midBlock.xyz/64.0;
|
||||||
|
|
||||||
uint voxelId = uint(mc_Entity.x + 0.5);
|
uint voxelId = uint(mc_Entity.x + 0.5);
|
||||||
|
#ifdef IRIS_FEATURE_BLOCK_EMISSION_ATTRIBUTE
|
||||||
|
if (voxelId == 0u && at_midBlock.w > 0) voxelId = BLOCK_LIGHT_1 + uint(at_midBlock.w - 1);
|
||||||
|
#endif
|
||||||
if (voxelId == 0u) voxelId = 1u;
|
if (voxelId == 0u) voxelId = 1u;
|
||||||
|
|
||||||
SetVoxelBlock(originPos, voxelId);
|
SetVoxelBlock(originPos, voxelId);
|
||||||
|
@ -54,7 +54,11 @@ uniform int entityId;
|
|||||||
#include "/lib/entities.glsl"
|
#include "/lib/entities.glsl"
|
||||||
|
|
||||||
#ifdef IS_LPV_ENABLED
|
#ifdef IS_LPV_ENABLED
|
||||||
|
#ifdef IRIS_FEATURE_BLOCK_EMISSION_ATTRIBUTE
|
||||||
|
attribute vec4 at_midBlock;
|
||||||
|
#else
|
||||||
attribute vec3 at_midBlock;
|
attribute vec3 at_midBlock;
|
||||||
|
#endif
|
||||||
uniform int currentRenderedItemId;
|
uniform int currentRenderedItemId;
|
||||||
uniform int renderStage;
|
uniform int renderStage;
|
||||||
|
|
||||||
@ -204,9 +208,12 @@ void main() {
|
|||||||
renderStage == MC_RENDER_STAGE_TERRAIN_CUTOUT || renderStage == MC_RENDER_STAGE_TERRAIN_CUTOUT_MIPPED
|
renderStage == MC_RENDER_STAGE_TERRAIN_CUTOUT || renderStage == MC_RENDER_STAGE_TERRAIN_CUTOUT_MIPPED
|
||||||
) {
|
) {
|
||||||
uint voxelId = uint(blockId);
|
uint voxelId = uint(blockId);
|
||||||
|
#ifdef IRIS_FEATURE_BLOCK_EMISSION_ATTRIBUTE
|
||||||
|
if (voxelId == 0u && at_midBlock.w > 0) voxelId = BLOCK_LIGHT_1 + uint(at_midBlock.w - 1);
|
||||||
|
#endif
|
||||||
if (voxelId == 0u) voxelId = 1u;
|
if (voxelId == 0u) voxelId = 1u;
|
||||||
|
|
||||||
vec3 originPos = playerpos + at_midBlock/64.0;
|
vec3 originPos = playerpos + at_midBlock.xyz/64.0;
|
||||||
|
|
||||||
SetVoxelBlock(originPos, voxelId);
|
SetVoxelBlock(originPos, voxelId);
|
||||||
}
|
}
|
||||||
|
@ -16,7 +16,11 @@ Read the terms of modification and sharing before changing something below pleas
|
|||||||
|
|
||||||
#ifdef IS_LPV_ENABLED
|
#ifdef IS_LPV_ENABLED
|
||||||
attribute vec4 mc_Entity;
|
attribute vec4 mc_Entity;
|
||||||
|
#ifdef IRIS_FEATURE_BLOCK_EMISSION_ATTRIBUTE
|
||||||
|
attribute vec4 at_midBlock;
|
||||||
|
#else
|
||||||
attribute vec3 at_midBlock;
|
attribute vec3 at_midBlock;
|
||||||
|
#endif
|
||||||
attribute vec3 vaPosition;
|
attribute vec3 vaPosition;
|
||||||
|
|
||||||
uniform mat4 shadowModelViewInverse;
|
uniform mat4 shadowModelViewInverse;
|
||||||
@ -48,9 +52,12 @@ void main() {
|
|||||||
renderStage == MC_RENDER_STAGE_TERRAIN_SOLID || renderStage == MC_RENDER_STAGE_TERRAIN_TRANSLUCENT ||
|
renderStage == MC_RENDER_STAGE_TERRAIN_SOLID || renderStage == MC_RENDER_STAGE_TERRAIN_TRANSLUCENT ||
|
||||||
renderStage == MC_RENDER_STAGE_TERRAIN_CUTOUT || renderStage == MC_RENDER_STAGE_TERRAIN_CUTOUT_MIPPED
|
renderStage == MC_RENDER_STAGE_TERRAIN_CUTOUT || renderStage == MC_RENDER_STAGE_TERRAIN_CUTOUT_MIPPED
|
||||||
) {
|
) {
|
||||||
vec3 originPos = playerpos + at_midBlock/64.0;
|
vec3 originPos = playerpos + at_midBlock.xyz/64.0;
|
||||||
|
|
||||||
uint voxelId = uint(mc_Entity.x + 0.5);
|
uint voxelId = uint(mc_Entity.x + 0.5);
|
||||||
|
#ifdef IRIS_FEATURE_BLOCK_EMISSION_ATTRIBUTE
|
||||||
|
if (voxelId == 0u && at_midBlock.w > 0) voxelId = BLOCK_LIGHT_1 + uint(at_midBlock.w - 1);
|
||||||
|
#endif
|
||||||
if (voxelId == 0u) voxelId = 1u;
|
if (voxelId == 0u) voxelId = 1u;
|
||||||
|
|
||||||
SetVoxelBlock(originPos, voxelId);
|
SetVoxelBlock(originPos, voxelId);
|
||||||
|
Loading…
Reference in New Issue
Block a user