GL_APPLE_clip_distanceのドキュメントには、ES2.0とES3.0の両方でサポートされていることが記載されています。私はES3.0をサポートしていないデバイスでも動作させようとしています。GL_APPLE_clip_distance in opengl es 2.0
シェーダファイルの先頭に#extensionがあります。
#extension GL_APPLE_clip_distance : require
シェーダファイルは、構文に問題がないことを示すエラーなしでコンパイルされます。私はES2の文脈を読み込んだ。しかし、初めてクリッププレーンを有効にしようとしました。
glEnable (GL_CLIP_DISTANCE0_APPLE)
すべてのその後のglDrawArray呼び出しがエラーで失敗します。指定された操作は、現在のOpenGL状態では無効です。すべての描画呼び出しが失敗したため、GLKViewは黒く表示されます。
興味深いことに、私は状態を無効にしても、
glDisable (GL_CLIP_DISTANCE0_APPLE)
以降の描画コールはすべて引き続き失敗します。したがって、glEnable(GL_CLIP_DISTANCE0_APPLE)への最初の呼び出しは、取り消すことができないいくつかの不可逆状態をトリガします。
回避策に関するヒントやご提案は素晴らしいと思います!