Исходник Быстренький пастер шейдер [expensive 3.1 ready]

Начинающий
Статус
Оффлайн
Регистрация
15 Мар 2024
Сообщения
269
Реакции[?]
1
Поинты[?]
1K

Перед прочтением основного контента ниже, пожалуйста, обратите внимание на обновление внутри секции Майна на нашем форуме. У нас появились:

  • бесплатные читы для Майнкрафт — любое использование на свой страх и риск;
  • маркетплейс Майнкрафт — абсолютно любая коммерция, связанная с игрой, за исключением продажи читов (аккаунты, предоставления услуг, поиск кодеров читов и так далее);
  • приватные читы для Minecraft — в этом разделе только платные хаки для игры, покупайте группу "Продавец" и выставляйте на продажу свой софт;
  • обсуждения и гайды — всё тот же раздел с вопросами, но теперь модернизированный: поиск нужных хаков, пати с игроками-читерами и другая полезная информация.

Спасибо!

Видел шейдеры которые просто оставляют белый экран
Но тут в 2 класса и все
1.
Сам шадер:
package im.expensive.utils.shader.shaders;


import im.expensive.utils.client.IMinecraft;
import net.minecraft.client.renderer.vertex.DefaultVertexFormats;
import net.minecraft.util.Util;
import org.lwjgl.opengl.ARBShaderObjects;
import org.lwjgl.opengl.GL20;

import java.io.ByteArrayInputStream;

public class ShaderUtil2 extends Util implements IMinecraft {

    public static ShaderUtil2 MAIN_MENU;

    private final int shaderID = GL20.glCreateProgram();

    public ShaderUtil2(String string) {
        GL20.glAttachShader(this.shaderID, this.createShader(string));
        GL20.glLinkProgram(this.shaderID);
    }
    public static void drawQuads(float x, float y, float width, float height) {
        buffer.begin(9, DefaultVertexFormats.POSITION_TEX);
        double z = 0.0; // ПАСТИМ РЕБЯТКИ ПАСТИМ

        buffer.pos(x, y, z).tex(0.0f, 0.0f).endVertex();
        buffer.pos(x, y + height, z).tex(0.0f, 1.0f).endVertex();
        buffer.pos(x + width, y + height, z).tex(1.0f, 1.0f).endVertex();
        buffer.pos(x + width, y,z).tex(1.0f, 0.0f).endVertex();
        tessellator.draw();
    }
    public static void init() {
        MAIN_MENU = new ShaderUtil2("#ifdef GL_ES\n" +
                "\n" +
                "precision mediump float;\n" +
                "\n" +
                "#endif\n" +
                "\n" +
                "// mods by dist\n" +
                "\n" +
                " \n" +
                "\n" +
                "uniform float time;\n" +
                "\n" +
                "uniform vec2 mouse;\n" +
                "\n" +
                "uniform vec2 resolution;\n" +
                "\n" +
                " \n" +
                "\n" +
                " \n" +
                "\n" +
                "void main( void )\n" +
                "\n" +
                "{\n" +
                "\n" +
                " \n" +
                "\n" +
                "\tvec2 uPos = ( gl_FragCoord.xy / resolution.xy );//normalize wrt y axis\n" +
                "\n" +
                "\t//suPos -= vec2((resolution.x/resolution.y)/2.0, 0.0);//shift origin to center\n" +
                "\n" +
                "\t\n" +
                "\n" +
                "\tuPos.x -= 0.5;\n" +
                "\n" +
                "\tuPos.y -= 0.5;\n" +
                "\n" +
                "\t\n" +
                "\n" +
                "\tvec3 color = vec3(0.0);\n" +
                "\n" +
                "\tfloat vertColor = 0.0;\n" +
                "\n" +
                "\tfor( float i = 0.0; i < 10.; ++i )\n" +
                "\n" +
                "\t{\n" +
                "\n" +
                "\t\tfloat t = time * (2);\n" +
                "\n" +
                "\t\n" +
                "\n" +
                "\t\tuPos.y += sin( uPos.x*(i+1.0) + t+i/2.0 ) * 0.1;\n" +
                "\n" +
                "\t\tfloat fTemp = abs(1.0 / uPos.y / 100.0);\n" +
                "\n" +
                "\t\tvertColor += fTemp; \n" +
                "\n" +
                "\t\tcolor += vec3( fTemp*(10.0-i)/6.0, fTemp*i/10.0, pow(fTemp,2)*1.5 ); \n" +
                "\n" +
                "\t} \n" +
                "\n" +
                "\t \n" +
                "\n" +
                "\tvec4 color_final = vec4(color, 1.0); \n" +
                "\n" +
                "\tgl_FragColor = color_final; \n" +
                "\n" +
                "}");

    }



