Tag: opengl es

iOS和多个OpenGL视图

我目前正在开发一个iPad应用程序,使用OpenGL在多个OpenGL视图中绘制一些非常简单的 (不超过1000或2000个顶点)旋转模型。 网格中有6个视图,每个视图运行自己的显示链接来更新graphics。 由于模型的简单性,它是迄今为止最简单的方法,我没有时间编写完整的OpenGL接口。 目前,它在性能方面做得很好,但也有一些恼人的故障。 前3个OpenGL视图显示没有问题,最后3个只显示几个三angular形 (同时仍然保留旋转模型的能力)。 还有一些情况下,glDrawArrays调用直接进入EXC_BAD_ACCESS (特别是在模拟器上),这告诉我缓冲区有问题。 我检查(以及双重和三重检查)是: 缓冲区分配似乎还行 所有资源都释放dealloc 仪器显示一些警告,但似乎没有任何关系 我想这可能与我同时画多个视图有关,那么在那里我应该做什么已知的事情? 每个视图都有自己的上下文,但也许我做错了那个… 另外,我刚刚注意到,在模拟器中,受影响的视图在右图与所有顶点之间闪烁,而错误的绘图仅在less量之间闪烁。 无论如何,如果您有任何想法,谢谢分享!

将纹理数据写入深度缓冲区

我试图实现在深度合成图像描述的技术。 这个想法是使用现有的纹理(从图像加载)作为深度面具,基本上假3D。 我面临的问题是,OpenglES中没有glDrawPixels。 有没有办法在iPhone上完成同样的事情?

OpenGL ES 2.0渲染纹理

我试图渲染到使用OpenGL ES 2.0纹理,但我似乎无法使其工作。 这是我如何进行: struct RenderTexture { GLuint framebuffer; GLuint tex; GLint old_fbo; RenderTexture(GLuint width, GLuint height) { glGetIntegerv(GL_FRAMEBUFFER_BINDING, &old_fbo); glGenFramebuffers(1, &framebuffer); glGenTextures(1, &tex); glBindFramebuffer(GL_FRAMEBUFFER, framebuffer); glBindTexture(GL_TEXTURE_2D, tex); glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, width, height, 0, GL_RGBA, GL_UNSIGNED_BYTE, NULL); glFramebufferTexture2D(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, GL_TEXTURE_2D, tex, 0); glClearColor(1, 0, 0, 1); glClear(GL_COLOR_BUFFER_BIT); GLuint status = glCheckFramebufferStatus(GL_FRAMEBUFFER); if (status != GL_FRAMEBUFFER_COMPLETE) […]

用glReadPixels读纹理字节?

我想将原始纹理数据转储到磁盘(稍后回读),我不确定glReadPixel会从当前绑定的纹理中读取。 我怎样才能从我的纹理读取缓冲区?

如何在iPhone上使用OpenGL ES绘制实心圆?

如何在iPhone上用openGl绘制一个实心圆? 我find了很多解决scheme,但都没有工作。 可能是因为有很多方法可以做到这一点。 但是最短代码的方法是什么?

如何将Blender混合(或obj)文件转换为Qualcom Vuforia .h文件

我正在使用Qualcomm Vuforia开发具有增强现实function的iOS应用程序,并且我很难理解如何从Blender(或其他软件)创build3D模型。 所有的例子都使用带有顶点坐标的.h文件,即一个茶壶。 我无法find对我有用的文档。 有没有工具将.blend或.obj文件转换为.h(OpenGL ES)? 谢谢

我怎样才能裁剪图像的面具,并与iPhone上的另一个图像(背景)结合? (首选OpenGL ES 1.1)

我需要结合三个图像的方式,我代表附件: 1)一个图像是背景。 从意义上说,它是“稳定的”,它没有alpha通道。 2)另一个是精灵。 雪碧依靠背景。 雪碧可能有自己的阿尔法通道,背景必须在精灵透明的地方可见。 3)有许多掩码:我将每个帧的新掩码应用于Sprite。 蒙版不是矩形的。 换句话说,可见像素=背景的像素,如果裁剪遮罩相应的颜色是白色的或者子画面是透明的; 否则为精灵的像素(例如,相应的掩模的像素是黑色的)。 我正在与cocos2d-iphone合作。 我可以与cocos2d-iphone或OpenGL ES 1.1做这样的组合吗? 如果任何答案是肯定的,工作代码将不胜感激。 如果两个答案都是NO,iOS上还有另外一种技术可以实现我想要的function(可能是Quartz2d或OpenGL ES 2.0)? 遮罩格式对于Sprite不是强制性的黑色,对于Background而言是白色的。 如果需要,我可以制作所需格式的Mask,如Background的透明度和Sprite的白色。 PS还有另外一个没有答案的同类问题: 可以改变iPhone上某些像素的alpha值吗?

在iPhone上录制自定义叠加层

我有兴趣录制一个video自定义覆盖,最终会在video本身。 他们可能是UIImage甚至更好,一个OpenGL的视口,有没有这种可能性,现在任何iPhone设备/ SDK? 谢谢

如何操纵纹理内容?

我有一个iPad的应用程序,我正在考虑的一个可能的function是允许用户触摸图像和变形。 基本上,图像就像绘画,当用户在图像上拖动手指时,图像将变形,被触摸的像素将沿图像“拖动”。 对不起,如果这是很难理解,但底线是,我们要编辑的dynamic纹理内容随着用户交互。 有这样的一个有效的技术? 我试图弄清楚需要做些什么以及将会有多大的操作。 现在我唯一能想到的就是根据触摸的位置search纹理的内容,复制像素数据,并在手指移动时对现有像素数据进行一些混合。 然后定期用glTexImage2D重新加载纹理来获得这个效果。

如何在iOS中正确地线性化OpenGL ES的深度?

我正在尝试使用OpenGL渲染一个iOS应用程序的forrest场景。 为了使它更好一些,我想在场景中实现深度效果。 不过,我需要OpenGL深度缓冲区的线性化深度值。 目前我正在片段着色器(我在这里find)使用计算。 因此,我的地形片段着色器看起来像这样: #version 300 es precision mediump float; layout(location = 0) out lowp vec4 out_color; float linearizeDepth(float depth) { return 2.0 * nearz / (farz + nearz – depth * (farz – nearz)); } void main(void) { float depth = gl_FragCoord.z; float linearized = (linearizeDepth(depth)); out_color = vec4(linearized, linearized, linearized, 1.0); } […]