我是OpenGL的新手.我正在为学术目的在Android上制作一个色盲应用程序.我拥有着色器中所需的所有代码来进行我需要的操作,但是我仍然必须让着色器能够看到我在Java代码中创建的数据.在我的Java代码中,我最终得到了一个大小为262144的大型int数组.我试图以任何方式将此数组传递到着色器,但它太大了.我被告知,如果我将数据转换为纹理,我可以轻松地将这些信息传递到着色器中.
我按照同事的指示将我的int数组转换为字节数组,但现在我迷失了如何创建opengl纹理并将我的字节数据输入到它中以供着色器查看和使用.
所以,我需要创建一个opengl纹理,用我的数据填充它(字节数组最好?)然后能够在我的着色器中使用该纹理.如果有人可以帮助我,我将不胜感激.看到例子后我工作得很好,而不是解释,因为我非常英语,但我欢迎任何帮助.
我确实尝试过编码.我最终试图制作GLES20.glTexImage2D.我想我可以传入我的字节数组,但它需要一个缓冲区?请给我完成任务所需的所有步骤.
非常感谢!
麦克风
我一直在这里疯狂地发帖,试图让我的片段着色器代码正常工作。我终于偶然发现了一些可以解决问题的方法。
我正在尝试在 Android 上使用 OpenGL ES 2.0 来操作相机预览。为此,我需要将我自己的纹理加载到片段着色器。因此,我将相机的纹理作为samplerExternalOES,将我自己的纹理作为sampler2D。我看到一个回复说尝试在一个片段着色器中使用这两种纹理类型存在错误。有人能为我解释一下吗?为什么不能在同一个着色器中使用samplerExternalOES 和sampler2D 纹理?解决这个问题的最佳方法是什么?
android opengl-es image-processing fragment-shader opengl-es-2.0
我对OpenGl和着色器一般都是新手.我想在片段着色器中使用我的java代码中的静态int数组来操作相机的颜色.有没有办法将我的int数组传递给着色器或只是让着色器能够以某种方式访问我的数组?
谢谢,迈克