首页 > TAG信息列表 > opengl-es-2-0

java-OpenGLES在其他线程中预加载纹理

我需要在OpenGLES应用程序的非主线程中预加载一些纹理.我读到的是:Can’t call glGenTextures on multithreaded android app,但更多的是我需要的Java版本.如何告诉加载线程将纹理上传/创建到主循环中?我读了一些有关创建上下文的信息,并以某种方式与主要上下文共享.怎么样?解决方法:

android-OpenGL ES 2中2D图形的矩阵模式

至于OpenGL ES 2,我了解到其中不再有任何矩阵(矩阵堆栈).因此,我必须创建自己的矩阵. 我想要做的就是绘制一些简单的2D图形,例如几个矩形. 我发现很多代码使用的是OpenGL ES 1或更旧的OpenGL,那里仍然有矩阵堆栈,因此我不能在2.0中直接使用它. 我相信我想要执行以下操作的代码 pub

OpenGL ES2.0 glReadPixels()通过framebuffer从renderbuffer读取数据

我正在使用Android上的opengl es2.0进行屏幕外处理. 我创建了一个渲染缓冲区,并将其附加到帧缓冲区FBO,渲染到FBO之后,我尝试通过getReadPixels()方法从该FBO获取像素.但是我什么都没有. 代码如下所示: GLuint resultFBO;// FBO GLuint rboId; //render buffer id glGenRender

Java-Android Opengl ES 2.0 FrameBuffer无法正常工作

我正在研究2D Android项目,我希望使用FBO将东西绘制为空纹理,然后在屏幕上绘制该纹理.出于调试目的,FBO附加的纹理应立即变为蓝色,因此我可以编辑该纹理,因为当前它甚至不会影响该纹理. 帧缓冲区: public static class FrameBuffer{ private final FaustEngine engine; pr

为何两个透明png照片的opengl着色器混合功能变黑?

照片1是: 照片2是: 当然照片2是部分透明的. 但是当我在诸如此类的着色器中混合它们时: vec4 add(vec4 one, vec4 two){ return mix(one, two, two.a); } 它们部分变为黑色,如下所示: 我很困惑为什么它会产生黑色. 我知道混合功能基本上是这样实现的: A*(1-alpha)+B*alpha 解决

android-在NativeActivity简历上重新初始化OpenGL ES 2窗口

解决了!请参阅下面的更新. 我们正在将一个大型C应用程序移植到Android,并且在暂停和恢复该应用程序之前一切运行良好.我们听APP_CMD_INIT_WINDOW命令,当它出现时,我们重新初始化所有egl命令以获取表面,上下文和显示.此后,屏幕为黑色.但是,如果我们在设置glClearColor后像预期的那样

多个OpenGL ES 2 Android渲染器

屏幕上可以一次显示多个渲染吗?像将android屏幕拆分为4个象限,并在每个象限上显示一个立方体?我认为它可能适用于OpenGL,但这是GLUT,并且基于Windows.我正在研究如何为android做它,但是我还没有遇到任何描述它的东西.这是创建渲染的主要活动. public class MainActivity extends Act

OpenGL ES2.0 glReadPixels()非常慢

我正在使用glReadPixels从FBO读取像素到内存. 这是代码: UINT8* data; glBindFramebuffer(GL_FRAMEBUFFER, FBOID); glReadPixels(0, 0, w, h, GL_RGB, GL_UNSIGNED_BYTE, data); 我发现此操作非常缓慢… openGL ES2.0(Android)中还有其他替代方法吗?解决方法:是的,它很慢. OpenGL

Android OpenGL ES 2.0黑色纹理

以此作为开头:是的,我已经看了之前在此站点上提出的大量“ Android OpenGL ES 2.0黑色纹理”问题.不,他们都不对我的情况有所帮助.不,我不确定是否可以用适当数量的字符更好地表达标题. 我遵循了许多教程,并能够建立一个非常简单的渲染器类,以正确加载和渲染纹理(项目A).然后,我尝试

Java-部分纹理在屏幕外-性能差异

图片上是两种情况的示例,其中正在渲染带纹理的多边形.全部由Opengl ES2完成. A)多边形部分不在视口中 B)多边形完全在里面 我的问题: 情况’A)’是否会消耗更少的系统/ GPU资源*,因为纹理部分不在屏幕上,还是会执行与我在视口内部渲染的效果相同的效果,为什么? *“资源”-表示速度,而

android – GLSurfaceView – 如何制作半透明背景

我尝试使用GLSurfaceView渲染,并通过docs我设置格式: getHolder().setFormat(PixelFormat.TRANSLUCENT); 我使用GLSurfaceView.Renderer,它绘制onDrawFrame: GLES20.glClearColor(0, 0, 1, .5f); GLES20.glClear(GLES20.GL_DEPTH_BUFFER_BIT | GLES20.GL_COLOR_BUFFER_BIT); 但是

java – OpenGL ES2 Alpha测试问题

我在3D中渲染具有alpha纹理的多个对象.所有纹理加载都很好但是当我尝试将它们呈现在彼此前面时,我得到以下结果: 左边是我的.它应该是正确的.网格只是为了帮助可视化透视. 红色圆圈纹理前面的纹理被剪裁.我四处寻找答案,它告诉我使用: GLES20.glEnable( GLES20.GL_BLEND ); GLES20.g

