▶️ ЗАБЕРИ СВОИ 8 ПОДАРКОВ 🎁 ПРИ СОЗДАНИИ СВОЕГО МАЙНКРАФТ СЕРВЕРА
Askew World

Askew World

Resource pack makes askew world, no animations with core shader

117
1

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;
}

Совместимость

Minecraft: Java Edition

1.21.x

Поддерживаемые окружения

Клиент

Детали

Лицензия:MIT
Опубликован:8 месяцев назад
Обновлён:8 месяцев назад
Главная