ストリームアウト

OpenGL

新しめのTransform feedbackの使い方

OpenGL transform feedbackの使い方で最近は少し変わって便利に使えるようになったようです。前回、書き込んだプリミティブ数をCPUで取得していましたが、これが不要となるようです。いわゆるDirectX の DrawAuto っぽいものがOpenGLでも実現できるようになりました。 使い方は、以下のような感じです。ポイントは GL_TRAN...
OpenGL

Transform Feedback で GPU Particle っぽいもの

OpenGLの transform feedback を使って GPU パーティクルっぽいものにチャレンジしてみました。以前、transform feedback を試していたときは、ストリームアウトばかり気にしていて、せっかくのGPUで演算が完了できるという点を見落としていました。 今回は VBOを2つ用意してこれをピンポンすることで頂点および情報の更新を...
OpenGL

OpenGLでのストリームアウト その5

AMD(ATI)で動くOpenGLのストリームアウト(transform_feedback拡張)が一応できました。GL_EXT_transform_feedback のエクステンションを利用します。 ■準備するもの 頂点データのためにVBOを使えるようにすること GLSLによるシェーダーを使えるようにすること クエリー発行できること ■シェーダーの準備 GL...
OpenGL

OpenGLでのストリームアウト その4

今までのものは GL_transform_feedback_NVのやつでやっていた。 しかし、今回AMDのRadeon 5450環境を手に入れられたのでこちらについても ちょっと試してみた。GL_transform_feedback_EXT をサポートしているようなのでこちらを使うことになりそう。 ■APIの置き換え(その1) NVIDIA AMD glBe...
OpenGL

OpenGLでのストリームアウト その3

ようやく動作自体は出来たのでメモしておきたいと思います。 サンプルプログラムはまた後日に。 ■ 準備 GLSLシェーダーをコンパイル シェーダープログラムをリンク処理 glTransformFeedbackVaryingsNV でストリームアウトとして書き込むデータの設定 格納先のバッファオブジェクトを生成 ■ 描画フェーズ ラスタライズ処理の無効化(GL_...
OpenGL

OpenGLでのストリームアウト その2

■GL_NV_transformfeedbackのspecテキスト こう書いてあった。 Two methods exist to specify which transformed vertex attributes are streamed to one, or more, buffer objects in transform feedback mode...
OpenGL

OpenGLでのストリームアウト その1

OpenGLを用いてもDirectX10のストリームアウト相当の機能を使うことが出来ます。この機能のためにまず最初に拡張されたのが GL_NV_transform_feedback というエクステンションです。 最近ではこれがEXTになったようですが、単純にNVから格が上がっただけとはいえないようです。 APIが変更されているからです。 EXT版で試行錯誤し...