このアプローチやコーディング スタイルはむしろ避けるべきではないでしょうか。
なんで?
シェーダーの全体的なポイントは、ユーザーが自分のやりたいことを実行できるようにすること、やりたいことをより効果的に表現できるようにすること、およびハードウェアをより細かく制御できるようにすることです。
別の機能のために何かを転用することを決して恐れてはなりません。テクスチャは色を保存しません。それらはデータを保存します。これは色である可能性がありますが、他のものである可能性もあります。テクスチャを絵として考えるのをやめるのが早ければ早いほど、グラフィックス プログラマーとしての成果が上がります。
GPU と API は使用するために存在します。必要に応じて使用してください。API があなたを制限するためにどのように使用されるべきかを許可しないでください。
OpenCL の使用方法と、GPU のマルチスレッド機能を使用して意図したコードを直接記述して渡す方法を学ぶべきではありませんか?
昨日、私は「はい」と言ったでしょう。しかし、今日、これがリリースされました: OpenGL 計算シェーダー.
OpenGL ARB と Khronos がこのシェーダー タイプなどを作成したという事実は、OpenCL/OpenGL 相互運用がレンダリング目的でデータを生成する最も効率的な方法ではないことを暗黙のうちに認めています。結局のところ、そうであれば、OpenGL に一般化された計算機能を持たせる必要はありません。これを提供しない GL 4.x の 3 つのバージョンがありました。それが今ここにあるという事実は、基本的にARBが「ええ、OK、これが必要です」と言っているということです.
ハードウェアを作成する多くの人員が配置されている ARB が、CL/GL 相互運用が最速の方法ではないと考えている場合は、コンピューティング シェーダーを使用する必要があることは明らかです。
もちろん、今何かをしようとしているのであれば、それは役に立ちません。計算シェーダーをサポートしているのは NVIDIA だけです。しかも、それはベータ版ドライバーのみです。AMD がそれらのサポートを得るまでには何ヶ月もかかり、そのサポートがしっかりと安定して使用できるようになるまでにはさらに多くの月日がかかります。
それでも、データを生成するために計算シェーダーは必要ありません。トランスフォーム フィードバックとジオメトリ シェーダーを使用して、LOD とフラスタム カリングをインスタンス化されたレンダリングに使用しています。「OpenGL は何かを描画する」ボックスの外で考えるのを恐れないでください。