独り言日記

独り言日記
ObjectCracker Ver1.20(2007/04/28)
Shade9.x の形状を破片化するプラグイン「ObjectCracker」を Ver1.20 にバージョンアップしました。
以下からダウンロードできます。
http://ft-lab.ne.jp/cgi-bin/wiki.cgi?page=ObjectCracker%5Fshade
修正点は高速化、の1点です。テストでは、頂点数 15194、ポリゴン数 15064 の形状を分割レベル
4 にて破片化したときの処理時間が、Ver1.10 → Ver1.20 にて、47sec → 5sec、と 9.4 倍速度アップ
しました。
実は、これと同じことを Shade9 professional/standard での「ヘアーサロン」でも修正をかけていま
す(まだアップデータは出ていないですが)。関連する箇所は、オブジェクトの同一と思われる頂
点をまとめる部分(ヘア設定ダイアログを出すときの前処理)です。
過去バージョンで「遅いよ!!」と思った方は、これにて速度アップを体感していただければと
思います。
アルゴリズムとしては以下のとおり。同一頂点の検索に時間がかかっていたため、これがボトル
ネックになってました。
オブジェクトを囲むバウンディングボックスを求めて、その中で XYZ 軸ごとに等分割を行います
(ようは UniformGrid です)。各グリッドに対し、先にオブジェクトの頂点を格納します。
たとえば、頂点 5 の近辺の頂点を探す場合は
・頂点 5 がグリッドのどこに入るのか計算(これはあらかじめグリッドに格納するときに位
置は求まるので2度計算するまでもないです)→ 図の「B-3」の位置。
・同一グリッド内を調べて、グリッド内の頂点との距離を求めます。この場合は、頂点 7 の
1
み調べればいいことになります。
ということで、頂点数が多いオブジェクトの場合でも「ほぼ同一」な頂点検索がかなり速くなり
ます。
この同一頂点検索処理のみの時間を計測すると、二重ループにて単純検索するよりも 300 倍は速
度アップしてました(15000 頂点くらいで)。
で、UniformGrid に頂点情報を格納するときに時間がかかるのでは?と疑問を持たれる方がいるか
もしれませんがご心配なく。この部分は単純が故に数百万頂点でも数秒で完了します。実は、
Shade9「ヘアーサロン」は、ビュー部(OpenGL)にて操作があるたびに瞬間的にリアルタイムで
UniformGrid を構築しているのですが、気づいた人はたぶんいないかと (^_^;;。
なんで、インタラクティブに空間分割を行い、操作自体を快適にしたい場合は結構 UniformGrid の
考え方は使えますよ。
OpenGL と LayeredWindow は相性が悪い?(2007/04/27)
朝日新聞のサイトにて、ニュースの出るデスクトップアクセサリが提供されてまして、ニュース
を見ながら Shade と併用してました。そのときに、どうも両ウィンドウがかぶるときに Shade サイ
ドの OpenGL 領域の再描画が変になってました(再描画範囲だけ乱れる、点滅する、などなど)。
で、もしやと思って調べてみたら、、、
2
レイヤウィンドウが存在する場合は、OpenGL による再描画は崩れますね。他の組み合わせでも
再現。どうも OpenGL と LayeredWindow は相性が良くないようです。デスクトップアクセサリ
(ガジェット含む)と OpenGL を使うアプリの併用にてこの現象がある方はご注意を。OS の問題
といえば問題か。ちなみに DirectX ではまったく問題なしです。
それ以外に、Shade の管理ウィンドウ自身が異常に点滅するのは Shade 側の問題でしょうけどね
(まれに、図形ウィンドウが表示されずにフローティングウィンドウだけになって、どうしようか
と思った (^_^;;)。
ペルソナ 3 アレンジアルバム(2007/04/21)
買ってきました。ほんとはフェスを買おうかと迷ってたのですが、たぶん、今時間をあけるとま
ずい(時間を食いつぶす自信あり)ので音楽のみ。
で、アレンジアルバムですが、かっこいいなぁ。ラップでかっこいいと思ったのは自分としては
珍しいです(正直、ラップという音楽での良さが分かってなかったので)。全体的にポップな感じ
になっていて、ゲームっぽくないです(原曲がすでにゲームっぽい BGM でないのですが、妙に
マッチしている)。
ペルソナ 3 フェスは、BGM も追加されている、アベンド版でも通常版と同じく本編が入っている
3
(古いペルソナ 3 の CD チェックはいりますが)、とのことでひと段落したら買うことにしよう(内
容としては追加部分は 30 時間くらいのボリュームらしいけど・・・)。
後、「時をかける少女」(アニメ)の DVD が発売されてました。これも買う予定にしてます。
同一位置の頂点を求める処理(2007/04/20)
3DCG にて、ポリゴンメッシュの頂点法線(スムージング角度も考慮)を求める部分にて、最適化
のため同一位置を持つ頂点を検索する処理があるのですが、この部分、頂点数が増えるとボトル
ネックになります。まぁ、Shade9 のヘアーサロンでやってる部分なのですが・・・。
いいことを思いつきました。同一位置の頂点を求めるときに、UniformGrid にあらかじめ頂点を格
納して、グリッドにて同一位置判定を行います。
結果、形状によっては 300 倍くらい速度アップ。たぶん、Shade 以外の某所でやったお仕事も速度
アップできるかと思います・・・。いやはや、アホなことをしていたんですね(汗)。とりあえず、
今までやった部分は見直してみよう。
Norton 360(2007/04/11)
仕事場の Windows XP 上の Norton Internet Security 2006(以降 NIS2006)が期限切れになったので、
「Norton 360」というものをインストールしました。「Norton 360」は、1パッケージにて3ユーザ
までのインストールが可能なもので、価格も若干安いです。小企業にはうってつけか、と思って
インストールしたのですが、いろいろトラブったのでその内容を記載です。なお、こちらの環境
での試行錯誤ですので、あくまで以下手順で不都合があっても保証外なので注意です。ご自分の
責任で。
まず、過去の NIS2006 をアンインストールしてマシン再起動、その後 Norton360 をインストールし
たのですが「LiveUpdate が異なるプロセスで実行中」と出て LiveUpdate の更新に失敗していまし
た。プロセスを一度「サービス」より停止してから再度行う、としても改善されず。結局一度ア
ンインストールしました。
■ Norton 360 のアンインストール
[ コントロールパネル ] - [ 管理ツール ] - [ サービス ] に「LiveUpdate」があり、すでに開始されて
いたのでこれを停止しました。これをまずストップしないと Norton の削除ができません。こち
らではインストールに失敗している場合は、これが常に起動していて正常の場合は停止している
(必要なときだけ Norton から開始処理が送られる?)ようでした。
次にコントロールパネルの「プログラムの追加と削除」より、
「Norton 360(Symantec Corporation)」
を削除します。
同じく「プログラムの追加と削除」より「LiveUpdate 3.2(Symantec Corporation)」を削除。
これで、Norton がクリーンアンインストールされた様子。
4
■ Norton 360 のインストール
一度マシンを再起動してから、Norton 360 をインストール(ちなみに、ダウンロード販売でのイン
ストールは、デスクトップに Norton360 のセットアップが置かれていますのでそれを起動しま
す)。インストール途中でユーザ登録の画面が出てくるのですが、アカウントがなければ作成。
で、アンインストールに 2 時間ほど、再度のインストールで 1 時間ほど、、、ようやく Norton 360 が
正常に動作するようになりました。しかし、インストール時間かかりすぎ・・・。速度は以前の
Norton よりも速くなってるのかな?
で、ファイアウォールの設定とかどこいったんだろう?設定画面が以前とがらっと変わってい
て、メンテ方法が分からない・・・。
ObjectCracker Ver1.10(2007/04/05)
バグ修正しました。ObjectCracker のページからダウンロードできます(Win/OSX)。どうも不安
定部分と重い部分があったため、空間上でつながっていない(陸続きになっていない)三角形の
分離処理ははずしました。その他いろいろ修正です。
顔のオブジェクトを破壊するとシュールな感じに。
あまりにも細かい破片をチェックしてはじく(再分割しない)ようにしたけど、もしかしたらは
じかない方がよかったかな?以前のむやみに細かい破壊が再現できないようになってしまった
予感。
続・ObjectCracker(2007/04/04)
以下の ObjectCracker ですが、形状によっては欠けてしまう部分が出る場合がありますね。という
ことで、この部分は修正します。
後、細かく割ると思いっきり小さい形状が出ることがあるため、これも最小値をダイアログで制
御できるようにする予定です。
5
ObjectCracker(2007/04/03)
ムービー(1.08MB)
http://ft-lab.ne.jp/files/shade/teapot_cracker_20070403.mov
「ObjectCracker」という Shade9 プラグインを公開しました。上記のムービーのような亀裂を入れ
るプラグインです。アニメーション自身は、パーティクルフィジックスで付けるようにするとい
いと思います。
ObjectCracker のページからダウンロードできます(Win/OSX)。
ただし、形状自身が複雑な場合はそれだけ時間がかかるため注意してください。アルゴリズムは
この後解説していくことにします(たいした内容ではないのですが)。
本日の破壊(2007/04/02)
再び Shade9 での破壊テストです。
ムービー(758KB)
http://ft-lab.ne.jp/files/shade/teapot_cracker_2.mov
ポリゴン単位でなくて、ランダムに直線で切るようにしました(分割のレベルは調整できます。
これは割と荒い例)。また、テクスチャも貼り付けてます。しかし、これテストしていてなぜかカ
6
ブトムシを連想してしまった(というか、昆虫が脱皮したときの抜け殻なイメージ)・・・。
後、ユーザインターフェースを整えたら一通り完成です。
7