Исходник Закругление головы в таргет худе шейдером | Expensive 3.1

Начинающий
Статус
Оффлайн
Регистрация
9 Дек 2023
Сообщения
113
Реакции[?]
1
Поинты[?]
0
Чото стало нефиг делать и решил слить норм закругление головы в таргетхуде

Вставляем данный код в TargetInfoRenderer.java примерно в 120-127 строке

Пожалуйста, авторизуйтесь для просмотра ссылки.


Java:
EntityRenderer<? super LivingEntity> rendererManager = mc.getRenderManager().getRenderer(entity);

mc.getTextureManager().bindTexture(rendererManager.getEntityTexture(entity));

ROUND_HEAD.begin();
ROUND_HEAD.setUniformf("size", headSize + 8, headSize + 8);
ROUND_HEAD.setUniformf("radius", 5.1f);
ROUND_HEAD.setUniformf("hurt_time", entity.hurtTime);
ROUND_HEAD.setUniformf("alpha", 255);
ROUND_HEAD.setUniformf("startX", 7.0f);
ROUND_HEAD.setUniformf("endX", 14.0f);
ROUND_HEAD.setUniformf("startY", 7.0f);
ROUND_HEAD.setUniformf("endY", 14.0f);
ROUND_HEAD.setUniformf("texXSize", 56.0f);
ROUND_HEAD.setUniformf("texYSize", 56.0f);
ROUND_HEAD.drawQuads(posX + 6, posY + 6, headSize + 8, headSize + 8);
ROUND_HEAD.end();
заместо
Java:
drawTargetHead(entity, posX + 6, posY + 6, headSize + 8, headSize + 8);
сам шейдер:
rounded_head_texture.glsl:
#version 120

uniform sampler2D texture;
uniform vec2 size;
uniform float radius;
uniform float hurt_time;
uniform float alpha;
uniform float startX, endX;
uniform float startY, endY;

uniform float texXSize;
uniform float texYSize;

float signedDistanceField(vec2 p, vec2 b, float r) {
    return length(max(abs(p) - b, 0.0)) - r;
}

void main() {
    vec2 tex = gl_TexCoord[0].st;
    vec2 clippedTexCoord = vec2(
    mix(startX / texXSize, endX / texXSize, tex.x),
    mix(startY / texYSize, endY / texYSize, tex.y)
    );
    vec4 smpl = texture2D(texture, clippedTexCoord);
    vec2 pixel = tex * size;
    vec2 centre = 0.5 * size;
    float sa = smoothstep(0.0, 1, signedDistanceField(centre - pixel, centre - radius - 1, radius));
    vec4 c = mix(vec4(smpl.rgb, smpl.a), vec4(smpl.rgb, 0), sa);
    gl_FragColor = vec4(mix(smpl.rgb, vec3(1.0, 0.0, 0.0), hurt_time), c.a * alpha);
}
deddelaet. это дискорд, отпиши туда
 
Последнее редактирование:
Сверху Снизу