Начинающий
- Статус
- Оффлайн
- Регистрация
- 14 Янв 2024
- Сообщения
- 87
- Реакции
- 0
- Выберите загрузчик игры
- Forge
Перед прочтением основного контента ниже, пожалуйста, обратите внимание на обновление внутри секции Майна на нашем форуме. У нас появились:
- бесплатные читы для Майнкрафт — любое использование на свой страх и риск;
- маркетплейс Майнкрафт — абсолютно любая коммерция, связанная с игрой, за исключением продажи читов (аккаунты, предоставления услуг, поиск кодеров читов и так далее);
- приватные читы для Minecraft — в этом разделе только платные хаки для игры, покупайте группу "Продавец" и выставляйте на продажу свой софт;
- обсуждения и гайды — всё тот же раздел с вопросами, но теперь модернизированный: поиск нужных хаков, пати с игроками-читерами и другая полезная информация.
Спасибо!
видел у многих клиентов голова просто квадратная.
сегодня покажу как скруглить ее через шейдер
вставляете метод для отрисовки головы в ваш рендерер таргет худа/в утилки
далее идем в pasta.pasta.utils.shader.Shaders, и вставляем:
далее создаем в ShaderUtil на ~38 строке:
и в ~57:
создаем файл в shader.shaders HeadGlsl и пихаем туда вот этот код:
также в рендере таргет худа добавьте импорт:
+нужно поменять метод рендера головы с drawFace на drawHead и в аргументы добавить skin, у меня это вот так:
мб что то не доложил пишите
модераторы одобрите
сегодня покажу как скруглить ее через шейдер
вставляете метод для отрисовки головы в ваш рендерер таргет худа/в утилки
java:
public static void drawHead(ResourceLocation skin, float x, float y, float width, float height, float radius, float alpha, float hurtPercent) {
mc.getTextureManager().bindTexture(skin);
RenderSystem.pushMatrix();
RenderSystem.enableBlend();
head.attach();
head.setUniformf("size", width, height);
head.setUniformf("radius", radius);
head.setUniformf("hurt_time", hurtPercent);
head.setUniformf("alpha", alpha);
head.setUniformf("startX", 4);
head.setUniformf("startY", 4);
head.setUniformf("endX", 8);
head.setUniformf("endY", 8);
head.setUniformf("texXSize", 32);
head.setUniformf("texYSize", 32);
head.drawQuads(x + 2, y + 2, width, height);
head.detach();
RenderSystem.disableBlend();
RenderSystem.popMatrix();
}
далее идем в pasta.pasta.utils.shader.Shaders, и вставляем:
java:
[USER=270918]@Getter[/USER]
private IShader head = new HeadGlsl();
далее создаем в ShaderUtil на ~38 строке:
java:
public static ShaderUtil head = new ShaderUtil("round-head" +
"");
и в ~57:
java:
case "round-head" -> createShader(Shaders.getInstance().getHead(), GL_FRAGMENT_SHADER);
создаем файл в shader.shaders HeadGlsl и пихаем туда вот этот код:
java:
package wtf.dart.utils.shader.shaders;
import wtf.dart.utils.shader.IShader;
public class HeadGlsl implements IShader {
[USER=1367676]@override[/USER]
public String glsl() {
return """
#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);
}""";
}
}
java:
import static wtf.dart.utils.shader.ShaderUtil.head;
+нужно поменять метод рендера головы с drawFace на drawHead и в аргументы добавить skin, у меня это вот так:
Код:
String rs = EntityType.getKey(((Entity) entity).getType()).getPath();
ResourceLocation skin = entity instanceof AbstractClientPlayerEntity e ? (e).getLocationSkin() : new ResourceLocation("textures/entity/" + rs + ".png");
drawHead(
skin, // указываем скин который получили выше
x - 3.5f,
y - 4f,
width + 2.5f,
height + 2.5f,
3, // радиус скругления головы
fadeAnimation, // alpha, у меня под анимацию так что так
hurtPercent
);
мб что то не доложил пишите
модераторы одобрите