2016-05-19 12 views
2

私はOpenGL ES 3.0を使用して、空の球の実装を使用して360動画を再生するアプリを持っています。もっと多くのデバイスをサポートするためにOpenGL ES 2.0を使いたいです。iOS 360 OpenGL ES 2.0を使用したビデオ

In ViewController.swift私はsetupContext()メソッドでEAGLContextを作成し、それは.OpenGLES3で動作しますが、.OpenGLES2を使用しようとすると黒い画面しか表示されません。エラーメッセージはなく、OpenGL ES 2.0でサポートされていないAPI関数を識別することができません。

context = EAGLContext(API: .OpenGLES3) 
EAGLContext.setCurrentContext(context) 

OpenGL ES 2.0を使用して空の球を使って360の動画を表示するにはどうすればよいですか?主な実装はSkysphere.swiftにあります。ありがとう。

サンプルアプリがここに発見された:https://github.com/devinshively/TestVideoPlayer

+0

なぜ球体メッシュを読み込んでテクスチャをマップするだけではないのですか? Sky Sphereの実装を使用する代わりに。これにより、古いデバイスを簡単にサポートできます。 – codetiger

答えて

0

問題は、OpenGL 3が自動的にピクセルの幅と高さを推測するということでした。 OpenGL 2を使用するには、ピクセルバッファ属性kCVPixelBufferWidthKeyとkCVPixelBufferHeightKeyを定義する必要がありました。修正したテストレポを更新しました。

let pixelBufferAttributes = [kCVPixelBufferPixelFormatTypeKey as String : NSNumber(unsignedInt: kCVPixelFormatType_32BGRA), 
             kCVPixelBufferWidthKey as String : 1024, 
             kCVPixelBufferHeightKey as String : 512] 
関連する問題