忍者ブログ

マインのブログ

マインが何かを気まぐれに書く日記です。

[PR]

カテゴリー:

2024/11/24(Sun)02:09

×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

No.|CommentTrackback

本番でした

カテゴリー:プログラムとか

2007/12/21(Fri)23:45

今日はプレゼンの本番でした。
先生からの修正はなし。
別に原稿が完璧だったわけではなく、単純に先生が忙しかったからです。
で、プレゼンはぐだぐだもいいところ。
あーあーあー。

今日は昼ちょっと前に学校へ。
昼食を食べたあと研究室に行ってプログラム。
昨日付けられなかったJCanvas3Dの実装をしてました。
で、色々調べてみたところ、それっぽいサンプルを発見。
さっそく自分のコードにいれてみたのですが、なんかうまく動かない。
ここかー!それともここかー!といいながらごちゃごちゃやってました。
そしたらなんかうまくいった。
でも5ピクセルy座標がずれる・・・。

最初の構造はこんな感じ。
ContentPane
       |
      +--MainPanel
               |
              +--toppanel
                      |
                     +--JCanvas3D
これだとパネルの座標がずれるのでtoppanelを消して、
JCanvas3Dを直接MainPanelに追加してみました。
そしたら別ウィンドウが出てきてそこに3DUniverseが・・・。
しかも3Dの初期化が行われない・・・。
その後もごちゃごちゃやってたらこんな構造になりました。
ContentPane
       |
      +--MainPanel              toppanel
               |                               |
              +----JCanvas3D------+
なんかこうやったらうまくいった・・・。
よく分からん・・・。
Javaのバグですかねー。

そのあとオブジェクトを回転させようと思ったのですが、動かず。
JCanvas3D.getOffscreenCanvas3D()で、Canvas3Dを取得してこれに
普通のJava3DみたいにUniverseに登録します。
このUniverseにBranchGroupを追加してそのグループをBehaviorでぐりぐり動かすようにすると
ただ単にJCanvas3Dを有効にしただけではCanvas3Dには反映されません。
しかし、JCanvas3D.processMouseEvent(MouseEvent e)なるprotectedなメソッドがあります。
protectedなので直接さわれませんが、JCanvas3DにMouseListenerやMouseMotionListener、
MouseWheelListener、KeyListener等を登録してやると自動的にprocessEvent系が働き、
JCanvas3Dに対するアクションがCanvas3Dに反映されます。
まあ、BehaviorをJCanvas3Dで反映させたかったらリスナーを登録しろということです。
はい。

これでSwingと一緒に動くようになりました。
なのでエクスポータを作ることに。
まず手始めにDirectXのXファイルから。
形式を読んでがんばって記述。
ふー、ようやくできた、さて実行実行。

・・・、何じゃこりゃ?
なんか変なふうにメッシュができてる・・・。
色々調べてみた結果、GeometryInfoをStripifierで最適化したときに
メッシュの情報が変わってしまい(最適化してるから当たり前だけど)
その情報がうまく取り出せないことに原因があるようでした。
うーん、なんか頂点インデックスが取れんのよねー。
GeometryInfo.getCoordinateIndeces()の返り値がnullになるんよ。
でも、最適化直後ではnullになってなかったような・・・。
Shape3Dに登録した時になくなるのかね?
まあ、もし登録した時にけるのであればどっかにインデックスを保存しとけばいいんですけどねー。

しかし、これじゃプレゼンで見せられないのでStripifierを使わないことにしました。
そしたらうまくいったー。
よっしゃー。
この2日でずいぶん進展があったものだ。
我ながらすごいね。

そのあと夕食を食べて、また研究室に戻ってプレゼンの準備。
で、程なくしてプレゼン本番。
・・・、えー、もう何も聞かないでください・・・。
ぐだぐだもいいところ。
かみまくり。
ああ・・・。
テキトーにプレゼンしてテキトーに質問に答えてました。
あんなんで分かりましたかね?
一応、全ての質問に質問した人の意図に合った答えを返しておきました。
これもぐだぐだでしたけどねー。
文法とか知るかよ。

最後に先生に、それじゃつまらないよね、もっとやろうね、と言われました。
くはー。
ま、確かにこれじゃただのパフォーマンスの改善でしかないですからねー。
研究じゃないですよねー。
でも、処理スピードは平均10倍以上、ものによっては50倍速くなり、
メモリ使用量も10分の1以下にしたのでオレのノートでも動くようになりました。
今までのプログラムはオレのノートでは動かなかったですからねー。
ま、まだ前のプログラムほどきれいにできてないのでがんばらないといけないんですけど。
冬休みの宿題だね、こりゃ。

今日は3人プレゼンをやったので結構時間がいっぱいいっぱいになりました。
急いで部室に行き、ゲームの提出。
今回はなんかゲームの集まりが悪くて、オレのを急遽出すことにしました。
さすがに⇒くんとかは今まで何回も出してたのでやめました。
今回出したのはボタンdeげ~む。
前出した時にあったポケモン現象を直したバージョンです。
改善があったので出すことにしました。
今回のゲーム数はどれくらいになるんだろうなー。
みんながんばってるけどやってることがエディターだったり下準備だったりであまり出せなさそうです。
明後日の焼き日にどれだけ集まってるか見てみますかね。
ついでにデバックと称して遊んでるか。

で、帰宅。
いつも通りアニメ収集。
もやしもんが終わりましたなー。
二宮くんも終わったようで。
まだちゃんとしたソースのじゃないけど。
もう今年も終わりますからね。
どんどん終わっていくわけです。
あと3週間もすれば新しいアニメが始まるので忙しくなりそう。
オレのHDはもつのか?

今からアニメ。
もうプレゼンが終わったからウハウハだぜ。
実家に帰るまでにできるだけ多く見てDVDに焼かないとな。
忙しい忙しい。

拍手[0回]

PR

No.1216|Comment(0)Trackback()

Comment

Comment Write
Name
Title
Mail
URL

Pass Vodafone絵文字 i-mode絵文字 Ezweb絵文字 

Trackback

URL :