Fixed block preview shader being glitchy. Now shows block without effects.
This commit is contained in:
@@ -84,25 +84,28 @@ public class BuildRenderTypes extends RenderType {
|
||||
String stateName = "eb_texturing_" + dissolve + "_" + blockPos + "_" + firstPos + "_" + secondPos + "_" + red;
|
||||
TexturingStateShard MY_TEXTURING = new TexturingStateShard(stateName, () -> {
|
||||
setShaderParameters(dissolveShaderInstance, dissolve, Vec3.atLowerCornerOf(blockPos), Vec3.atLowerCornerOf(firstPos), Vec3.atLowerCornerOf(secondPos), blockPos == secondPos, red);
|
||||
RenderSystem.setShaderColor(1f, 1f, 1f, 0.8f);
|
||||
// RenderSystem.setShaderColor(1f, 1f, 1f, 0.8f);
|
||||
}, () -> {});
|
||||
|
||||
RenderType.CompositeState renderState = RenderType.CompositeState.builder()
|
||||
.setShaderState(RENDERTYPE_DISSOLVE_SHADER)
|
||||
.setTexturingState(MY_TEXTURING)
|
||||
.setTextureState(new RenderStateShard.TextureStateShard(shaderMaskTextureLocation, false, false))
|
||||
// .setTexturingState(MY_TEXTURING)
|
||||
// .setTextureState(new RenderStateShard.TextureStateShard(shaderMaskTextureLocation, false, false))
|
||||
.setTextureState(RenderStateShard.BLOCK_SHEET_MIPPED)
|
||||
.setTransparencyState(TRANSLUCENT_TRANSPARENCY)
|
||||
.setLightmapState(RenderStateShard.NO_LIGHTMAP)
|
||||
.setOutputState(RenderStateShard.TRANSLUCENT_TARGET)
|
||||
//TODO 1.17
|
||||
// .setDiffuseLightingState(DIFFUSE_LIGHTING_DISABLED)
|
||||
// .setAlphaState(DEFAULT_ALPHA)
|
||||
.setCullState(new RenderStateShard.CullStateShard(true))
|
||||
.setLightmapState(new RenderStateShard.LightmapStateShard(false))
|
||||
.setOverlayState(new RenderStateShard.OverlayStateShard(false))
|
||||
// .setCullState(new RenderStateShard.CullStateShard(true))
|
||||
// .setLightmapState(new RenderStateShard.LightmapStateShard(false))
|
||||
// .setOverlayState(new RenderStateShard.OverlayStateShard(false))
|
||||
.createCompositeState(true);
|
||||
//Unique name for every combination, otherwise it will reuse the previous one
|
||||
String name = "eb_block_previews_" + dissolve + "_" + blockPos + "_" + firstPos + "_" + secondPos + "_" + red;
|
||||
return RenderType.create(name,
|
||||
DefaultVertexFormat.BLOCK, VertexFormat.Mode.QUADS, 256, true, true, renderState);
|
||||
DefaultVertexFormat.BLOCK, VertexFormat.Mode.QUADS, 2097152, true, true, renderState);
|
||||
}
|
||||
|
||||
private static void setShaderParameters(ShaderInstance shader, final float dissolve, final Vec3 blockpos,
|
||||
@@ -118,13 +121,13 @@ public class BuildRenderTypes extends RenderType {
|
||||
RenderSystem.setShaderTexture(0, TextureAtlas.LOCATION_BLOCKS);
|
||||
RenderSystem.setShaderTexture(maskTextureIndex, shaderMaskTextureLocation);
|
||||
|
||||
percentileUniform.set(dissolve);
|
||||
highlightUniform.set(highlight ? 1 : 0);
|
||||
redUniform.set(red ? 1 : 0);
|
||||
|
||||
blockposUniform.set((float) blockpos.x, (float) blockpos.y, (float) blockpos.z);
|
||||
firstposUniform.set((float) firstpos.x, (float) firstpos.y, (float) firstpos.z);
|
||||
secondposUniform.set((float) secondpos.x, (float) secondpos.y, (float) secondpos.z);
|
||||
// percentileUniform.set(dissolve);
|
||||
// highlightUniform.set(highlight ? 1 : 0);
|
||||
// redUniform.set(red ? 1 : 0);
|
||||
//
|
||||
// blockposUniform.set((float) blockpos.x, (float) blockpos.y, (float) blockpos.z);
|
||||
// firstposUniform.set((float) firstpos.x, (float) firstpos.y, (float) firstpos.z);
|
||||
// secondposUniform.set((float) secondpos.x, (float) secondpos.y, (float) secondpos.z);
|
||||
}
|
||||
|
||||
public static void glActiveTexture(int texture) {
|
||||
|
||||
@@ -27,6 +27,9 @@ in vec4 normal;
|
||||
out vec4 fragColor;
|
||||
|
||||
void main() {
|
||||
vec4 color2 = texture(Sampler0, texCoord0) * vertexColor * ColorModulator;
|
||||
fragColor = linear_fog(color2, vertexDistance, FogStart, FogEnd, FogColor);
|
||||
return;
|
||||
|
||||
//convert gametime to seconds (roughly)
|
||||
float time = GameTime * 1200;
|
||||
|
||||
@@ -25,7 +25,7 @@ void main() {
|
||||
|
||||
vertexPosition = gl_Position.xyz;
|
||||
vertexDistance = length((ModelViewMat * vec4(Position + ChunkOffset, 1.0)).xyz);
|
||||
vertexColor = Color * minecraft_sample_lightmap(Sampler2, UV2);
|
||||
vertexColor = Color;
|
||||
texCoord0 = UV0;
|
||||
normal = ProjMat * ModelViewMat * vec4(Normal, 0.0);
|
||||
}
|
||||
Reference in New Issue
Block a user