more fog fixes
This commit is contained in:
@@ -110,8 +110,8 @@ public class NormalRenderPipeline extends AbstractRenderPipeline {
|
|||||||
float end = viewport.fogParameters.environmentalEnd();
|
float end = viewport.fogParameters.environmentalEnd();
|
||||||
if (Math.abs(end-start)>1) {
|
if (Math.abs(end-start)>1) {
|
||||||
float invEndFogDelta = 1f / (end - start);
|
float invEndFogDelta = 1f / (end - start);
|
||||||
float endDistance = Minecraft.getInstance().gameRenderer.getRenderDistance() * 1.5f;
|
float endDistance = Minecraft.getInstance().gameRenderer.getRenderDistance()*2f;
|
||||||
glUniform4f(4, endDistance, invEndFogDelta, Math.abs(start) * invEndFogDelta, 0);
|
glUniform4f(4, invEndFogDelta, -start * invEndFogDelta, Math.min(1,(endDistance-start)/end),0);
|
||||||
glUniform4f(5, viewport.fogParameters.red(), viewport.fogParameters.green(), viewport.fogParameters.blue(), viewport.fogParameters.alpha());
|
glUniform4f(5, viewport.fogParameters.red(), viewport.fogParameters.green(), viewport.fogParameters.blue(), viewport.fogParameters.alpha());
|
||||||
} else {
|
} else {
|
||||||
glUniform4f(4, 0, 0, 0, 0);
|
glUniform4f(4, 0, 0, 0, 0);
|
||||||
|
|||||||
@@ -4,6 +4,7 @@ import me.cortex.voxy.common.Logger;
|
|||||||
import net.minecraft.client.Minecraft;
|
import net.minecraft.client.Minecraft;
|
||||||
import net.minecraft.client.model.Model;
|
import net.minecraft.client.model.Model;
|
||||||
import net.minecraft.client.renderer.RenderType;
|
import net.minecraft.client.renderer.RenderType;
|
||||||
|
import net.minecraft.client.renderer.SubmitNodeStorage;
|
||||||
import net.minecraft.core.BlockPos;
|
import net.minecraft.core.BlockPos;
|
||||||
import net.minecraft.resources.ResourceLocation;
|
import net.minecraft.resources.ResourceLocation;
|
||||||
import net.minecraft.world.level.block.EntityBlock;
|
import net.minecraft.world.level.block.EntityBlock;
|
||||||
@@ -72,14 +73,15 @@ public class BakedBlockEntityModel {
|
|||||||
try {
|
try {
|
||||||
/*
|
/*
|
||||||
var rt = renderer.createRenderState();
|
var rt = renderer.createRenderState();
|
||||||
renderer.updateRenderState(entity, rt, 0.0f, new Vec3d(0,0,0), null);
|
renderer.extractRenderState(entity, rt, 0.0f, new Vec3d(0,0,0), null);
|
||||||
|
|
||||||
//TODO: FIXME: FINISH
|
//TODO: FIXME: FINISH
|
||||||
var cstate = new CameraRenderState();
|
var cstate = new CameraRenderState();
|
||||||
var queue = new OrderedRenderCommandQueueImpl();
|
var queue = new SubmitNodeStorage();
|
||||||
renderer.render(rt, new MatrixStack(), queue, cstate);
|
renderer.submit(rt, new MatrixStack(), queue, cstate);
|
||||||
var qq = queue.getBatchingQueue(0);
|
var qq = queue.order(0);
|
||||||
*/
|
qq.
|
||||||
|
*/
|
||||||
//renderer.render(entity, 0.0f, new MatrixStack(), layer->map.computeIfAbsent(layer, rl -> new LayerConsumer(rl, new ReuseVertexConsumer().setDefaultMeta(getMetaFromLayer(rl)))).consumer, 0, 0, new Vec3d(0,0,0));
|
//renderer.render(entity, 0.0f, new MatrixStack(), layer->map.computeIfAbsent(layer, rl -> new LayerConsumer(rl, new ReuseVertexConsumer().setDefaultMeta(getMetaFromLayer(rl)))).consumer, 0, 0, new Vec3d(0,0,0));
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
Logger.error("Unable to bake block entity: " + entity, e);
|
Logger.error("Unable to bake block entity: " + entity, e);
|
||||||
|
|||||||
@@ -44,7 +44,7 @@ void main() {
|
|||||||
}
|
}
|
||||||
#ifdef USE_ENV_FOG
|
#ifdef USE_ENV_FOG
|
||||||
if (fogColour.a>0.0){
|
if (fogColour.a>0.0){
|
||||||
float fogLerp = clamp(fma(min(length(point.xyz), endParams.x),endParams.y,endParams.z),0,1);//512 is 32*16 which is the render distance in blocks
|
float fogLerp = clamp(fma(length(point.xyz),endParams.x,endParams.y),0,endParams.z);//512 is 32*16 which is the render distance in blocks
|
||||||
colour.rgb = mix(colour.rgb, fogColour.rgb, fogLerp*fogColour.a);
|
colour.rgb = mix(colour.rgb, fogColour.rgb, fogLerp*fogColour.a);
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|||||||
Reference in New Issue
Block a user