草庐IT

ios - 在 iOS 应用程序的 OpenGL ES 2.0 中使用 mask

我有一个应用程序,我希望用户在屏幕的某个特定区域进行绘图。为此,我使用了一张蒙版图片,在可绘制区域为黑色,在不可绘制区域为透明。因此用户只能在蒙版内部的屏幕区域和蒙版的黑色区域内绘制。我尝试通过模板缓冲区实现它并修改了GLPaint示例项目中的一些代码:http://pastebin.com/94MBr1Su但是我仍然不明白模板缓冲区的用法。谁能帮我解决我的问题的模板缓冲区代码示例?另外,有没有办法在没有模板缓冲区的情况下实现这一点? 最佳答案 因为您的蒙版是纹理,所以模板缓冲区不是一个好主意。mask渲染时,必须使用“discar

iphone - 如何在多纹理对象之后绘制具有漫反射纹理的对象

我正在使用多重纹理绘制一个对象。这很好,但是当我在那之后仅使用漫反射纹理绘制其他对象时,该漫反射纹理会与先前的纹理绑定(bind)。我知道我必须停用默认以外的纹理单元,并且我必须在GL_TEXTURE0处激活纹理单元,但它不起作用。这是我的代码glClientActiveTexture(GL_TEXTURE0);//firsttextureglEnableClientState(GL_TEXTURE_COORD_ARRAY);glTexCoordPointer(2,GL_FLOAT,stride,texCoordOffset);glClientActiveTexture(GL_TEXT

iphone - OpenGl ES 2.0 和 GLKit : From GLKBaseEffect shaders to OpenGl

我正在使用OpenGLES2.0和GLKit编写2D游戏。我的架构基于IanTerrel的游戏教程。我最近发现GLKBaseEffect(提供简单的着色器管理)泄漏,有时会使我的应用程序崩溃。我现在正在使用我自己的着色器文件(基于RayWenderlich教程),但此时,我刚刚成功显示了openGl背景色。我的形状颜色和纹理不再显示。重要:我错误地设置了当前上下文,现在openGL显示无效Drawable。这是我的shape.m代码的一部分:@implementationP3ShapeconstGLushortindices[]={0,1,2,3};typedefstruct{floa

ios - 如何在 UIView 和另一个线程之间共享 CVOpenGLESTextureCache?

这是给RhythmicFistman或任何知道答案的人的问题:根据线程:HowtouseOpenGLESonaseparatethreadoniphone?RhythmicFistman发现“iOS5的CVOpenGLESTextureCaches基本上可以免费上传纹理,所以我不再需要shareGroups,而且我的代码更简单、更快。”我目前正在开发一个应用程序,它可以绘制3D图形并将其保存在电影文件中。根据我的理解,UIView的OpenGLES帧缓冲区必须由colorRenderBuffer而不是CVOpenGLESTextureCache支持,这是电影文件保存3D图形的openg

ios - gl_LastFragData 用于模糊整个场景

所以我有一个使用OpenGLES2.0的cocos2diOS应用程序。我有片段着色器,目前我正在抓取vec4lastFragColor=gl_LastFragData[0];并对其进行操作。但我真正想知道的是,我是否/如何可以访问当前片段的相邻片段,以便我可以实现像高斯模糊这样的卷积类型效果? 最佳答案 答案是否定的。你不能使用这个gl扩展来抓取相邻的片段。渲染到fbo并将其用作输入来渲染高斯模糊。 关于ios-gl_LastFragData用于模糊整个场景,我们在StackOverfl

ios - 在多个对象上渲染多个纹理的问题

我正在尝试渲染两个对象-(void)glkView:(GLKView*)viewdrawInRect:(CGRect)rect方法,我正在尝试为这两个对象绑定(bind)单独的纹理。对于第一个对象,下面是纹理绑定(bind)代码/*************texturebindingforobject1****************/glActiveTexture(GL_TEXTURE0);err=CVOpenGLESTextureCacheCreateTextureFromImage(kCFAllocatorDefault,_videoTextureCache,pixelBuffe

ios - 在 iOS 中获取或模拟 GL_PACK_ROW_LENGTH 和 GL_UNPACK_ROW_LENGTH

似乎在iOS上不支持将glPixelStorei与GL_UNPACK_ROW_LENGTH和GL_PACK_ROW_LENGTH一起使用。当分别使用glTexImage2D和glReadPixels时,是否有可能以某种方式模拟它们以获得相同的内存跨度效果(无需额外的事先副本对齐内存)? 最佳答案 这不是一个很好的解决方案,但您可以逐行读取/写入数据。对于glTexImage2D()情况,您将使用完整大小调用一次glTexImage2D(),最后一个参数为NULL。然后对每一行使用单独的glTexSubImage2D()调用。glRe

ios - 无法在 CADisplayLink 渲染循环中绑定(bind) EAGLDrawable

我使用CADisplayLink渲染循环回调来渲染带有openGLes的一系列图像纹理。在调用CADisplayLink的第一个回调后,我只得到这些错误输出FailedtobindEAGLDrawable:toGL_RENDERBUFFER2Failedtomakecompleteframebufferobject8cd6我在Controller的viewDidLoad阶段设置了renderBuffer和frameBuffer并调用了glFramebufferRenderbuffer,glCheckFramebufferStatus的返回在那个阶段很好。这是我正在使用的代码。//GLK

ios - 如何运行 “mapbox-gl-native” 项目?

我正在通过cocoapods使用“Mapbox-iOS-SDK”3.0,并希望为注释实现脉冲效果:https://github.com/TransitApp/SVPulsingAnnotationView建议通过此链接更新MGLMapView.mm文件:https://stackoverflow.com/questions/33598363/implement-pulse-effect-on-annotations-in-mapbox/33768054#33768054但现在我不明白如何运行“mapbox-gl-native”项目? 最佳答案

使用 GL_TEXTURE_2D 的 iOS YUV 420v 在 OpenGL 着色器中显示错误的颜色

目标:使用GL_TEXTURE_2D而不是CVOpenGLESTextureRef将YUV数据(格式为“420v”kCVPixelFormatType_420YpCbCr8BiPlanarVideoRange)推送到着色器(为什么?因为我需要使用glTexSubImage2d来操作像素,而且我不能在目标为CVOpenGLESTextureGetTarget()时使用它,所以它没有效果。我必须使用GL_TEXTURE_2D)问题:我正在使用自定义视频合成器来操作AVPlayer视频。当我像Apple的AVCustomEdit示例代码一样使用CVOpenGLESTextureRef时,它使