我有一个GLSurfaceView设置和渲染预期使用a GLSurfaceView.Renderer.我的应用程序使用Android支持包中的片段.当我导航到一个新的片段surfaceDestroyed被调用但是当我通过backstack回到片段时GLSurfaceView将不会呈现,调用requestRender不会导致onDraw调用.
我知道我需要调用onResume和onPause表面视图,我从托管片段做这个,但它似乎没有解决问题.关于htis方法的所有例子都参考了活动,这可能是问题吗?如果是这样,你如何使用GLSurfaceView片段内部.
非常感谢任何见解,我很高兴发布代码,但它似乎更像是一个普遍的问题,
谢谢
我目前正在研究使用OpenGL和OpenGL ES从SVG文件渲染矢量图形的可能性.我打算以Windows和Android为目标.我理想的解决方案是拥有一个最小的C库,从给定的SVG文件生成多边形三角剖分.然后,这将生成标准的OpenGL或OpenGL ES调用,并在重绘时使用显示列表或vbo进行优化.我只需绘制一个显示列表,在翻译和旋转后绘制矢量图像,允许我将其与其他OpenGL调用混合.
到目前为止,我看到建议首先使用QT或开罗. - 这不是一个选项,因为我希望在没有膨胀库的情况下管理我自己的OpenGL上下文(在我想要实现的内容中).这也不适合Android.
第二个选项是使用渲染到纹理的库.虽然这可能适用于静态矢量图形,但对于经常进行缩放和旋转的游戏来说,它不是一种有效或可行的选择.
第三,有可能使用OpenVG.OpenVG规范(ShivaVG等)有一些开源实现,但我还没有找到一个能够在运行时从给定的SVG文件生成适当的OpenVG调用的库,我无法看到如何优化它我们可能希望使用显示列表或vbo.
这三种方法都受到限制.我认为最有希望的选择是在没有其他解决方案的情况下使用OpenVG实现.所以我的问题是,是否有任何图书馆可以做我想要的,或接近我想要的?如果没有,有什么理由不是吗?尝试从头开始这样做会更好吗?
我需要一些帮助来查找如何使用Android纹理压缩的信息(或示例).我现在有很多PNG,我需要减少他们占用的内存量.我在看PVR压缩,但我无法弄清楚如何在OpenGL中使用它.
有些人可能指出我正确的方向或提供一些例子,因为我找不到任何东西.
我有一些顶点数据.位置,法线,纹理坐标.我可能从.obj文件或其他格式加载它.也许我正在画一个立方体.但是每个顶点数据都有自己的索引.我可以使用OpenGL/Direct3D渲染这个网格数据吗?
我有以下ColorMatrixFilter.但我想将它用作Subtract-Blend模式的掩码,而不是直接使用它.我该如何实现这一目标?
嘉洛斯:
colorMatrix[
0.393, 0.7689999, 0.18899999, 0, 0,
0.349, 0.6859999, 0.16799999, 0, 0,
0.272, 0.5339999, 0.13099999, 0, 0,
0, 0, 0, 1, 0
];
Run Code Online (Sandbox Code Playgroud) 是否可以创建一个简单的3D模型(例如在3DS MAX中),然后将其导入Android?
如何使用OpenGL ES 2.0着色器执行以下图像处理任务?
我想在iPhone上显示和旋转单个3D模型,最好是纹理.无需放大和缩小,或有背景或任何东西.
我有以下内容:
我的知识库:
我不知道的是:
我的主要问题是我不知道从哪里开始!我发现的所有iPhone书籍似乎都是关于创建GUI应用程序,而不是OpenGL应用程序.我找到了一本OpenGL书,但我不知道有多少(如果有的话)适用于iPhone开发.我发现Objective C语法有点混乱,奇怪的嵌套方法命名,像"id"这样没有意义的东西,以及我必须做手动内存管理的可怕想法.
最佳起点在哪里?我找不到任何这方面的教程,但也许我的Google-Fu很弱.或许我应该从学习Objective C开始?我知道像Aaron Hillgrass这样的书,但我也读到它们已经过时了,大部分示例代码都不适用于iPhone SDK,而且它似乎面向模型 - 视图 - 控制器范例而不是似乎适合3D应用程序.
基本上我对我的第一步应该是什么感到困惑.
我不完全清楚启用顶点属性数组的范围.我有几个不同的着色器程序,它们具有不同数量的顶点属性.是glEnableVertexAttribArray对着色器程序本地调用还是全局调用?
现在我在创建着色器程序时启用顶点属性数组,并且从不禁用它们,并且一切似乎都有效,但似乎我可能应该在绘制调用之前/之后启用/禁用它们.对此有影响吗?
(我正在使用WebGL,所以我们真的在谈论gl.enableVertexAttribArray和gl.disableVertexAttribArray.我还会注意到橙皮书,OpenGL着色语言,对这些调用没有任何信息.)
我想在Android中运行一个简单的OpenGL程序.我在Android 4.1模拟器中运行它.我打开了它的GPU仿真,昨天工作正常.当我今天跑了,最初是挂着说,OpenGL taking time to render - Wait or Close dialog box.经过几次再次运行,它正在崩溃说
E/EGL_emulation(2637): Failed to establish connection with the host
Run Code Online (Sandbox Code Playgroud)
其次是
11-30 11:48:10.787: E/AndroidRuntime(2637): FATAL EXCEPTION: main
11-30 11:48:10.787: E/AndroidRuntime(2637): java.lang.IllegalArgumentException: eglChooseConfig failed EGL_NOT_INITIALIZED
11-30 11:48:10.787: E/AndroidRuntime(2637): at android.view.HardwareRenderer$GlRenderer.chooseEglConfig(HardwareRenderer.java:852)
11-30 11:48:10.787: E/AndroidRuntime(2637): at android.view.HardwareRenderer$GlRenderer.initializeEgl(HardwareRenderer.java:804)
11-30 11:48:10.787: E/AndroidRuntime(2637): at android.view.HardwareRenderer$GlRenderer.initialize(HardwareRenderer.java:747)
11-30 11:48:10.787: E/AndroidRuntime(2637): at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1505)
11-30 11:48:10.787: E/AndroidRuntime(2637): at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:998)
11-30 11:48:10.787: E/AndroidRuntime(2637): at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:4212)
Run Code Online (Sandbox Code Playgroud)
我想模拟器无法控制系统的GPU,所以我该如何避免这个错误呢?我该如何纠正这个问题?
提前致谢.:)