草庐IT

android - 在 OpenGL android 中设置背景

我是OpenGL编程的新手。我制作了一个旋转立方体,立方体的不同面上有不同的图像。我想为屏幕设置背景。任何帮助将不胜感激。 最佳答案 绘制一个覆盖整个视口(viewport)的纹理四边形。为此,将投影和模型View切换为标识并禁用深度测试。投影和模型View是身份顶点坐标[-1…1]将覆盖整个视口(viewport)。在代码中:glViewport(0,0,width,height);glMatrixMode(GL_PROJECTION);glLoadIdentity();glMatrixMode(GL_MODELVIEW);glL

android - 在 OpenGL ES 中放大/缩小

我想学习如何进行放大和缩小。这是一个旋转的2D三角形的简单示例。您能告诉我如何向这个简单示例添加放大和缩小功能吗?我应该使用gl.glScalef吗?如何?publicclassGLrendererimplementsRenderer{publicGLqueuetri;privatefloatangle=0;publicGLrenderer(){tri=newGLqueue();}@OverridepublicvoidonSurfaceCreated(GL10gl,EGLConfigeglConfig){//TODOAuto-generatedmethodstubgl.glDisabl

android - 如何将 int 数组传递到 Android OpenGl fragment 着色器

一般来说,我对OpenGl和着色器还很陌生。我想在fragment着色器中使用我的java代码中的静态int数组来操纵相机的颜色。有没有办法将我的int数组传递给着色器,或者只是让着色器能够以某种方式访问​​我的数组?谢谢,迈克 最佳答案 在着色器代码中使用所谓的静态数组的正确方法是将其作为Uniform传递:http://www.opengl.org/wiki/GLAPI/glUniform在您的着色器代码中,您指定需要一个外部数组:uniformintcolors[3];//Specifyanarrayof3integers在你

空对象引用上的 android.opengl.GLSurfaceView$GLThread.surfaceCreated()'

我正在尝试使用GLSurface来显示自定义View。我的xml我的主要packagenet.letsense.matrixtest;importandroid.app.Activity;importandroid.opengl.GLSurfaceView;importandroid.os.Bundle;/***Createdbyborislegovicon03/11/2017.*/publicclassMainextendsActivity{privateintmPositionHandle;privateintmColorHandle;privateGLSurfaceViewmGL

java - 如何在 OpenGL ES 中加载和绑定(bind)纹理?

所以,我的res/drawable-hdpi(例如text.png)文件夹中有一个纹理,我如何加载这个纹理并将其与glBindTexture绑定(bind)? 最佳答案 Bitmapimg=BitmapFactory.decodeResource(context.getResources(),R.drawable.text);int[]texId=newint[1];GLES20.glGenTextures(1,texId,0);GLES20.glBindTexture(GLES20.GL_TEXTURE_2D,texId[0]);

android - Android 上 OpenGL ES 2.0 的文档在哪里?

我唯一能找到OpenGLES2.0forandroid文档的地方是https://developer.android.com/reference/android/opengl/GLES20.html和他们的教程网站。我在哪里可以找到解释GLES20方法作用的api?当前的api只是列出它们,没有任何解释。我进行了几次互联网搜索,但都没有成功。 最佳答案 OpenGLES由KhronosGroup管理,文档可以在他们的网站上找到:http://www.khronos.org/opengles/sdk/docs/man/它可能不是特定于

Android OpenGL 错误(未在我的应用中使用 OpenGL)

我从我的一个应用程序中收到崩溃报告,来自一位使用运行4.3的Nexus4的用户。据我了解,此错误是由OpenGL引起的。我不在我的应用程序中使用OpenGL。谁能帮我解决这个问题?这是错误:java.lang.IllegalStateException:CouldnotcreateanEGLcontext.eglCreateContextfailedwitherror:EGL_SUCCESSatandroid.view.HardwareRenderer$GlRenderer.createContext(HardwareRenderer.java:1192)atandroid.view.

android - Android 上的 OpenGL 深度缓冲区

我目前正在学习Android(2.1)上的OpenGLES编程。我从强制性的旋转立方体开始。它旋转得很好,但我无法让深度缓冲区工作。多边形始终按照GL命令渲染它们的顺序显示。我在GL初始化期间这样做:gl.glClearColor(.5f,.5f,.5f,1);gl.glShadeModel(GL10.GL_SMOOTH);gl.glClearDepthf(1f);gl.glEnable(GL10.GL_DEPTH_TEST);gl.glDepthFunc(GL10.GL_LEQUAL);gl.glHint(GL10.GL_PERSPECTIVE_CORRECTION_HINT,GL1

java - glClearColor 无法正常工作(android opengl)

我想在运行时更改我的应用程序的背景颜色。所以在单击按钮时我首先调用:GLES20.glClearColor(color[0],color[1],color[2],color[3]);然后我调用:GLES20.glClear(GLES20.GL_COLOR_BUFFER_BIT|GLES20.GL_DEPTH_BUFFER_BIT);它什么都不做!它保持当前的背景颜色-不改变它。但是当我暂停我的应用程序并再次恢复时,背景颜色发生了变化。编辑:我找到了一种方法来做到这一点。每一帧我首先调用glClear但我没有调用glClearColor。因此,如果我在每一帧调用glClear之前先调用g

android - 在 OpenGL ES 中翻转 Y 轴?

我正在尝试使用OpenGLES在正交模式下绘图,点(0,0)位于屏幕的左下角。但是,我想让它位于左上角。这是我在我的Android应用程序中进行设置的地方:publicvoidonSurfaceChanged(finalGL10gl,finalintwidth,finalintheight){assertgl!=null;//useorthographicprojection(nodepthperception)GLU.gluOrtho2D(gl,0,width,0,height);}我尝试以多种方式更改上述调用,包括:GLU.gluOrtho2D(gl,0,width,0,heigh