我有一个项目,我需要更新纹理的多个区域并将这些区域每一帧同步到openGL中。我将openGLES2.0与xcode5中的iDevices项目一起使用。为了同步这些纹理变化,我使用glTexSubImage2D,对于绑定(bind)纹理的小区域,每帧可能会调用此函数数百次。在运行ios6的iPhone4上进行测试时,这足以满足我的需求。当我在运行ios7的iPadMiniRetina上对其进行测试时,它明显停顿。停顿显示在mach_msg_trap中,来自glTexSubImage2D下调用的三个函数。不幸的是,我无法发布配置文件的图像(由于缺少信誉点),但这三个函数是从agxuBli
我们的游戏要求我们不断加载和创建新图像,我们将这些图像放到纹理页面上,然后用于渲染。我们使用glTexSubImage2d上传来修改部分纹理页面。我们不保留系统拷贝。每当我们这样做时,我们在glTexSubImage2d调用中都会有六帧延迟。我们确实会在游戏开始前将大部分图像加载到纹理上,但有些东西必须是动态的。我假设整个渲染管线,无论是双重缓冲还是三重缓冲,都被刷新了,因为我想修改它正在使用或有引用的纹理。即便如此,六帧加(0.1秒)似乎过多。我们在IOS上做的完全一样,您几乎不会注意到修改纹理时有任何延迟。游戏通常运行1或2帧。有人知道发生了什么事吗?这是在SamsungGalax
我有一个Android应用程序可以将视频解码为yuv420p格式,然后使用OpenGLES渲染视频帧。我使用glTexSubImage2D()将y/u/v缓冲区上传到GPU,然后使用着色器进行YUV2RGB转换。所有EGL/OpenGL设置/渲染代码都是native代码。现在我并不是说我的代码没有问题,但考虑到相同的代码在iOS(iPad/iPhone)、Nexus7、KindleHD8.9、SamsungNote1和其他一些廉价的中国平板电脑上运行良好(A31/RockChip3188)运行Android4.0/4.1/4.2。我会说我的代码不太可能是错误的。在这些设备上,glTex
为什么是glTexSubImage2D()突然导致GL_INVALID_OPERATION?我正在尝试将我过时的增强现实应用程序从iOS4.x升级到iOS5.x,但我遇到了困难。我运行的是iOS5.0。上周我运行了iOS4.3。我的设备是iPhone4。这是我的captureOutput:didOutputSampleBuffer:fromConnection:代码的片段uint8_t*baseAddress=/*pointertocamerabuffer*/GLuinttexture=/*thetexturename*/glBindTexture(GL_TEXTURE_2D,text
有没有人有在Android上使用glTexSubImage2D()的工作代码,最好是通过NDK,但即使只是在Java中?在我的代码中,glTexImage2D()工作正常,但glTexSubImage2D()在代码中同一点的同一纹理上却不行。相同的代码在我的桌面系统上运行正常。在Android上使用glTexSubImage2D()是否有任何隐藏的问题? 最佳答案 根据我们的经验,glTexSubImage2D()无法正常工作的问题只出现在HTCAndroid手机中-至少在我们尝试过的型号中:DesireHD、DesireZ和X31