安卓-使用NDK的OpenGL ES 2.0教程?

36

我想学习如何在Android中使用OpenGL ES 2.0,但是我找到的教程几乎都是使用Java的SDK。然而我希望使用本地代码,所以我想通过NDK来实现。 目前我找到的唯一一个教程/示例是在NDK本身中的一些样例。

请问在哪里可以找到一些关于NDK OpenGL ES 2.0的教程呢?如果没有好的教程,那么能否利用Java OpenGL教程来学习如何在NDK中使用它?例如这些方法是否可以在Java和Native之间1:1映射?


5
好问题。很遗憾没有答案。 - xXx_CodeMonkey_xXx
1
我目前处于同样的情况,你找到了吗? - ains
3个回答

24
我已经创建了一个示例,展示如何将Java中的UI与原生NDK代码结合起来进行OpenGL渲染。可以在不使用GLSurfaceView和JNI调用的情况下完成,这样就不必像NDK示例中那样为每个帧进行渲染。请查看https://github.com/tsaarni/android-native-egl-example上的代码。

很棒的工作,我已经测试了样例,非常有用,谢谢。但是,在某些设备上存在问题,当我将屏幕方向设置为横向时,似乎OpenGL没有渲染... - codeplay
谢谢!你能在项目页面上发布问题票并附上logcat日志文件吗?不幸的是,我没有太多设备进行测试... - tsaarni
1
@tsaarni,你确定你的项目使用的是OpenGL ES 2.0吗? - CAMOBAP
@CAMOBAP 不,我认为它只调用OpenGL ES 1.x函数,没有GLES 2.0的依赖。但是它需要Android API级别9和Android NDK r5或更高版本。 - tsaarni
我也在寻找OpenGL ES 2.0的依赖,但你的build.gradle文件显示你正在使用1.x版本。https://github.com/tsaarni/android-native-egl-example/blob/master/build.gradle - Fuat Coşkun
@FuatCoşkun 我已经不再从事Android开发了,但请为GLES 2.0的示例做出更新贡献。 - tsaarni

3

请查看此链接,与NDK和OpenGL问题以及游戏引擎编程等相关的内容有关。我发现它非常有趣和有用。


1
Google在GitHub上提供了一个示例项目,演示如何使用Java中创建的SurfaceView从本地代码设置EGL上下文:Teapots sample。特别是,请查看“更多茶壶”应用程序以及ndk_helper中的代码以进行上下文创建。
如果您想在没有任何Java代码的情况下工作,则此示例应该可以帮助您入门:native activity 编辑:此链接还提供了有关Java Surface、其本地对应项和EGL之间关系的高级概述:EGLSurfaces and OpenGL ES

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接