2005年10月アーカイブ
迷路を改良しました、スムーズに移動します。ファミコンからPSってところでしょうか。迷路ファイルが新しい形式になったので、迷路生成プログラムも新しいのにしてください。
auto_labyrinth02_outtext02.zip
↑:向いている方向に進む
↓:バックする
→:右を向く
←:左を向く
PageUp:上を向く
PageDown:下を向く
Fキー:フォグ効果のON/OFF
F1キー:ウィンドウモード/フルスクリーンモードの切り替え
NeHeのプログラムを少し改良して作りました。迷路ファイル"2dlabyrinth.txt"を読み込んで、3Dで迷路を作り、その中を歩き回れるプログラムです。歩き回るといっても、通路の中心しか歩けなくて、しかも移動のモーションがありません。移動はファミコンのゲームみたいになってます。それから、ゴールしてもなにも起こりません。見ての通り、かなり基本的な機能しかないので、迷路としてはかなりやりづらいです。しかし、ちゃんとアップグレードしていくんで、待っててください。
迷路ファイルを作るプログラムはこっちです。
何度も言いますが、迷路生成アルゴリズムは改良予定です。
CAVEでなんか作ろうってことで、迷路とかなら簡単そうだなー と思ったから作り始めた迷路。とりあえず、昔作った迷路自動生成プログラムを少し改良して、"ファイル->名前をつけて保存"で画像を保存する代わりに、迷路を0と1の文字に変えたテキストファイルを出力するように改良。
25, 17
1111111111111111111111111
1111111111111111111111111
1111111111111111111111111
0000100010000000000000111
1110111011111111111110111
1110001000000000000010111
1110111011111111101110111
1110000010000000101000111
1111111110101111101110111
1110000000101000000000111
1110111111101011101110111
1110101000001010101010111
1110101111101110111010111
1110000000100000000000000
1111111111111111111111111
1111111111111111111111111
1111111111111111111111111
出力ファイルはこんなんなります。もちろん1が壁で、0が通路。
迷路のアルゴリズムが見ての通り壁を成長させていくものなので、一番外側の通路が長すぎるなど迷路としてはいくつか欠点も。これは後で変更予定(壁倒し法がいいんですかね?)最終的には不思議のダンジョンみたくしたいんだけど(部屋あったり)、アルゴリズム知らん・・・。
バグの報告お願いしますです。
ちなみに、昔作った方はこっちです。迷路を自動生成して、"ファイル->名前をつけて保存"でビットマップファイルとして迷路を保存します。(昔はこれでクリアに何時間もかかりそうなでかい迷路作ったなぁ)
auto_labyrinth01_outbmp.zip
今日やったこと
・実写テクスチャを貼った、床、箱を表示
それだけですが、今までと比べるとかなりリアルでした。
・4次元上の点を表示
点や線を使っているからか、表示はされるのですが、なぜかうまくいきませんでした。
うっしゃー 次迷路、迷路w
4次元の点の位置データファイルを読み込んで、それを回転し描画するプログラムです。4次元で奥にあるものほど黒く、そして線が下に伸びるようにして、手前のものほど白く、線は上に伸びるようにしました。回転は4次元(視点の回転)でも行なっていますが、3次元への投影は正射影なので単に4次元目の要素(以下w軸とする)を無視してるだけです。
例えばここに四次元の点[3, 4, 5, 6]があったとするとw軸の要素6を無視して、3次元の点[3, 4, 5]として処理してることになります。これだと、4次元の意味がないような感じがしますが、それ以前にwを含む面(wx平面、wy平面, wz平面)での回転を行なっているので4次元の影響は出ます。
具体的にはwx平面でθ回転した場合、回転の行列変換は
[x', y', z', w'] = [x, y, z, w] *
_ _
| cosθ 0 0 sinθ |
| 0 1 0 0 |
| 0 0 1 0 |
|_-sinθ 0 0 cosθ_|
となるので回転後のx座標x'は
x' = x*cosθ - w*sinθ
となって移動します。これはxz平面での回転(y軸回転)の
x' = x*cosθ - z*sinθ
とほぼ同じ、wかzかの違いだけです。
加えて今回は、面にテクスチャを張ってるわけでもなく、ドット単位の点や線で表示しているので、3次元の奥行き感がまったく出ません。なので、3次元で回転しても、4次元で回転しても、このプログラムではまったく同じように見えてしまうわけです。
しかしCAVEの場合は3次元の奥行き感を立体視で感じることができるので、少しはわかりやすくなると期待しているのですが・・・・・。どのみち大きさの変らない点や線はやめようとは考えてます。
現在、高度3次元可視化装置を研究で使っているわけですが、研究課題の方はかなり余裕があります。しかし、せっかくなので研究以外のものを作って装置で遊びたいなと考えています。(装置の利用の可能性を広げる意味でも)
なので何か良いアイデアがないか募集します。どんなものでもいいんですが、立体視にする意義があるものだとなお良いです。
<現在考え中のもの>
・3次元迷路
・シューティングゲーム
・銀河系を表示
・特殊相対論的効果
・メガデモ
時間も限られているので多くのプログラムを作るのは難しいですが、面白いアイデアがあれば優先的に作りたいと思ってます。あまり難しいことを考えてしまうと良いアイデアが浮かばなかったり、僕のと似たようなものになってしまうので、気軽にどんどん書き込んでください。CAVEの機能を無駄使いして、ナンセンスなものを作るってのもアリです。専門的な知識とかはまったく要りません。むしろ無いほうが、奇抜なアイデアが浮かぶかも?
(お米とか一粒ずつ描画して、マトリックスのようにスローで、ちゃぶ台返しをシュミレートとか・・・・・(意味不明)
CAVE行ってきました、前回のリベンジです。僕も少しずつ慣れてきたからか、だんだん言うことを聞くようになってきました。満天の星を表示でき、今回は満足のいく結果が得られました。
・テクスチャーを読み込まなかった問題を解決
AUX_RGBImageRecを使うのに、プロパティ->リンカ->入力->追加の依存ファイルでglaux.libを追加して、
・点や線が使えなかった問題を解決
MatrixModeをデフォルトのまま使ったら、描画されるようになりました。
・描画範囲の問題は未解決
gluPerspectiveで描画範囲を広げるプログラムを作りましたが、大きく変更しても見た目の描画範囲がまったく変りませんでした。こんどはグリットとか表示して確認してみます。
・Fog(霧)の実装成功
特に問題もなく、実装できました。
・条件付ながらOpenGLコードの分離に成功
mainとOpenGLのコードを分離して、Windows用プログラムのOpenGLの部分だけ移動・コンパイルすればCAVE用プログラムが作れるようにするもの。まだ完全でないのでOpenGLのコードを変更しなければなりませんでしたが、概ね成功。
<次の目標>
・点データを読み込んで表示するプログラムを実行
・そのプログラムで4次元データを扱えるように変更
・コントローラーによる操作の変更
・OpenGLコードを変更せずにCAVEでコンパイル・実行できるようにする
・ついでに何か別な志向のものが作れればいいな(迷路とか)
以前書いた、大学生協オーダーパソコンです。
CPU: Athlon64 X2 4400+ 2.2GHz キャッシュ1MB Soket939
メモリ: 4GB (1GBx4) PC3200 DDR400 Dual-Channel
HDD: 300GB 7200RPM 16MBキャッシュ
光学ドライブ: DVD±R/RW 2層対応スーパーマルチドライブ DVD+DL/R/RWx6x16x8 DVD-R/RWx16x6 RAMx5 ROMx16
ビデオコントローラ: NVIDIA GeForce PCX 7800GTX 256MB DVIx2
すばらしい!
もう数学科に足を向けて寝れません。
あとXP Proがついて30万ぐらいです。CPUについては4600+,4800+もありえます。
(impress watch)
ウィルコム、定額でWebブラウズ・メール・通話が可能なモバイル情報端末「W-ZERO3」
ウィルコム、VGA液晶搭載のモバイル端末「W-ZERO3」〜シャープ/マイクロソフトと共同開発
んー 来ました。WillcomがPHSで携帯端末の分野に乗り込んで来た、って感じです。てかW-SIMもう出てたんですね、これが売れたらどんどんW-SIM対応製品が出てくるんでしょう。
やっぱり単体で通話可能ってことと、データも定額ってのが魅力的です。
ですが一方、通信速度が最大速度が128kbpsだったり、11月下旬からの通話・メール定額に追加できる「データ定額」も10万パケットまでと不完全ですし、料金の方も他社と比較する必要がありそうです。
それから、僕はPDAに詳しくないのですが、通話機能以外に他のPDAと差別化できるような所がないような気がするんですが、気のせいでしょうか?
そして通話機能を利用する時は、このデカイ携帯を耳に当てるんでしょうか?。イヤホンマイクやヘッドセットはビジネスには向いているかもしれませんが、日本ではまだ一般に普及していない、利用しずらい傾向にある気がします。顔に直接当てずに話せたとしても、PDAに向かって話しかけている姿は、あまり想像できません。その辺の対応もとてもきなるところです。
僕は京ぽん利用者なので、通話定額も含めてWillcomには期待するところが大きいです。無線を利用した完全な通話・データ料定額、料金も良心的な夢のサービスを望んでしまいます。
今日、CAVEに行ってきました、まだ2回目です。今回はプログラムを持っての遠征です。とりあえず問題点を列挙
・コンパイルできないので、CAVEに関係ないエラーすら見落としてしまい、それを直すのに時間がかかる。
・傾向の違いで、さらなるバグが発生。デバックしながら実行とかもできないので、原因が見つかりにくい。
・テクスチャーが読み込めなかった。
・点が表示できなかった。
・描画される範囲が、あまり広くない。
・部屋が狭いのに加え、大きくてデリケートなCAVEに気を配らなきゃいけないので、あそこで長時間コーディングするのは無理。
・教授がついていないと部屋が使えないので、頻繁にCAVEに行くことができない。
・ネットが使えないとコーディング中に調べたいこととかが分からない。
後半はもう何度も言ってることなんですが、たのむからなんとかしてください・・・。
結局、今日はテクスチャも貼っていない立方体を、10万個ほど表示しただけに終わりました。
なかなか難しい子ですが、描画されればいい奴なんです、ホントに。
1月の学会発表ではCAVEを使った力学的対象、複素2次元のエノンマップをやるといってました。なんのことだか理解していないんですが、そんな難しくないとのことです。
んでそれをやるために作っておくもの。
1.CAVEでどのぐらいの数の点をどういう形式で、処理落ちがあまりなく描画できるのか調べる。そのために、4次元でランダムに生成した点を4次元で回転させた後、それを描画するテスト用プログラムを作る。
2.コーディング場所と、コンパイル&実行場所が離れているうえに、後者は頻繁に利用できない。なので、メインとOpenGLのソースファイルを分離して、CAVEのmainをWindowsのmainに置き換えても動くようなものを作る。これは難しくない。これができればCAVEに行かなくてもコンパイルとプレビューができる。
3.エノンマップの計算用プログラム。これは点の座標を計算し出力するだけのもの。んで出力結果をOpenGLに読み込む。
4.3DCGソフトのデータを読み込んで描画するプログラム。研究にはあまり関係ないけど、これがあればCGソフトの恩恵に与れます。
研究室PCのビデオカードを新しくしようと教授に頼んだら、すんなりOK。
んで結局、新しいマシンを買うことになりました。やった〜
予算は30万前後。この研究室最高です、教授ありがとー。
んで現在、構成を考え中。いい案があればコメントください。予算内でCGに強いマシン、が目標です。
研究室のマシンのビデオカードを新調予定。もちろん研究のためですよ、もちろん。
1.今までのマシン(AGP)で一番良いビデオカードを買う。
2.新しいマシンを買う。
3. 研究室の他の人のマシン(PCI Express)と僕のマシンを交換して、PCI Expressで高いビデオカードを買う。
予算は多くはなさそうですが、7800 GTXは買えそうなぐらいです。新マシンも安ければ・・・。
とりあえず、値段とスペックをまとめてくれということです。
自分がとても恵まれた環境にいることを自覚します。
CAVEに入っていたサンプルプログラムを追記に書き込みました。
これは赤い球を表示するだけなので単純ですが、他のサンプルも単純です。つまり、CAVEに関する処理にはほとんど気を使わずに、OpenGLのコードに集中できます。現在はこれらのサンプルを元に前回作った星のプログラムを作り、環境の簡単な負荷テストをしようと考えています。
http://www.itmedia.co.jp/news/articles/0510/05/news030.html
反応が遅かったことに反省しつつ、とても驚き。これからどうなっていくのでしょう?






