jjzjj

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

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

ios - WebGL:OES_texture_float 是否需要存储为 32 位 float ?有些设备似乎只存储为半 float

如果设备支持OES_texture_float,则FLOAT纹理应存储为32位浮点值,accordingtothespec.但是,在某些设备上,纹理似乎存储为半float。以下代码创建一个包含值Pi的1x1浮点纹理。片段着色器对纹理进行采样并将结果与​​Pi的32位float和16位float(即半float)表示进行比较。着色器为32位返回绿色,为16位返回红色。"usestrict";constcanvas=document.getElementsByTagName("canvas")[0];constgl=canvas.getContext("webgl");if(!gl.get

ios - yv12 到 rgb 在 iOS 中使用 glsl,附上结果图像

referredtothisquestion我使用glsl着色器将yv12帧数据转换为rgb数据,原始图像如下:但结果图像与前者不一样,附在下面:以下是我将三个平面数据上传到纹理的代码:-(GLuint)textureY:(Byte*)imageDatawidthType:(int)widthheightType:(int)height{GLuinttexName;glGenTextures(1,&texName);glBindTexture(GL_TEXTURE_2D,texName);glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MIN_FILT

objective-c : Most efficient way to load a texture to OpenGL

目前,我使用ImageI/O在iOS中加载纹理,并使用CoreGraphics提取其图像数据。然后我可以像这样将图像数据发送到OpenGL:glTexImage2D(GL_TEXTURE_2D,0,GL_RGBA,texture->width,texture->height,0,GL_RGBA,GL_UNSIGNED_BYTE,texture->imageData);问题是CoreGraphics部分真的很慢,我需要使用CoreGraphics进行设置和绘制,只是为了提取图像数据……我不想在屏幕上显示它。一定有更高效的方法来提取iOS中的图像数据吗?...这是我的代码:...myTex

ios - opengl es(iphone) 从文件渲染

抱歉我的英语不好我想显示文件中的视频,其中每像素4字节的帧,BRGA,1280x720?在mac上我只是取出框架并绘制了这个glDrawPixels,在Mac上运行但在opengles中完全不同。这是mac上的代码intpos=0;NSData*data=[[NSDataalloc]initWithContentsOfFile:@"video.raw"];glViewport(0,0,width,height);glLoadIdentity();glOrtho(0,width,0,height,-1.0,1.0);glPixelZoom(1,-1);glClear(GL_COLOR_B

c++ - Cocos2d : How do I generate a texture, sprite 或二维数组中的图像?

我有一个256x256的double组,代表我用于随机地形生成的高度图。目前,我通过为数组中的每个元素创建一个像素Sprite并相应地为其着色,以一种极其低效的方式显示地形。这给我留下了256x256Sprite,我当然想找到一种方法来渲染纹理或从这个数组创建Sprite或图像,而不是必须处理这么多小Sprite。有没有办法在Cocos2d(特别是Cocos2d-x)中实现这一点?我自己找不到任何东西。 最佳答案 在cocos2d-iphone中,您可以使用[CCTexture2DinitWithData:pixelFormat:p

ios - iOS 上的 OpenGL 纹理存储在哪里?

OpenGLES2iPad应用程序中的纹理存储在哪里?如何确定存储纹理的设备功能?我最初以为纹理存储在RAM中,但下面的代码运行得很好而不是导致溢出:for(inti=0;i我是不是以错误的方式创建了这些纹理,或者iPad真的能够做到这一点吗? 最佳答案 纹理存储在服务器空间。因此,驱动程序可能会优化空缓冲区并且在您确实需要将一些数据放入其中之前不会创建它们。iPad肯定无法存储225GiB的纹理。:)编辑:glAreTexturesResident已被弃用。我不知道有任何替代品。 关于

ios - 如何在 Metal 中使用 texture2d_array 数组?

我一直在尝试使用texture2d_array来应用Metal中的实时滤镜。但我没有得到正确的结果。我是这样创建纹理数组的,代码:ClassMetalTextureArray。classMetalTextureArray{private(set)vararrayTexture:MTLTextureprivatevarwidth:Intprivatevarheight:Intinit(_width:Int,_height:Int,_arrayLength:Int,_device:MTLDevice){self.width=widthself.height=heightlettexture

objective-c - iOS OpenGL 使用 glTexImage2D 的参数来制作 UIImage?

我正在处理分配给我的项目的一些现有代码。我成功调用了glTexImage2D,如下所示:glTexImage2D(GL_TEXTURE_2D,0,texture->format,texture->widthTexture,texture->heightTexture,0,texture->format,texture->type,texture->data);我想使用传递给glTexImage2D的变量创建一个图像(最好是CGImage或UIImage),但不知道是否这是可能的。我需要从OpenGLView创建许多连续图像(每秒很多图像)并保存它们供以后使用。我应该能够使用我在glTe

ios - 我小时候在我的玩家类中为我的玩家制作了一个 Hitbox Sprite 。我如何在 gamescene 的 didBegin 方法中访问那个 hitbox Sprite ?

这个“hitbox”的目的是让玩家只能在地面/平台上行走时跳跃。hitbox比玩家宽一点,并且在玩家的脚上。这是我的播放器类:classPlayer:SKSpriteNode{letmaxPlayerSpeed:CGFloat=300staticvarisPlayerOnGround=falseinit(){//playerstexturelettexture=SKTexture(imageNamed:"playerMove1")super.init(texture:texture,color:SKColor.clear,size:texture.size())//hitboxthat