Tag: opengl es 2.0

是否有像XCode的MonoTouch的OpenGL帧捕获?

自XCode 4.2以来,XCode的“帧捕获”function就在这里。 在MonoTouch中是否有类似的function,或者是否可以在MonoTouch项目中利用XCode的function? @ Xamarin人:如果没有,是否有任何计划来支持这样的事情?

无法在CADisplayLink渲染循环中绑定EAGLDrawable

我使用CADisplayLink渲染循环callback来渲染一系列openGL的图像纹理。 在CADisplayLink的第一个callback调用后,我只是得到这些错误输出 Failed to bind EAGLDrawable: <CAEAGLLayer: 0x946bb40> to GL_RENDERBUFFER 2 Failed to make complete framebuffer object 8cd6 我设置了renderBuffer&frameBuffer并在控制器的viewDidLoad阶段中调用glFramebufferRenderbuffer,glCheckFramebufferStatus的返回在该阶段没有问题。 这是我正在使用的代码。 //GLKViewController.m typedef struct { GLKVector3 positionCoords; GLKVector2 textureCoords; }SceneVertex; static const SceneVertex vertices[] = { {{-1.0f, -1.0f, 0.0f}, {0.0f, 0.0f}}, // lower left corner {{ 1.0f, -1.0f, 0.0f}, {1.0f, 0.0f}}, // lower right corner {{-1.0f, […]

如何发现如果OpenGL ES帧速率是口吃 – 没有仪器?

一位朋友问我这个有趣的问题,我没有回答这个问题。 他正在制作一个游戏,有时候他在帧率方面落后了。 就好像有10个或更多的帧被丢弃。 运行循环function由CADisplayLink调用。 有没有一种方法来告诉编程如果帧速率滞后? 我只是测量运行循环函数中的时间,然后检查它是否大于应该的值。 如果是的话,请记住有一个滞后。 在旅途中的各种设备上testing可能会有用。 你如何去跟踪这个没有连接到Xcode?

将一个自定义SKShader应用到SKScene中,使用Swift将iOS 8 SpriteKit中的整个渲染场景进行像素化

