それ以上を放出する方法はありますか?実装が複数のFBOバッファーアタッチメントまたは「ディープ」バッファー形式をサポートしていない場合、GLSLフラグメントシェーダーから4バイト?
たとえば、WebGLまたはOpenGL ESを使用する場合、フラグメントごとにRGBA出力に制限すると、計算の一部を複数のパスで繰り返してより多くの出力チャネルを取得する必要がある場合、複雑な計算は非常に非効率になります。
それ以上を放出する方法はありますか?実装が複数のFBOバッファーアタッチメントまたは「ディープ」バッファー形式をサポートしていない場合、GLSLフラグメントシェーダーから4バイト?
たとえば、WebGLまたはOpenGL ESを使用する場合、フラグメントごとにRGBA出力に制限すると、計算の一部を複数のパスで繰り返してより多くの出力チャネルを取得する必要がある場合、複雑な計算は非常に非効率になります。
出力するものはバイト単位ではなく、コンポーネント単位で測定されます。各画像には4つのコンポーネントしか保存できないため、出力画像ごとに4つのコンポーネントしか出力できません。
ハードウェアがより多くのデータを出力できる場合は、より多くの画像に出力できるようになります。拡張機能を介してそれを公開する可能性があります。そのような拡張機能が存在しない場合、ハードウェアは存在できないため、どちらも存在できません。
NVIDIAにはそのような拡張機能があるため、ES対応のハードウェアでそれを実行できる可能性があることに注意してください。
いいえ、通常のチャネルよりも効率的に出力する方法はありません。つまり、より多くの出力を使用した計算は、複数のパスで実行する必要があります。コストのかかる中間結果を共有する複数の出力を使用した計算では、中間結果が以前に追加のパスとして計算される場合がありますが、オーバーヘッドによって、得られるパフォーマンス上の利点が失われる可能性があります。