OpenGL de プログラミング トップページページ一覧メンバー編集 基本編21 最終更新: mikk_ni3_92 2008年11月14日(金) 16:16:01履歴 Tweet 現在地 >> メニュー >> 基本編21 INDEX:基本編20 << 基本編21 >> 基本編22 アキュムレーションバッファ OpenGLには、「カラーバッファ」や「ステンシルバッファ」などの他に「アキュムレーションバッファ」がある。 これは、カラーバッファに何かレンダリングした後、 それを表示せずにアキュムレーションバッファにコピーし、色を蓄積する。 アキュムレーションバッファに色情報をためたり、ブレンド処理をする事を繰り返し、 最終的にカラーバッファに戻して表示する事ができる。 [ イメージ ] カラーバッファアキュムレーションバッファ(R, G, B, A)( 126, 144, 72, 0.9)(
「そろそろGPUのお勉強も始めないと時代についていけなくなってしまう!」そんなことをひしひしと感じてきているので,いろんなサイトやいろんな本をみてGPUのお勉強を始めることにしました。 GLSLもいいんですが,文献が一番多そうなCg言語を使っていくことにきめました! そんなわけで,今回はGg言語をつかうためにCg Toolkitのインストールしてみます。 Cg言語(C for Graphics)とは2002年6月にnVIDIAが発表したC言語ライクな3Dグラフィックス用言語のことです。 従来,GPUの機能を生かしたプログラムを行うには,アセンブリ言語によるコーディングが必要だったみたいなんですけど,Cg言語という高級言語の登場で,C言語風のプログラムをできるようになり,手軽にGPUを制御できるようになったそうです。実際にPlayStation2なんかはアセンブラで組んでたみたいですね。Po
ステンシルとは? ステンシル,stencilは型板のことです.板に星型の穴をあけて,その板越しに色を塗ると紙には星型のマークが書ける.そういう板のことをステンシルといいます. OpenGL上で実現されるステンシルバッファの機能もまさにそのとおりのものになります. OpenGLで使用するバッファの概念図は以下のようになります. ステンシルバッファはカラーバッファ,デプスバッファに続く各ピクセルが持つバッファのひとつとなります.他のバッファと違い,ステンシルバッファは描画結果には反映されません.右の例はユーザが「ステンシルバッファが"0"の部分には描画しない.」とプログラムすることで得られる結果となります.つまりステンシルバッファとはピクセル毎に使用できるフラグと考えることが出来ます. ピクセルバッファの初期化 ピクセルバッファを使用するには当然,ピクセルフォーマットでステンシルバッフ
これは何? OpenGLのデプスバッファの値を取得し、距離情報に変換する方法について 説明しています。 要点は2つです。 glReadPixelsで読める。 例えば浮動小数点バッファに読み込むと0から1の値となる。 float *depth_buf = new float[ width * height ]; glReadPixels( 0, 0, width, height, GL_DEPTH_COMPONENT, GL_FLOAT, depth_buf ); デプス値dからカメラ座標系でのz座標への変換は以下の式に従う。 z = f*n / (d*(f-n)-f) ここでnとfはnear/far clipping lengthである。 OpenGLのカメラはz軸負方向を向いていることに注意。 詳しくはこちら: 説明(PDF) サンプル depth.zip 動作環境 C++。 STL(S
OpenGL de プログラミング トップページページ一覧メンバー編集 隠面消去(Zバッファ) 最終更新: mikk_ni3_92 2008年07月16日(水) 18:29:05履歴 Tweet 現在地 >> メニュー >> 基本編04 >> 隠面消去(Zバッファ) 次 >> アニメーション <隠面消去(Zバッファ)> まとめコード::基本編03のプログラムはZバッファの設定を行っていない。 従って、複数の物体を描画した時、 本来は前にある物体によって見えなくなる後ろの物体が見えてしまう可能性がある。 → 関連>>Zバッファの有無による違いのサンプル 重なった物体は、奥にあるものが隠れないといけない。(隠面消去) そこで、「Zバッファ」を設定する必要がある。 設定方法 (a).初期設定 「glutInitDisplayMode()」に「GLUT_DEPTH」を追加する。 ― [例] ― g
GLSLとは OpenGL Shading Language(以下GLSL) は OpenGL との親和性の高い shader 記述言語である。 shader 記述言語とは、 グラフィクスパイプライン中のプログラム可能な部分における処理を 記述する言語の総称である。 shader 記述言語には他に NVIDIA の Cg や Microsoft の HLSL などがある。 世間一般に出回っている情報量では Cg に押されていると思われる。 OpenGL との間のインタフェースがわかりやすい点と、OpenGL 拡張機能を 利用可能にする GLEW を導入すれば Linux でも Windows でも使える点が 優れている。 デメリットは、情報が少ないこと、プラットフォームによって挙動が 異なる場合があること、 中心となって策定していた 3DLabs がハイエンドグラフィクス分野から 撤退した
仮想世界と現実世界を融合する技術は,拡張現実感(Augmented Reality:AR)と呼ばれています. おおげさな言い方をするとARは現実の世界に情報を「上書き」することができる技術です. アニメや映画にでてくる「電脳」を想像してみてください.手のひらの上に3Dキャラクタを表示したり, 現実の世界でデジタル・データに触れてみたり… そんな魔法のような技術です. ARToolKit はARアプリケーションの実装を手助けするC言語用のライブラリです. ARToolKitを使うと,紙に印刷されたパターンをカメラで読み取り, その上に3Dオブジェクトをオーバーレイ表示するアプリケーションが簡単に作れます. 本来は非常に敷居の高い技術なのですが,このライブラリは「難しい部分」の処理を全てやってくれます. …というわけで今回はARToolKitを使って近未来の技術 「拡張現実感」 を体験
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く