ジオメトリが実際にフレームごとに変更される場合は、GPU で変更する必要があります。
即時モードに依存しない他のすべてのソリューションは、現在のソリューションよりも高速になることに注意してください。GPU 上で行う必要さえないかもしれません。
しかし、場合によってはより効率的なシャドウ マッピングを代わりに使用したい場合もあります。また、草のようなアルファ テスト済みのオブジェクトの影をレンダリングすることも可能になります。しかし、結果として得られるシャドウ ジオメトリが本当に必要なようです。そのため、それがオプションであるかどうかはわかりません。
シャドウ ボリュームに戻ります。
ジオメトリ シェーダーを使用してメッシュから影のシルエットを抽出するのは、かなり複雑なプロセスです。しかし、インターネット上には十分な情報があります。
このプロセスを詳細に説明している Nvidia の記事は次のとおりです:
Efficient and Robust Shadow Volumes Using Hierarchical Occlusion Culling and Geometry Shaders。
ジオメトリ シェーダーさえも必要としない別のアプローチ (2003 年以降) を次に示します。これは、ローエンドのハードウェアで興味深いものになる可能性があります
。
最も効率的なソリューション (シャドウ シルエットを使用) が必要ない場合は、メッシュのすべての三角形を単独で抽出することもできます。これは、ジオメトリ シェーダーを使用すると非常に簡単です。GPU でシルエット抽出を実装する前に、まずそれを試してみます。
質問の「VBO にレンダリング」の部分について:
私が知る限り、ジオメトリ シェーダーの出力を CPU に戻す方法はありません。これについて私を引用しないでください。しかし、これを行う方法について聞いたことがありません。