Articles of opengl es

无法find适合Android 2d opengl sprite类的示例,它不使用GL11Ext进行绘制

正如SpriteMethodTest所说,绘制精灵的方法有很多种。 首先,我尝试了帆布,并有一些性能问题。 比我决定学习opengl。 我使用GL11Ext扩展我的第一个成就。 但是你知道默认情况下,当你绘制纹理时,它们被翻转,x和y轴在设备屏幕的左下角(横向模式)为零,不像canvas,你不能旋转精灵。 比我试图用GLU看看影响这个轴视图。 但没效果。 比我想旋转我的精灵并且没有像他们说的那样影响GL11Ext的原因。 所以我现在有主要的stackoverflow条件,基本问题是: 1.使用哪种方法来实现对精灵的变焦,旋转和弹奏效果以及在旧的SWEET方式中查看X和Y轴[(0,0)在风景模式中的左上方]? 2.在宇宙中,有哪些类似于SPRICH类的例子只使用了一种良好的SPRING RENDERING方式? (SpriteMethodTest让我很困惑)

如何编写/阻止在GLSL中写入OpenGL深度缓冲区

我想写入OpenGL深度缓冲区只有当前像素的alpha> 0.5如何做到这一点? 如果像素的alpha <0.5,我想渲染颜色但不将其深度写入深度缓冲区。 命令discard不是我正在寻找的,因为它丢弃了颜色和深度信息; 我只想丢弃深度信息。 有gl_FragDepthvariables可以设置,但是哪个值? 对于α<0.5的情况,如何保持gl_FragDepth不变? 我是否必须使用FBO,或者它是否也可以不使用? 我正在开发的项目是GLES 2.0 Android项目

尝试在设备上绘制纹理三角形失败,但模拟器工作。 为什么?

