スキップしてメイン コンテンツに移動

投稿

12月, 2008の投稿を表示しています

OpenGL: Visual C++ 2008 Express EditionでGLUTを使う

Windowsに Visual C++ 2008 Express Edition をダウンロード・インストールする。このバージョンではPlatform SDKは同梱されている。 GLUT for Win32 からglut-3.7.6-bin.zipをダウンロードする。ファイルを展開し以下に示すフォルダにコピーする。 glut.h → C:\Program Files\Microsoft SDKs\Windows\v6.0A\Include\gl glut32.lib → C:\Program Files\Microsoft SDKs\Windows\v6.0A\Lib glut32.dll → C:\WINDOWS\System これで準備完了。因みにglaux.libは存在せず、リンクする必要はなくなっている。 使用例 C++: OpenGLで正十二面体を回転させる で示したソースを dodecahedron.cpp として保存し、以下のコマンドをコマンドプロンプト上で実行する。Visual Studio 2008へのパス(C:\Program Files\Microsoft Visual Studio 9.0\Common7\Tools)は通しておくこと。 vsvars32 cl dodecahedron.cpp /O2 /FIwindows.h dodecahedron これで回転している正十二面体が表示されるはずだ。

ActionScript 3.0のコードをコンパイルしてそのまま公開できてしまうwonderfl

ウェブ上でActionScript 3.0のコードを書いてサーバ上でコンパイルでき、しかもそれをそのままFlashとして公開できてしまうというサイト、 wonderfl が面白い。早速、適当な短いコードをコンパイル・公開してみた。簡単だ。 鏡文字 MirrorImagedText - wonderfl build flash online 文字を打ち込むと鏡文字になるFlash。最初にクリックしないとアクティブにならないかも。 ところでGoogle Chromeだと正常にコンパイルができなかったな。仕方がないのでFirefoxを使った。うーむ。

PS3: WipEout HDの楽しみ方

最近、WipEout HDの圧倒的なスピードと映像に酔い痴れている。画像はレースの一シーン。この映像が1080p/60fpsで目にも留まらぬ速さで動きまくる。とりあえず数日プレイしてすべてのレースキャンペーンで1位(イージーが多いけど)を取れたのでWipEoutを楽しむ方法について書いてみる。 自分はPSのワイプアウトXLからのファン(Wiperと呼ばれる)なのだけど、ワイプアウトは本当に楽しいと思う。自分の操るクラフト(自分の運転するマシンのこと。空中に浮いているのでクルマとは言わない)が最速クラスで綺麗に走れたときには脳汁が出っ放しになる。だが何故か日本ではあまり流行らない。一部の熱狂的なファンはいるのだが一般受けしないようだ。前作のWipEout Pulse(PSP)は日本語化さえされない始末。欧州ではキラーソフトの一つにも数えられているのになぁ。自分が考えるに流行らない理由はきっとワイプアウトの楽しみ方を知らない人が多いからではないだろうか。そこで自分なりのワイプアウトの楽しみ方を述べることにする。 ワイプアウトは最初から最速で走ることはできない。これはいきなり最速クラスでレースをしても速過ぎてとてもじゃないがゲームにならないからだ。遅いクラスで慣らしていって最後に最速クラスでレースを行うようになっている。ただし、Zoneモードは別だ。これはだんだんとスピードが速くなるモードで壊れるまで走ることができる。ただし、いきなりZoneをプレイしても最速になるまでに壊れてしまうだろう。 で、初めてワイプアウトをプレイすると、最初のところで挫折してしまう人が多いようなのだ。クラフトを思うように操作できない人もいれば、思ったよりも速くないし爽快感がないと感じる人もいるようだ。 操作が難しいという人は、慣れるまでしばらくプレイして欲しい。慣れてくると低速クラスなら苦もなく操れるようになると思う。ワンポイントアドバイスとしては、カーブは外側から内側に入るようにして、気持ち早めに曲がったほうがいいかもしれない。それとエアブレーキを利用すること。あとは曲がりすぎないことかな。人によっては後方視点よりコックピット視点にした方が操りやすいかもしれない。自分はコックピット視点の方が操りやすかった。 思ったよりも速くないと感じた人は、序盤はどれも遅いクラスなのでし

Fortranコンパイラの速度比較

10年以上も前の話だけど、Fortran90はFORTRAN77に比べて遅くてダメダメ、GNU Fortranは遅くてダメダメって云われていた。今でもFortranを使っている身としてはちょっと気になったので簡単なベンチマークテストを実施。Xeon 3.2GHz/メモリ2GB の環境で、 姫野ベンチ(サイズS) を使って測定した。因みにコンパイラのオプションはGNUコンパイラが -O3 、Intelコンパイラが -O3 -tpp7 -xW -Vaxlib とした。 以下、測定結果。 Fortran90 - ifort 9.0 MFLOPS: 1190.497 time(s): 59.9921000000000 Score based on Pentium III 600MHz : 14.37104 FORTRAN77 - ifort 9.0 MFLOPS: 1539.517 time(s): 64.18000 Score based on Pentium III 600MHz : 18.58422 Fortran90 - gfortran 4.0.2 MFLOPS: 603.2382 time(s): 60.6580000000000 Score based on Pentium III 600MHz : 7.281968 FORTRAN77 - g77 3.4.5 MFLOPS: 1426.6582 time(s): 57.7142258 Score based on Pentium III 600MHz : 17.2218533 コンパイラのバージョンがちょっと古いけど、やっぱりFortran90に比べFORTRAN77の方が速いな。GNUコンパイラについてはg77が思ったよりも悪くない。確かバージョン3で大幅に性能が改善されたんだっけな。うろ覚えだけど。

