2008年12月23日火曜日

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

これで回転している正十二面体が表示されるはずだ。

続きを読む...

2008年12月18日木曜日

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

このブログ記事をはてなブックマークに追加

ウェブ上でActionScript 3.0のコードを書いてサーバ上でコンパイルでき、しかもそれをそのままFlashとして公開できてしまうというサイト、wonderflが面白い。早速、適当な短いコードをコンパイル・公開してみた。簡単だ。



文字を打ち込むと鏡文字になるFlash。最初にクリックしないとアクティブにならないかも。

ところでGoogle Chromeだと正常にコンパイルができなかったな。仕方がないのでFirefoxを使った。うーむ。

続きを読む...

2008年12月16日火曜日

PS3: WipEout HDの楽しみ方

このブログ記事をはてなブックマークに追加

最近、WipEout HDの圧倒的なスピードと映像に酔い痴れている。画像はレースの一シーン。この映像が1080p/60fpsで目にも留まらぬ速さで動きまくる。とりあえず数日プレイしてすべてのレースキャンペーンで1位(イージーが多いけど)を取れたのでWipEoutを楽しむ方法について書いてみる。

自分はPSのワイプアウトXLからのファン(Wiperと呼ばれる)なのだけど、ワイプアウトは本当に楽しいと思う。自分の操るクラフト(自分の運転するマシンのこと。空中に浮いているのでクルマとは言わない)が最速クラスで綺麗に走れたときには脳汁が出っ放しになる。だが何故か日本ではあまり流行らない。一部の熱狂的なファンはいるのだが一般受けしないようだ。前作のWipEout Pulse(PSP)は日本語化さえされない始末。欧州ではキラーソフトの一つにも数えられているのになぁ。自分が考えるに流行らない理由はきっとワイプアウトの楽しみ方を知らない人が多いからではないだろうか。そこで自分なりのワイプアウトの楽しみ方を述べることにする。

ワイプアウトは最初から最速で走ることはできない。これはいきなり最速クラスでレースをしても速過ぎてとてもじゃないがゲームにならないからだ。遅いクラスで慣らしていって最後に最速クラスでレースを行うようになっている。ただし、Zoneモードは別だ。これはだんだんとスピードが速くなるモードで壊れるまで走ることができる。ただし、いきなりZoneをプレイしても最速になるまでに壊れてしまうだろう。

で、初めてワイプアウトをプレイすると、最初のところで挫折してしまう人が多いようなのだ。クラフトを思うように操作できない人もいれば、思ったよりも速くないし爽快感がないと感じる人もいるようだ。

操作が難しいという人は、慣れるまでしばらくプレイして欲しい。慣れてくると低速クラスなら苦もなく操れるようになると思う。ワンポイントアドバイスとしては、カーブは外側から内側に入るようにして、気持ち早めに曲がったほうがいいかもしれない。それとエアブレーキを利用すること。あとは曲がりすぎないことかな。人によっては後方視点よりコックピット視点にした方が操りやすいかもしれない。自分はコックピット視点の方が操りやすかった。

思ったよりも速くないと感じた人は、序盤はどれも遅いクラスなのでしばらく我慢して速いクラスをプレイできるようになるまでは走ってみよう。違った世界が見えるはずだ。また、もし後方視点であればコックピット視点も試して欲しい。コックピット視点だと体感速度が倍は違うと思う。因みに自分はデフォルトの後方視点だとスピード感に乏しく、操作もしづらかったので、シリーズを通してずっとコックピット視点だ。それにバレルロール(クラフトを回転させて高速移動)はコックピット視点じゃないと物足りない。

少しでもWipEoutをプレイする人が増えるといいなぁ。WipEout HDにはオンラインレースもあるのだけど、多くのホストが欧州で時々アメリカって感じになっていて日本のホストはあまり見かけない。まあ、レースする分にはどこの国の人たちでも困らないのだけど、日本人が少ないとなんとなく寂しい。因みにWipEout HDはダウンロード販売専用で価格は1,800円だ。自分ならたとえ1万円だとしてもPS3本体ごと買ってしまうレベルなのに。なんてリーズナブルなんだ。

続きを読む...

2008年12月12日金曜日

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

Fortran benchmarks

コンパイラのバージョンがちょっと古いけど、やっぱりFortran90に比べFORTRAN77の方が速いな。GNUコンパイラについてはg77が思ったよりも悪くない。確かバージョン3で大幅に性能が改善されたんだっけな。うろ覚えだけど。

続きを読む...

2008年12月9日火曜日