    public void begin() {
        GL20.glUseProgram(this.shaderID);
    }

    public static void end() {
        GL20.glUseProgram(0);
    }

    public void setUniform(String string, float... fArray) {
        int n = GL20.glGetUniformLocation(this.shaderID, string);
        switch (fArray.length) {
            case 1: {
                ARBShaderObjects.glUniform1fARB(n, fArray[0]);
                break;
            }
            case 2: {
                ARBShaderObjects.glUniform2fARB(n, fArray[0], fArray[1]);
                break;
            }
            case 3: {
                ARBShaderObjects.glUniform3fARB(n, fArray[0], fArray[1], fArray[2]);
                break;
            }
            case 4: {
                ARBShaderObjects.glUniform4fARB(n, fArray[0], fArray[1], fArray[2], fArray[3]);
            }
        }
    }

    private int createShader(String string) {
        int gled = GL20.glCreateShader(35632);
        GL20.glShaderSource(gled, (CharSequence) XYETA.readInputStream(new ByteArrayInputStream(string.getBytes())));
        GL20.glCompileShader(gled);
        return gled;
    }
}
2.
Класс без которого работать не будет:
package im.expensive.utils.shader.shaders;

import java.io.*;

/**
 * [USER=35246]@Author[/USER] Jefferson
 * [USER=30931]@since[/USER] 30/11/2022
 */

public class XYETA {

    /**
     * Метод создает новый объект StringBuilder для хранения содержимого входного потока.
     * Затем метод создает объект BufferedReader, который читает данные из входного потока построчно,
     * используя InputStreamReader для преобразования потока байтов в символы.
     * [USER=804731]@param[/USER] inputStream
     * [USER=46448]@ReturN[/USER]
     */
    public static String readInputStream(InputStream inputStream) {
        // Создание объекта StringBuilder для хранения результата чтения
        StringBuilder stringBuilder = new StringBuilder();

        try {
            // Создание объекта BufferedReader для чтения входного потока
            BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(inputStream));

            // Чтение входного потока построчно и добавление каждой строки в объект StringBuilder
            String line;
            while ((line = bufferedReader.readLine()) != null) {
                stringBuilder.append(line).append('\n');
            }
        } catch (Exception e) {
            // Обработка исключений при чтении входного потока
            e.printStackTrace();
        }

        // Преобразование объекта StringBuilder в строку и возврат результата
        return stringBuilder.toString();
    }
}
Меняем в бекменю на это:
    ShaderUtil2.MAIN_MENU.begin();
        ShaderUtil2.MAIN_MENU.setUniform("time", mc.timer.getPartialTicks(1) / 20.0F);
        ShaderUtil2.MAIN_MENU.setUniform("resolution", mc.getMainWindow().getScaledWidth(), mc.getMainWindow().getScaledHeight());
        ShaderUtil2.MAIN_MENU.drawQuads(0,0, mc.getMainWindow().getScaledWidth(), mc.getMainWindow().getScaledHeight());
        ShaderUtil2.MAIN_MENU.end();
del 1729020379933.png
В классе Expensive вставляем это
ShaderUtil2.init();
Пожалуйста, авторизуйтесь для просмотра ссылки.

/del
 
Начинающий
Статус
Онлайн
Регистрация
29 Апр 2023
Сообщения
856
Реакции[?]
4
Поинты[?]
5K
Видел шейдеры которые просто оставляют белый экран
Но тут в 2 класса и все
1.
Сам шадер:
package im.expensive.utils.shader.shaders;


import im.expensive.utils.client.IMinecraft;
import net.minecraft.client.renderer.vertex.DefaultVertexFormats;
import net.minecraft.util.Util;
import org.lwjgl.opengl.ARBShaderObjects;
import org.lwjgl.opengl.GL20;

import java.io.ByteArrayInputStream;

public class ShaderUtil2 extends Util implements IMinecraft {

    public static ShaderUtil2 MAIN_MENU;

    private final int shaderID = GL20.glCreateProgram();

