Как установить и получить значение var между JAVA и GLSL? - PullRequest
0 голосов
/ 27 ноября 2018

как установить и получить значение var между кодом JAVA и кодом GLSL?

● 1 - «file.java» - (здесь, хотите создать переменную и установить ее)

public class BANANA
{
    // (code)
    // (code)

    public static float ICE;
    ICE = 0.2f;

    // (code)
    // (code)
}

● 2 - «фрагмент.glsl» - (здесь я хочу получить значение)

#ifdef GL_ES
    precision mediump float;
#endif

uniform float ICE;

void main()
{
    gl_FragColor = vec4(0.1, ICE, 0.3, 0.9);
}

Какой метод используется для извлечения переменной ICE из моего файла «фрагмент.glsl»?- Заранее спасибо

1 Ответ

0 голосов
/ 29 ноября 2018

ПРИМЕЧАНИЕ: Благодаря @ Rabbid76, это последний код, который отлично работает для всех, кто в нем нуждается.

● 1 - "file.java" - (LibGDX с основным классом:> render ())

public class BANANA
{
    // (code)
    // (code)

    public static float ICE;
    public static int   ICE_Location;
    //
    ICE                 = 0.0f;
    ICE_Location        = 0;

    // (code)
    // (code)



    // ---------------------------------
    @Override
    public void render()
    {
        // (code)
        // (code)

        batch.begin(); // - give the command into this SCOPE, otherwise it will not work
        //
        ICE_Location = shader.getUniformLocation("ICE"); // - retrieve var's address
        shader.setUniformf(ICE_Location, 1.0f);          // - set var's value by address
        //
        batch.end();

        // (code)
        // (code)
    }
}

● 2 - «фрагмент.glsl»

#ifdef GL_ES
    precision mediump float;
#endif

uniform float ICE;

void main()
{
    gl_FragColor = vec4(0.1, ICE, 0.3, 0.9);
}

Протестировано, работа 100%.Проблема решена, я надеюсь, что это поможет другим ...

...