■ 2009年08月29日 [OpenGL][GLSL][ゼミ] 第5回 座標変換
バージョンアップ
自宅の iMac の OS を Snow Leopard にしました.OS をバージョンアップをすると定常状態に落ち着くまでしばらくかかるんですけど, 今回は更新前と全然変わりなく安定して動いています. いやぁ起動も速いし Firefox もサクサク動くし, Canvas X も Rosetta で一応動きます (日本語の入力ができないけど). あと, このブログを動かしていたマシン (Celeron 1.4GHz, 箱は10年物!) も, 元 M 君マシン (Athlon XP 3200+) に置き換えました. だいぶ軽くなりました. こいつの OS も VineLinux の 5.0 に更新したいんですが, なかなか取りかかれません. tDiary も 2.2.2 に更新したいんですが, なんだかエラーが出るのでちょっとペンディングしています.
■ 2009年08月28日 [OpenGL][GLSL][ゼミ] 第4回 図形の描画
描画手順の変化
OpenGL では, 描画する基本図形 (primitive) の種類を指定した後, 図形を構成する頂点情報を送って図形を描画します. 従来は glBegin() で描画する基本図形を指定し, glEnd() までの間で glVertex*() や glNormal*(), glTexCoord*() などで頂点情報を送ることができました. OpenGL 3.0 以降において前方互換を指定すると, これらは使えなくなります.
■ 2009年08月27日 [OpenGL][GLSL][ゼミ] 第3回 シェーダプログラム
固定機能の廃止
レンダリングパイプラインにおいて固定機能ハードウェアで実装されていた機能が廃止された場合, それらをシェーダで実装しなければ図形を描くことができません. このため, OpenGL を使ってプログラムを書く際には, CG の基礎的な理論に関する知識が必須になりました. CG の授業をしていて, 内心で「でもこれはハードウェアに組み込まれてるんだよな」とか思ったりしてましたけど, 無駄ではなかったんだと胸をなでおろしていたりします.
■ 2009年08月26日 [OpenGL][GLSL][ゼミ] 第2回 準備
昼食
私が学生の時, ボスはほぼ毎日研究室のメンバーと昼食を食べに行っていました (昼になると「メシ行こかぁ〜」と声をかけてきた). でも, 私自身はそういうことを全然していません. 弁当を持参していることもありますが, 学生さんが怖いというか, 声をかけづらいということもあります. 学生さんに命令形でお願いすることも苦手です. 指導力がなくて申し訳ありません. でも, このままでは大事なことも伝わりませんね. それでも学生さんはマイペースながらそれなりにやってくれているようで, ありがたいことです.
■ 2009年08月21日 [OpenGL][GLSL][ゼミ] 第1回 レンダリングパイプライン
夏休みゼミするぞ
なんだかんだで夏休みも半分過ぎつつありますが, この夏休みに私が研究室の皆さんに対して何もしないってのもなんだか具合が悪い気がします. そこで, とりあえず OpenGL に関するゼミをしようと思います. OpenGL に関しては, もう長いこと「手抜きOpenGL」をベースにやってきましたけど, やはり時代はどんどん変わりますし, いつまでもこの内容でやってるというのも芸がないと思いますので, 少しは今風の内容を盛り込んでみたいと思います. 私も勉強しながらやっていますので, よろしくお付き合いください.
■ 2009年06月20日 [OpenGL] Xcode の Project Template
就職活動
本当に今年は厳しいですね. 「2010年度は採用予定なし」となっているところも多いようです. うちの研究室でも, まだ決ってない人がいます. 必死で就職活動していますが, 特にコンテンツ系は難しいみたいです. それと, 旅費が大変だと言ってました. 私ももっと求人を開拓しないといけませんね. 求人ないかな.
■ 2008年12月21日 [OpenGL][GLSL] 分光現象
PIXAR の映画
WALL·E 見てきました.私が今まで見てきた中で,一番きれいな CG を見せてくれた映画ではないかと思います(リアルだとか色彩がどうとかという話ではなく,「CG 的に」きれいだと思いました).ゴミだらけでしたけど.いやそれにしても,あんなに大量のゴミをよく描いたなと思います.それと WALL·E とても可愛いかったです.Mac ユーザは特にそう思うんじゃないでしょうか(私はそのシーンで吹きました).
■ 2008年12月20日 [OpenGL][GLSL] 屈折マッピング
■ 2008年12月08日 [OpenGL][GLSL] デプスバッファの輪郭線抽出
シェーダで小細工
シェーダが使えるようになって,本当にいろんなことができるようになりました.バーテックスシェーダーにスキニングや変形アニメーションを実装するのも楽しいですし,フラグメントシェーダで色を重ねたりテクスチャのサンプリングに凝ったりするのも楽しくて仕方ありません.でも,やってみたいことはいろいろあるんですけど,自分にとってはどうも「遊び」の域を出ることができず,仕事に結び付けられずにいます.アイデア出てこい,どんどこどん(←わかるかなぁ!!,わっかんねぇだろうなぁ!!).
■ 2008年12月07日 [OpenGL][GLSL] FBO を使ってデプスバッファを表示する
氷河期
昨日は急に寒くなりました.温暖な和歌山市でも雪が舞ってました.学生さんの就職の方にも,また氷河期が来ると言われています.というか,実際来ています.去年と今年でこんなにも差があると,今年就職活動をしている学生さんが可哀想に思えます.なんだかんだ言っても,いろいろ忙しいこの学科でみんなこれまで頑張ってきましたし,ちゃんと自分で考えることができ,デザインもできてプログラムも書けるという有能(便利?)な人材に育ってると思うんですが,やっぱりとても不安なようです.どうか自信を持って,自分を安売りせずに,自分と相性の合った就職先を見つけて欲しいと思います.もっと就職先を開拓しなくっちゃ.
■ 2008年12月06日 [OpenGL] デプスバッファの表示と画面表示の保存
12月だ
ついに師走です.みんな忙しそうです.というか,みんな出張に行ってしまってます.廊下が静かです.なのに,なぜか私はここにいます.どうしてでしょう.なんだか焦ります.でも,他人と比較してても落ち込むだけです.とりあえず,目の前にあることだけでも片付けようと思います.
■ 2008年11月30日 [雑文] Athlon 64 X2 vs. Core 2 Duo
ベンチマーク
雑誌や Web 上に掲載されているベンチマークを見ると,Athlon 64 X2 は同じクロックの Core 2 Duo に比べてずいぶん遅いんですが,安いので,研究室のパソコンは Athlon を搭載したものが多勢を占めています(自分のメインマシンも Athlon 64 だ).しかし先日,研究室の学生さんが,自分のマシン (Athlon 64 X2 3800+, 2GHz) で作ったプログラムを発表用のノートパソコン (Core 2 Duo T7250, 2GHz) で動かすと遅いと言ってました.
■ 2008年11月29日 [メモ] 視線と三角形の交差判定
参考
[MT97] (Fast, minimum storage ray-triangle intersection) → 安直レイトレーシング入門に反映すること。この論文はレイトレーシングやってる人には基本なんだろうな。
■ 2008年11月23日 [OpenGL] Depth Peeling
板書
私が担当しているコンピュータグラフィックスという講義では,板書で解説をしています.いつもチョークまみれになってしまいますし,内心では「画像や3次元図形を板書するのは無理があるなぁ」と思っているのですが,もう意地になって板書しています.しかし先日,講義が終わった後に,一人の学生さんから「どうして PowerPoint 使わないんですか?」と言われてしまいました.
■ 2008年11月22日 [OpenGL] 半透明処理
卒研中間発表会
先日,卒業研究の中間発表会がありました.私が所属する「デザイン情報学科」というところは,デザイン系と情報系の研究室が混在しているので,自分の分野とはかなり離れた分野の発表を聞くことができます.しかし,そのために聞く側が発表を理解するための前提となる知識を持っていない場合があります.ある学生さんの発表がそういう状況を考慮していないものだったため,少しカチンときて,つい,かなり強めに突っ込みを入れてしまいました.
■ 2008年08月30日 [OpenGL] Vertex Buffer Object
OpenGL 3.0 と GLSL 1.3
OpenGL 3.0 と GLSL 1.3 のドキュメントを軽く眺めていたんですが,ちょっと気が滅入ってきました.最初にこれを読んで私が驚いた The Deprecation Model というのは,固定機能を使うのをやめてプログラマブルシェーダに移行することを推奨するものなんですね.後方互換性は維持されているので「現時点では」まだ焦る必要はないと思うのですが,将来の仕様変更に対する前方互換性を確保しようとすると,glBegin() / glEnd() が使えないばかりか,glVertexPointer() 等を使って頂点配列を指定することすらできません.変換行列の操作や光源の設定,材質の設定なんかも一切できなくなってしまいます.
■ 2008年08月29日 [OpenGL] 頂点配列
■ 2008年08月22日 [OpenGL][テクスチャ] GL_CLAMP_TO_EDGE, GL_CLAMP_TO_BORDER
CLAMP
朝日新聞の火曜日の夕刊に連載されている「熱血!マンガ学」というマンガ評を結構楽しみにしているんですが,今週は CLAMP の「カードキャプターさくら」でした.「年齢や性別を超えたつらく切ない恋も描かれる」と評されていましたが,私が子供の本を借りて読んだときは,「これを小学生相手に描くにはちょっと難しいんと違うか?」と思える部分がありました.少女漫画も進化したもんだ.そう言えばこの映画を見に行ったとき(子供連れて行ったんだよ),自分と同じような家族連れに混じって,大学生くらいの男の子のグループをちらほら見かけました.見る方も年齢や性別を超えてるんですね.
■ 2008年08月21日 [OpenGL] 丸い点を描く
Microsoft も Apple も・・・
学生さんの手持ちのパソコンが OS に Vista を搭載したものに移行しつつあるので,研究室のパソコンの OS もそろそろ Vista への移行を考えないといけないなあと思っているのですが,ほとんどのパソコンはメモリが 512MB しかなく,ビデオカードも古いので,Vista を満足に動かせそうにありません.メモリの増設やビデオカードの交換ということも考えたのですが,CPU 自体古いものが多いので,効果があるかどうかわかりません.Microsoft からは Vista が XP よりいかに優れているかということを訴えるダイレクトメールがくるのですが,その最後には「Vista の性能を活かすには新しいパソコンを買いましょう」みたいなことが平気で書いてあります (-_-#).そんな余裕があるわけないので,学生さんには当分 XP で我慢してもらうしかないかなぁ.
■ 2008年08月20日 [OpenGL][テクスチャ] GL_SEPARATE_SPECULAR_COLOR
シス工猫その後
2年前くらいから大学のキャンパスのシステム工学部付近に住み着いているシス工猫ですが,今もなんとか生き延びているようです.ただ,この盆休みに食べ物にありつけなかったのか,とても飢えているようです.コロコロとした体格の猫なんですが,お腹の辺りがへこんでいました.よく見ると,後ろ足の付け根あたりに2センチくらいの怪我もしています.ちょっとかわいそうに思えたので,こっそりおやつをあげました.
■ 2008年02月18日 [OpenGL][テクスチャ] トゥーンシェーディング
リハビリ中
精神的な調子は相変わらず良いとはいえない状況ですが,それでも最近少しだけ意欲が出てきたような気がします.ただ,精神的にはそれについていけないようで,少しでも仕事がたまったりすると,てきめんに調子が悪くなります.思考力も回復していないので難しいことが考えられず,最近の研究成果が頭に入ってこないばかりか,自分が以前にやったことですら理解できなかったりします.それで,とにかく簡単なことからそろりそろりはじめてみようと思ってます.
■ 2008年02月15日 [メモ] fink の dvipdfmx
■ 2008年01月16日 [雑文] GLUTによるOpenGL入門2 テクスチャマッピング
ブログを丸1年飛ばしてしまった
2007年は精神的に調子がすこぶる悪く,何もやる気が起きませんでした.思考力も無くなってしまってアイデアが全然湧いて来ず,結局ブログは全く更新できませんでした.もちろん研究の方も全然進まなかったというか,アイデアが何も出て来ないので何もできないつらい状況が続きました.授業だけを過去に作った資料でかろうじてこなした感じです.それでも年末にこのブログの内容の一部を本にしました(目次).前著では全く触れなかったテクスチャマッピングを中心にまとめたので,その続編として「GLUTによるOpenGL入門2 テクスチャマッピング」というタイトルになっています.今度は付録に CD-ROM が付いています.
■ 2006年11月09日 [OpenGL][テクスチャ] ATI のドライバのバージョン
もう11月だ
また先月ブログを飛ばしてしまいました.先月も特に忙しかったわけではなく,むしろ暇なくらいだったんですが,なんか,何もかも自信を無くしていて精神的にブログを書く余裕がありませんでした.今も復活したわけではないんですけど,学生さんと頭を悩ませていたことに目処がついたので,ちょっとメモっておこうと思います.
■ 2006年09月13日 [雑文] 国際会議に行ってきた
Barnsley に会った
8月は特に忙しかったわけでもないのに,ブログを書くのを飛ばしてしまいました.まあ,ブログの更新間隔が1ヶ月ということ自体間違ってるんですけど.それで今まで書きそびれていたんですが,7月末に国際会議に行ってきました.他の日本人の発表者が修士の学生さんばかりだったことがかなりショックでした.でも,座長があの fractal の大家 Michael Barnsley でした.セッションが始まる前に準備をしていた彼と2人きりになったので,一緒に記念写真を取らせてもらいました.
■ 2006年07月18日 [OpenGL][テクスチャ] シャドウマッピングで FBO を使ってみる
がんばれなんて言えない
気分が落ち込んでいるときは人と関わることが特に億劫になっているので,研究室の学生さん達との関係も疎遠になったりしてしまいます(代わりにこのブログなどで情報提供しているわけですが).それでも彼らは自分達で何か進めているようです.けなげです.だから,彼らに多少進捗状況が遅いからといって「がんばれ」なんて無責任なことは言えません.だいたい,自分自身が「がんばれ」と言われることで煮詰まってしまうし.
■ 2006年07月15日 [OpenGL][テクスチャ] キューブマッピングで FBO を使ってみる
旅費が出た!
以前,お金が無い!と嘆いていたのですが,関係各位?のご尽力により,国際会議の旅費に加えて参加費まで大学(への寄付金)から出してもらえることになりました!助かりました.今後は大学の乏しい資金に頼らず,自分で外部資金等を取得するよう努力したいと思います.本当にありがとうございました.
■ 2006年06月23日 [OpenGL][テクスチャ] 3D テクスチャ
コメントスパム
6月18日の深夜にコメントスパムにさらされました.なぜか RDF ファイルも壊されてしまいました.ちくちく手で復旧したのですが,そのせいで記事の更新日時が変わってしまいました.その後,tdiary にコメントスパム対策のプラグインを追加しました.このブログではトラックバックスパムやリファラのスパムを嫌ってこれらを表示しないようにしているのですが,コメントを通じてはとても重要な情報を頂いていますので,今後もこのスタイルでいくつもりです.
■ 2006年06月01日 [OpenGL][GLSL] 第9回 GLSL によるシャドウマッピング
就職活動
現在,うちの研究室の学部4年生が就職活動にいそしんでいます.すでに活動の「第1波」が過ぎたようで,よその研究室からは内定を取ったという話がちらほらと入ってきます.でもうちの4年生は,なんだかのんきに構えているように見えます.大丈夫かなぁ(内心,焦っているのかもしれませんが).
■ 2006年05月25日 [OpenGL][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 さんのと変わらんのだけども).
Before...
● とこ [水城シャロさま、コメントありがとうございます。御役に立てたみたいで光栄です。 もし問題点など何かお気付きのことがあり..]
● ぶた [>この座標系をクリッピング座標系と呼びます (正規化視野空間とか正規化デバイス座標系とか, いろんな呼び方があるみた..]
● とこ [ぶたさま、コメントありがとうございます。ご指摘の通りこの空間は、クリッピングに同時座標を用いる場合はx,y,zに関し..]