CAVEの最近のブログ記事

CAVE11ぐらい

|

昨日はCAVE

引継ぎ用のプログラムを実行してましたがそのなかで面白かったものが一つ

NeHe Productions : lesson23 Sphere Mapping Quadrics In OpenGL

これの環境マップもどきが見事にCAVEで動きました。2Dで見ると見慣れた効果ですが、CAVEで見るとまた新鮮で感動します。

すばらしい

 CAVElibの処理プロセスは、ComputeプロセスとDisplayプロセスに大きく分けられる。Computeプロセスはフレームの最初に実行され、メモリのシェアにより全てのPC、Displayプロセスで同じシーンが計算される。Computeプロセスはそれぞれのマシンで同じ計算が行われている。これは無駄だと思う。

 僕はこのComputeプロセスをCAVE-Control(スクリーンと繋がっていない、統括用PC)でも計算できると思っていたが、どうやらそれは簡単にはできないっぽい。だから次に考えるのはComputeプロセスで行われる処理を4つに分けて、それぞれのマシンで別な計算をする、ということになる。

CAVE掃除

|

 今日はCAVEの掃除をしてきた。とはいえ、うん百万もする鏡とかスクリーンを僕らが雑巾とかで拭くと逝ってしまわれるので、床掃除機かけたりPCとか軽く拭く程度。

 まぁ今年もご苦労様でした、来年もよろしくCAVEさん。頼むからあんまり壊れんでくれ・・・。

CAVE10

|

 かなり久しぶりのCAVE。調子が悪かったり、教授の都合とかでぜんぜん使えませんでした。ほんと何とかしてほしいっすTT。今日はCAVEの基本的な機能のテストとエノンマップ表示プログラムの教示実験でした。

<今日やったこと>
・CAVEのプロセスに関するテストを実施、それにより以下のことが判明
1.frameUpdate関数内ではCAVEMasterDisplayでもCAVEMasterWallでも変数が共有されていてもされていなくても、すべてのスクリーンで同じ演算結果が表示される。
2.mainのwhileループ内でも変数が共有されていてもいなくてもすべてのディスプレイで同じ計算結果になる。

・CAVEのナビゲーション関数のテストを実施、以下の結果を得る。
1.NavLock, NavUnlock関数は使っても使わなくても結果が同じだった
2.NavLoadIdentityを使うやり方、使わないやり方の両方ができる。
3.ナビゲーション座標とワールド座標では微妙に位置が違った。

・エノンマップ表示プログラムを表示テスト、うまく表示できたが13周期でもフレームレートが遅くなっていた。FPSの表示がうまくいかなかったので詳しくは分からなかったが、シュミレーションモードでは13周期で約40フレーム毎秒,15周期では約15フレーム毎秒だった。実際にCAVEで見るときにはもっと遅くなっていると思われる。

CAVEメンテ

|

 今日はCAVEだー、と思ったらまたメンテですTT。ビデオカード(Wildcat)が不調らしい

まじ、デリケートだ・・・・・

CAVE9

|

今日はレースゲームプログラムと3Dデータ読み込みプログラムがちゃんと動いた、バンザーイ!しかも、担当の教授が「土日も自分がいるときに使ってもいいよ」とメアド交換、ヤッター! 今日はいい日だー

<今日やったこと>
・レースゲームプログラムがVS.netが入っていないPCで動かなかった問題解決、無事表示できました。

・同じ問題で動かなかった3Dデータ表示プログラムもうまくいきました。

今日は他にもCAVEの動作を確認するプログラムをいくつか動かしてみる予定でしたが、残りの時間は担当の教授にこのプログラムを見てもらうことに使いました。なんせ、ビジュアルのインパクトは今までで最大なので。教授ともいろんな話をして、楽しんでもらえたようです。

明日は、研究課題を表示するプログラムの改良、これも楽しみ。

CAVE8

|

 今日は久しぶりのCAVEだったのに1時間も使えなかった・・・。会議の結果、僕にCAVEを一人で使用できる権限を与えてもらったはずなのだが、管理の方の教授は二人以上でないと駄目だと考えているらしい。高価な機械だし、デリケートなので心配するのは分かるが、研究がぜんぜん進まない。もっとCAVE使いたい・・・。

とりあえず今日の結果

・jpeg読み込みライブラリを使ったプログラムがコンパイルできない問題が少し解決。プロパティ->c/c++->コード生成->ランタイムライブラリを変えたら、コンパイルできた。最初は(別な学生が設定したものだが)マルチスレッドDLLになっていたが、デバックモードだったのでマルチスレッド デバック DLLにした。それからCAVEライブラリもlibcave_ogl_mt_MD.libからlibcave_ogl_mt_MDd.libに変更。

