■ 2010年08月20日 [OpenGL] MFC によるダイアログベースのアプリケーション(1)
MFC って
実は私, 使ったことないんです. それに, いまさら MFC というのもなんだかなあとは思います. 実際, 某所で UI 用のツールキットって何がいいかなって聞いてみたら Qt 一択みたいに教えてもらいました. でも私, 自分の Linux マシンから KDE 関係排除しようとして Qt も全部消しちゃったくらい Qt には近づかんとこうとしてました. んで, 今回なぜか MFC を使っちゃったんですね. いろいろ事情もあったんですけど(でもその目論見は失敗したのですけど). で, そのプログラムを以前に私自身が FLTK 使えばってアドバイスした学生さんに送っちゃったから, 罪滅ぼしに勉強した MFC の使い方をメモっておきます. もちろん, 間違ってるところがあると思います.
■ 2010年01月31日 [OpenGL][GLSL] ゼブラパターンの映り込み
曲面の評価
風邪ひいて寝転がっていてふと思いついたのでメモ.原田研のひろぴこさんが曲面を評価するときに縞模様 (ゼブラパターン) の映り込みを表示してましたけど, これは GLSL による環境マッピングのフラグメントシェーダのプログラムを以下のように書き換えるだけで実現できます. (2月1日 車の画像を追加)
■ 2010年01月21日 [OpenGL][GLSL][ゼミ] 第18回 レイキャスティングふたたび
聖子と吉三郎
という少女マンガがありました. 作者は沖倉利津子さんという方です. 先日, ある大学の有名な先生がこのマンガについてつぶやかれまして私はたいそう驚いたのですが, 私もこの時代の少女マンガについては結構熱く語れるんじゃないかと思います. でも, すでにそんなことをしたらとっても恥ずかしい年齢なので, しません. それでこのマンガですが, 中学生の主人公が本屋に CQ 誌を買いに行こうとしたり (このことは後に CQ 誌上でも話題になりました), フォックスハンティングしたり, 彼のリグが私も使っていた TS-600 だったりしたので (中学時代の私の愛機は RJX-601 でしたが), めちゃくちゃつぼにはまりました.
■ 2010年01月13日 [OpenGL][GLSL][ゼミ] 第17回 レイキャスティング
■ 2010年01月11日 [雑文] ラスタライザ野郎の独り言
余談が長い
実は学生さん向けに GLSL でレイキャスティングのサンプルを作ったのだが, その説明を書いているうちに余談の部分が異様に長くなってしまったので, 先にこちらを掲載することにした. これは学生さん向けではなく自分の独り言なので, 文体がいつもと異なっている. また, 思い出の部分は 26 〜 27 年前の記憶をもとに書いているので, 正確ではない. 加えて, 私はコンピュータのアーキテクチャの知識を持っていないので, おそらく思い込みや間違いを含んでいる. もしかしたらむちゃくちゃ書いているかも知れないので, 間違いがあれば指摘して頂けるとありがたい.
■ 2009年12月31日 [OpenGL][GLSL][ゼミ] 第16回 バーテックスブレンディング
大晦日
なんだかんだ言ってる間に, 大晦日になってしまいました. B4 & M2 の方は, 論文の進捗は具合いかがでしょうか. 研究内容についてはあんまり心配していませんけど, プログラムにこだわって文章書くのが後回しになっていないかが心配です. でも, こういうことを大晦日に書いたりして, 私もしかして鬼? ところで, 私は昨日の夜, 家族と一緒に「のだめカンタービレ」を見に行ってきました. 結構面白かったです. 焦っている (かも知れない) 学生さんを尻目にお気楽やってる私もしかして鬼?
■ 2009年12月25日 [OpenGL][GLSL][ゼミ] 第15回 ポイントのアニメーション
あああまた年末だ
夏休みに何か始めて気がついたら年末になっているという状況には前にも陥った記憶があるのですが, 考えてみれば毎年こういうことを繰り返した挙句に除夜の鐘を聞いているわけで, このまま何の進歩もなく老いさらばえていくのかと半ばあきらめに似た感情を抱くとともに, 人生の悲哀を感じている今日この頃です.
■ 2009年10月15日 [OpenGL][GLSL] デプスバッファを使ったボクセル化
卒業生の進路
この間, 卒業生から「自分がリードプログラマを務めた」というゲームソフトが送られてきました. もうね, 鳥肌が立ちましたよ. 自分のやっていることが学生の皆さんにとって役に立っているかどうか正直言って自信が無かったんですけど, 本当にそういう仕事してるんだ. すげー. みんなあんまり連絡くれないし, くれても「元気です」程度で近況が今ひとつわかんないんだけど (心配な人もいるし), みんなそれなりにやってるんだろうな. "No news is good news" だと思っておこう.
■ 2009年10月07日 [OpenGL] とっても簡単なボクセル化
納豆襲来
長男が仕事で納豆を作っているので, 少しでも売り上げに貢献しようと, その納豆を買って毎日食べています. 本当に毎日毎日食べています. 納豆はおいしいですよ. 健康にもいいですし. でも, 毎日毎日毎日食べ続けていると, 少しばかり飽きてくることもあります. それで納豆チャーハンにしてみたり, 油揚げに包んで巾着にして焼いてみたり, いろいろ工夫しながら毎日毎日毎日毎日食べています. でも, チャーハンに納豆を入れると, チャーハンのパラパラとした食感が失われてしまいます. 巾着は, 納豆だけでもダイレクトに食べられるうちの奥さんならおいしくいただけるのでしょうけど, 納豆を食べると言う食習慣自体がなかった私には少しつらいものがあります. 本当に毎日毎日毎日毎日毎日…ああ, そうだよ, 私は納豆が嫌いなんだよ. もう, どうしよう. 納豆を毎日毎日毎日毎日毎日毎日飽きずにおいしく食べられる方法はないでしょうか.
■ 2009年09月22日 [OpenGL][GLSL][ゼミ] 第14回 頂点座標の生成
つゆ
島根県松江市のマルヤしょうゆは美味しいです. ただ, ぽん酢しょうゆとめんつゆの瓶が同じなので, 先日子供がしらす丼にぽん酢しょうゆをかけようとして, 間違えてめんつゆをかけてしまいました. しかし, 食べてみると意外と美味しい! ということで, 結局全部たいらげていました. まあ, そばつゆは天つゆとあんまり変わりませんから, 組み合わせとして不自然ではないと思います. 機会があれば, しらす丼にめんつゆをかけて食べてみてください.
■ 2009年09月21日 [OpenGL][GLSL][ゼミ] 第13回 テクスチャ座標の生成
テーマソング
スーパーのオークワのテーマソングは思い出せても, イズミヤのテーマソングが思い出せないという現象が謎だったんですが, なんとなく原因が分かったような気がします. イズミヤのテーマソングは, 現在は「しあわせくるくる」という歌が主力なのだそうですが, 店内では「さあ, 歩き出そう〜」という歌い出しで始まる「明日へ吹く風」という歌をよく耳にします. この歌は穏やかなとてもいい歌で, 聞いていると気分が軽くなってきます. 気持ちよく買い物ができるという点では, 客のことを考えた非常に優れた歌だと思います. ただ, これは多分テーマソングとしては致命的だと思うのですが, 歌詞にイズミヤを特定するフレーズが一切出てこないために, この歌はイズミヤのテーマソングとして記憶に定着しにくいようです. それが「イズミヤのテーマソングどんなのだっけ?」に対して, つい「お元気で〜す〜かぁ〜」とオークワのテーマソングを歌ってしまう原因になっているように思います.
■ 2009年09月20日 [OpenGL][GLSL][ゼミ] 第12回 模様を付ける
877.fm
実は今日知ったんですけど, 和歌山市内にある "バナナ FM" (877.fm, エフエム和歌山) は, 株式会社ではなく NPO 法人なんですね. この放送局は空中線電力が 20W しかなく, サービスエリアが和歌山市とその周辺くらいしかありません. 番組内容も独自のもので, メジャーなタレントを呼ぶとかそういうこともなく, 時には高校のブラスバンドの演奏を流したりして, それはもう地味というか, 地元に密着した内容になってます. どこかのテンションがやたら高い放送局と違って DJ も日常会話のように自然にしゃべっていて, 気負いがありません. いいです. 日々の生活に実にフィットします. CM にも「近所のあの店が CM してる!」という親しみやすさがあります. 私はこの放送局と縁もゆかりもありませんが, 永く続いて欲しいと思ってるので, 皆さん応援してあげてください.
■ 2009年09月14日 [OpenGL][GLSL][ゼミ] 第11回 拡散反射光による陰影
固定機能ハードウェアとプログラム可能ハードウェア
固定機能ハードウェアは処理内容をハードウェアで実装しているので, 同じ処理内容 (かつ, 同程度のハードウェア量・クロック) なら, 一般的にプログラム可能ハードウェアよりも高速です. しかし, ハードウェアで実装すると「できること」が決まってしまうので, 多様な処理に対応するために, ある程度汎用的に作っておかなければなりません. そのため, 処理内容によっては不要な手順が含まれてしまうことがあります. その点でプログラム可能ハードウェアは, 目的を達成するのに最適な手順が選択できるため, 同じ目的に対して固定機能ハードウェアより高速な処理が行える可能性があります.
■ 2009年09月12日 [OpenGL][GLSL][ゼミ] 第10回 球を三角形で描く
■ 2009年09月10日 [OpenGL][GLSL][ゼミ] 第9回 球を線で描く
3D プログラミングは難しい
shi3z さんの日記「僕が3Dプログラマをやめた理由 または3Dプログラミングを学ぶべき6つの理由」に, うなずくところがたくさんありました. 本当に, 3D プログラミングは難しいんです. 意義のある成果を出そうとすると, とてつもなく難しいところに分け入らなければなりません. それで, いつもへこたれてしまいます. だから1年生向けの授業で, つい「3D CG ってこんなに難しいんだよ, だからいっぱい勉強しよう」みたいなことを言って, 嫌われてしまいます. でも, CG って面白いんです. 私が CG に出会った 30 年前も, 今も変わらず面白いです. みんな, 3D CG プログラミングやろうよ.
■ 2009年09月09日 [OpenGL][GLSL][ゼミ] 第8回 指標を用いた図形の描画
間に合わん
授業期間中だろうが夏休みだろうが, 延々と講義資料ばかり作っている気がします. それなのに, Web 上のものでも "find public_html -type f | wc -l" で 7240, "find public_html -type f -name '*.html' | wc -l" で 1993, "du -s -k public_html" で 635184 くらいしかありません (1万ファイル / 1GB は突破していると思ったんだけどな). これには, この blog や研究室のホームページなんかは含んでませんけど, 量の割に全然管理できてません. もう何がなんだかわかりません. 何をするにも時間がかかりすぎます.
■ 2009年09月07日 [OpenGL][GLSL][ゼミ] 第7回 カメラパラメータ
レンズの画角
スクリーン上の表示領域を指定して視野錐台を設定する方法は, 柔軟ですが, 直感的に理解しやすいとは言えません. そこで, カメラの投影方法にならって透視投影の変換行列を決める方法が用いられます. 現実のカメラではスクリーン (フィルムや撮像素子) の大きさが固定されてるので, スクリーンに投影される範囲は (near に相当する) レンズの焦点距離によって決まります. しかし, コンピュータでは決まった大きさのスクリーンを想定する必要がありませんから, スクリーンの大きさに依存しない方法としてレンズの画角 (field of view - fov ですが, ここでは fovy とします) を用います.
■ 2009年09月02日 [OpenGL][GLSL][ゼミ] 第6回 視点の移動
クリッピング空間の奥行き
OpenGL の解説には, しばしば「初期状態では, 視線は Z 軸の負の方向に向いている」と書かれています (私もそう書いてしまいます↓). xy 平面については確かにその通りなんですけど, z 方向についてこれを鵜呑みにすると, 混乱することがあります (私はしました).
■ 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) で動かすと遅いと言ってました.
● 通りすがり [OnInitDialog()にある m_pDC->m_hDC = m_glView.GetDC()->GetSaf..]
● とこ [ありがとうございます!修正します!]
● わたなべ [> ウィンドウのサイズを変更できるようにするには, すべてのコントロールの配置を計算し直さないといけないんですかね...]