c – 特征透视投影矩阵

我正在尝试为OpenGL创建透视投影矩阵.我知道如何使用浮点数[16],但为了一致性,我想使用一个特征矩阵. formula是: [ xScale 0 0 0 ] P = [ 0 yScale 0 0 ]

android – OpenGL ES 2.0 1仅使用最后绑定纹理

请参阅编辑结束以获取进度. 我正在尝试学习OpenGL ES 2.0(我将在Android设备上开发) 我对Vertex和Fragment着色器有点困惑.我理解他们的目的,但是如果我从自定义构建的类(比如’点’)构建一个形状并设置它的大小和颜色或应用纹理并假设两个着色器最初在对象类的构造函数中声明和定

android – GLSurfaceView的大小和位置

实际上我有一个项目,我正在使用GLSurfaceView.此时,该组件作为主控制器放置在整个屏幕上.在这种配置中,我能够正确处理绘图功能. 在下一步中,我想改变GLSurfaceView的大小和位置.我想把它放在屏幕的中央,并将宽度和高度设置为精确的音高,例如20mm x 20mm. 您有任何建议或提示我应该

java – 使用glVertexAttribPointer和glDrawElements从压缩顶点缓冲区中绘制

我有一个打包的顶点缓冲区,包含位置坐标以及格式为{X,Y,Z,R,G,B,A}的顶点的颜色值. 当我通过取出a_Color属性并硬编码gl_FragColor的vec4值但是我无法将颜色vec4属性传递到片段着色器(矩形)时,我可以使用硬编码颜色正确显示矩形.将不会显示在该场景中). 使用glVertexAttribPointer(

球形动画与文本在Android应用程序中使用标签云[新闻共和国]

我想在我的Android应用程序中创建类似于this的球形动画 News Republic app. 我到目前为止尝试创建一个sphere但是任何人都可以指导我如何在android中开发这样的动画. 我们是否必须仅使用opengl,或者我们可以使用其他替代选项来实现它. 此外,单击文本时,它会在不同的屏幕中打开相关

android – GLES20.glUniform4fv给出了GL_INVALID_OPERATION(1282)

我在将一小部分vec4s上传到GPU时遇到了一些问题.我已经把这个问题煮到最小的代码来抛出错误. 这是我的片段着色器: precision mediump float; uniform vec4 test[5]; void main() { gl_FragColor = test[0]+test[1]+test[2]+test[3]+test[4]; } 顶点着色器很简单: attribute v

android – GLSL ES局部变量崩溃了吗?

我正在尝试在我的OpenGL ES 2.0引擎中实现在线教程(lighthouse3d.com)中的一些着色器. 问题是由于某种原因,在main()范围内声明的任何变量都会导致整个着色器失败.例如,这失败了: void main(){ vec4 color; gl_FragColor = vec4(1.0, 0.5, 0.5, 1.0); } 但这很完美:

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

我可以找到关于Android的OpenGL ES 2.0文档的唯一地方是https://developer.android.com/reference/android/opengl/GLES20.html以及他们网站上的教程.我在哪里可以找到解释GLES20方法的api?当前的api只是列出它们而没有任何解释.我已经进行了几次互联网搜索并没有运气.解决方法:Open

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); 它什么都不做!它保持当前的背景颜色 – 不会改变

LibGDX – Shader在桌面上工作,但在Android上工作

我编写了一个简单的程序,它在3d环境中渲染一个球体,并根据球体周围的四个光源对其进行着色. 当我在桌面上运行该程序时,它可以正常工作,但在Android设备上,球体只是纯色. 这里有图像来说明我在说什么:   – &GT桌面   – &GT Android的 这是着色器代码: sphere.vert #ifdef GL_ES

android – 如果不支持EGL_NATIVE_RENDERABLE,如何通过C / NDK访问OpenGL ES 2?

我的应用程序(用C语言编写,带有Java引导代码)在我的Android MID设备上运行完美,但它不适用于朋友的Moto MB865手机. 在使用GL上下文创建过程进行挖掘之后,我发现对于支持OpenGL ES 2.0的所有配置,EGL_NATIVE_RENDERABLE都是GL_FALSE 这意味着我无法使用我的本机代码访问OpenGL ES 2

android – 无法在屏幕上绘制带Z轴的顶点

我需要在屏幕上绘制几个坐标,没有显示Z轴的坐标,但是没有显示Z轴值的坐标.我尝试在绘制坐标之前对坐标进行标准化.归一化时,绘制所有坐标.但是在非标准化坐标的情况下,隐藏具有Z轴的顶点. OpenGL版本:ES 2.0 坐标: float squareCoords[] = { 202.00002f, 244.00002f, 0.

android – 如何获取特定GLSurfaceView的EGL显示/上下文

这是对my original Question的跟进,这可能过于宽泛(而这个可能过于具体,但也许我可以应用牛顿方法). 我的具体情况是:Android上的OpenGL ES 2.0,只使用Java(没有JNI / Native代码). 我试图了解EGL和Android的GLES implimentation如何一起工作(或不工作).我遇到了麻烦,因为EGL界面(AP