Follow along with the video below to see how to install our site as a web app on your home screen.
Примечание: This feature may not be available in some browsers.
IntBuffer buf = BufferUtils.createIntBuffer(width * height);
for (int y = 0; y < height; y++)
for (int x = 0; x < width; x++)
buf.put(pixels[y * width + x]); // RGBA
// как хочешь, здесь ты пиксели как угодно можешь получить
buf.flip();
int textureID = glGenTextures();
glBindTexture(GL_TEXTURE_2D, textureID);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, width, height, 0, GL_RGBA, GL_UNSIGNED_BYTE, buf);
Ок... Не понял к чему ты это...К теме это конечно не совсем относится, но если рассмотреть твой экран монитора как динамическую текстуру... то мы приходим к тому, что, динамическая текстура - это всего лишь набор статических, которые принимают ту или иную форму.
TextureUtil.uploadTextureImage() нужно запускать при каждом изменении текстуры.К тому что, всё что ты видишь, всего лишь набор трансформированных статических текстур.Не понял к чему ты это...
Я об этом и говорил)Итого (№2): Айдиху можно создавать один раз. Сам буфер, естественно, тоже.
А вотTextureUtil.uploadTextureImage()нужно запускать при каждом изменении текстуры.
Может кому пригодится )))
...
Ну а при изменении размера, думаю, просто сам буфер буду пересоздавать.
...
Всем спасибо )
BufferedImage просит указать imageType, например BufferedImage.TYPE_BYTE_GRAY.0xffffff, а чисто через яркость, типа 0xff?imageType или в любом случае нужно RGB указывать?BufferUtils.createIntBuffer) нужного размера (width * height). И пиши в него свой пиксели.glTexImage2D (передай туда созданный ранее буфер).glTexSubImage2D. Оно не выделяет новый участок в видеопамяти, а загружает в существующий.glPixelStorei(GL_UNPACK_ROW_LENGTH, texWidth)
buf.position(y * texWidth + x)
glTexSubImage2D(GL_TEXTURE_2D, 0, x, y, w, h, GL_BGRA, GL_UNSIGNED_BYTE, buf)
glPixelStorei(GL_UNPACK_ROW_LENGTH, 0)
Там, где у тебя обычный opengl? Не baked?В рендере XD