・上のプログラムでコンパイルはできたが、3番目のPC(側面描画用)でMSVCP71D.dllがありませんというエラーメッセージが出て、実行できなかった。コントロール(1番目の)PCにはVC++.netが入っているので、.NET Framework SDKもインストールされているが、他のPCには入っていないためこのような事態になったものと考えられる。

・ナビゲーション関数がどう働いているのか調べるプログラムを作って実行。原因不明のエラーで停止。

CAVE7

| | コメント(1)

 あー 疲れた、さすがに6時間あの部屋はつらい。空気は悪いし、5台のCRTと3D酔い発生器からの攻撃力が予想以上に強い。ということで、7回目いってみよう。

 今日はレースプログラムと3Dデータ表示、それからいままでの問題直したやつに、音とJoyPadのテストまでやろうとしてたので、ウキウキでした。最初は・・・。

<今日やったこと>

・ブレンドがうまくいかない問題解決。Depth Testに加えglDepthFuncをGL_ALWAYSにしたら、直った。普通にOpenGLでの僕のミスです。

・4次元上の点を表示するプログラム成功。ワンド(コントローラ)の位置座標の範囲が分かったら、ほぼ問題解決しました。

・迷路を表示するプログラムで、ゲームの進行を”開始画面”、”ゲーム”、”終了画面”に分けて、開始画面、ゲームを別なファイルにしたものを作りました。それはその状態ではコンパイルできず、結局開始画面を削除しました。

・CAVEで下プロジェクタに投影される映像が正しくない問題解決。やっぱりglLoadIdentityはCAVEでは使っちゃ駄目みたいです。代わりにglPushMatrix、glPopMatrixを使いました。

・迷路プログラムでglLoadIdentityを使わなかったときに、開始位置がおかしくなる問題解決。結局、開始位置が変なのではなく、迷路全体が小さすぎて位置がおかしく見えるだけでした。迷路を10倍ぐらいにしたら。普通に見えるようになりました。

・迷路は普通に表示できるようになりましたが。CAVEの4つの画面で微妙に位置がずれているのを発見。よく見ると、それぞれの画面で別な移動&当たり判定プロセスが動いているみたいです。(ありえん・・・。)

・上の問題が解決するかもと思い、OpenGLの行列変換関数(glRotate, etc...)などを使わずに、CAVENav~関数だけで移動・回転を行なうようにしようとしましたが、どうやってもうまくいかず。位置がずれたり、移動がおかしかったりしてました。(わからん・・・)

・迷路を改造したレースゲームのプログラムをコンパイルできず!Windows用に作ったプログラムさえ、同じ意味不明なエラーを吐いて、コンパイルされません。原因はJPEGファイルを読み込むライブラリにあるようです。画像は全部BMP使えってことでしょうか?・・・。

・レースゲームと同じ理由により、3Dデータを読み込むプログラムもコンパイルできずTT。今日一番楽しみにしてたのはこの2つだったのに・・・・。

・音、出ました。そりゃそうだWindows起動音してたし、いつも。

・JoyPad認識、んでJoyToKeyを使ってキーボード等の入力に変えて、CAVEでそれをつかまえることで、JoyPadでコントロールできるようになりましたー、やったー。USB延長ケーブル使えば距離の問題も解決。みんなが慣れ親しんだ、ゲームコントローラーの方がやっぱ使いやすいです。


 こんなんで、右の杭を打つと左の杭が出るがごとく、過去のバグを直したら新たなバグが発生しました。まともなプログラム動かせるのは、いつになることやら。

http://www.morrowland.com/apron/tut_gl.php

 ここのサイトのプログラム参考にして、とりあえず3Dファイルの読み込み成功。しかし、Blenderとか利用できる3DCGソフトのデータはまだ読み込めん。ということで、サイトのサンプルデータしかロードできてないので、アップはしません。


 あと衝動買いで、衝突判定の本買っちまいました。明日には届くだろう。データのロードもうまくいったし、次は当たり判定ですよやっぱり。


 しかし、どう見てもゲーム作りだよな・・・・。まぁ研究もやってるし、教授も喜んでるし、大学に貢献してるんで問題ない!

3drace01.jpg

3DRace01.zip

ということで、次のサンプル。ってただ迷路を大きくして加速度つけただけなんだけどね・・・。
まぁ最初ってことで。

<操作方法>
マウス左:加速、ゲームスタート
マウス右:減速
マウスで画面上:上移動
マウスで画面下:下移動
マウスで画面右:右回転
マウスで画面左:左回転

このアーカイブについて

このページには、過去に書かれたブログ記事のうちCAVEカテゴリに属しているものが含まれています。

次のカテゴリはMobileです。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。

Powered by Movable Type 4.01a