草庐IT

ios - 从父类中混合 OpenGLES 和 UIKIT 获取 iOS 屏幕截图

我知道这个问题得到了很多回答,但我的情况似乎有所不同。我正在尝试编写一个顶层函数,我可以随时截取我的应用程序的屏幕截图,无论是openGLES还是UIKit,我都无法访问底层类来进行任何更改。我一直在尝试的代码适用于UIKit,但返回OpenGLES部分的黑屏CGSizeimageSize=[[UIScreenmainScreen]bounds].size;if(NULL!=UIGraphicsBeginImageContextWithOptions)UIGraphicsBeginImageContextWithOptions(imageSize,NO,0);elseUIGraphic

ios - 具有变换反馈的实时 OpenGL ES 光线追踪\光线转换?

我们进行了核磁共振扫描,我们想进行iOS上OpenGL中的实时光线转换,以便从不同角度渲染表面而不对其进行多边形化。事实上我们只对渲染生成的深度图感兴趣。我在应用商店中看到了很多这样的例子,所以我确信它是可能的(例如ImageVis3d)。我们可以使用glTexImage3D来执行渲染吗?是否有在iOS中使用此功能的良好在线资源?更好的是有一个GitHub项目或类似的项目来演示glTexImage3D在iOS中的使用吗?现在假设2d或3d纹理存在于OpenGLES内存中,是否可以使用片段着色器写入同一内​​存,然后重新渲染它而不将其复制回CPU?我正在想象一个可以使用片段着色器使体积变

OpenGL ES 2通过输入事件旋转后翻译

我尝试在旋转后翻译对象。我用输入事件旋转对象,库存旋转的值并将其用于翻译。但是,对象转换为错误的旋转。我不明白为什么。这是我程序的伪代码:翻译:for(inti=0;i旋转:rotation=glm::rotate(glm::mat4(1.0f),valueOfRotation,glm::vec3(0,0,1));for(inti=0;i翻译后的旋转效果很好。请问吗?谢谢看答案好吧,我终于找到了解决方案。我使用GLM::分解来提取旋转并使用了旋转。但是我仍然不明白为什么glm::translate(glm::mat4(1.0f),newPosition.at(i))*glm::rotate(g

ios - OpenGL ES 2D 绘图性能评估

我遇到过Quartz/CoreGraphics极差的绘图性能。我不认为它在所有情况下都不好,但在我需要经常重画3000条短线的情况下,它表现得非常糟糕。由于(MVC的)Modal是固定的,我无法更改它吐出数据的方式(如果可以的话,我会听从建议,只绘制更改,因此不必每帧都重新绘制线条).因此,作为结论,我正在考虑为此目的使用opengl,并且我想请你们(有经验的)家伙在开始研究该主题之前评估使用opengl的效果如何,因为看起来困难得多比quartz。 最佳答案 您几乎肯定会看到OpenGL比Quartz的速度性能提升,但请记住,Qu

ios - 如何在 OpenGL es 应用程序中使用键盘

我有一个使用键盘的OpenGLES应用程序。触摸屏幕时,我可以在屏幕上弹出键盘。如果我是正确的,每次我按下一个键,-(BOOL)textField:(UITextField*)textFieldshouldChangeCharactersInRange:(NSRange)rangereplacementString:(NSString*)string应该被调用。但事实并非如此。该应用程序最初是一个纯OpenGLMac游戏,我正在尝试制作一个iOS版本,所以我没有使用Storyboard。如果可能的话,我更喜欢以编程方式完成所有事情。这是我的ViewController.h代码:#imp

ios - 适用于 iOS 的 OpenGLES - glBufferData() - GLuint 不适用于数据字段

我花了半天时间试图解决这个问题,但到目前为止我没有运气,所以我正在寻找一些建议和指导。我正在我的32位iPad3(iOS8)上渲染一个球体。-(void)bufferVBO:(objectVertex[])objVertices:(int)objectVerticesSize:(GLubyte[])vertexIndices:(int)vertexIndicesSize{...glBufferData(GL_ELEMENT_ARRAY_BUFFER,vertexIndicesSize,vertexIndices,GL_STATIC_DRAW);...}这很好用。但是,这最多只能渲染25

ios - 有什么方法可以同步 Map Vector(OpenGL 层)和 UIKit?

假设您使用GMSMapView之上的UIImageView在屏幕中间固定了一个图钉。在流程中的某个时刻,我需要移除固定图钉并将其添加为map中的标记。可以通过将固定图钉hidden属性设置为true然后使用GMSMarker在map中心添加一个与UIImageView相同的资源。这是可行的,除了存在视觉故障,因为添加标记会触及OpenGL层,无论隐藏引脚是否使用UIKit。有没有办法同步这两个操作? 最佳答案 不是真的。参见thisquestion关于OpenGL-UIKit同步的讨论——结论是Apple可以访问私有(private

ios - 是否可以在不使用 LibGDX 的情况下从 RoboVM 访问 OpenGL ES?

是否可以从RoboVM不使用LibGDX访问iOS上的OpenGLES?如果有,有什么有用的引用资料吗?我唯一能找到的是2年前的这个super简单的演示:http://robovm.com/ios-opengles-in-java-on-robovm/但它除了glClearColor和glClear之外不提供任何功能。不过,AppleGLKit框架似乎已实现。我只是找不到所有实际的glWhatever(...)函数... 最佳答案 是的,这是可能的。为此,您需要两件事:1.访问OpenGLES函数(如glClear(...)等)和2

OpenGL ES 如何渲染 16bit 图像?

未经作者(微信ID:Byte-Flow)允许,禁止转载文章首发于公众号:字节流动最近有不少读者私信问OpenGLES如何处理16bit图像(P010)?然后我直接贴给他们一段在OpenGL环境下验证过的上传16bit图像数据的代码glTexImage2D(GL_TEXTURE_2D,0,GL_R16UI,width,height,0,GL_RED_INTEGER,GL_UNSIGNED_SHORT,data);看了下OpenGLES实际上也是支持这一套格式,但是我之前没有在GLES环境下运行验证过。

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

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