2次元テクスチャにオフスクリーンレンダリングを使用しています。 最初のシェーダはYUV値を出力し、2番目のフラグメントシェーダはオフスクリーンテクスチャからYUVを読み込みます。 2番目のシェーダでは、UとVを操作して-0.5〜0.5の範囲にします。しかし、レンダリングしようとするとすぐに0から1(正の値)にクランプされます。すべての私の負の値は、問題はここにあることがわかっ0Android:オフスクリーンテクスチャの負の値が0にクランプされる
になる:
GLES20.glTexImage2D(GLES20.GL_TEXTURE_2D, 0, GLES20.GL_RGBA,
width, height, 0, GLES20.GL_RGBA,
GLES20.GL_UNSIGNED_BYTE, null)
私はGL_FLOATの代わりGL_UNSIGNED_BYTEを使用している場合はカラーフォーマットが一致ではないとして、それは私にエラーを与えるだろう。 リンクから、https://www.khronos.org/opengles/sdk/docs/man/xhtml/glTexImage2D.xmlは、サポートされているすべてのフォーマットが0-1の範囲に固定されているように見えます。 次のテクスチャでも負の値を取得する方法。
私はGL_R16Fのような他のイメージフォーマットを使うことができますが、どれもGLES20のリンク/でサポートされていません。