我忘记了,但EAGL是否代表任何特定的东西?或者它只是Core Animation OpenGL命名约定(CAEAGLLayer等)的一部分?
我正在为一个Android应用程序编写一个图形库(是的,我知道有很多,但没有提供我们需要的可定制性).
我希望图表可以缩放和平移.
我希望体验顺畅,留下小巧的CPU占用空间.
View.onDraw(Canvas)BitmapOpenGLOpenGL可能是专业的解决方案,肯定会提供更多的灵活性,但它需要更多的工作(多少不清楚).
有一点在OpenGL中更容易实现平移/缩放,因为我可以操纵矩阵来使其正确,其余的应该更难,尽管我认为.
我不怕弄脏手,但我想知道在开始挖掘之前我正朝着正确的方向前进.
我错过了任何解决方案吗?我所有的解决方案都理智吗?
我可以补充一点,当图形发生变化时,我希望对变化进行动画处理,这可能是最苛刻的任务.
我需要在我的OpenGL ES 1.1代码中模仿Photoshop混合模式("乘法","屏幕"等)(没有着色器).
有一些关于如何使用 HLSL 执行此操作的文档:
我至少需要工作屏幕模式.
我可能会看到固定管道上的任何实现吗?
我有兴趣录制带有自定义叠加层的视频,最终会出现在视频中.它们可能是UIImage甚至更好,一个OpenGL视口,现在在任何iPhone设备/ SDK上都有这样的可能吗?
谢谢
我想知道如何从头开始创建自定义iPhone控件,或使用现有的库或框架.
我已经看过three20库,以及tapku和触摸习俗,这对于专业的iOS控件很好,如表视图等,但我在谈论在这里制作完全自定义的交互式控件.
让我们说我想制作一个类似于这个应用程序的拨号控件:http://store.apple.com/us/product/H2654LL/A.
我从哪里开始?
我只是有点困惑哪条路走到这里.
是的 - 此问题之前已经被问过并回答了几次,但我还没有找到一个满意的答案来解决上述问题.
我已经设法将一帧电影的视频轨道加载到带AVFoundation的OpenGL纹理中.我按照答案中描述的步骤进行操作:iOS4:如何将视频文件用作OpenGL纹理? 并从WWDC2010的GLVideoFrame示例中获取了一些代码,可以在此处下载:http://bit.ly/cEf0rM
如何与视频同步播放电影的音轨.我认为在单独的播放器中播放它并不是一个好主意,而是使用相同的音频轨道OpenGL.
AVAssetTrack* audioTrack = [[asset tracksWithMediaType:AVMediaTypeAudio] objectAtIndex:0];
Run Code Online (Sandbox Code Playgroud)
我检索了一个videoframe,它是CADisplayLink-callback中的时间戳
CMSampleBufferRef sampleBuffer = [self.readerOutput copyNextSampleBuffer];
CMTime timestamp = CMSampleBufferGetPresentationTimeStamp( sampleBuffer );
Run Code Online (Sandbox Code Playgroud)
哪里AVFoundation是类型GLVideoFrame
如何获得相应的音频样本?以及如何玩它们?
编辑:
我看了一下,我想,最好是使用WWDC2010AudioToolbox.framework使用此处描述的方法:AVAssetReader和Audio Queue流问题
AVFoundation中还有一个音频播放器:AVAsset.但我不知道我应该如何将数据传递给它所readerOutput期望的-initializer AVAssetReaderTrackOutput*.此外,我不认为这是我的最佳选择,因为我AudioQueue必须为每个新的音频样本创建一个新的实例,据我所知.
还有其他建议吗?播放原始音频样本的最佳方式是AudioToolbox.framework什么?
在给定的绘图调用中解除使用glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, 0)和/或glBindBuffer(GL_ARRAY_BUFFER, 0)结束时,对我来说似乎更清晰.我喜欢确定什么都不应该是不应该的; 但是,这有很大的性能影响吗?
有人会认为这样做是"干净"的方式吗?或者我应该沿着快速而漫长的路线走下去?
(是的,我知道绑定的缓冲区对象将被下一个要绑定在该目标上的缓冲区对象替换 - 无论是在这个还是下一个渲染更新中.是的,我可以进行性能测试.但是快速的人类反应会很好.)
我目前是OpenGL ES 2.0领域的新手,我想尽可能多地了解绑定,缓冲区,着色器等.
截至目前,我只是想了解之间的差异GL_ELEMENT_ARRAY_BUFFER和GL_ARRAY_BUFFER以及何时使用每个指出预设.
我目前的理解使我相信这GL_ELEMENT_ARRAY_BUFFER是专门针对所述三角形的指数,而另一个是针对其他一切的指数.
有人可以详细说明为什么以及这是否正确?如何GL_ELEMENT_ARRAY_BUFFER不同的处理方式?
这段代码曾用于我的Nexus 7 2012 KitKat:
int[] maxSize = new int[1];
GLES10.glGetIntegerv(GL10.GL_MAX_TEXTURE_SIZE, maxSize, 0);
Run Code Online (Sandbox Code Playgroud)
在KitKat中我可以正确获取最大像素值,但在升级到工厂映像Lollipop后,这段代码会导致问题,因为它只返回0.当达到此方法时,logcat显示此输出:
E/libEGL? call to OpenGL ES API with no current context (logged once per thread)
Run Code Online (Sandbox Code Playgroud)
我已经android:hardwareAccelerated="true"在我的Manifest.xml中了.是否有任何我不知道的API更改,导致上述代码无法使用?请指教.
opengl-es ×10
ios ×4
iphone ×4
android ×2
avfoundation ×1
drawing ×1
ios4 ×1
ipad ×1
objective-c ×1
opengl ×1
performance ×1
photoshop ×1
rendering ×1
vbo ×1
video ×1