iOS デバイスで yuv イメージをレンダリングしたいと考えています。openGL を使用して実現できると思います。(実際には、そのような複数の画像を連続してレンダリングする必要があります)
私が理解しているのは、GLKit は iOS が作成した抽象化でありGLKView
、レンダー バッファーを持ち、処理する があるということです。私は現在 を使用しようとしていますがGLKViewController
、フレームの更新は目的の fps で正常に行われています。glClear
これは、関数呼び出しを使用して準拠します。
ここでのタスクは、ビューに画像をレンダリングすることです。
GLKBaseEffect
基本的なシェーダーを持つクラスがあります。設定するプロパティがわからないので、作成してprepareToDraw
各レンダリングの前に呼び出すだけです。
テクスチャを処理するためのクラスがありますが、GLKTextureLoader
Quartz 画像でのみ機能するように見えます。つまり、このクラスを使用して yuv420 平面をテクスチャにロードすることはできません。
// create the texture
GLuint texture;
glGenTextures(1, &texture);
glBindTexture(GL_TEXTURE_2D, texture);
glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA8, width, height, 0, GL_RGBA, GL_UNSIGNED_BYTE, [imageNSData bytes]);
glFramebufferTexture2D(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, GL_TEXTURE_2D, texture, 0);
このコードを使用してテクスチャを生成し、バインドしますが、ここで何をしようとしているのかよくわかりません。それが何であれ、画面に画像が表示されず、次に何をすべきかわかりません。
baseEffect に何かがあると仮定して、シェーダーは作成していません。
そして、このhttps://developer.apple.com/library/ios/documentation/3DDrawing/Conceptual/OpenGLES_ProgrammingGuide/WorkingwithEAGLContexts/WorkingwithEAGLContexts.html#//apple_ref/doc/uid/TP40008793-CH103-SW8は、私が持っていることを教えてくれますEAGLayer を使用して画面に画像をレンダリングします。
GLKit を使用して画像をレンダリングできますか? はいの場合、クラスを使用しないサンプル コードまたはチュートリアルはGLKTextureLoader
ありますか (何も見つかりませんでした)。いいえの場合、レンダリングを使用するための同様のチュートリアルはありますEAGLLayer
か (私は今までそれについて調べていません)?