    public ShaderUtil2(String string) {
        GL20.glAttachShader(this.shaderID, this.createShader(string));
        GL20.glLinkProgram(this.shaderID);
    }
    public static void drawQuads(float x, float y, float width, float height) {
        buffer.begin(9, DefaultVertexFormats.POSITION_TEX);
        double z = 0.0; // ПАСТИМ РЕБЯТКИ ПАСТИМ

        buffer.pos(x, y, z).tex(0.0f, 0.0f).endVertex();
        buffer.pos(x, y + height, z).tex(0.0f, 1.0f).endVertex();
        buffer.pos(x + width, y + height, z).tex(1.0f, 1.0f).endVertex();
        buffer.pos(x + width, y,z).tex(1.0f, 0.0f).endVertex();
        tessellator.draw();
    }
    public static void init() {
        MAIN_MENU = new ShaderUtil2("#ifdef GL_ES\n" +
                "\n" +
                "precision mediump float;\n" +
                "\n" +
                "#endif\n" +
                "\n" +
                "// mods by dist\n" +
                "\n" +
                " \n" +
                "\n" +
                "uniform float time;\n" +
                "\n" +
                "uniform vec2 mouse;\n" +
                "\n" +
                "uniform vec2 resolution;\n" +
                "\n" +
                " \n" +
                "\n" +
                " \n" +
                "\n" +
                "void main( void )\n" +
                "\n" +
                "{\n" +
                "\n" +
                " \n" +
                "\n" +
                "\tvec2 uPos = ( gl_FragCoord.xy / resolution.xy );//normalize wrt y axis\n" +
                "\n" +
                "\t//suPos -= vec2((resolution.x/resolution.y)/2.0, 0.0);//shift origin to center\n" +
                "\n" +
                "\t\n" +
                "\n" +
                "\tuPos.x -= 0.5;\n" +
                "\n" +
                "\tuPos.y -= 0.5;\n" +
                "\n" +
                "\t\n" +
                "\n" +
                "\tvec3 color = vec3(0.0);\n" +
                "\n" +
                "\tfloat vertColor = 0.0;\n" +
                "\n" +
                "\tfor( float i = 0.0; i < 10.; ++i )\n" +
                "\n" +
                "\t{\n" +
                "\n" +
                "\t\tfloat t = time * (2);\n" +
                "\n" +
                "\t\n" +
                "\n" +
                "\t\tuPos.y += sin( uPos.x*(i+1.0) + t+i/2.0 ) * 0.1;\n" +
                "\n" +
                "\t\tfloat fTemp = abs(1.0 / uPos.y / 100.0);\n" +
                "\n" +
                "\t\tvertColor += fTemp; \n" +
                "\n" +
                "\t\tcolor += vec3( fTemp*(10.0-i)/6.0, fTemp*i/10.0, pow(fTemp,2)*1.5 ); \n" +
                "\n" +
                "\t} \n" +
                "\n" +
                "\t \n" +
                "\n" +
                "\tvec4 color_final = vec4(color, 1.0); \n" +
                "\n" +
                "\tgl_FragColor = color_final; \n" +
                "\n" +
                "}");

    }



    public void begin() {
        GL20.glUseProgram(this.shaderID);
    }

    public static void end() {
        GL20.glUseProgram(0);
    }

    public void setUniform(String string, float... fArray) {
        int n = GL20.glGetUniformLocation(this.shaderID, string);
        switch (fArray.length) {
            case 1: {
                ARBShaderObjects.glUniform1fARB(n, fArray[0]);
                break;
            }
            case 2: {
                ARBShaderObjects.glUniform2fARB(n, fArray[0], fArray[1]);
                break;
            }
            case 3: {
                ARBShaderObjects.glUniform3fARB(n, fArray[0], fArray[1], fArray[2]);
                break;
            }
            case 4: {
                ARBShaderObjects.glUniform4fARB(n, fArray[0], fArray[1], fArray[2], fArray[3]);
            }
        }
    }

    private int createShader(String string) {
        int gled = GL20.glCreateShader(35632);
        GL20.glShaderSource(gled, (CharSequence) XYETA.readInputStream(new ByteArrayInputStream(string.getBytes())));
        GL20.glCompileShader(gled);
        return gled;
    }
}
2.
Класс без которого работать не будет:
package im.expensive.utils.shader.shaders;

import java.io.*;

/**
[LIST]
[*][USER=35246]@Author[/USER] Jefferson
[*][USER=30931]@since[/USER] 30/11/2022
[/LIST]
*/

public class XYETA {

