草庐IT

android - OpenGL ES Android 矩阵转换

我有一个实现GLSurfaceView.Renderer接口(interface)的渲染器;GLSurfaceView的一个子类和一些代表我要绘制的对象的类。我有来自http://developer.android.com/training/graphics/opengl/motion.html的代码我想扩展它并添加一些沿轴移动但无法管理它。对象仅旋转。这是我的代码:publicclassNotMyCoolRendererimplementsGLSurfaceView.Renderer{publicGLShipmTriangle;privateGLBackgroundStarmSqua

java - OpenGL ES2 Alpha 测试问题

我正在渲染具有alpha纹理的3D多个对象。所有纹理都可以正常加载,但是当我尝试在彼此面前渲染它们时,我得到以下信息:左边是我所拥有的。正确是应该的。网格只是为了帮助可视化视角。红色圆圈纹理前面的纹理被剪裁。我四处寻找答案,它说我可以使用:GLES20.glEnable(GLES20.GL_BLEND);GLES20.glBlendFunc(GLES20.GL_SRC_ALPHA,GLES20.GL_ONE_MINUS_SRC_ALPHA);但是我正在使用它,它仍然无法正常工作。我正确放置在onSurfaceCreated()函数中的设置是:GLES20.glClearColor(0.

Android NDK OpenGL ES 2.0 纹理间距

有什么方法可以在opengles2.0中使用与其宽度不同的间距来blit纹理。通常我会通过使用PBO或通过glPixelStore调整GL_PACK_ROW_LENGTH来解决这个问题。然而,Android平台上似乎既不存在用于绑定(bind)缓冲区的GL_PIXEL_UNPACK_BUFFER也不存在GL_PACK_ROW_LENGTH。glTex(Sub)Image2D不支持这个。有什么建议吗? 最佳答案 引用@HalsafarInsomescenarios,thiscanbesolvedbyadjustingtextureco

Android Opengl-es 加载一个非 2 次幂的纹理

我有一个在android中反复玩过的应用程序,它使用opengl-es。目前我像这样从位图中加载纹理://Loadupandflipthetexture-thendisposethetempBitmaptemp=BitmapFactory.decodeResource(Deflecticon.getContext().getResources(),resourceID);Bitmapbmp=Bitmap.createBitmap(temp,0,0,temp.getWidth(),temp.getHeight(),flip,true);temp.recycle();//Bindthete

android - 为什么不能从另一个线程调用 OpenGL ES 函数

我正在尝试使用OpenGLES为Android编写一个小型游戏引擎。我创建了一个GameThread来更新游戏对象,并使用GLThread绘制场景。我读过你需要在GLSurfaceView的onSurfaceCreated方法中加载纹理。我正在关注它,但出于某些调试目的,我试图从我的游戏线程而不是GLThread加载纹理。我没有出错,纹理也没有显示在屏幕上。我花了一整天的时间试图找出问题所在,最后我阅读了下面的here“只要确保只在主线程中使用OpenGL。”很重要。您不能在游戏引擎(可能在另一个线程中)中调用不与gl线程同步的纹理加载函数。在那里设置一个标志来通知您的gl线程加载新纹

android - 找不到不使用 GL11Ext 进行绘图的 android 2d opengl Sprite 类的合适示例

正如SpriteMethodTest所说,绘制Sprite的方法有很多种。首先,我尝试了Canvas,但遇到了一些性能问题。接下来,我决定学习opengl。我使用GL11Ext扩展取得了我的第一个成就。但是,您知道默认情况下,当您绘制纹理时,它们会翻转并且设备屏幕左下角的x轴和y轴为零(在横向模式下),这与Canvas不同,但您不能旋转Sprite。然后,我尝试使用GLU查看来影响此轴View,但没有效果。接下来,我想旋转我的Sprite,但正如他们所说,由于GL11Ext,我没有任何效果。所以我现在有主要的stackoverflow情况,基本问题是:使用哪种方法来实现sprite的缩

android opengl-es-2.0 - rotateM 解释

我从androidopengles2.0开始,我试图掌握这些概念。我写了下面的函数来旋转一个矩形。我已经通过使用方法rotateM中的值成功地进行了一些旋转。但是我没有成功对我的矩形进行一些具体的旋转,例如向右旋转2D45度。基本上我正在盯着android引用,它说明了以下内容;rotateM(float[]m,intmOffset,floata,floatx,floaty,floatz)围绕轴(x,y,z)将矩阵m原地旋转角度a(以度为单位)。现在我明白了我们提供了一个模型矩阵,这个矩阵中的一个偏移量和角度旋转,但是为什么我们必须提供xyz-轴分量,这些值到底有什么作用?希望有人能给

android - 如何在 OpenGL ES 1.1 上用不同的纹理填充立方体的每一面?

拜托,我需要有关如何在OpenGLES1.1上用不同纹理填充立方体每一面的教程/代码示例我找到了很多教程,但都没有清楚地解释如何在每张脸上放置不同的纹理,也没有一个提供简单的代码示例来说明如何操作。我的实际代码(来自nehe示例)在每个面上绘制具有相同纹理的立方体:publicclassCube{/**Thebufferholdingthevertices*/privateFloatBuffervertexBuffer;/**Thebufferholdingthetexturecoordinates*/privateFloatBuffertextureBuffer;/**Thebuff

android - OpenGL 和布局

我正在使用OpenGL在我的Android应用程序中呈现游戏View。游戏是回合制的,我想在界面上添加一些按钮。我更喜欢使用标准的Android小部件,在XML生成的布局中构建(或者,如果我必须,硬编码布局)并将OpenGLView作为该布局的一部分放在它自己的窗口中。所以关于这个,我有3个问题:1:这样的事情可能吗?我做了几次半心半意的尝试,但到目前为止运气不佳。2:这样的事情可取吗?例如,与使用基于OpenGL的自制软件小部件相比,它是否会带来显着的性能损失?3:是否可以将特定参数传递给在XML布局中创建的实例?例如,我当前的OpenGLView在其构造函数中有三个参数;当它是布局

android - 如何在 GLSL 中写入/防止写入 OpenGL 深度缓冲区

只有当当前像素的alpha>0.5时,我才想写入OpenGL深度缓冲区怎么做?如果像素的alphadiscard不是我要找的,因为它同时丢弃了颜色和深度信息;我只想丢弃深度信息。可以设置gl_FragDepth变量,但要设置哪个值呢?对于alphagl_FragDepth不变?我必须为此使用FBO,还是不使用它也能正常工作?我正在处理的项目是一个GLES2.0Android项目 最佳答案 我已经通过使用为我解决了这个问题glDepthMask(false)此命令禁用写入深度缓冲区但仍执行深度测试。我只是在所有其他对象之后渲染我的透明