草庐IT

Android EGL/OpenGL ES 帧速率卡顿

长话短说即使根本不进行绘图,在Android设备上的OpenGLES渲染线程上保持60Hz的更新率似乎也是不可能的。神秘的尖峰经常突然出现(在底部的代码中展示),我为弄清楚为什么或如何导致死胡同所做的一切努力。在使用自定义渲染线程的更复杂示例中,计时一直表明eglSwapBuffers()是罪魁祸首,经常超过17毫秒到32毫秒。帮忙?更多详情这尤其糟糕,因为我们项目的渲染要求是屏幕对齐的元素以固定的高速从屏幕的一侧平滑地水平滚动到另一侧。换句话说,平台游戏。从60Hz频繁下降会导致明显的爆裂声和倾斜,无论是否有基于时间的移动。以30Hz渲染不是一个选项,因为滚动速度很高,这是设计中不可

android - 如何使用 OpenGL 在 Android 上绘制位图

我有一个RGB值的字节数组,就像*.bmp文件的内容(没有标题)一样。我想做的是,在Android上使用OpenGL绘制相应的位图。似乎OpenGLES没有一个API可以,这是真的吗?如果为真,我该怎么做?PS:其实我可以用JAVA代码画出来,但是速度太慢而且太耗CPU时间。所以我想尝试用OpenGL绘制它。还有其他建议吗?或者OpenGL可能不是正确的答案?谢谢大家! 最佳答案 bmp是一种非常糟糕的格式,您应该使用png文件。它们更小,但质量相同。它们也很容易使用openGL。您可以在Android中轻松做到这一点。您需要研究纹

Android: Canvas 与 OpenGL

我有一个绘图应用程序,用户可以在其中用手指画线,调整颜色、粗细等。当用户绘图时,我正在从MotionEvent转换聚集的X/Y点进入SVGPaths,以及创建AndroidPath's然后通过Canvas将Android路径绘制到屏幕上,并将SVG路径提交到应用程序的数据库。我正在遵循FingerPaint中使用的模型,因为“进行中”的线是通过重复调用invalidate()(因此,onDraw())即时绘制的,一旦线完成并开始新的一行,之前的行在onDraw()中从底层CanvasBitmap中绘制,正在进行中的行再次生成重复的重绘。这在此应用程序中工作正常-直到您开始旋转底层Bit

android - 如何使用带有 OpenGL ES 的 android 相机工作?

我想使用OpenGLES进行Android相机预览并保存捕获的图像。我喜欢在Android相机中使用OpenGLES来给Android相机一些效果。所以请有人告诉我该怎么做? 最佳答案 你需要实现android.hardware.Camera.PreviewCallback接口(interface)并覆盖方法publicsynchronizedvoidonPreviewFrame(byte[]data,Cameracamera){myOpenGLObject.receiveFrames(data);}读取从相机回调中接收到的帧。我建

android - 使用 OpenGL 将游戏逻辑与 Android 快节奏游戏渲染分开的最佳方法?

我研究和制作小游戏已经有一段时间了,最​​近我决定尝试为Android开发游戏。对我来说,从原生C++代码跳转到AndroidJava并不难,但让我头疼的是如何将逻辑与渲染分开。我在这里和其他网站上阅读过:Itisbettertonotcreateanotherthreadforit,justbecauseAndroidwillforsurehavenoproblemsforprocessing.意思是代码应该是这样的:publicvoidonDrawFrame(GL10gl){doLogicCalculations();clearScreen();drawSprites();}但我不

android - OpenGL ES 可以渲染非基本 2 维的纹理吗?

这只是在我深入研究将当前渲染系统转换为openGL之前的一个快速问题。我听说纹理需要以2为基数才能存储以供渲染。这是真的?我的应用程序内存非常紧张,但大多数位图不是2的幂。存储非base2纹理会消耗更多内存吗? 最佳答案 的确,根据OpenGLES版本,OpenGLES1.0/1.1有两个限制。OpenGLES2.0没有限制,但它限制了两个纹理的非幂的环绕模式。创建更大的纹理以匹配POT尺寸会浪费纹理内存。 关于android-OpenGLES可以渲染非基本2维的纹理吗?,我们在Stac

Android:OpenGL 上下文何时被销毁?

在android上,GLSurfaceView文档是这样说的:AGLSurfaceViewmustbenotifiedwhentheactivityispausedandresumed.GLSurfaceViewclientsarerequiredtocallonPause()whentheactivitypausesandonResume()whentheactivityresumes.ThesecallsallowGLSurfaceViewtopauseandresumetherenderingthread,andalsoallowGLSurfaceViewtoreleaseand

android - Haskell Android OpenGL

我在使用Ajhc跟踪OpenGL中的2d对象时一直遇到问题。我不知道如何跟踪我的对象并防止它离开设备的宽度和高度。谁能提供帮助?我的代码在这里:moduleDrawwhereimportCubeVertsimportCoSysimportAndroidNdkimportAndroidNdk.LogimportForeign.Marshal.ArrayspriteMv::Float->Float->Float->Float->Float->IO()spriteMvxydxdyz=dodrawFuncdrawFunc::IO()drawFunc=doc_glDrawArraysc_GL_T

Android 动态壁纸 -- OpenGL 与 Canvas

我是一个相当“新手”的Android开发人员,我希望我的第一个项目之一是动态壁纸,但是我对我应该专注于Canvas还是OpenGL感到矛盾。作为新手,我知道我应该首先掌握Canvas,因为它更容易使用,但我更喜欢从我感兴趣的现实世界项目中学习,即使它有时有点落后。我以前以非常基本的方式使用过这两个,我了解它们的一般概念,但我不确定它们是如何转移到动态壁纸领域的。我认为动态壁纸不需要OpenGL的全速运行,因为以最大FPS运行它只会耗尽电池电量,但同时我担心使用Canvas会导致延迟和在做诸如更改主屏幕之类的事情时口吃。我一直倾向于使用OpenGLES2.0,这既是为了保持最佳性能,也是

c++ - 2009 年的 OpenGL 窗口库

关闭。这个问题不符合StackOverflowguidelines.它目前不接受答案。我们不允许提问寻求书籍、工具、软件库等的推荐。您可以编辑问题,以便用事实和引用来回答。关闭去年。Improvethisquestion试图为我的OpenGL应用程序确定一个用于创建窗口和捕获用户输入的库,但是选择太多了:GLUT(win32)FreeGLUTOpenGLUTSFMLGLFWSDLFLTKOGLWFWClutterQt其他?GLUT已经过时了。我喜欢GLFW,但似乎你无法在显示它之前设置窗口位置(我希望它居中,有这么多问题吗?)所以你看到它出现然后移动,这让我很困扰。加上开发似乎也停止了