Исходник Шейдер в мейн меню (main menu shader) | exp 3.1

Начинающий
Статус
Оффлайн
Регистрация
30 Май 2024
Сообщения
23
Реакции[?]
0
Поинты[?]
0
1. Выбираем нужный шейдер
тута:
Пожалуйста, авторизуйтесь для просмотра ссылки.
(noad)
выбрали, нажимаем кнопку showcode слева сверху
переходим к пункту 2

2. Изменяем шейдер:
Заходим в код шейдера, ищем
uniform vec2 resolution
Меняем на:
uniform float w
uniform float h

Ищем строку похожую на эту:Посмотреть вложение 272616
Изменяем resolution.xy на vec2(w,h)
Если в коде есть resolution.x то меняем его на w
а ещё
Если в коде есть resolution.y то меняем его на h

3. Создаём файл шейдера в экспенсиве
идём по пути im/expensive/utils/shader/shaders/ и создаём там файл Mainmenu.java
вставляем туда код:

Mainmenu.java:
package im.expensive.utils.shader.shaders;

import im.expensive.utils.shader.IShader;

public class Mainmenu implements IShader {

    @Override
    public String glsl() {
        return """
                шадер
               """;
    }

}
после, меняем на строке 10 текст шадер на код шейдера который вы изменили в пункте 2

4. Регистрируем шейдер в списке шейдеров:
заходим в файл Shaders.java по пути im/expensive/utils/shader/
после 46 строки делаем новую строку и вставляем туда:
Java:
    @Getter
    private IShader mainmenu = new Mainmenu();
если возникает ошибка - Alt + Enter или импортируем шейдер через import im.expensive.utils.shader.shaders.Mainmenu; на 17 строку

5. Регистрируем шейдер в утилке:
заходим в файл ShaderUtil.java по пути im/expensive/utils/shader/
на 37 строку втсавляем:
public static ShaderUtil mainmenu = new ShaderUtil("Mainmenu");

6. Рендерим шейдер
заходим в файл MainScreen.java по пути im/expensive/ui/mainmenu/
и вместо 106 строки вставляем такой код:
Java:
for(float i=0;i<1488;i++){
            if(timer.isReached(10)){
                o++;
                i=0;
                timer.reset();
            }
        }
   
        GlStateManager.pushMatrix();
        GlStateManager.enableBlend();

        ShaderUtil.mainmenu.attach();
        ShaderUtil.mainmenu.setUniform("time", o/4);
        ShaderUtil.mainmenu.setUniform("w", (float)windowWidth);
        ShaderUtil.mainmenu.setUniform("h", (float)windowHeight);

        drawQuads(0, 0, windowWidth, windowHeight, 7);

        ShaderUtil.mainmenu.detach();
        GlStateManager.disableBlend();
       GlStateManager.popMatrix();
на 39 строку вставляем:
Java:
    public final StopWatch timer = new StopWatch();
    public float o = 0;
гатово :seemsgood: Посмотреть вложение 272622
помогите фиксануть белый фон дс: pepelNEFOR (NO AD)
 
Начинающий
Статус
Оффлайн
Регистрация
4 Июл 2021
Сообщения
150
Реакции[?]
1
Поинты[?]
2K
1. Выбираем нужный шейдер
тута:
Пожалуйста, авторизуйтесь для просмотра ссылки.
(noad)
выбрали, нажимаем кнопку showcode слева сверху
переходим к пункту 2

2. Изменяем шейдер:
Заходим в код шейдера, ищем
uniform vec2 resolution
Меняем на:
uniform float w
uniform float h

Ищем строку похожую на эту:Посмотреть вложение 272616
Изменяем resolution.xy на vec2(w,h)
Если в коде есть resolution.x то меняем его на w
а ещё
Если в коде есть resolution.y то меняем его на h

3. Создаём файл шейдера в экспенсиве
идём по пути im/expensive/utils/shader/shaders/ и создаём там файл Mainmenu.java
вставляем туда код:

Mainmenu.java:
package im.expensive.utils.shader.shaders;

import im.expensive.utils.shader.IShader;

public class Mainmenu implements IShader {

    @Override
    public String glsl() {
        return """
                шадер
               """;
    }

}
после, меняем на строке 10 текст шадер на код шейдера который вы изменили в пункте 2

4. Регистрируем шейдер в списке шейдеров:
заходим в файл Shaders.java по пути im/expensive/utils/shader/
после 46 строки делаем новую строку и вставляем туда:
Java:
    @Getter
    private IShader mainmenu = new Mainmenu();
если возникает ошибка - Alt + Enter или импортируем шейдер через import im.expensive.utils.shader.shaders.Mainmenu; на 17 строку

5. Регистрируем шейдер в утилке:
заходим в файл ShaderUtil.java по пути im/expensive/utils/shader/
на 37 строку втсавляем:
public static ShaderUtil mainmenu = new ShaderUtil("Mainmenu");

6. Рендерим шейдер
заходим в файл MainScreen.java по пути im/expensive/ui/mainmenu/
и вместо 106 строки вставляем такой код:
Java:
for(float i=0;i<1488;i++){
            if(timer.isReached(10)){
                o++;
                i=0;
                timer.reset();
            }
        }
   
        GlStateManager.pushMatrix();
        GlStateManager.enableBlend();

        ShaderUtil.mainmenu.attach();
        ShaderUtil.mainmenu.setUniform("time", o/4);
        ShaderUtil.mainmenu.setUniform("w", (float)windowWidth);
        ShaderUtil.mainmenu.setUniform("h", (float)windowHeight);

        drawQuads(0, 0, windowWidth, windowHeight, 7);

        ShaderUtil.mainmenu.detach();
        GlStateManager.disableBlend();
       GlStateManager.popMatrix();
на 39 строку вставляем:
Java:
    public final StopWatch timer = new StopWatch();
    public float o = 0;
гатово :seemsgood: Посмотреть вложение 272622
AL lib: (EE) alc_cleanup: 1 device not closed, что делать?
 
Сверху Снизу