    /**
     * Метод создает новый объект StringBuilder для хранения содержимого входного потока.
     * Затем метод создает объект BufferedReader, который читает данные из входного потока построчно,
     * используя InputStreamReader для преобразования потока байтов в символы.
     * [USER=804731]@param[/USER] inputStream
     * [USER=46448]@ReturN[/USER]
     */
    public static String readInputStream(InputStream inputStream) {
        // Создание объекта StringBuilder для хранения результата чтения
        StringBuilder stringBuilder = new StringBuilder();

        try {
            // Создание объекта BufferedReader для чтения входного потока
            BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(inputStream));

            // Чтение входного потока построчно и добавление каждой строки в объект StringBuilder
            String line;
            while ((line = bufferedReader.readLine()) != null) {
                stringBuilder.append(line).append('\n');
            }
        } catch (Exception e) {
            // Обработка исключений при чтении входного потока
            e.printStackTrace();
        }

        // Преобразование объекта StringBuilder в строку и возврат результата
        return stringBuilder.toString();
    }
}
Меняем в бекменю на это:
    ShaderUtil2.MAIN_MENU.begin();
        ShaderUtil2.MAIN_MENU.setUniform("time", mc.timer.getPartialTicks(1) / 20.0F);
        ShaderUtil2.MAIN_MENU.setUniform("resolution", mc.getMainWindow().getScaledWidth(), mc.getMainWindow().getScaledHeight());
        ShaderUtil2.MAIN_MENU.drawQuads(0,0, mc.getMainWindow().getScaledWidth(), mc.getMainWindow().getScaledHeight());
        ShaderUtil2.MAIN_MENU.end();
del Посмотреть вложение 288089
В классе Expensive вставляем это
ShaderUtil2.init();
Пожалуйста, авторизуйтесь для просмотра ссылки.

/del
1729079464924.png
ООО ДААА УХЗАХЗУХАХУ
 
Начинающий
Статус
Оффлайн
Регистрация
15 Мар 2024
Сообщения
269
Реакции[?]
1
Поинты[?]
1K
Начинающий
Статус
Оффлайн
Регистрация
25 Фев 2024
Сообщения
507
Реакции[?]
0
Поинты[?]
0
Видел шейдеры которые просто оставляют белый экран
Но тут в 2 класса и все
1.
Сам шадер:
package im.expensive.utils.shader.shaders;


import im.expensive.utils.client.IMinecraft;
import net.minecraft.client.renderer.vertex.DefaultVertexFormats;
import net.minecraft.util.Util;
import org.lwjgl.opengl.ARBShaderObjects;
import org.lwjgl.opengl.GL20;

import java.io.ByteArrayInputStream;

public class ShaderUtil2 extends Util implements IMinecraft {

    public static ShaderUtil2 MAIN_MENU;

    private final int shaderID = GL20.glCreateProgram();

    public ShaderUtil2(String string) {
        GL20.glAttachShader(this.shaderID, this.createShader(string));
        GL20.glLinkProgram(this.shaderID);
    }
    public static void drawQuads(float x, float y, float width, float height) {
        buffer.begin(9, DefaultVertexFormats.POSITION_TEX);
        double z = 0.0; // ПАСТИМ РЕБЯТКИ ПАСТИМ

        buffer.pos(x, y, z).tex(0.0f, 0.0f).endVertex();
        buffer.pos(x, y + height, z).tex(0.0f, 1.0f).endVertex();
        buffer.pos(x + width, y + height, z).tex(1.0f, 1.0f).endVertex();
        buffer.pos(x + width, y,z).tex(1.0f, 0.0f).endVertex();
        tessellator.draw();
    }
    public static void init() {
        MAIN_MENU = new ShaderUtil2("#ifdef GL_ES\n" +
                "\n" +
                "precision mediump float;\n" +
                "\n" +
                "#endif\n" +
                "\n" +
                "// mods by dist\n" +
                "\n" +
                " \n" +
                "\n" +
                "uniform float time;\n" +
                "\n" +
                "uniform vec2 mouse;\n" +
                "\n" +
                "uniform vec2 resolution;\n" +
                "\n" +
                " \n" +
                "\n" +
                " \n" +
                "\n" +
                "void main( void )\n" +
                "\n" +
                "{\n" +
                "\n" +
                " \n" +
                "\n" +
                "\tvec2 uPos = ( gl_FragCoord.xy / resolution.xy );//normalize wrt y axis\n" +
                "\n" +
                "\t//suPos -= vec2((resolution.x/resolution.y)/2.0, 0.0);//shift origin to center\n" +
                "\n" +
                "\t\n" +
                "\n" +
                "\tuPos.x -= 0.5;\n" +
                "\n" +
                "\tuPos.y -= 0.5;\n" +
                "\n" +
                "\t\n" +
                "\n" +
                "\tvec3 color = vec3(0.0);\n" +
                "\n" +
                "\tfloat vertColor = 0.0;\n" +
                "\n" +
                "\tfor( float i = 0.0; i < 10.; ++i )\n" +
                "\n" +
                "\t{\n" +
                "\n" +
                "\t\tfloat t = time * (2);\n" +
                "\n" +
                "\t\n" +
                "\n" +
                "\t\tuPos.y += sin( uPos.x*(i+1.0) + t+i/2.0 ) * 0.1;\n" +
                "\n" +
                "\t\tfloat fTemp = abs(1.0 / uPos.y / 100.0);\n" +
                "\n" +
                "\t\tvertColor += fTemp; \n" +
                "\n" +
                "\t\tcolor += vec3( fTemp*(10.0-i)/6.0, fTemp*i/10.0, pow(fTemp,2)*1.5 ); \n" +
                "\n" +
                "\t} \n" +
                "\n" +
                "\t \n" +
                "\n" +
                "\tvec4 color_final = vec4(color, 1.0); \n" +
                "\n" +
                "\tgl_FragColor = color_final; \n" +
                "\n" +
                "}");

    }



