GL_LUMINANCE:各要素は単一の輝度値です。 GL は、それを浮動小数点に変換し、次に、輝度値を赤、緑、および 青で3回複製し、アルファに1を付けて、RGBA要素 にアセンブルします。
これはWebGLにも適用されますか?もしそうなら、これは、LUMINANCEのような少ないチャネルでフォーマットされたテクスチャを使用すると、でなく、はRGBAを使用するよりもVRAMを保存することを意味しますか?
RAMについてはどうですか?
GL_LUMINANCE:各要素は単一の輝度値です。 GL は、それを浮動小数点に変換し、次に、輝度値を赤、緑、および 青で3回複製し、アルファに1を付けて、RGBA要素 にアセンブルします。
これはWebGLにも適用されますか?もしそうなら、これは、LUMINANCEのような少ないチャネルでフォーマットされたテクスチャを使用すると、でなく、はRGBAを使用するよりもVRAMを保存することを意味しますか?
RAMについてはどうですか?
これはWebGLにも適用されますか?
はいこれは、そのような
なしRGBA
を使用する場合に比べVRAMを保存しないLUMINANCEとして少ないチャネルでフォーマットテクスチャを使用すると、これは実装固有(であることを意味するものではないを行います実際にはアップロード前にデータをRGBAに拡張することを選択しています)、拡張はシェーダ内のそのようなテクスチャからサンプリングするときに、基本的にすべてのカラーコンポーネントに同じ値を提供するだけで実行する必要があります。
RAMについてはどうですか?
あなたはデータをVRAMにアップロードし、(データの参照にに保持することにより、例えば。)限り、あなたはそうしていないとして、RAMに保持されていない
texImage2D
を呼び出したら。
GL_LUMINANCE
は、OpenGL 3.2では廃止され削除されました。今日では、GL_R8
のような列挙型を使って内部形式を明示的に指定しています。インプリメンテーションは、指定されたフォーマットで内部ストレージを割り当てます(この保証は、as-ifルールのようにOpenGL仕様にはありません)。 WebGLでGL_LUMINANCE
を使用しないことをお勧めします。明示的な内部フォーマットを使用して、必要に応じてシェーダ内で、またはテクスチャスウィズルを使用して展開してください。
WebGL ** 2 **でのみ可能なのは... –