gpt4 book ai didi

android - 如何在 Android 中从字节数组创建 OpenGL 纹理

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:00:30 26 4
gpt4 key购买 nike

我是 OpenGL 的新手。出于学术目的,我正在 Android 上制作色盲应用程序。我在着色器中拥有执行所需操作所需的所有代码,但我仍然必须让着色器能够看到我在 Java 代码中创建的数据。在我的 Java 代码中,我最终得到了一个大小为 262144 的大型 int 数组。我试图以任何可能的方式将这个数组传递到着色器中,但它太大了。我被告知,如果我将我的数据转换为纹理,我可以轻松地将这么多信息传递到着色器中。

我已按照同事的指示将我的 int 数组转换为字节数组,但现在我不知道如何创建 opengl 纹理并将我的字节数据输入其中以供着色器查看和使用。

因此,我需要创建一个 opengl 纹理,用我的数据填充它(字节数组最好吗?),然后能够在我的着色器中使用该纹理。如果有人可以帮助我,我将不胜感激。在看到示例而不是解释后,我工作得很好,因为我对 opengl 很不识字,但我欢迎任何帮助。

我确实尝试编写一些代码。我最终尝试制作一个 GLES20.glTexImage2D。我想我可以只传入我的字节数组,但它需要一个缓冲区??请给我完成任务所需的所有步骤。

非常感谢!

迈克

最佳答案

我认为你需要做以下事情;

byte data[4 * 262144];  // your byte array, 4 * int count
ByteBuffer buffer = ByteBuffer.allocateDirect(4 * 262144);
buffer.put(data);
buffer.position(0);

GLES20.glTexImage2D(GLES20.GL_TEXTURE_2D, 0, GLES20.GL_RGBA, width, height, 0,
GLES20.GL_RGBA, GLES20.GL_UNSIGNED_BYTE, buffer);

关于android - 如何在 Android 中从字节数组创建 OpenGL 纹理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14290096/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com