草庐IT

java - Android opengl绘图文字

我正计划使用opengl绘制文本,但无法弄清楚如何让它绘制/构建实际的字符串。如果我想绘制“HelloWorld”,我可以为每个字母创建一个纹理并将它们全部绘制出来,但我知道必须有一种更简单的方法来一次“拉出”正确的字符集,然后只绘制一次.我想我可以获取所有单独的纹理,将它们添加到一个顶点数组中,然后只调用一次绘制来绘制顶点数组,但这似乎效率不高。是否有涵盖此特定部分的教程? 最佳答案 假设您只希望2D字母出现在3D空间中的某个点,执行此操作的正常方法就是您描述的方法。实际上,我会为整个字符串创建一个位图,然后将该位图绘制到场景中。

android - 使用 OpenGL ES 1.0 在 Android 上进行离屏渲染的选项?

我正在为我为Android编写的OpenGL游戏实现拾取。它使用“唯一颜色”方法将每个可触摸对象绘制为每个对象唯一的纯色。用户输入然后在触摸的位置读取glReadPixels()。我已经得到了着色工作,并且glReadPixels工作,但我无法将“颜色”渲染与主要的实际渲染分开,这使glReadPixels的使用变得复杂。据说使用它的技巧是将第二个场景(用于输入)渲染到屏幕外缓冲区中,但这似乎有点问题。我调查过使用OpenGLES1.1FBO作为屏幕外缓冲区,但我的手机(SamsungGalaxySVibrant(2.2))似乎不支持FBO。我不知道如何在没有用户见证的情况下正确渲染这

android - 带有着色器的 HUD (opengl-es 2.0)

如何在opengles2.0上使用着色器绘制HUD?我有一个在屏幕上绘制带纹理的四边形的着色器,它使用MVP矩阵。四边形有自己的顶点,这些顶点与View位置等无关(MVP矩阵的原因)Matrix.frustumM(mProjMatrix,0,-ratio,ratio,-1,1,3f,17);Matrix.setLookAtM(mVMatrix,0,0,0,-5,0f,0f,0f,0f,1.0f,0.0f);我想在右上角显示相同的四边形(如按钮或其他东西,HUD)。据我了解,我需要创建一个正交矩阵而不是“frustumM”,但我以后应该做什么?顶点着色器应该如何使用四边形的顶点?

Android——几乎完全在 OpenGL 中制作用户界面有什么问题吗?

构建以GLSurfaceView为中心的UI时应注意哪些注意事项?这是针对游戏的,大部分UI将是介绍屏幕(开始、选项、关于、退出)和关卡选择器屏幕。我已经在使用OpenGL的游戏渲染/动画上投入了大量时间,而且我不是图形艺术家,所以采用OGLUI路线对我来说似乎很有意义。但我是Android新手,需要一些外部输入。感谢阅读。 最佳答案 这没什么不对,尤其是对于游戏而言。唯一的问题是您必须一切自己做。大多数游戏似乎都是这样做的。 关于Android——几乎完全在OpenGL中制作用户界面有

android - OpenGL ES 2.0 中的纹理图集

我正在使用OpenGLES2.0开发一个简单的项目。它进行得相当顺利,但我似乎遇到了一个似乎对我们初学者来说记录不足的地方。也就是说,我正在尝试使用纹理图集。我搜索了一下,但似乎找不到任何完整的代码示例。大多数搜索结果会让人们给出关于它们是什么以及如何使用它们的非常基本的概念,但从来没有一个我可以真正研究的完整示例。目前,我只是想从一个图像集中加载一组四到五张图像,并将它们应用到单个三角形strip上。我可以根据需要划分出图像的特定部分,但我找不到任何关于将该图像的更多部分应用到同一个三角形带的示例。我不一定需要关于此的完整教程(我不介意!),但如果有人可以向我指出一些执行类似操作的示

android - OpenGL ES 2.0——简单粒子系统的最佳途径

我正在尝试为使用OpenGLES2.0的Android应用程序创建一个非常简单的粒子系统。基本上它仅适用于背景中的线性移动云。在开始之前我的第一个想法是使用点Sprite,这就是我一直在尝试做的事情。我很难做到这一点,但撇开这些问题不谈,点Sprite真的是解决这个问题的方法吗?在我为解决错误而进行的搜索中,我已经阅读了很多关于它们的相互矛盾的内容,如果这不是我应该的解决方案,我不想投入大量时间来使它一切正常首先去争取。与仅使用三角形相比,人们发布了各种各样的问题,例如裁剪,甚至性能下降。我希望有经验的用户了解点Sprite适合的位置以及何时应该使用它们,包括在像我这样的情况下,它们在

Android OpenGL - 简单二维转换的困难

出于性能原因,我正在尝试将游戏中的图形迁移到OpenGL。我需要使用精确的屏幕坐标绘制一个对象。假设在240x320屏幕的中央有一个100x100像素的框。我需要围绕Z轴旋转它,同时保持其大小。我需要围绕X轴旋转它,具有透视效果,保持(或接近)它的大小。我需要围绕Y轴旋转它,具有透视效果,保持(或接近)它的大小。Here'sapicture.到目前为止,我成功完成了前两个任务:publicvoidonDrawFrame(GL10gl){gl.glClear(GL10.GL_COLOR_BUFFER_BIT|GL10.GL_DEPTH_BUFFER_BIT);gl.glLoadIdent

android - OpenGL ES 2.0 无法在 Android 4.0.3 上呈现

我正在为Android编写完全原生的OpenGLES2.0游戏引擎。之前我使用SamsungGalaxyS(Android2.3.3)开发,现在使用SamsungGalaxySII(更新到Android4.0.3)。我没有在GalaxySII上试用引擎,因为它仍然有Android2.3.3(硬件特定问题?)。现在引擎可以在Android2.3.3(在GalaxyS上测试)上正常运行和渲染,但在Android4.0.3(在GalaxySII上测试)上无法渲染。问题类似这样:OpenGLRenderernotworkingonIceCreamSandwich除渲染外,其他一切在4.0.3上

android - 多个 OpenGL ES 2 Android 渲染器

是否可以在一个屏幕上同时显示多个渲染?就像将android屏幕分成4个象限并在每个象限上显示一个立方体?我认为OpenGL有可能,但那是GLUT并且是基于Windows的。我正在研究如何为android做这件事,但我还没有遇到任何描述。这是我创建渲染的主要Activity。publicclassMainActivityextendsActivity{privateMyGLSurfaceViewmGLView;@OverridepublicvoidonCreate(BundlesavedInstanceState){super.onCreate(savedInstanceState);/

android - OpenGL ES2.0 glReadPixels() 非常慢

我正在使用glReadPixels将像素从FBO读取到内存。代码如下:UINT8*data;glBindFramebuffer(GL_FRAMEBUFFER,FBOID);glReadPixels(0,0,w,h,GL_RGB,GL_UNSIGNED_BYTE,data);我发现这个操作非常非常慢...在openGLES2.0(Android)中有没有其他选择? 最佳答案 是的,它很慢。OpenGLES2.0在Android上没有提供更快的方法。您可以在OpenGLES3.0上使用PBO,但这可能不适合您,因为目前支持它的设备很少,