我有一系列OpenGL-ES调用,可以在模拟器(2.0.1)上使用alpha混合正确渲染三角形并对其进行纹理处理。 当我在实际设备(Droid 2.0.1)上启动相同的代码时,我得到的只是白色方块。 这告诉我纹理没有加载,但我无法弄清楚它们为什么不加载。 我的所有纹理都是具有alpha通道的32位PNG,在res / raw下,所以它们没有根据sdk文档进行优化。 这是我加载纹理的方式: private void loadGLTexture(GL10 gl, Context context, int reasource_id, int texture_id) { //Get the texture from the Android resource directory Bitmap bitmap = BitmapFactory.decodeResource(context.getResources(), reasource_id, sBitmapOptions); //Generate one texture pointer… gl.glGenTextures(1, textures, texture_id); //…and bind it to our array gl.glBindTexture(GL10.GL_TEXTURE_2D, textures[texture_id]); //Create Nearest Filtered Texture gl.glTexParameterf(GL10.GL_TEXTURE_2D, GL10.GL_TEXTURE_MIN_FILTER, GL10.GL_NEAREST); […]

OpenGL和布局

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

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

请,我需要有关如何在OpenGL ES 1.1上用不同纹理填充多维数据集的每一面的教程/代码示例 我发现了很多教程,但没有一个能够清楚地解释如何在每个面上放置不同的纹理,而且没有一个能够提供简单的代码示例。 我的实际代码(来自示例)在每个面上绘制具有相同纹理的立方体: public class Cube { /** The buffer holding the vertices */ private FloatBuffer vertexBuffer; /** The buffer holding the texture coordinates */ private FloatBuffer textureBuffer; /** The buffer holding the indices */ private ByteBuffer indexBuffer; /** Our texture pointer */ private int[] textures = new int[1]; /** * The initial […]

在Libgdx中实现简单运动模糊的意外结果

在这两张附图中,libgdx的桌面截图按预期运行。 遗憾的是,Galaxy Nexus的屏幕截图并不像预期的那样。 我试图创建一个简单的运动模糊或轨迹效果。 在我的桌面上按预期渲染。 没有像我预期的那样在Galaxy nexus上渲染。 在渲染期间,圆形纹理在for循环中绘制,并且使用在圆圈之前绘制的0,0,0,0.1f的RGBA的像素图来实现效果。 screenClearSprite创建 Pixmap screenClearPixmap = new Pixmap(256, 256, Format.RGBA8888); screenClearPixmap.setColor(Color.rgba8888(0, 0, 0, 0.1f)); screenClearPixmap.fillRectangle(0, 0, 256, 256); screenClearTexture = new Texture(screenClearPixmap); screenClearSprite = new Sprite(screenClearTexture); screenClearSprite.setSize(screenWidth, screenHeight); screenClearPixmap.dispose(); 给予 batch.begin(); font.draw(batch, “fps:” + Gdx.graphics.getFramesPerSecond(), 0, 20); screenClearSprite.draw(batch); for (int i = 0; i < circleBodies.size(); i++) { tempPos […]

OpenViewcurl视图效果上的TextView不可单击

在我的应用程序中,我有这样的要求。我有大量的数据,我需要在ListView上显示这种数据的布局,现在我想在每个页面上我想要显示这样的数据总共6页。我已经列出了textview的数量每页。假设我有7页,所以我需要为我使用此代码制作书籍布局。 https://github.com/harism/android_page_curl 。 有了这个我能够得到这样的效果。如下图所示。 现在我的问题是,当OpenGl将整个布局转换为位图时,我无法处理textview的click事件。当我在那个时候点击textview时调用ACTION_DOWN方法。并且当整个布局转换为因此我们无法处理textview点击事件。 为了解决这个问题已经谷歌搜索并发现了一些技巧来自这个问题。这里提到为handeling点击监听器制作单独的布局,但没有得到我必须要做的事情,因为我没有任何OpenGl经验,所以如果有的话一个人对这个问题有所了解,任何能指导我处理点击事件的人。

Android opengl纹理损坏

我在Android模拟器上遇到纹理损坏问题(它在大多数Android设备上运行正常)。 上面的图片是运行Android 4.1 Jelly Bean的模拟器生成的参考渲染,一切看起来都应该如此。 第二张图片是在运行Android 1.6的模拟器中捕获的。 请注意一些禁用的工具栏按钮损坏(它们使用1f,1f,1f,0.5f颜色渲染) 第三张图片在同一个仿真器中捕获。 不同的是,现在得分在右上角呈现。 分数是位图字体,它的纹理是alpha蒙版。 在得分失去它的纹理后渲染的所有东西。 请注意,前面的截图还包含以相同方式呈现的位图字体(但使用不同的纹理)。 其中一台三星设备也出现了类似的问题(我不记得该型号)。 渲染地板纹理时,在丢失纹理后渲染的所有内容。 当我要么a)没有绑定纹理b)确实绑定纹理,但没有使用它时没有三角形c)从头开始重新创建png资产时问题没有表现出来。 Opengl设置: gl.glDisable(GL10.GL_LIGHTING); gl.glDisable(GL10.GL_CULL_FACE); gl.glDisable(GL10.GL_DEPTH_TEST); gl.glDisable(GL10.GL_DITHER); gl.glDepthMask(false); gl.glEnable(GL10.GL_TEXTURE_2D); gl.glBlendFunc(GL10.GL_ONE,GL10.GL_ONE_MINUS_SRC_ALPHA); gl.glShadeModel(GL10.GL_FLAT); gl.glTexEnvf(GL10.GL_TEXTURE_ENV, GL10.GL_TEXTURE_ENV_MODE, GL10.GL_MODULATE); 如何加载纹理: public void doGLLoading(Engine renderer) { GL10 gl=renderer.getGl(); int[] ids=new int[1]; gl.glGenTextures(1, ids,0); id=ids[0]; gl.glBindTexture(GL10.GL_TEXTURE_2D, id); Log.d(“SpriteDraw”, String.format(“Texture %s has format %s”,getPath(),bitmap.getConfig().toString())); buildMipmap(gl, bitmap); gl.glTexParameterf(GL10.GL_TEXTURE_2D,GL10.GL_TEXTURE_MIN_FILTER, minFilter); gl.glTexParameterf(GL10.GL_TEXTURE_2D,GL10.GL_TEXTURE_MAG_FILTER, […]

在Android上SurfaceView与GLSurfaceView的差异和优势?

我目前正在玩Android中的2D图形,并且一直使用普通的旧SurfaceView将Drawables和Bitmaps绘制到屏幕上。 这一直很好用,但精灵运动中有一点点口吃,我想知道用这个做一个实时(但不是很快的)游戏的可行性。 我知道GLSurfaceView存在使用OpenGL,但我很好奇它在多大程度上有所作为。 是一个普通的SurfaceView硬件加速,还是我需要使用OpenGL? 切换到OpenGL可以期待什么types的速度差异,以及切换需要多少代码更改(游戏逻辑都在一个单独的对象中,为SurfaceView提供有序的可绘制数组)?

使用Rajawali3D从非本地源获取Android OpenGL纹理?

我正在使用OpenGL库Rajawali3D来显示我的模型。 我想知道的是如何根据登录用户从我的服务器加载纹理? 我已经在互联网上搜索了几个月,但没有成功。 我发现这个网站解释了如何从非本地源加载纹理,但是当我尝试它时,它不适用于Rajawali。 任何建议或例子将不胜感激。 这是我试图使用的网站: 来自网页的纹理