    public void begin() {
        GL20.glUseProgram(this.shaderID);
    }

    public static void end() {
        GL20.glUseProgram(0);
    }

    public void setUniform(String string, float... fArray) {
        int n = GL20.glGetUniformLocation(this.shaderID, string);
        switch (fArray.length) {
            case 1: {
                ARBShaderObjects.glUniform1fARB(n, fArray[0]);
                break;
            }
            case 2: {
                ARBShaderObjects.glUniform2fARB(n, fArray[0], fArray[1]);
                break;
            }
            case 3: {
                ARBShaderObjects.glUniform3fARB(n, fArray[0], fArray[1], fArray[2]);
                break;
            }
            case 4: {
                ARBShaderObjects.glUniform4fARB(n, fArray[0], fArray[1], fArray[2], fArray[3]);
            }
        }
    }

    private int createShader(String string) {
        int gled = GL20.glCreateShader(35632);
        GL20.glShaderSource(gled, (CharSequence) XYETA.readInputStream(new ByteArrayInputStream(string.getBytes())));
        GL20.glCompileShader(gled);
        return gled;
    }
}
2.
Класс без которого работать не будет:
package im.expensive.utils.shader.shaders;

import java.io.*;

/**
[LIST]
[*][USER=35246]@Author[/USER] Jefferson
[*][USER=30931]@since[/USER] 30/11/2022
[/LIST]
*/

public class XYETA {

    /**
     * Метод создает новый объект StringBuilder для хранения содержимого входного потока.
     * Затем метод создает объект BufferedReader, который читает данные из входного потока построчно,
     * используя InputStreamReader для преобразования потока байтов в символы.
     * [USER=804731]@param[/USER] inputStream
     * [USER=46448]@ReturN[/USER]
     */
    public static String readInputStream(InputStream inputStream) {
        // Создание объекта StringBuilder для хранения результата чтения
        StringBuilder stringBuilder = new StringBuilder();

        try {
            // Создание объекта BufferedReader для чтения входного потока
            BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(inputStream));

            // Чтение входного потока построчно и добавление каждой строки в объект StringBuilder
            String line;
            while ((line = bufferedReader.readLine()) != null) {
                stringBuilder.append(line).append('\n');
            }
        } catch (Exception e) {
            // Обработка исключений при чтении входного потока
            e.printStackTrace();
        }

        // Преобразование объекта StringBuilder в строку и возврат результата
        return stringBuilder.toString();
    }
}
Меняем в бекменю на это:
    ShaderUtil2.MAIN_MENU.begin();
        ShaderUtil2.MAIN_MENU.setUniform("time", mc.timer.getPartialTicks(1) / 20.0F);
        ShaderUtil2.MAIN_MENU.setUniform("resolution", mc.getMainWindow().getScaledWidth(), mc.getMainWindow().getScaledHeight());
        ShaderUtil2.MAIN_MENU.drawQuads(0,0, mc.getMainWindow().getScaledWidth(), mc.getMainWindow().getScaledHeight());
        ShaderUtil2.MAIN_MENU.end();
del Посмотреть вложение 288089
В классе Expensive вставляем это
ShaderUtil2.init();
Пожалуйста, авторизуйтесь для просмотра ссылки.

/del
блять как шейдер 2 года менять по 1 строчке
 
Сверху Снизу