草庐IT

android - 颠倒的纹理? | OpenGL-ES 2.0 (安卓)

我试图将我的纹理映射到一个用opengles2.0制作的正方形,当我这样做时,纹理出现颠倒,我的映射有误吗?或者我画它的方式?这是它的外观图片:这是我的onDrawFrame()代码publicvoidonDrawFrame(GL10glUnused){GLES20.glClearColor(0.0f,0.0f,1.0f,1.0f);GLES20.glClear(GLES20.GL_DEPTH_BUFFER_BIT|GLES20.GL_COLOR_BUFFER_BIT);GLES20.glUseProgram(mProgram);GLES20.glEnable(GLES20.GL_BL

java - 适用于 Android 的 OpenGL ES 教程似乎不起作用

我一直在关注http://developer.android.com/resources/tutorials/opengl/opengl-es20.html上的教程适用于Android上的OpenGLES。我已经进入“应用投影和相机View”部分,但我似乎总是看到一个没有三角形的空白屏幕,上一节工作得很好。我也尝试将整个教程复制粘贴到我的代码中,但得到了相同的结果。换行:gl_Position=uMVPMatrix*vPosition;到:gl_Position=vPosition;将应用程序放回第一部分(三角形根据屏幕方向拉伸(stretch))。知道问题是什么吗?这是我到目前为止的

android - 同步相机预览和处理

我正在设计一个具有OpenGL处理管道(着色器集合)并同时要求最终用户查看未处理相机预览的应用程序。举个例子,假设您想向用户显示相机预览,同时计算从相机接收到的场景中红色对象的数量,但是您使用任何着色器来计算对象数量,例如色调过滤等不应该被用户看到。我该如何正确设置它?我知道我可以设置相机预览,然后在回调中接收YUV格式的相机帧数据,然后将其转储到OpenGL纹理中并以这种方式处理帧,但是,这会带来性能问题。我必须将数据从相机硬件往返到VM,然后将其传回GPU内存。我正在使用SurfaceTexture以OpenGL可理解的格式直接从相机获取数据,并将其传递给我的着色器以解决此问题。我

android - Android (ARCore) 阻塞上的 PixelBuffer 对象和 glReadPixel

我知道默认的glReadPixels()会等到所有绘图命令都在GL线程上执行完。但是当你绑定(bind)一个PixelBuffer对象然后调用glReadPixels()它应该是异步的并且不会等待任何事情。但是当我绑定(bind)PBO并执行glReadPixels()时,它会阻塞一段时间。下面是我如何初始化PBO:mPboIds=IntBuffer.allocate(2);GLES30.glGenBuffers(2,mPboIds);GLES30.glBindBuffer(GLES30.GL_PIXEL_PACK_BUFFER,mPboIds.get(0));GLES30.glBuf

android - 在 Android 中使用 SurfaceTexture

我想使用Android3.0在XOOM上将视频播放到OpenGL纹理中。我在API11中添加的goole开发人员文档中遇到了SurfaceTexturehttp://developer.android.com/reference/android/graphics/SurfaceTexture.html文档讨论了使用GL_TEXTURE_EXTERNAL_OES而不是GL_TEXTURE_2D,我在最新的android-ndk-r5c中找不到任何对此定义的引用,它没有在ndk中定义,它只上升到platform-9,所以我猜我需要platform-11并且似乎没有android.openg

android - 使用视频流作为开放的 GL ES 2.0 纹理

我正在尝试通过将OpenGLES纹理设置为androidsurfaceTexture来捕获视频并将其显示到屏幕上.我不能使用TextureView并实现SurfaceTextureListener根据thistutorial因为我使用的是GoogleCardboard。我关注了theAndroiddocumentation关于如何初始化OpenGLES2.0和使用它,以及thistutorial关于纹理。将2放在一起我得到一个空白屏幕,偶尔会得到:GL_INVALID_OPERATION在控制台窗口中。被这么多我不知道的新概念所淹没,我无法调试或者只是理解这两种方法是否可以这样使用。这

objective-c - 将 NSMutableArray 复制到 float 组中以进行 GLES 渲染

我有一个名为mVerticies的NSMutableArray存储为我的类的成员,我想将它们放入float组中以使用glVertexAttribPointer绘制它们。p>通常在画画的时候,我会有这样的东西:floatverticies[]={-1,-1,1,-1};//...preparetodrawglVertexAttribPointer(GLKVertexAttribPosition,2,GL_FLOAT,GL_FALSE,0,verticies);//...draw但是为了使用glVertexAttribPointer函数,我需要一个float[]。verticies存储为N

ios - GLES2.0 上的 VBO glDrawElements 和 glVertexAttribPointer 什么都不显示

我可以像这样使用着色器、glVertexAttribPointer和glDrawArrays显示纹理:初始化constGLfloatsquareVertices[]={-0.5f,-0.33f,0.5f,-0.33f,-0.5f,0.33f,0.5f,0.33f};constGLfloatsquareTex[]={0,0,1,0,0,1,1,1};glEnableVertexAttribArray(PositionTag);glEnableVertexAttribArray(TexCoord0Tag);glVertexAttribPointer(PositionTag,2,GL_FLO

android - 适用于 Android OpenGL ES 的着色器

是否可以在Android应用中使用顶点或像素着色器?如果可能,请举例说明如何设置着色器。 最佳答案 如果您的目标是android2.x/OpengLES2,那么是的,这是可能的。这是一个如何加载着色器的代码示例:publicintcreateProgram(StringvertexSource,StringfragmentSource){intvertexShader=loadShader(GLES20.GL_VERTEX_SHADER,vertexSource);intpixelShader=loadShader(GLES20.G

android - 适用于 Android OpenGL ES 的着色器

是否可以在Android应用中使用顶点或像素着色器?如果可能,请举例说明如何设置着色器。 最佳答案 如果您的目标是android2.x/OpengLES2,那么是的,这是可能的。这是一个如何加载着色器的代码示例:publicintcreateProgram(StringvertexSource,StringfragmentSource){intvertexShader=loadShader(GLES20.GL_VERTEX_SHADER,vertexSource);intpixelShader=loadShader(GLES20.G