我正在尝试在SKScene上创build一个全屏的像素化效果。 我了解到,应该有两个select来做到这一点: 使用使用GLES 2.0的自定义SKShader 。 使用核心图像filter。 我试图添加一个自定义的SKShader应该修改整个屏幕像素化。 我不确定如果可能,但SKScene ( SKScene的子类)的SKEffectNode表明: SKEffectNode对象将其子级渲染为缓冲区,并可select将Core Image滤镜应用于此渲染输出。 像GameScene : SKScene一样,可以将SKShader分配给SKScene GameScene : SKScene : override func didMoveToView(view: SKView) { let shader = SKShader(fileNamed: "pixelation.fsh") self.shader = shader self.shouldEnableEffects = true } …但似乎呈现的缓冲区不作为u_texture传递给GLES: void main() { vec2 coord = v_tex_coord; coord.x = floor(coord.x * 10.0) / 10.0; coord.y = floor(coord.y * […]

OpenGL:与片段着色器的圆斜面?

我正在试图制作一个圆形的粒子,看上去它的顶部有一道光芒。 这就是我想让它看起来像: 以下是它目前的样子: 不太好。 由于我使用的是GL_POINTS,所以我得到了gl_PointCoordvariables,这会让事情变得更简单,除非我不知道如何正确使用它,这导致了这个混乱: varying lowp vec4 DestinationColor; void main(void) { lowp vec2 circCoord = 2.0 * gl_PointCoord – 1.0; if (dot(circCoord, circCoord) > 1.0) { discard; } gl_FragColor = mix(DestinationColor, vec4(1, 0.5, 0.2, 1), (1.0-gl_PointCoord.t)*(max(abs(gl_PointCoord.t-0.5),abs(gl_PointCoord.s-0.5)))); // the world's worst slowest math } 我会高度赞赏,如果有人能给我一点帮助,因为我卡住了自己可怕的math技能。

在iOS中创buildRGB CVOpenGLESTexture

我正在尝试在iOS中创build一个3通道的 CVOpenGLESTexture 。 通过在CVPixelBufferCreate()和kCVPixelFormatType_OneComponent8中为CVPixelBufferCreate() format和internalFormat指定kCVPixelFormatType_OneComponent8 ,我可以成功创build单通道纹理。 同样,通过在CVPixelBufferCreate()指定kCVPixelFormatType_32BGRA在CVPixelBufferCreate() GL_RGBA format和internalFormat format ,我可以成功创build4通道 RGBA纹理。 我需要创build具有可访问像素的3通道 24位RGB(或BGR)纹理。 我似乎无法find正确的参数(或其组合)到CVPixelBufferCreate()和CVOpenGLESTextureCacheCreateTextureFromImage()不会导致他们之一失败。 附加信息 在我的设备上由CVPixelFormatDescriptionArrayCreateWithAllPixelFormatTypes() 报告支持的FOURCC格式types: 2C08 , r408 , v408 , y408 , y416 , BGRA , b64a , b48r , b32a , b16g , R10k , v308 , v216 , v210 , v410 , r4fl , grb4 , rgg4 , bgg4 […]

绑定第二个顶点缓冲区似乎破坏了我的第一个顶点缓冲区,OpenGL OES ios 5.1

我创build了两个不同的顶点缓冲区, 使用两个不同的着色器来渲染它们 。 只要我绑定第二个顶点缓冲区,我停在第一个顶点缓冲区的数据似乎已经损坏或丢失。 如果我只生成和绘制一个顶点缓冲区,像这样: glGenBuffers( 1, &vb1 ) ; glBindBuffer( GL_ARRAY_BUFFER, vb1 ) ; // fill it.. glBufferData( .. ) 然后,在draw()循环中, glUseProgram( shader1 ) ; glBindBuffer( vb1 ) ; // make sure it is bound glDrawArrays( … ) // draw it 然后它工作正常,没有问题,没有错误(我每 gl *调用glGettingLastError(),所以看来这个代码是完全没问题) 现在,如果我生成并绑定了第二个顶点缓冲区,那么在第一个顶点缓冲区生成并绑定之后的任何时候, // ran in init() — then previously working code […]

OpenGL ES 2.0可以推迟渲染/着色吗?

有没有人在OpenGL ES 2.0下实现延迟渲染/着色? 它不支持MRT,所以只有一个颜色缓冲区,它不是以“常规”方式实现的。 具体来说,我正在探索iPad,iPhone4(maaaybe iPhone 3gs)和Android。 在iPad / iPhone4 / iPhone3gs上的GLESView应用程序中,GL_OES_RGB8_RGBA8扩展名存在,而且我还没有看得太深,但是对于8位/通道,这个想法很有趣: http : //www.gamedev.net/topic/ 562138的OpenGL-ES-20-和延遮光/ 任何其他的想法? 是否值得做,性能明智?

不调用glkView drawInRect

我正在学习OpenGLES,我正在尝试将一个GLKViewer放在UIViewController中。 我知道我可以通过使用GLViewController来解决主要问题,但我正在尝试学习如何使用这种方法。 我发现这个问题,将GLKView嵌套到UIViewController和嵌套的GLKView和GLKViewController中,但是我必须缺less一些东西,即使我想我正在做所有正确的步骤,因为当我运行我的项目时,我没有进入drawInRect打印行。 在故事板中,我将ViewController作为glkview组件的代表。 我尽量保持代码尽可能简单,任何帮助都将被认可: MyController.h #import <Foundation/Foundation.h> #import <GLKit/GLKit.h> @interface MyGLController : UIViewController <GLKViewDelegate> { GLuint vertexBufferID; } @property (weak, nonatomic) IBOutlet GLKView *glview; @property (strong, nonatomic) GLKBaseEffect *baseEffect; @end MyGLController.m #import "MyGLController.h" @implementation MyGLController //@synthesize baseEffect; -(void) viewDidLoad{ [super viewDidLoad]; self.glview.context = [[EAGLContext alloc] initWithAPI: kEAGLRenderingAPIOpenGLES2]; [EAGLContext setCurrentContext:self.glview.context]; printf("View Loaded"); } – (void)glkView:(GLKView […]

没有GLKit的OpenGL ES 2

我想制作一个使用OpenGL ES 2.0的应用程序。 我可以这样做,而不使用GLKit,因为我想部署到iOS 4.3? 我找不到任何这方面的参考。 没有GLKit,甚至可以使用着色器等? 谢谢