タグ

tokoi-labに関するtamuoのブックマーク (12)

  • 床井研究室 - Vertex Buffer Object

    OpenGL 3.0 と GLSL 1.3 OpenGL 3.0 と GLSL 1.3 のドキュメントを軽く眺めていたんですが,ちょっと気が滅入ってきました.最初にこれを読んで私が驚いた The Deprecation Model というのは,固定機能を使うのをやめてプログラマブルシェーダに移行することを推奨するものなんですね.後方互換性は維持されているので「現時点では」まだ焦る必要はないと思うのですが,将来の仕様変更に対する前方互換性を確保しようとすると,glBegin() / glEnd() が使えないばかりか,glVertexPointer() 等を使って頂点配列を指定することすらできません.変換行列の操作や光源の設定,材質の設定なんかも一切できなくなってしまいます. このため GLSL の側でも,ftransform() が使えないというより,gl_Vertex や gl_Mode

    床井研究室 - Vertex Buffer Object
  • GLUTによる「手抜き」OpenGL入門

    資料: 今までにあった質問 リフレッシュレートの変更 AUX 版, Indy 版, 書籍版 床井研究室 (OpenGL 関連記事) 柴山 健伸 先生 (システム工学部情報通信システム学科) の混沌としたサンプル 陳 謙 先生 (システム工学部デザイン情報学科) の Motif を使ったサンプル 中山 礼児 氏 (経済学部 2000 年卒) の Delphi についての解説 The OpenGL WEB Site (OpenGL の総山) GLUT - The OpenGL Utility Toolkit (OpenGL.org の GLUT のページ) OpenGL Code & Tutorial Listings (OpenGL.org のチュートリアル集) OpenGL Technical FAQ (OpenGL について良く聞かれる質問) OpenGL FAQ 日語 (OpenG

  • 床井研究室 - キューブマッピングで FBO を使ってみる

    旅費が出た! 以前,お金が無い!と嘆いていたのですが,関係各位?のご尽力により,国際会議の旅費に加えて参加費まで大学(への寄付金)から出してもらえることになりました!助かりました.今後は大学の乏しい資金に頼らず,自分で外部資金等を取得するよう努力したいと思います.当にありがとうございました. Framebuffer Object (FBO) を使ってみる その国際会議も目前に迫ってきているんですが,それがストレスになっているのか,精神的にはあまり安定していません.そういう時はプログラミングに逃避するというものひとつの手なので,以前から試してみなくちゃと思いつつほったらかしにしていた Framebuffer Object (FBO) を試してみました.FBO はフレームバッファを構成する要素の集合体であり,テクスチャやレンダーバッファをカラーバッファや Z バッファとして用いて,それらを組

    床井研究室 - キューブマッピングで FBO を使ってみる
  • 床井研究室 - シャドウマッピングで FBO を使ってみる

    がんばれなんて言えない 気分が落ち込んでいるときは人と関わることが特に億劫になっているので,研究室の学生さん達との関係も疎遠になったりしてしまいます(代わりにこのブログなどで情報提供しているわけですが).それでも彼らは自分達で何か進めているようです.けなげです.だから,彼らに多少進捗状況が遅いからといって「がんばれ」なんて無責任なことは言えません.だいたい,自分自身が「がんばれ」と言われることで煮詰まってしまうし. シャドウマッピングと Frame Buffer Object (FBO) シャドウマッピングでは,デプスバッファをテクスチャとして参照して影の領域の判定を行いますから,デプスバッファの内容をテクスチャメモリに転送する必要があります.FBO を使えば直接テクスチャメモリにレンダリングできますから,この転送を省くことができます. それでは以前に書いたGLSL によるシャドウマッピン

    床井研究室 - シャドウマッピングで FBO を使ってみる
  • 床井研究室 - 第27回 シャドウマッピング

    1年もかかってしまった 実はこの blog でテクスチャマッピングのシリーズを書き始めた頃に,ある人に「そのうち影付けの方法について説明を書く」と約束していました.ところが,ここにたどり着くまでに,結局丸1年かかってしまいました.面目ありません.でも,OpenGL 1.4 で標準機能に取り込まれたこの機能自体,それまでの OpenGL の機能拡張の集大成とも思える部分もあります. 実際これ以降の機能拡張は,キューブマッピングやシャドウマッピングのような固定機能の機能追加から,プログラマブルシェーダによる機能増強に重点が移っています.シャドウマッピングを実装した時点で,こういうスタイルでの機能追加は,もう限界に来たということかも知れません. というわけで,今回もサンプルプログラムをもとに解説します.なおこのプログラムは,ビデオカードが OpenGL 1.4 以降をサポートしていなければ,正常

    床井研究室 - 第27回 シャドウマッピング
  • 床井研究室 - 第9回 GLSL によるシャドウマッピング

    就職活動 現在,うちの研究室の学部4年生が就職活動にいそしんでいます.すでに活動の「第1波」が過ぎたようで,よその研究室からは内定を取ったという話がちらほらと入ってきます.でもうちの4年生は,なんだかのんきに構えているように見えます.大丈夫かなぁ(内心,焦っているのかもしれませんが). それにしても就職活動というのは,当にお見合いとよく似ていて,もちろん人の能力や資質も問われますけど,それ以上に「縁」とか「相性」とか「運」みたいなものが成否を左右します.ところが学生さんは,偏差値という物差しを使って大学までやってきたせいか,同じような物差しが企業の間にもあるような錯覚をしていることがあって,就職活動の成否によって自分が「ランク付け」されているように感じることがあるみたいです.そのため,うまくいかないとどんどん落ち込んでいったりします.そこで,「うまくいかなかったのは相性が合わなかっただ

    床井研究室 - 第9回 GLSL によるシャドウマッピング
  • 床井研究室 - 第3回 テクスチャの参照

    昭和テイスト 研究室のミーティングで学生さんに対して「当たり前田のクラッカー!」っていう具合に突っ込みを入れたら,「昭和テイストだなぁー」とか「世代が違いますよ,世代が」とか散々な言われ方をしました.私,やっぱり旧い人なんでしょうか?(聞くまでもないか)そういえば以前,奥さんに「おさじとって」と言ったら,「はい,スプーン」と訂正されてしまいました.昭和は遠くなったもんだ(違 テクスチャを参照する シェーダプログラムの中でもテクスチャを参照することができます.もちろん,マルチテクスチャが使えます.複数のテクスチャを組み合わせた処理を手続きで書けるってあたりが,シェーダプログラミングの醍醐味でしょう. とりあえず,前回のプログラムにテクスチャに使う画像を読み込む処理を追加します.テクスチャには,以前に使ったこの画像を使います.なお題とは関係ありませんが,以下のプログラムでは OpenGL 1

    床井研究室 - 第3回 テクスチャの参照
  • 床井研究室 - 第25回 球にバンプマッピング

    球に dot3 バンプマッピング 前回の最後で「dot3 バンプマッピングは面倒」みたいなことを書いたんですが,一応,接空間の算出が容易な球に対してバンプマッピングを行うサンプルを書いてみました. LinuxMac OS X 版 Windows 版 こんな感じです. 接空間の設定 前回は単一のポリゴンに対して dot3 バンプマッピングを行ったので,ポリゴンをローカル座標系の xy 平面上に置いて,法線マップの座標系をポリゴンの接空間と一致させました.しかし,複数のポリゴンで構成された物体に対して dot3 バンプマッピングを施す場合は,そういう手抜きができません. そこで今回は,ポリゴンの一つ一つの頂点に,法線マップの貼付け方に合わせて接空間を設定する方法について説明します.例として,ここでは球に対して下図のように法線マップを貼り付ける場合について考えます.この貼り付け方では極点部

    床井研究室 - 第25回 球にバンプマッピング
  • 床井研究室 - 第1回 シェーダプログラムの読み込み

    戦力外通告 一口に仕事といってもいろんな側面があるとは思うのですが,だからと言って独りよがりなことばかりしていれば,評価を得ることはできません.そして評価が得られない状態が継続していると,当然その組織に貢献していないと見なされ,戦力外を通告されることになります. もっと組織に貢献する形で行動を最適化しなければと考えています.ちょっと頑張ってみます (2013年7月3日追記). 固定機能の追加の限界とプログラマブルシェーダ dot3 バンプマッピングやシャドウマッピングは,画素単位の陰影付けや影付け処理を固定機能のハードウェア上に実装するための,非常に巧みな拡張機能だと思います.しかし,ユーザ(デザイナ,プログラマ)の多様な発想から発せられる様々な要求をこのような形で実装し続けることには,遠からず限界がきます.したがって,ユーザの発想をユーザ自身の手によって実装できるような仕組みを用意するこ

    床井研究室 - 第1回 シェーダプログラムの読み込み
  • 床井研究室 - 第4回 GLSL によるバンプマッピング

    バンプマッピングを GLSL で実装してみる GLSL を使ったバンプマッピングの実装例はオレンジブックにありますが,ここではこれを参考に,以前に書いた dot3 バンプマッピングを使って球にバンプマッピングするサンプルプログラムを,GLSL を使って書き直してみようと思います. GLSL で書くと楽かもー 以前に「dot3 バンプマッピングは面倒」とか書いてましたけど,GLSL ではこれをかなり簡単に実装できます.特に,接空間における光線ベクトルの算出をバーテックスシェーダ内に実装できるため,モデルの描画に光源を関わらせずにすみ,アプリケーションプログラムはかなりすっきりとしたものになります.ここでは球にバンプマッピングするサンプルプログラムから,バンプマッピングに関する処理を取り除いたものを雛形にします. 第4版ソースファイル このプログラムは高さマップ dotbump.raw から作

    床井研究室 - 第4回 GLSL によるバンプマッピング
  • 床井研究室 - 第8回 視差マッピング

    輪講の当番 輪講の当番を学生さん自身に決めてもらったら,その中になぜか私も組み込まれていたので,GPU Gems 2 の Chapter 8: Per-Pixel Displacement Mapping with Distance Functions を取り上げてみました.これは Displacement Mapping を高速化するために 3D テクスチャ (Distance Map) を使うという,結構男っぽい手法です.これを自分で実装してみる気力は今の私には微塵も無いので,とりあえずこの論文の Previous Work として引用されている視差マッピング (Parallax Mapping) を試してみることにしました.視差マッピングは t-pot さんも紹介されていますが,ここでは GLSL による実装を考えてみます(ったって t-pot さんのと変わらんのだけども). バンプ

    床井研究室 - 第8回 視差マッピング
  • 床井研究室 - 第24回 バンプマッピング

    dot3 バンプマッピング バンプマッピングは,陰影計算に用いる物体表面の法線ベクトルをテクスチャによって「揺らす」ことによって,物体表面に凹凸が付いたような陰影を得る手法です. この処理を実現するためには,画素単位に陰影計算を実行する必要があります.ところが OpenGL では,基的には陰影を頂点単位に求め,面内部の個々の画素の陰影は頂点の陰影を補間して求める手法(グーローシェーディング)が用いられています.このため,この方法ではバンプマッピングを実装できません. しかしマルチテクスチャなどの機能の追加により,重ねて貼付けた複数のテクスチャの間で,加算などの画素単位の演算を行うことが可能になりました.陰影の拡散反射成分は光線ベクトルと面の法線ベクトルの内積で求めることができますから,この画素単位の演算に内積が用意されていれば,画素単位に陰影付けを行うことが可能になる気がします.Open

    床井研究室 - 第24回 バンプマッピング
  • 1