インデントの大切さ

大学の実習で学生にプログラミングを教えているのだが、C言語などでプログラムを書かせるとほとんどの人がインデント(字下げ)をでたらめに入れる。これは何故だろう。 教えている学生は2年生なのだが、1年生で既に講義で習っているはずなのに。自分ならインデントを揃えないと読みづらくてやっていられなくなるが、インデントをでたらめに書く人はそれを苦労とは思わないのだろうか。インデントの意味を教えてもキツネにつままれたような顔して、それが重要であると考えてくれないようなのだ。それならばと放っておくと括弧が足りなくてコンパイルエラー、条件文のスコープが分からなくなって四苦八苦、関数を終わらせずに次の関数を書き始める等々、奇妙奇天烈なコードを書いてくれる。で、最後には分からなくなったので教えて欲しいと言ってきて、インデントがでたらめなコードを自分が読む羽目になるのだ。 プログラムを書くなら、文法などよりもまずインデントの重要性を知る必要があると思う。…と考えるとやっぱりPythonはプログラミングを習い始めるのに良い言語のように思うなぁ。

Python: NumPyで相関係数を求める

覚書。 numpy.corrcoef を使う。 from numpy import corrcoef print corrcoef([1, 2, 3, 4, 5], [1, 2, 2, 5, 5]) 出力結果: [[ 1. 0.92966968] [ 0.92966968 1. ]] 入力データのそれぞれの組み合わせに対する相関係数が行列として出力される。2データの相関係数は右上か左下の値となる。

Goolge Livelyの終焉

少し前のニュースだけど GoogleのLivelyが12月いっぱいで終了する そうだ。少しばかりオブジェクトのプログラミングでもしようかと思ったが、結局は手を付けず仕舞いだった。 まずは、3Dオブジェクトを作ろうとした場合、Mayaなどの本格的な3Dモデリングソフトが必要なことがネックとなっていた。SketchUpあたりで作れたのなら良かったのだけど。その辺のことは疎いので、それだと技術的な問題があったのかもしれないが。簡単なガジェットならばGoogleデスクトップガジェットで作成できるようだったが、これもまったく宣伝していなかったので知っていた人もほとんどいないのではないだろうか。 また、発表後にほとんどソフトウェアなどのアップデートはなかった。大体Google Chromeで使えない時点で問題外である。せめて定期的にオブジェクトを追加するなりしていればまだ良かったのだが。オブジェクトすら増えないとなれば最初に部屋を作った以降はなにもすることはなくなってしまう。 多くの人はこれを以って仮想空間はまったく流行らないと考えるかもしれない。しかし、どんなサービスにでも云える事だが、定期的に利用者の期待するサービスを提供しなければダメなのだ。逆に言えば、良いサービスを継続して出していればもう少し流行っただろうと思う。

11月を振り返って

11月はほとんどブログを更新しなかったな。11月最後のリトルビッグプラネットの記事も以前に書いていたものをアップロードしていなかっただけだし。一番の原因は風邪で体調を崩したことかなぁ。この時期はいつも体調が悪い気がする。仕事の掛け持ちやらで疲れているところに、周りに風邪引きが増えてそれを貰ってしまうという悪循環。一度体調を崩すと気力が削られて様々な「やる気」が萎えてしまうのだ。 体調が悪かったり、仕事がちょっと忙しかったのもあるけど、ブログの更新が滞った別の理由としては面白いゲームが出ていたってのもあるな。ブログ更新の優先度はそれほど高くない、というか一番低い位置にあるので他にやることができてしまうととたんに更新が滞ってしまう。プログラミング関連だと趣味や仕事とも共有できて、ブログネタにもなるんだけど、ゲームだとねぇ。まあ需要があればプレイ日記を書いてもいいのだけど。個人的には他の人のゲームプレイ日記を読むのは好きだし。 因みに11月中に、PS3ではリトルビッグプラネットとWipEout HD、PSPではパタポン2と勇者のくせになまいきだor2をプレイした。この四つのうち主にプレイしたのはリトルビッグプラネットとパタポン2で、どっちもかなり面白いよ。残りの二つも面白いのだけどプレイする時間がなかっただけ。PlayStation Homeの大規模βテストにも当選したけど時間がなくて一回起動しただけだな。 12月は時間と体調の管理に気をつけたい。