草庐IT

android - 在 Android : how to use gluUnProject? 上打开 GL ES

我正在尝试将窗口坐标转换为对象坐标。GLU类中有一个gluUnProject,它需要当前的模型View,投影矩阵和视口(viewport)。我的问题是如何获得这些矩阵?我试过gl.glGetIntegerv(GL11.GL_MODELVIEW_MATRIX_FLOAT_AS_INT_BITS_OES,模型,0);和((GL11)gl).glGetFloatv(GL11.GL_MODELVIEW_MATRIX,modelf,0);但是第一个返回一个零数组,另一个只是显示“方法未实现”错误。gluUnProject是用于此目的的正确方法吗(即window坐标-->对象坐标)?

android - Opengl ES 1.1/Android——2011 年纹理映射到正方形的崩溃

我正在尝试将纹理映射到一个正方形上,其中纹理会拉伸(stretch)以适合正方形。目前是纹理贴图,但它没有映射到正确的位置,OGL执行了一些我不知道的倾斜等。图像是64x64,我试过的方block是从-2到2(hor和ver)和-1到1。这是图像:纹理代码为:floattexture[]={0,0,0,1,1,0,1,1};ByteBufferbyteBuf=ByteBuffer.allocateDirect(texture.length*4);byteBuf.order(ByteOrder.nativeOrder());FloatBuffertextureBuffer=byteBuf

android - 记录由 Open GL ES 在 android 上生成的帧

按照目前的情况,这个问题不适合我们的问答形式。我们希望答案得到事实、引用或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visitthehelpcenter指导。关闭9年前。我从相机捕捉帧并通过OpenGLES2.0实时渲染它们。现在我想将它们与音频一起录制到电影文件中。在iPhone上,我有AVAssetWriter负责录制,给我30fps。我在Android上有哪些选择?我尝试搜索但找不到任何内容。更新:对于那些想知道我正在尝试做什么的人,请参阅此应用程序:https://play.google.com/store/app

android - OPEN GL ES 和 EGL 库之间的混淆

我正在阅读android源代码,因为我没有了解OPENGLES库的作用以及EGL库的作用。?这两个库有什么关系吗?我看过http://www.khronos.org/opengles/documentation/opengles1_0/html/但仍然没有得到。 最佳答案 EGL是OpenGLES和底层原生显示平台之间的接口(interface)。它用于创建和管理渲染表面和图形上下文。 关于android-OPENGLES和EGL库之间的混淆,我们在StackOverflow上找到一个类

android - 来自 OpenGLRenderer 的 GL 错误 : 0x502

我们的代码在Canvas上执行非常简单的操作(完全在UI线程中):绘制文本、翻译、保存、恢复。偶尔,我们会得到这个(在运行4.3的Nexus4上):W/Adreno200-ES20(22118)::GL_INVALID_OPERATIOND/OpenGLRenderer(22118):GLerrorfromOpenGLRenderer:0x502E/OpenGLRenderer(22118):GL_INVALID_OPERATION并且相应的文本不会绘制到Canvas上。一个问题是它是随机发生的。代码可以正常工作10-20次调用,然后会出现此错误,然后在再次出现错误之前再次正常工作10

android - 使用视频流作为开放的 GL ES 2.0 纹理

我正在尝试通过将OpenGLES纹理设置为androidsurfaceTexture来捕获视频并将其显示到屏幕上.我不能使用TextureView并实现SurfaceTextureListener根据thistutorial因为我使用的是GoogleCardboard。我关注了theAndroiddocumentation关于如何初始化OpenGLES2.0和使用它,以及thistutorial关于纹理。将2放在一起我得到一个空白屏幕,偶尔会得到:GL_INVALID_OPERATION在控制台窗口中。被这么多我不知道的新概念所淹没,我无法调试或者只是理解这两种方法是否可以这样使用。这

Android OpenGL ES 帧缓冲区对象 - 将深度缓冲区渲染到纹理

我正在使用运行支持OpenGLES1.1和OpenGLES2.0的Froyo的Android设备我想将深度缓冲区渲染为纹理。在其他平台(包括iPhone)上看到了OpenGL、OpenGLES的大量示例后,我尝试了多种FBO配置。我似乎能够获得带有颜色纹理的FBO设置,但每次我附加深度纹理时都会失败。我当前的代码基于thisexample但同时创建颜色纹理,而不是将绘制和读取缓冲区设置为无。是否有在Android上配置OpenGLESFBO以渲染纹理深度的简单示例?或者是否有描述支持和不支持的文档?感谢您的评论-我特别需要一个适用于ES1.1的解决方案,如果它可以在Android上找到

c++ - OpenGL 映射纹理到球体

我有OpenGL程序,我想用地球位图对球体进行纹理处理。我在Blender中准备了网格并将其导出到OBJ文件。程序正确加载适当的网格数据(顶点、uv和法线)和位图-我已经检查了它的纹理立方体和骨骼位图。我的程序正在对球体进行纹理化,但不正确(或者以我不期望的方式)。这个球体的每个三角形都包含这个位图的变形拷贝。我检查过位图和uv似乎没问题。我尝试过多种尺寸的位图(2的幂、2的倍数等)。这是纹理:我的程序截图(好像它会忽略我的UV坐标):我用这种方式在Blender中映射UV:加载纹理后的代码设置纹理(除了向VBO添加纹理的代码-我认为没问题):GLuinttexID;glGenText

c++ - 从 SDL2 表面创建 OpenGL 纹理 - 奇怪的像素值

我正在尝试使用SDL2为波前对象的OpenGL渲染加载纹理(目前我正在使用固定管道进行测试,但我最终计划转移到着色器)。问题是应用于四边形的加载纹理(以及使用纹理右下角的一小部分的模型)看起来像这样:(来源:image-upload.de)ThisisthetextureIused当使用SDL函数绘制时,图像加载正常并且看起来完全正常,因此可能是转换为OGL纹理时出现问题。请注意,我启用了alpha混合并且纹理仍然完全不透明-因此值不是完全随机的,并且可能不是未初始化的内存。这是我用于转换表面的代码(从此处网站上的各种教程和问题拼凑而成):GLuintglMakeTexture(boo

c++ - 为什么这种访问冲突会发生在/Og 和/GL 标志上,并带有传递引用?

当(且仅当)我使用WindowsServer2003使用/Og和/GL标志编译我的程序时DDKC++编译器(它在WDK7.1和VisualStudio2010上很好!),我在运行时遇到访问冲突:#include#includetemplateboolless(Ta,Tb){returnas;for(inti=0;i);}当我将最后一行更改为时,访问冲突消失std::stable_sort(s.begin(),s.end(),&less);--换句话说,当我让我的项目被复制而不是仅仅被引用时,它就会消失。(我没有进行任何类型的多线程。)为什么会发生这样的事情?我是否通过const&调用了