跳到正文

Askew World

作者:RodAnfatine

Resource pack makes askew world, no animations with core shader

收藏

截图

介绍

中文介绍正在准备中,下面暂时显示原文。

Incompatible with Sodium

Resource pack makes askew world

askew world

In resource pack have onle terrain.vsh

terrain.vsh

#version 150

in vec3 Position;
in vec4 Color;
in vec2 UV0;
in ivec2 UV2;
in vec3 Normal;

uniform sampler2D Sampler2;
uniform sampler2D NoiseTexture;

uniform mat4 ModelViewMat;
uniform mat4 ProjMat;
uniform vec3 ModelOffset;
uniform float GameTime;

out float vertexDistance;
out vec4 vertexColor;
out vec2 texCoord0;
out vec3 normal;

void main() {
    float discreteTime = floor(GameTime * 5.0) / 5.0;
    
    vec3 blockPos = floor(Position + 0.5);
    
    float borderFactorX = smoothstep(0.0, 1.0, min(mod(Position.x, 16.0), 16.0 - mod(Position.x, 16.0)));
    float borderFactorZ = smoothstep(0.0, 1.0, min(mod(Position.z, 16.0), 16.0 - mod(Position.z, 16.0)));
    float borderFactor = min(borderFactorX, borderFactorZ);
    
    vec3 offset = vec3(0.0);
    if (borderFactor > 0.01) {
        vec2 noiseCoord = blockPos.xz * 0.1 + vec2(discreteTime * 0.5, 0.0);
        offset = vec3(
            texture(NoiseTexture, noiseCoord).r - 0.5,
            texture(NoiseTexture, noiseCoord + vec2(0.3, 0.7)).r - 0.5,
            texture(NoiseTexture, noiseCoord + vec2(0.7, 0.3)).r - 0.5
        ) * 0.1 * borderFactor; // Плавное затухание к границам
    }
    
    vec3 worldPos = Position + ModelOffset;
    vec3 distortedPos = worldPos + offset;
    
    gl_Position = ProjMat * ModelViewMat * vec4(distortedPos, 1.0);
    vertexDistance = length((ModelViewMat * vec4(distortedPos, 1.0)).xyz);
    vertexColor = Color * texelFetch(Sampler2, UV2 / 16, 0);
    texCoord0 = UV0;
    normal = Normal;
}

常见问题

Askew World 支持哪些 Minecraft 版本?

Askew World 支持 Minecraft Java 版 1.21–1.21.8,共 9 个版本。下载时注意选择和你游戏版本一致的文件。

Askew World 怎么安装?

把下载的 .zip 文件(不用解压)放进游戏目录的 resourcepacks 文件夹,进游戏后在「选项 → 资源包」里把它移到右边启用。

评论

登录后评论和评分

RodAnfatine 的其他作品

查看全部 →