Zaurus MORE ソフト 3D IM-Clock for Zaurus v1.01 (WOBG) Zaurus 初(?)の 3D アプリケーションです。3Dポリゴンで描かれたアナログ時計を表 示します。かつて Direct3D + Windows 上で作った 3D IM-Clock の Zaurus 版です。 v1.01での変更点: アプリケーションの切替えで終了するはずのプログラムが終了していなかったバグを 対処。終了時のイベント処理で、不要なイベントに対しても初期化を実行してしまう 問題を修正。これにより、一部の機種で終了時に発生していた不安定な挙動が修復さ れます。 ●対応機種 一般的な MI 系 Zaurus 動作確認機種: ZaurusPocket MI-110M igeti MI-P2 PowerZaurus MI-C1 ●プログラムのインストール(使えるようにする)方法 WOBG101.ZAC を Zaurus に転送し、MORE ソフト管理画面上で展開します。本体メ モリ、カードメモリ、どちらに転送しても構いません。 ●アンインストール(プログラムの削除)方法 MOREソフト管理画面からそのまま削除します。 ●使い方 起動すると 3D 描画でアナログ時計を表示します。このプログラムは、他のモードや 機能、MOREソフトなどに切り替えると勝手に終了するので、特にプログラムの起動終 了を意識する必要はありません。 直接自分で終了させたい場合は IM-Clock の画面で [中断] をタッチするか MORE ソ フト管理画面で停止させてください。 ●プログラムについて 無謀にも、Zaurus で描画にポリゴンを使ったアプリケーションです。実は本職(?)が 3D屋 (ひょーんプロジェクト http://www.hyon.udn.ne.jp/) で、機会があればZaurus でもリアルタイムに描画更新を行うプログラムを作ってみたいと思っていました。 当初 Zaurus でバックスクリーンからの転送をテストしたときは、あまりの転送速度 の遅さに、Zaurus でこの手のソフトを作るのは不可能だと完全にあきらめざるを得 ませんでした。 ところが最近になって、ベンチマークテスト ZaurusSpeedTest をさまざまな機種で 測ってみると、なんと遅いのは MI-110M 固有のものであることが判明。それ以外の 機種では、同じモノクロ液晶採用の igeti であっても、実用に耐えうる値が出てい ます。 最初から MI-110M 以外の機種を手にしていたら、もっと早くリアルタイムアプリに 挑戦していたかもしれません。 当初はとりあえず、2D でスプライトが動く程度のものを考えていたのですが、つい ついトライアングルラスタライザを書いてしまい、マトリクスやベクトル演算ルーチ ンまで載せて 3D Engine を実装してしまいました。 Zaurus の CPU である SH3 は、FPU が無いものの積輪演算命令を持っているので、 うまくパイプラインを組めば実行 2サイクルで 32bit乗算 + 64bit加算を行うことが できます。もちろん C言語からは使えないため、結局演算ルーチンの大部分は SH3 の アセンブラで書く羽目になりました。 ダイナミックに動き回るこのポリゴンのアナログ時計は、もしかしたらパソコン上で もみかけた人がいるかも知れません。Direct3D を使った Windows 用のそのソフトは 筆者が 1997年に公開した「3D IM-Clock」です。パソコン版については、こちらのサ イト ひょーんプロジェクト http://www.hyon.udn.ne.jp/ をアクセスしてみてください。このパソコン版 3D IM-Clock も、雑誌やあちこちの サイトで紹介されました。 ●使用条件 このプログラムはフリーソフトウエアです。このプログラムはさほど使いこんでおら ず、動作上さまざまな問題が出る可能性があります。プログラムがトラブルを起こし た、本体のデータが消えた、ザウルスが暴走した、電池がすぐなくなった、ハードが 問題を起こした、色がおかしい、その他あらゆる問題に対して一切保証がなく、作者 小笠原博之には責任は何も発生しません。 以上、ご理解のほどよろしくお願いいたいします。 ●連絡その他 このプログラムの最新版や更新情報はこちらの URL を参照してください。 http://www.vector.co.jp/authors/VA004474/zaurus/zaurus.html 0.00 1999/12/26 バックサーフェースへのスプライト描画ルーチンを作ってみる。 0.00 1999/12/27 トライアングルラスタライザと固定少数演算ルーチン実装。 0.00 1999/12/28 透視変換、Lighting、Culling実装 1.00 1999/12/29 ZaurusGA 3D Engine の最初の応用として 3D-Clock 作成 1.01 2000/01/12 アプリケーションの切替えで終了するはずのプログラムが終了して いなかったバグを対処。終了時のイベント処理で、不要なイベント に対しても初期化を実行してしまう問題を修正。これにより、一部 の機種で終了時に発生していた不安定な挙動が修復されます。 小笠原博之 oga@art.udn.ne.jp http://www.vector.co.jp/authors/VA004474/