草庐IT

android - 为什么我得到 "call to OpenGL ES API with no current context"?

我是openGL和android开发的新手,所以如果我的问题很琐碎,请原谅我。我正在尝试构建一个简单的小应用程序,该应用程序在三个EditText中接受用户的输入,这些EditText表示要在GLSurfaceView中显示的RGB颜色的每个组件的0-100%值。要注意的是,我需要它来使用openGLES2.0,并且我需要使用统一值将数据传递到着色程序,这样一旦我让它工作,我就可以继续我真正想要完成的事情。运行我编写的内容后,我可以让GLSurfaceView正确显示第一个纯色,但是每当我更改任何值并调用重建着色程序中的统一插槽时,我都会在LogCat中收到此错误:错误/libEGL(

Android OpenGL - ES 纹理出血

我正在编写一个小应用程序,目前可以生成随机纹理贴图。我将这张map绘制成一组10x15的“四边形”,它们实际上都是三角形strip。我使用“map”获取一个整数,然后将其作为该正方形在textureAtlas中的纹理位置。所以例如0是左下角的“tile”。map集大小为128x128,分为32个像素block。然而,我似乎得到了一些奇怪的伪像,其中一个图block的纹理正在蔓延到下一个图block。我想知道它是否是图像本身,但据我所知,像素正是它们应该在的位置。然后我查看了我指定的纹理坐标,但它们看起来都很准确(0.0、0.25、0.5、0.75、1.0-将其分成我期望的4行和4列)。

iphone - OpenGL ES 2.0 的推荐实践环境?

我决定学习一些OpenGLES2.0,我正在尝试为其选择一个练习平台。什么是可能的目标平台,它可能是Android、iPhone或WebGL。但我不想花费太多时间和精力来正确设置环境。您会推荐WebGL来快速开始OpenGLES2.0学习或其他吗?编辑:我正在使用Mac,目前我对ES1.x并不感兴趣。 最佳答案 如果您在iOSDeveloperCenter注册为开发人员(免费),您可以下载Xcode和iOSSDK(同样,当您获得Xcode3时免费),其中包括支持OpenGLES2.0的模拟器。这当然假设您有一台Mac可以运行所有这些

android - OpenGL坐标匹配屏幕坐标?

Androidopengl-esView问题。所以在openGL中,相机和View的默认位置是0,0。如何设置View和相机,使其与计算机屏幕坐标基本相同,顶部为0,0。我调用了gl.glOrthof(-screenWidth/2,ScreenWidth/2,-ScreenHeight/2,ScreenHeight/2)。但我认为这是错误的。我还需要将相机设置为查看整个field。我不确定如何使用gl.glFrustumf来完成这项任务。 最佳答案 要将顶点坐标用作屏幕坐标,只需在投影矩阵上使用glOrtho(0,width,hei

android - 在 android 调试器中使用 Tracer For opengl

我正在尝试让opengltracer在监视器中为android工作。当我添加应用名称时,我无法打开该应用。启动应用程序时出现错误Error:StartingIntent{....}还有一个错误说无法解决Intent。我也没有源代码的权限,所以有什么办法可以得到这个runnig 最佳答案 我得到了答案。问题是我没有使用正确的Activity。现在为了获取Activity的名称,我做了一个adbshelldumpsysactivity|grep同时专注于所需的Activity。通过这样做,我得到了Activity的名称,我在GLTrac

android - 如何在 opengl es 2 的顶点着色器程序中访问其他顶点?

我是一个android应用程序,我想根据该表面的其他顶点计算表面的法线。我不想在“主”程序中这样做,因为它需要很多时间。实际上,对于每个顶点,我为每个vextex传递了4个float组:attributevec3a_bottom;attributevec3a_left;attributevec3a_right;attributevec3a_top;vec3calculNormal(){returnnormalize(cross((a_left-a_right),(a_bottom-a_top)));}我知道这是非常非常非常脏的代码,所以我不想传递4个数组,而是这样做:vec3calcu

android - OpenGL 透明图像中有黑色

我正在为Android开发一款游戏,我想知道为什么每当我绘制具有透明度的图像时,透明部分似乎总是会添加一些黑色。这种情况无处不在,让我的一些效果看起来很奇怪。这是一个例子。这两个圆圈只是带有模糊的白色图像,但您可以看到当一个圆圈与另一个圆圈重叠时有阴影。如果我在Inkscape中重叠两个圆圈,我会在它们重叠的地方得到纯白色。我正在使用GLES20.glEnable(GLES20.GL_BLEND);GLES20.glBlendFunc(GLES20.GL_SRC_ALPHA,GLES20.GL_ONE_MINUS_SRC_ALPHA);用于我的混合。知道为什么会发生这种情况以及如何避免

java - 如何使用 OpenGL (ES) 2 Android 加速渲染

我在android上使用OpenGL-ES开发了一张map。它可以很好地显示我的map,我刚刚添加了触摸事件处理,所以我可以移动它并四处乱扔它,这也很有效。但是它有大约1秒的滞后时间。我显然希望图像的平移尽可能平滑。我有相当多的vector数据要显示,但仍然必须有其他方法来使交互更流畅,我有17000个多边形(地block或地block)和大约1500条线(道路中心线),它们当应用程序启动时,两者都会预加载到包含FloatBuffers的列表中。当我转到我的mapActivity时,渲染器会遍历这些列表,正如您将在下面的代码中看到的那样。如果能给我一些关于如何加快速度的建议,我将不胜感

android - 解决Android模拟器 "Could not load OpenGLES emulation library: Could not load DLL!"

启动AndroidEmulator时出现问题。我通过执行命令emulator-arm@AVD_name启动AndroidEmulator时遇到的错误是无法加载OpenGLES仿真库:无法加载DLL!。谁能帮我解决这个问题。 最佳答案 最后我知道了如何启动Android模拟器。我认为Windows中的问题是android模拟器在执行时指向sdk\tools\目录而不是sdk\tools\lib目录,如Android-openprojectIssueTracker中所述.你要做的事情是:首先将sdl\tools\lib目录下所有以lib

android - 如何在 Android SDK(不是 NDK)中使用 OpenGL ES 2.0?

我找不到对此的引用。所有Android开发人员文档都专注于OpenGLES1.0。如何使用API级别8在AndroidSDK中开始使用OpenGL2.0?如果不支持级别8,那么我需要使用什么级别?目前市场上有多少Android手机支持OpenGLES2.0? 最佳答案 问题是您需要在GLSurfaceView中实现三个从操作系统获取GL10的方法。publicvoidonDrawFrame(GL10gl)publicvoidonSurfaceChanged(GL10gl,intwidth,intheight)publicvoidon