1800エントリですの
STATUS: 故障中
コメント
このエントリで1800エントリ目の日記ですの♪
例によってベンチアプレットを作ってみたですの。
→ Typhoon 1800 bench mark (applet)
マウスボタンをプレスすると、どんどんボールが出てきて渦を巻くんですの。
ボクの1.7Ghzマシン(Win2k+IE6.0+Sun製VM)では、ボール1800個のとき39FPSですの。よろしかったらベンチ結果を教えて欲しいですの。
・参考
1500エントリ & ベンチapplet , 結果1 , 結果2
FallenSand
STATUS: 故障中
コメント
processingの小物プログラムを追加しました。
→FallenSand (applet)
天井に張り付いている砂(青白)に(マウスで)切れ込みを入れると落下して地面に溜まります。
少しずつ削ったりして楽しんで下さい。
また、カーソルキーの左右で画面の回転、SHIFTキーを押しながらドラッグすると砂(黄色)を生成できます。変な地層作ったりして遊べます。
【操作方法】
ドラッグ : 砂に切れ込みを入れる(砂削除)
SHIFT+ドラッグ : 砂を生成
カーソルキー左右:画面回転
# sakuraたんサーバに置いてみました → dokokano.comに移しました
Magnet Balls
STATUS: 故障中
コメント
processingの小物プログラムを追加しました。
→Magnet Balls (applet)
お互いに引かれたり反発するボールのシミュレーションです。
クリックでオレンジのボール、SHIFT+クリックで青いボールが置かれます。
同じ色同志のボールは反発し、異なる色のボールは引かれ合います。各色同数置くとなんとなく2個づつのペアになります。数のバランスが崩れるとこれはこれで面白い動きになります。いろいろ試してみて下さい。
スペースキーを押すとカーソル位置にボールが引かれます。ちょっと干渉してみたいときにどうぞ。
【操作方法】
クリック : オレンジのボールを置く
SHIFT+クリック : 青いボールを置く
SPACE:ボールをカーソル位置に引き寄せる
○ P5のバグ?
if ( key == SHIFT ) println("press SHIFT");
if ( key == CONTROL ) println("press CTRL");
って書いて、SHIFTキーを押すと
press SHIFT
press CTRL
と表示される。
CTRLキーを押すと、なにも表示されない。
定数の値間違ってない?
Ball 1500ベンチ結果(2)
STATUS: 故障中
コメント
昨日の集計のあとにもベンチ結果を頂きました。ご協力有り難うございます。
Ball 1500 bench mark
http://www.dokokano.com/ftlabo/applet/P5Demos/?pgname=ball1500bench
name CPU clock time(ms FPS FPS/GHz VM Memo
------------- -------- ----- ------- --- ------- --- ----------------
fslasht Pentium4 3060M 64,406 37 11.9 SUN
fslasht Celeron 800M 164,046 15 18.8 MS
fslasht Pentium4 1700M 89,238 27 15.8 MS
mera AthronXP 2500M 107,016 22 8.8
ucha Crusoe 933M 207,809 11 11.8 VAIO U3
Katuragi G4 550M 233,322 10 18.2 SUN PowerBook G4
Katuragi Pentium4 2800M 57,152 50 17.8
KUSANAGI Pentium4 2400M 64,188 40 16.6 SUN
KUSANAGI Efficeon 1000M 129,716 19 19.0 SUN MURAMASA
KUSANAGI Pentium3 866M 152,950 16 18.5 MS DELL LatitudeC400
Kim H Yusuke G4 339,285 7 PowerBook G4
Kim H Yusuke Pentium4 2400M 132,094 21 8.6
Acanthopanax G4 800M 187,787 14 17.5 SUN iBook G4
take0m Pentium3 600M 262,147 10 16.7 IBM Thinkpad X20
9DO AthronXP 2500M 80,282 30 12.0 SUN TurboLinuxDesktop10
etsav K6-2 450M 656,570 3 6.7
etsav Pentium3 700M 233,666 10 14.3 HP omnibook 500
etsav PentiumM 1400M 131,709 19 13.8 Compaq Evo N620c
von_yosukeyan Celeron 1800M 114,265 21 11.7
k_u AthlonXP 2600+ 81,778 32 12.3
arawas PentiumM 1600M 59,976 42 26.3 ThinkPad T41 2373-3PJ
Memo欄に特に記述が無いのは、デスクトップのWindows機です。
最速(FPS)は KaturagiさんのP4マシン(IBM ThinkCenterS50)、FPS/GHzトップは arawasさんのThinkPad T41 2373-3PJでした。IBM強し。
FPS/GHzでは、PentiumM機が飛び抜けて高いです。etsavさんのCompaq機は表では低い結果になっていますが、ベンチ中600〜800MHzで動作していたとのことで、700Mhz換算では27.1とトップクラスの値になりました。あとはG4が安定して高めの結果になってますね。
Processing小品 x6
STATUS: 故障中
コメント
いくつか小さなデモプログラムを作ったので公開します。
→Processing Demos
※ページ下のスクリーンショットをクリックするとプログラムが切り替わります。
● WingFlips
パレットアニメーションで鳥の羽ばたきのようなものを表現。マウスのX,Y座標で翼(?)が描かれます。いろいろと動かして試してみて下さい(左右:大きさ , 上下:形 が変化します)。まずは、上の1/3くらいの高さで右から左にゆっくりマウスを動かすとそれっぽくなります。
● circlecle
シマシマの円の中心がマウスをぐんにょり追っかけます。sqrt関数を贅沢に使ってます。
● WarmPlace
マウス位置を中心に左右からぐんにょりしてきます。なんとなく、ぽかぽかです。冬に観て下さい。マウスはあまり動かさないほうがそれらしいイメージになります。
● PaintSat
マウス位置を中心にした軌道上が塗られていきます。クリックするとエフェクトが切り替わります(無し→スクロール→赤黄白パレット→ワイヤーフレーム→炎もどき)
● PollGrid
ポールがマウスを避けます。マウス位置によりでスクロール、クリックするとポールが近づくようになります(トグル)。SHIFTキーを押すとスクロールが止まります。
● AniPaint
マウスで絵を描くとパレットアニメーションぽく動きます。
ProcessingのFPS精度テスト
STATUS: 故障中
コメント
→ProcessingのFPS精度テスト
Processingで、FPSを高くすると動きがぎこちなくなることがあるので、実際のFPS値を測定するアプレットを作ってみました。
指定したFPSでの、実際のFPS,描画間隔(interval)を表示します。
FPS,Intervalの値は最新100回の値を元に算出しています。
高FPSに設定すると、Intervalが大きく変動するようです。これは実行する環境にもよるようです。
そもそも時間を計測している millis() メソッドの精度がどれほどのものか謎なのですが…。
また、サウンドを連続すして鳴らすと遅延が発生することがあります。
どうやら再生中にstopすると遅延が起きるようです。
複数のBSoundインスタンスを用意して順番に再生することでコレを改善するようにしてみました。
[p]キーを押すと従来の方式で再生(連続最盛時に遅延あり)。
[s]キーを押す、またはマウスクリックで、改善された方法で再生します。
【キー操作】
Key operation
[1] to [9] set FPS ex.) [3]=30FPS , [6]=60FPS
[+],[-] inc/dec FPS
[r] reset statistics
[p] Play SE (RAW Style)
[s] Play SE (Cooked Style)
(click) Play SE (Cooked Style)
BSound使用時のウエイト回避案
STATUS: 故障中
コメント
processingの標準のサウンド機能(BSoundクラス)を使うと、再生時に数百ms単位でウエイトが発生することがあります。
これではゲームに使えません。
(ゲーム開始時に1度だけ再生開始すればよいBGM等には問題は無い)
しかしながら実際、BSoundを使用している個所をみると大抵次のようにかかれています。
stop( se );
play( se );
※ se は BSoundのインスタンス
上記のようなコードになるのは、一度再生(play)したあとは、再生が続いている・いないに関わらず停止(stop)をしないと、次の再生が出来ないためです。
これに対し、試しに停止と再生を別にキーに割り当てて、別々に操作できるようにしたところ、再生直後に停止を行った場合のみウエイトが発生していることがわかりました。
以上の事から回避案としては…
A) 再生中に次の再生が必要になった場合は無視する
再生中を判定するメソッドは無いので、再生開始時刻を保持しておきそこから一定時間を再生中として判断する。
再生されている時間の計算は、lengthメソッドで得られたデータ長をサンプリングレートで割る。
B) 一つの効果音に対して複数のBSoundインスタンスを用意する
複数のBSoundインスタンスに同一の音声ファイルをロードしておき順番に使用する。
最初のインスタンスでの再生が完了する前に1順してしまうと、やはりウエイトが発生してしまうので、A)案と併用する。