草庐IT

android - OpenGL ES 3.0。浮点纹理

我有OpenGLES3.0,我正在尝试创建纹理:case1:glTexImage2D(GL_TEXTURE_2D,0,GL_R16F,width,height,0,GL_RED,GL_HALF_FLOAT,0);break;case2:glTexImage2D(GL_TEXTURE_2D,0,GL_RG16F,width,height,0,GL_RG,GL_HALF_FLOAT,0);break;case3:glTexImage2D(GL_TEXTURE_2D,0,GL_RGB16F,width,height,0,GL_RGB,GL_HALF_FLOAT,0);break;(对于这段代

android - Android 插件中的 SurfaceTexture 在 Unity 中不起作用

我无法将绑定(bind)到SurfaceTexture的纹理显示在Unity中。更新4:基于更新1中的管道(表面->通过表面纹理的外部纹理->fbo->纹理2d)我知道SurfaceTexture不是't正确地将其表面转换为纹理。我可以通过pixelcopy从它的表面获得正确绘制的图片,并且我可以确认我的FBO绘图到texture2d管道可以使用一些测试颜色。那么问题来了,为什么SurfaceTexture不能将它的表面转换为纹理呢?我在Java中生成一个Texture并将其指针传回Unity:publicvoidinitGLTexture(){Log.d("Unity","initG

iphone - 在正方形 : Why is the image rotated? 上映射纹理

我在OpenGLES中成功地将图像映射到一个正方形上...但是它旋转了90度。我是OpenGLES的新手,想知道是否有人可以指出它旋转的确切原因。谢谢!packagese.jayway.opengl.tutorial;importjava.io.IOException;importjava.io.InputStream;importjava.nio.ByteBuffer;importjava.nio.ByteOrder;importjava.nio.FloatBuffer;importjava.nio.ShortBuffer;importjavax.microedition.khron

三星 Galaxy 变体上的 Android opengl 白色纹理

我在samsunggalaxy变体上得到白色纹理,但在我测试的其他手机上,纹理工作得很好。所以我的问题是通常怀疑是什么导致了这种行为?星系变体是否有任何特殊硬件并且缺少某些东西?我的纹理加载代码是这样的GLuinttexture;glGenTextures(1,&texture);glBindTexture(GL_TEXTURE_2D,texture);glPixelStorei(GL_UNPACK_ALIGNMENT,2);glTexParameterf(GL_TEXTURE_2D,GL_TEXTURE_MIN_FILTER,GL_LINEAR);glTexParameterf(GL

android - GLSurfaceView 在 Nexus 7 和 Android 4.2 上显示黑色

我有一个OpenGLES2.0应用程序,它可以在运行从2.2到4.1的各种Android版本的设备上运行。然而,有人告诉我,当在装有Android4.2的Nexus7上运行它时,应用程序中的3D图形都是黑色的。虽然操作栏和对话框工作正常。我已经在带有IntelAtom处理器、HAX和GPU的模拟Nexus7上试过了,它启用了运行4.2.2并且工作正常。我更愿意运行ARM镜像,但它似乎不包括OpenGLES2.0有没有人了解可能导致Nexus7出现此问题的原因以及如何解决该问题?一种可能是当前应用程序版本将目标API级别设置为15,而4.2.2是级别17。这可能是个问题吗?不过它在模拟器

android - SurfaceTexture 大小,如何定义?

我正在使用SurfaceTexture绘制相机预览,需要知道纹理的大小+过程中发生的情况。假设设备支持的相机预览尺寸为:1280720、1024576、960720、800600、800480、768576、736552等。很明显,这些尺寸与标准纹理尺寸2048x2048、2048x1024、1024x1024不匹配......我可以想到以下情况,但我不确定:1,表面纹理尺寸为所选预览尺寸,例如1280x720,但这不是pow2格式,可能意味着兼容性问题2,表面纹理包含在pow2格式的下一个尺寸中,未转换,例如1280x720将包含在2048x1024纹理中,没有拉伸(stretch)

android - 将多个纹理传递给 LibGDX 中的着色器

我需要将2个(或更多)纹理传递给一个着色器。此外,我必须在渲染方法中绑定(bind)纹理,因为我使用FrameBuffer并尝试动态绑定(bind)纹理。所以,我的代码如下:@Overridepublicvoidshow(){fbo=newFrameBuffer(Format.RGB565,Gdx.graphics.getWidth(),Gdx.graphics.getHeight(),false);shader=newShaderProgram(Gdx.files.internal("shaders/vertex.glsl"),Gdx.files.internal("shaders/

android - 如何在 OpenGL ES 2.0 中管理多个纹理?

我有一个具有6种不同纹理的OpenGLES2.0应用程序。我需要的是同时绘制和移动它们。我能够做到,但是Action很慢,因为我一直在将位图加载到纹理中。对于每个纹理,我在Render方法上执行以下操作:setupImage(texture1);GLES20.glVertexAttribPointer(mPositionHandle,3,GLES20.GL_FLOAT,false,0,vertexBufferT1);GLES20.glVertexAttribPointer(mTexCoordLoc,2,GLES20.GL_FLOAT,false,0,uvBufferT1);GLES20

android - 如何将纹理从一个 OpenGL 上下文传输到另一个

背景:Android原生相机应用使用OpenGL_1.0上下文来显示相机预览和图库图片。现在我想在原生相机预览中添加一个实时滤镜。要在我自己的相机应用程序预览中添加实时滤镜很简单——只需使用OpenGL_2.0进行图像处理和显示。由于OpenGL_1.0不支持图像处理,因此它以某种方式用于在Android原生相机应用程序中显示。*我现在想创建一个新的基于OpenGL_2.0的GL上下文进行图像处理,并将处理后的图像传递给另一个基于OpenGL_1.0的GL上下文进行显示。*问题:问题是如何将处理后的图像从GL-context-process(基于OpenGL_2.0)传输到GL-con

java - Android OpenGL ES 2.0 只限于内存中的 16 个纹理?

基本上,当我在AndroidStudio中使用OpenGLES2.0开发应用程序时,我遇到了一个我无法解决的大问题,它已经困扰了我大约一个星期。因此,每当我在内存中加载超过16个,可能是17个任意大小的纹理,并尝试通过我在Genymotion中的模拟器或我的ASUS平板电脑以2D方式显示它们时,它要么开始显示与我之前不同的图像在该特定索引处绑定(bind),或者根本不显示。然而,如果我通过我的三星GalaxyS6运行它,它运行良好。但是,如果我加载16个或更少的纹理,它可以在我测试它的所有设备上正常工作,包括模拟器。这让我尝试了一个小实验,看看它是否会显示每个字母为16x16png的字