草庐IT

ios - 将统一颜色传递给片段着色器 (openGL ES 2.0)

这是一个奇怪的问题。如果我尝试将统一颜色传递给片段着色器,则会出现编译错误uniformvec4uniformColor;voidmain(){gl_FragColor=uniformColor;}但是如果我将相同的统一颜色传递给顶点着色器,然后通过varying将它传递给片段着色器,那么它工作正常..attributevec4position;uniformmat4matrix;uniformvec4uniformColor;varyingvec4fragmentColor;voidmain(){gl_Position=matrix*position;fragmentColor=un

ios - iOS 中的照相亭。使用 OpenCV 还是 OpenGL ES?

我想制作一个过滤视频的应用程序,例如Apple的照相亭应用程序我该怎么做?使用OpenCV、OpenGLES或其他任何工具? 最佳答案 OpenCV和OpenGL的用途截然不同:OpenCV是一个跨平台的计算机视觉库。它允许您轻松处理图像和视频文件,并提供了多种工具和方法来处理它们并执行过滤器和其他几种图像处理技术以及图像中的一些更酷的东西。OpenGL是一个跨平台的API,用于生成2D/3D计算机图形。它用于从简单的图元绘制复杂的三维场景。如果您想对图像执行很酷的效果,OpenCV是您的不二之选,因为它提供的工具/效果可以轻松地一

iphone - 我应该用什么来代替 OpenGL ES 2.0 中的 glTexCoordPointer()?

在OpenGLES1中,我有一个像下面这样的函数来设置图像的坐标:glTexCoordPointer(2,GL_FLOAT,0,coordinates);在OpenGLES2.0中与此等效的是什么? 最佳答案 据我所知,所有固定功能属性(如顶点、法线、纹理坐标等)都已在GLES2.0中删除。您必须实现自己的顶点着色器,它接受纹理坐标作为自定义顶点属性(其数据由glVertexAttribPointer指定,就像其他所有顶点属性一样)并将纹理坐标委托(delegate)给您自己的片段着色器,实现纹理访问。如果这一切对您来说听起来很陌生

ios - iPhone OpenGL ES 2.0 - 像素完美纹理

在OpenGLES2.0中如何让我的纹理与屏幕像素对齐以获得像素完美的图形?这对于我正在处理的使用像素艺术图形的项目至关重要。在这方面的任何帮助都会很棒! 最佳答案 在这里查看我的回答:OpenGLTextureCoordinatesinPixelSpace这已被问过几次,但我手头没有链接,所以快速粗略地解释一下。假设纹理是8像素宽:|0|1|2|3|4|5|6|7|^^^^^^^^^0.0|||||||1.0|||||||||0/81/82/83/84/85/86/87/88/8数字表示纹理的像素,条形表示纹理的边缘,在最近过滤的

iphone - glGetUniformLocation 返回 -1 OpenGL ES (iPhone)

我有一个具有以下属性的片段着色器:varyinghighpvec2coordinate;precisionmediumpfloat;uniformsampler2Dvideoframe;uniformsampler2Dvideosprite;uniformvec4mask;uniformfloatthreshold;我正在获取他们的位置并稍后设置它们:_frame=glGetUniformLocation(_program,"videoframe");_sprite=glGetUniformLocation(_program,"videosprite");_mask=glGetUnif

iphone - iPhone 上的 OpenGL ES 2.0 - 我可以使用多少个纹理单元?

在苹果的文档中:(http://developer.apple.com/library/ios/#documentation/3DDrawing/Conceptual/OpenGLES_ProgrammingGuide/OpenGLESPlatforms/OpenGLESPlatforms.html)它表示对于“PowerVRSGX上的OpenGLES1.1”,“有8个纹理单元可用。”它没有说OpenGLES2.0上有多少个单位可用,这是否意味着没有限制? 最佳答案 与其询问并获得future可能正确或不正确的答案,您的应用程序应该

ios - OpenGL photoshop 叠加混合模式

我试图实现一个粒子系统(使用OpenGL2.0ES),其中每个粒子都由具有简单纹理的四边形组成红色像素是透明的。每个粒子都会有一个从50%到100%的随机alpha值现在棘手的部分是我希望每个粒子都有一个混合模式,就像Photoshop“叠加”一样,我尝试了glBlendFunc()的许多不同组合,但没有成功。我不明白如何在片段着色器中实现它,因为我需要有关片段当前颜色的信息。这样我就可以根据当前颜色和纹理颜色计算出一种新颜色。我也考虑过使用帧缓冲对象,但我想我需要将我的帧缓冲对象重新渲染到纹理中,对于每个粒子,因为每个粒子每一帧,因为我需要计算的片段颜色粒子相互重叠。我发现数学和其他

ios - 如何开始使用 OpenGL ES?

我想学习OpenGLES,但是到现在还一窍不通,想知道有没有0知识star的教程。请记住,我对图形、绘图等一无所知。 最佳答案 这是一个很好的开始,因为它特定于iPhone:OpenGLESfromtheGroundUp:TableofContents 关于ios-如何开始使用OpenGLES?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/5069491/

android - OpenGL ES 2.0 中的抗锯齿?

有没有办法在OpenGLES2.0中实现抗锯齿技术?我用眼镜发现了一些方法,但输出没有变化。在最坏的情况下,我计划实现多channel渲染,通过显示每个像素周围像素的平均颜色来平滑fragment着色器中的边缘,但它会消耗更多GPU性能。有什么建议吗? 最佳答案 许多设备都支持MSAA(多样本抗锯齿)。要利用此功能,您必须选择具有多重采样的EGLConfig。在Android上,如果您使用GLSurfaceView,则必须实现您自己的EGLConfigChooser。然后,您可以使用EGL函数,尤其是eglChooseConfig(

ios - 如何在应用程序后台运行期间停止并发 OpenGL 绘图?

一旦应用进入后台,它就必须停止调用OpenGL函数。但不知何故,所有阻止OpenGL的努力都失败了,当用户按下主页按钮时,我的应用程序经常(但并非总是)崩溃。它崩溃了ExceptionType:EXC_BAD_ACCESSCode:KERN_INVALID_ADDRESSat0x1libGPUSupportMercury.dylibgpus_ReturnNotPermittedKillClient据我了解,如果您在应用程序不再处于前台后调用OpenGL函数,应用程序将会崩溃,因为GPU对应用程序不可用。用OpenGL渲染的View有一个调度队列self.drawingQueue=dis