松屋のビビン丼はなかなか美味いです。うまトマハンバーグ定食以来のヒット作ですね、俺的に。豚めし *1 、デミたまハンバーグ定食 *2 、うまトマロールキャベツ定食 *3 と、いまいちな新商品が続き、食べるものが豚焼肉定食しかないという松屋暗黒時代にも、ようやく光明が見えてきました。がんばれ松屋。
dfAddAlphaにちょびっとだけ対応してみた。まだ実験フェーズだが。こうやって、ちょっとずつ機能を追加していく予定。これぞ牛歩戦術(違)
怪傑ズバットのDVDボックスを買ってきました。いろいろとキューが溜まっているので、観るのはだいぶ先になりそうです。
ジュリア集合描画プログラムを作ってみた。
複素数演算部(収束・発散判定)は高速化のためにC++で書いて、DLLプラグイン化。TJS配列オブジェクトとその他パラメータをプラグイン関数に渡してやると、配列オブジェクトに計算結果が格納される。格納された各値をカラーコード算出関数(TJS実装)に渡すとカラーコードが得られるので、これをレイヤの各点に対して setMainPixel() する。
レイヤサイズ640x480、複素座標領域 (-1,-1i) - (1,1i) の描画が約5秒。内訳は、収束発散判定が1秒未満、全点のカラーコード算出が約1秒、残り約3秒が setMainPixel() によるドット打ち。この結果は、だいたい予測の範疇かな、といったところ。
TJS実装の部分全てをC++実装にしてしまえば、確かに速くなる。しかし、カラーコード算出関数だけは、柔軟性を持たせるためにTJSで実装したい。色付けはフラクタル画像の大きなファクターなので、手軽に着色方法を変更できたほうが良い。
続きは明日。
TJSで定義した関数を、DLLプラグインから呼ぶ方法。
... iTJSDispatch2 * func = param[0]->AsObjectNoAddRef(); static tjs_uint32 hint = 0; tTJSVariant res; func->FuncCall(0, NULL, &hint, &res, 0, NULL, func); ...
とりあえず、これでOKっぽい。TJS関数が引数を要求するときは適宜変更。
setMainPixel() でドット打ちしていた部分を、C++で実装。オーバーヘッドがないので、速い速い。
ということは。
全ピクセルについて、TJS実装であるカラーコード算出関数を毎回呼び出すと、呼び出しオーバーヘッドのために少々時間がかかる。そこで、「ループ回数」→「カラーコード」とマッピングした、要素数256の unsigned int 配列を作成しておき、全ピクセルについてこのマップを適用するようにすれば、カラーコード算出関数を呼び出す回数が少なくて済む。30万回呼び出すのと、256回呼び出すのとではずいぶん違う。
これで、この部分はかなり速くなる。が、元々大して時間のかかる処理ではないため、体感速度はあまり変わらなかったりする。
演算〜描画まで約5秒かかっていたものが、カラーコード算出関数以外をC++で実装し直した結果、だいたい1秒前後に収まるようになった *1 。おおむね満足。
まとめてキュー消化中。
「起こし方その3」の謎を残したまま逝ってしまったエリノアさん。
エリノア… エリノアのいないMADLAX… エリノアのいないMADLAXなんて…
カラーコード算出関数を辞書配列にして、着色方法を簡単に切り替えられるようにした。お手軽。
対象の複素座標領域をマウスで指定できればいいなーとか、セーブ機能が欲しいなーとか、マンデルブロ集合も描けるといいなーとか、いろいろ欲しい機能はあるが、実装が面倒。ユーザインターフェースはKAGで作ろうか。
Mini-ITXマシン、BeSilentを修理に出してきました。メインボード交換になるでしょう、とのこと。もちろん、保証期間内なので無料です。
その足で覚醒plusをゲット。東方永夜抄が委託販売されているはずなんですが、入手できませんでした。まだ店に並んでないのか、売り切れていたのか、探し方が甘いのか。
今日もアキバ。アクメツ(9)と東方永夜抄ゲット。ちゃんと探せばあるじゃないか。
急に寒くなったせいか、風邪気味です。困った困った。
音楽は良い。CD-Rメディアの質は悪い。音楽用ソフトに、何故こんなメディアを…
CDプレイヤーで再生すると、音を取りこぼしてプツプツ途切れます。スピーカーで聞いているとわかりにくいのですが、ヘッドフォンで聞くと顕著に表れます。LD/DVDプレイヤーで再生するとそういったことは起こらないので、CDプレイヤーを疑ってもみましたが、他のCD-Rメディアでは起こりません。CD-ROMドライブに突っ込んでも認識しにくかったし、それ以前に見た目からして明らかに安物だし。
焼きなおさないとダメですね、これは。
交換を依頼していたディスプレイ、到着。MADLAX最終回で動作(?)確認。ああ、ドット抜けがないって素晴らしい。
イージー霧雨魔理沙でさっくりクリア。
嘘です。「どうにか」クリアです。イージーごときで4ミスもしているようでは(略)
例のCD-Rと格闘。アレンジ自体は良いものなので、何とか焼き直して「普通に」再生したいところ。そのためには、正常に取り込むところから始めないと。
まず、YAMAHAのCD-Rドライブで読んでみましたが、読み込みエラー出まくりです。もともとこのドライブは変なメディアには弱かったので、ある程度は仕方がないとしても、1曲分読んだだけでエラー数50ってのはちょっと…
次、松下製DVD-Rドライブ。CD読み込み機能はあまり充実してませんが、読み込みエラーはほとんどありませんでした。これはいけたか、と思いましたが、いざ聞いてみると所々に「ザッ」「ザッ」というノイズが乗ってました。だめです。
CD-R/ROMドライブは他にも数台ありますが、ダンボールの中にしまってあるので引っ張り出してくるのも面倒です。そんなわけで、早くも最終手段、DVDプレイヤー。今のところ、このメディアをまともに再生できるのは、こいつしかいません。光ケーブルで繋いで、STSRECで録音を仕掛けて就寝。焼くのは明日です。
…なんでこんな面倒くさいことをやってるんでしょう。
例のCD-Rです。
昨晩の仕掛けが終了していたので、出来上がったWAVEファイルを編集し、等倍速でじっくり焼き上げました。CDプレイヤーで試聴してみたところ、特に目立った欠点はないようです。これでやっと安心して聞くことができそうです。