sampler2DArray - инициализация и использование

193
01 мая 2018, 02:30

Изучаю OpenGL и столкнулся с необходимостью использовать sampler2DArray. Весь день мучаюсь - все без толку. У меня два вопроса:

  1. Как создать список текстур?
  2. Как использовать в шейдере sampler2DArray?

Вот результат моих попыток создать список текстур:

// textures - id загруженых текстур 
private int createTextureArray(GL2 gl, int[] textures, int width, int height) {
        int layerCount = textures.length;
        int mipLevelCount = 1;
        IntBuffer texture = IntBuffer.allocate(1);
        gl.glGenTextures(1, texture);
        gl.glActiveTexture(GL.GL_TEXTURE0);
        gl.glBindTexture(GL2.GL_TEXTURE_2D_ARRAY, texture.get(0));
        gl.glTexStorage3D(GL2.GL_TEXTURE_2D_ARRAY, mipLevelCount, GL2.GL_RGBA8, width, height, layerCount);
        for (int i = 0; i<textures.length; i++) {
             gl.glTexSubImage3D(GL2.GL_TEXTURE_2D_ARRAY, i, // вот тут выдает ошибку
                     0, 0, 0,
                     width, height, layerCount,
                     GL2.GL_RGBA, GL2.GL_UNSIGNED_BYTE,
                     textures[i]);
        }
        // Always set reasonable texture parameters
        gl.glTexParameteri(GL2.GL_TEXTURE_2D_ARRAY, GL2.GL_TEXTURE_MIN_FILTER, GL2.GL_LINEAR);
        gl.glTexParameteri(GL2.GL_TEXTURE_2D_ARRAY, GL2.GL_TEXTURE_MAG_FILTER, GL2.GL_LINEAR);
        gl.glTexParameteri(GL2.GL_TEXTURE_2D_ARRAY, GL2.GL_TEXTURE_WRAP_S, GL2.GL_CLAMP_TO_EDGE);
        gl.glTexParameteri(GL2.GL_TEXTURE_2D_ARRAY, GL2.GL_TEXTURE_WRAP_T, GL2.GL_CLAMP_TO_EDGE);
        return texture.get(0);
    }

Буду очень благодарен за помощь!

READ ALSO
Сохранение данных из одной таблицы в другой

Сохранение данных из одной таблицы в другой

Есть два класса Category и TypeИ две таблицы в MySQL с такими же названиями

239
Прием платежей в приложении Android

Прием платежей в приложении Android

у меня возник такой вопросДопустим, есть Android приложение , в нем пользователь должен иметь возможность совершать покупки через qiwi, яндекс...

192
Исчезают элементы в cardview

Исчезают элементы в cardview

Элементы cardview выводятся в RecyclerViewПри запуске приложения сначала все нормально

225
Java обработать строку

Java обработать строку

Думаю, будет проще сразу с примера

202