インデントの大切さ

このブログ記事をはてなブックマークに追加

大学の実習で学生にプログラミングを教えているのだが、C言語などでプログラムを書かせるとほとんどの人がインデント(字下げ)をでたらめに入れる。これは何故だろう。

教えている学生は2年生なのだが、1年生で既に講義で習っているはずなのに。自分ならインデントを揃えないと読みづらくてやっていられなくなるが、インデントをでたらめに書く人はそれを苦労とは思わないのだろうか。インデントの意味を教えてもキツネにつままれたような顔して、それが重要であると考えてくれないようなのだ。それならばと放っておくと括弧が足りなくてコンパイルエラー、条件文のスコープが分からなくなって四苦八苦、関数を終わらせずに次の関数を書き始める等々、奇妙奇天烈なコードを書いてくれる。で、最後には分からなくなったので教えて欲しいと言ってきて、インデントがでたらめなコードを自分が読む羽目になるのだ。

プログラムを書くなら、文法などよりもまずインデントの重要性を知る必要があると思う。…と考えるとやっぱりPythonはプログラミングを習い始めるのに良い言語のように思うなぁ。

続きを読む...

2008年12月4日木曜日

Python 3.0がリリースされた

このブログ記事をはてなブックマークに追加

Python 3.0の正式版が公開されたみたい。そろそろ本腰入れて使ってみるかなぁ。

参考サイト: もっと知りたいPython3000

続きを読む...

2008年12月3日水曜日

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データの相関係数は右上か左下の値となる。

続きを読む...

2008年12月2日火曜日

Goolge Livelyの終焉

このブログ記事をはてなブックマークに追加

少し前のニュースだけどGoogleのLivelyが12月いっぱいで終了するそうだ。少しばかりオブジェクトのプログラミングでもしようかと思ったが、結局は手を付けず仕舞いだった。

まずは、3Dオブジェクトを作ろうとした場合、Mayaなどの本格的な3Dモデリングソフトが必要なことがネックとなっていた。SketchUpあたりで作れたのなら良かったのだけど。その辺のことは疎いので、それだと技術的な問題があったのかもしれないが。簡単なガジェットならばGoogleデスクトップガジェットで作成できるようだったが、これもまったく宣伝していなかったので知っていた人もほとんどいないのではないだろうか。

また、発表後にほとんどソフトウェアなどのアップデートはなかった。大体Google Chromeで使えない時点で問題外である。せめて定期的にオブジェクトを追加するなりしていればまだ良かったのだが。オブジェクトすら増えないとなれば最初に部屋を作った以降はなにもすることはなくなってしまう。

多くの人はこれを以って仮想空間はまったく流行らないと考えるかもしれない。しかし、どんなサービスにでも云える事だが、定期的に利用者の期待するサービスを提供しなければダメなのだ。逆に言えば、良いサービスを継続して出していればもう少し流行っただろうと思う。

続きを読む...

2008年12月1日月曜日

11月を振り返って

このブログ記事をはてなブックマークに追加

11月はほとんどブログを更新しなかったな。11月最後のリトルビッグプラネットの記事も以前に書いていたものをアップロードしていなかっただけだし。一番の原因は風邪で体調を崩したことかなぁ。この時期はいつも体調が悪い気がする。仕事の掛け持ちやらで疲れているところに、周りに風邪引きが増えてそれを貰ってしまうという悪循環。一度体調を崩すと気力が削られて様々な「やる気」が萎えてしまうのだ。

体調が悪かったり、仕事がちょっと忙しかったのもあるけど、ブログの更新が滞った別の理由としては面白いゲームが出ていたってのもあるな。ブログ更新の優先度はそれほど高くない、というか一番低い位置にあるので他にやることができてしまうととたんに更新が滞ってしまう。プログラミング関連だと趣味や仕事とも共有できて、ブログネタにもなるんだけど、ゲームだとねぇ。まあ需要があればプレイ日記を書いてもいいのだけど。個人的には他の人のゲームプレイ日記を読むのは好きだし。

因みに11月中に、PS3ではリトルビッグプラネットとWipEout HD、PSPではパタポン2と勇者のくせになまいきだor2をプレイした。この四つのうち主にプレイしたのはリトルビッグプラネットとパタポン2で、どっちもかなり面白いよ。残りの二つも面白いのだけどプレイする時間がなかっただけ。PlayStation Homeの大規模βテストにも当選したけど時間がなくて一回起動しただけだな。

12月は時間と体調の管理に気をつけたい。

続きを読む...