2012-02-19 11 views
2

私はスプリングを使ってソフトボディをシミュレートするプログラムを書いた。それは素晴らしいように見えますが、問題はそれがCPU時間の多くを消費することです。だから私は自分のラップトップやハイエンドのPCで実行することはできません。GLSLシェーダ処理後に頂点位置を取得するにはどうすればいいですか?

私は、頂点シェーダーを作成し、ロジックをGPUに移動することをお勧めします。私はいくつかのチュートリアルを読んでトゥーンシェイダーを作ったので、私は(間違って)私は行く準備ができていると思った。

私が持っている大きな問題は、新しいものを計算するために頂点の古い位置を知る必要があることです。頂点の位置を取得する方法がわからないので、フレームごとにシェーダに戻すことができますか?

私はこのことが可能でもありませんし、シェーダが決して意味しないことをやろうとしているかもしれません。私はまだ研究中ですが、多分誰かが助けることができるかどうかを私が見ることができると思った。

答えて

1

ハードウェアがOpenGL 3.0以上をサポートしている場合、変換フィードバックメカニズムを使用できます。頂点位置を戻すための他のテクニックもあります。レンダリングを注意深く配置し、三角形(またはポイントプリミティブ)を画面上の各ピクセルに書き込むようにします。これはかなり難しく、FBOサポートが必要な浮動小数点バッファにレンダリングする必要があります。

+0

ありがとうございました!私は変換のフィードバックに遭遇したが、私はそれを完全に忘れてしまったので、私が読んだ他のすべてのものでほとんど失われていなかった。それはまさに私が探していたものであり、それが存在すれば私が想像していたことは涼しいでしょう!再度、感謝します! :D – Nikola

関連する問題