=========================================================================== glclock の更新履歴 1999年7月 Masa(川瀬 正樹) E-Mail: masa@daionet.gr.jp URL : http://www.daionet.gr.jp/~masa =========================================================================== glclock の 1998/07/18 現在のバージョンは、5.0 です。 最新版は、常に(多分)作者のホームページからダウンロードできます。 -- ● glclock-4.6 からglclock-5.0 への変更点(1998/07/18) ○ Voodoo 環境で、-r, -e オプション時の画質向上  「OpenGL-1.1 専用になってしまったのだから」ということで、  1.1 の機能であるテクスチャオブジェクトを利用するようにしました。  この結果、テクスチャサイズが 256 ピクセルまでしかサポートされていない  環境(Voodoo 系カード等)で -r もしくは -e オプションを付けた場合、  テクスチャのキメが細かく、綺麗になりました。 ○ Voodoo3 に対応  3Dfx OpenGL ICD に対応しました。  Voodoo3 や Voodoo Banshee をお使いの方にお勧めです。  ※おそらく動きますが、Banshee は未確認です。  3Dfx 社が配布している Quake III Compatible Driver    が必要です(おそらく)。  Voodoo3 とかだとひょっとすると必要ないかもしれません…。  glclock を実行してみて、アクセラレーションが効いていれば OK です。  Quake III Compatible は、Quake III での動作しか確認されていません。  一般的な OpenGL アプリケーションでは不具合も報告されているようです。  インストールされる方は、予めご承知置きください。  glclock は、Voodoo3 3000 AGP16M で動作を確認しました。  もちろん Voodoo3 ではウィンドウモードで実行可能です  (Banshee もおそらく)。  一応 Voodoo, Voodoo2 でも動作しますが、お勧めできません。  これらのボードでは 3Dfx OpenGL Beta 2.1 をご利用ください。  また、Voodoo Rush は、情報不足のためなんとも言えません。  Quake III Compatible Driver で glclock を普通に実行すると、  環境マップ関連で描画がおかしくなります。  -3DFXICD オプションを付けるとこのドライバ用設定で起動し、  正常に描画できるようになります。  まぁ深く考える必要はなく、makeshort.exe を実行時に、  OpenGL 環境として "3Dfx OpenGL ICD (Voodoo3)"を選択すれば OK です。 ○ スクリーンセーバライクな実行モードを追加  -SA オプションをつけると、スクリーンセーバライクなモードで  起動します。ただし、あくまでスクリーンセーバとして利用できるような  設定で起動するだけであり、OS から自動的に起動させることはできません。  glclock とは別に正規のスクリーンセーバが設定されていると、  結果的に多重起動しますので、ご注意ください。  バックが黒のフルスクリーンモードで起動し、適当に動き回ります。  マウスをある程度以上の速度で動かすか、キーボードを操作すると終了します。  ただし、GLUT で制御しているため、一部の特殊キー(Alt etc.)の入力は  受け付けず、終了しません・・・あしからず。  また、  ・-csize 時計のサイズ  ・-speed 時計の回転速度  ・-zoom 視野角(広角/望遠)  といったスクリーンセーバモード起動時専用のオプションがあります。  詳細は下記の「○ 追加および変更されたオプション」または MANUAL.txt を  ご覧ください。  通常、フルスクリーンモードで実行するには -FU オプションを指定しますが、  スクリーンセーバモードでは、デフォルトがフルスクリーンモードとなります。  逆に -FU を付けるとウィンドウモードとなります。 ○ OpenGL 内部エラーの修正  前バージョンまで、OpenGL 内部でエラーが起こっていました。  気づくのが遅れてしまいましたが、これを修正しました。  重要なバグリポートをくださった  nVIDIA OpenGL group の Nick Triantos 氏に心から感謝いたします。 ○ OpenGL 動作環境の情報を出力  これまで、使用されているドライバを判断しにくかったため、  実行時コンソールやベンチマーク結果(benchclock 実行時に生成される  bench.log ファイル)に、使用している OpenGL 動作環境の情報  (提供ベンダー名、レンダラー識別子、OpenGL バージョン)を出力する  ようにしました。 ○ Windows 版はショートカット作成プログラムちょこっと変更  Windows でショートカットを自動生成する makeshort.exe に、  いくつかチェックオプションを追加しました。  とはいっても、OpenGL 環境を選択すること以外、  とくに意識する必要はありません。 ○ 時計針の形状変更  これはまぁ、見れば解るでしょうか。。。 ○ 夜の色を多少明るく  Windows は、元々ディスプレイのガンマ値が低めに設定されています。  このため、特に夜の光源では暗すぎるように感じた方も多いと思います。  そこで、光源を多少明るくしました。  SGI ワークステーションなどガンマ値が適切にセットされている環境では、  逆に全体的に明る過ぎると感じるかもしれません。 ○ その他いろいろと修正  他にも結構いろいろと変更してありますが、  見た目には大きな影響はないです。 ○ 追加および変更されたオプション -3DFXICD 3Dfx OpenGL ICD 用のモードで実行します。 Banshee でもおそらく動きます(動作未確認)。 当然ウィンドウモードで起動できます。 Quake III Compatible Driver が必要かもしれません。 glclock を実行してもアクセラレーションが効かない場合は、 から該当するドライバを入手し、インストールしてください。 ※Quake III Compatible は、Quake III での動作しか確認 されていません。 一般的な OpenGL アプリケーションでは不具合も報告されて いるようです。予めご承知置きください。 ※Voodoo, Voodoo2 でも動作しますが、お勧めできません。 3Dfx OpenGL Beta 2.1 の方をご利用ください(-VOODOO 参照) また、Voodoo Rush は情報不足のため、なんとも言えません。 -SA[VER] スクリーンセーバライクなモードで起動します。 ただし、OS からの自動起動などはできません。 正規のスクリーンセーバから見れば通常のアプリケーション と変わりませんので、glclock と別にスクリーンセーバが 設定されていると多重起動します。ご注意ください。 -cs[ize] d スクリーンセーバモード時の、時計の表示サイズを指定します。 d には 0.0〜1.0 程度の値を指定します。 デフォルトは 0.5 です。 0.0 で非常に小さなサイズ、1.0 にすると、ウィンドウの縦 と同程度の巨大なサイズになります。 マイナス値も指定できますが、小さすぎて見えないでしょう(^^; -speed d スクリーンセーバモード時の、時計の回転速度を指定します。 デフォルトは 1.0 です。 -zoo[m] d スクリーンセーバモード時の視野角を指定します。 d には、0.0〜1.2 までの値を指定します。 d が小さい程広角に、大きいほど望遠になります。 デフォルトは 0.5 です。 -FU[LL] フルスクリーンで実行します。 ※Windows版のみ、フルスクリーンモードで -w, -h オプションを両方指定すると、ディスプレイを -w, -h で指定した解像度に変更してフルスクリーン実行します。 例えば glclock -w 640 -h 480 -FU とすると、640x480 ピクセルの解像度でフルスクリーンになります。 ※エラー処理はしているので特に危険はないはずですが、 明らかに表示の不可能な解像度は指定しないでください。 スクリーンセーバモード起動オプション(-SA)をつけた場合は、 デフォルトでフルスクリーンモードとなり、逆に このオプションをつけるとウィンドウモードとなります。 ※3Dfx Voodoo 用実行モードでは必ずフルスクリーンになります。 -- ● glclock-4.5 からglclock-4.6 への変更点(1998/03/15) ○ OpenGL環境指定オプションの追加 特に Windows の OpenGL はグラフィックスチップや ドライバのバージョンによってサポート機能に制限があったり、 細かなバグがあったりします。 そこで、いくつかの代表的な環境にオプションで対応しました。 現在は、 ・3Dfx OpenGL(Voodoo, Voodoo2) -VOODOO ・PERMEDIA2 -PERMEDIA2 ・RIVA128, ZX -RIVA128 ・RIVA TNT(表示が乱れる環境用) -TNTFIX などがあります。 まあ実際には別に難しく考えず、 Windows用ショートカット作成プログラム(makeshort.exe)を 実行する際、対応する環境を選択するだけで OK です。 ※前バージョンまでの mkshortbuts.exe は makeshort.exe に変更しました。 一覧に特に該当しない場合は、標準の「Default OpenGL」のままで結構です。 当然ですが、選択した環境マッチするビデオカードが必要です。 ○ Windows環境 Voodoo用実行ファイルも共通に glclock-4.5 では 3Dfx OpenGL 用に、fxclock.exe という別モジュールを 用意していましたが、共通のモジュールに変更しました。 makeshort.exe を実行する際、Voodoo系を選択するだけで OK です。 ただし、 ・Voodoo Graphics、Voodooo2 または Voodoo Rush を搭載したビデオカード ・Glide 2.31 または Glide 2.4x の ランタイムライブラリ(glide2x.dll) ・3Dfx OpenGL Beta 2.1(opengl32.dll) が必要です。 3Dfx OpenGL Beta 2.1 をお持ちでない方は、 http://lpserv01.bais.chubu.ac.jp:8080/~g93088/archives/3DfxOpenGL32DLL.zip を入手し、含まれている opengl32.dll を、glclock を展開したフォルダに コピーしてください。 ※Windows のシステムフォルダにコピーしてしまわないよう注意してください。 ○ 実行中 'c' キーでスクリーンショット 実行ディレクトリに glclock_shot.ppm が出力されるだけです。 現段階では ppm フォーマット固定です。 また、ファイル名も固定なため、何度も押すと上書きされます。 ○ ガラス表現を多少変更 -g 3 を指定した時のガラスの形状を変更しました。 以前よりかっこよくなっています。 f_*clock 以外で採用しているので、それらを実行して見れば おそらく分かるでしょう(って、分からんか普通)。 ○ 木目テクスチャ画像 "wood.ppm" を変更 以前のバージョンよりもかっこよくなりました。 f_woodclock、woodclock などを見ると分かると思います。 ○ ベンチマークスクリプト(benchclock)の最後の2つを多少変更 RIVA TNT で、最後の2つだけ実行不能という状態だったため、 問題が出ないように多少単純な時計に変更しました。 ※約 14,000 トライアングルに減りました。 おそらくはこれで実行可能だと思いますが、 試した環境は一部であるため、保証はしかねます。 ○ スクリプト skyclock を削除、mwclock 追加 mwclock は marbleclock の文字版が木目になっただけです。 ○ Windows版は各時計実行用バッチファイルを削除 バッチファイルが増えてうっとうしいだけなので、削除しました。 ○ Windows版は OpenGL-1.1 必須 X-Window版はコンパイルが必要なため問題ないのですが、 Windows版は OpenGL-1.1 に対応したランタイムライブラリ (opengl32.dll, glu32.dll)が必須となりました。 これは、ポリゴンオフセットと呼ばれる OpenGL-1.1 の機能を 使うためです(-TNTFIX や -z[offset] オプション参照)。 ○ その他細々とした修正 ○ 追加および変更されたオプション -VOODOO 3Dfx OpenGL の Voodoo、Voodoo2、Voodoo2 SLI に特化したモードで実行します。 基本的にフルスクリーンとなり、-w、-h オプションで解像度を 指定しないと 640x480 になります。 ※正確には 3Dfx OpenGL Beta 2.1 用です。 -RIVA[128] RIVA128 または ZX 用モードで実行します。 具体的にはαグローの使用を禁止します。 -r および -R オプション指定時に効果があります。 -PERMEDIA2 現段階では -RIVA128 と同じです。 -TNT[FIX] RIVA TNT の Z-Buffer バグフィックスモード。 TNT はドライバによっては、 -e 3、-r 2、-s 3 のオプション使用時に描画が乱れます。 これを防ぐために指定します。 具体的にどういう処理をしているか知りたい方は、 -z[offset] オプションをご覧ください。 -RUSH 3Dfx OpenGL の Voodoo Rush 動作未確認です。 -z[offset] d マルチパスレンダリング時の2回目の描画で Zバッファに使用する z値にオフセットを与えます。 2回以上で1枚のポリゴンを描画する場合、 Zバッファの値は前に描画したポリゴンと同じか、 小さく(近く)なっていなければなりません。 OpenGL では基本的にまったく同じになるはずですが、 環境によっては誤差などで大きく(遠く)なる場合があります。 前の描画より大きくなってしまうと、 Zテストで陰面と判断され、そのピクセルは描画されません。 このため、描画が乱れてしまいます。 d に 0.0 以外の正の実数を与えると、 (1.0 + d * 当該ポリゴンのZの傾き) で計算できる値を z値から減算してからZテストを実施します。 d には、0.0 より大きく、最大でも 1.0 程度の値を指定します。 実際問題として試行錯誤で決めるしかないのですが、 通常は 0.1 程度で充分です。 大きな数値を指定すると、遠いポリゴンが手前であると判断され、 逆に描画がおかしくなる可能性があります。 -g[lass] n 時計表面のガラス張りの表現方法を指定します。 n には 0〜3 を指定します。 0 : ガラスの描画を一切行ないません。 1 : ハイライトのかけら(?)を回転させます。 デフォルトですが、テクスチャ使用時は 2 に変更されます。 2 : ガラス表面の反射を表現します。 3 : 湾曲したガラスの反射を表現します。 ※ -g 1 は、OpenGL 用のハードを持たない(混合処理が遅い) 環境用です。 できるだけ速度を落とさずに美しく見せるための 強引なオプションで、写実性のかけらもありません。 しかし、スピードの低下も少なく意外とかっくいいので 悪くないと思います(^^;; ただし、テクスチャマッピング実行時は 1 は指定できません。 -- ● glclock-4.42 からglclock-4.5 への変更点(1998/10/06) ○ クリスタル時計とメタル時計のオーバサンプリング高速化 モーションブラーとアンティエイリアシングは、 OpenGLの補助バッファを利用して処理しています。 そのためオーバサンプリングの回数分、全画面分の加算処理をしています。 この処理は非常に遅く、例えば8回サンプリングの場合(-m 8 または -a 8)でも、 8倍どころではない時間がかかっていました(数十倍とか、下手すると数百倍)。 -C または -e 1 オプション指定時(クリスタルまたはメタル時計)のみ、 補助バッファや毎回画面クリアを使わずに処理する方法に変更しました。 クリスタル時計時の処理は単純であるため特に速くなっており、 OpenGL ハードウェアの環境では、前までの速度とはけた違いです。 是非一度お試しを。 ※ただし、一般にフレームバッファの精度(ビット数)は 補助バッファ程高くないため、画質は悪くなります。 できれば、フルカラー表示できる環境でお試しください。 ○ Voodoo版は、3Dfx OpenGL Beta 2.1 ドライバに対応 3Dfx Voodoo 関係のチップを搭載したビデオカード用に、 これまでは Mesa3D と呼ばれる OpenGL互換ライブラリを利用していましたが、 この度、3Dfx 社の OpenGL Beta 2.1 に対応しました。 全体的にかなり速度アップしている上、 Mesa3D 特有の計算の誤差らしきバグもなく、非常に綺麗です。 ・Voodooo2、Voodoo Graphics または Voodoo Rush を搭載したビデオカード ・Glide 2.31 または Glide 2.4x の ランタイムライブラリ(glide2x.dll) ・3Dfx OpenGL Beta 2.1 が必要です。 3Dfx OpenGL Beta 2.1 は、 http://www.3dfx.com/docs/opengl_beta/opengl_beta.html から入手できます。 3Dfx OpenGL Beta 2.1 を展開した中に含まれている 3dfxopengl.dll を glclock を展開したフォルダにコピーし、 ファイル名を opengl32.dll に変更します。 glclock.exe を削除(またはファイル名を変更)し、 同じフォルダにある fxclock.exe を、ファイル名 glclock.exe に変更します。 以降は、通常の Windows 環境と同じように実行できます。 ○ 再びフリーソフトウェアに glclock はある時期からカンパウェアとしていましたが、 やっぱし結局フリーソフトウェアに戻しました。(^^;; まあ、今までからも README.TXT に記してあった通り、 実質フリーウェアとして扱って頂いていたので、あんまし関係ありませんが...。 ○ ベンチマーク(benchclockで起動)テストに1つ追加 テスト「12. tri-linear transparency texture single buffer」 の次に、 「13. tri-linear transparency texture with over sampling single buffer」 「14. tri-linear transparency texture with over sampling double buffers」 の2つのテストを追加しました。 前までの 13.以降のテストは、15.以降に移動しています。 13. 14. は、オーバサンプリングによるモーションブラーのテストです。 ○ FPS 表示時の TPS が間違っていたのを修正 -F オプションまたは実行中に 'f' キーでフレームレートを表示できますが、 その時一緒に表示されている TPS(1フレームで描画している三角ポリゴン数)の 計算が少し間違っていたので修正しました。実際ほとんど変わってませんが。 ○ 環境マップ用テクスチャ画像 "sky.ppm" 多少修正 ○ その他細々とした修正 -- ● glclock-4.41 からglclock-4.42 への変更点(1998/08/16) ○ Windows版のみ ディスプレイ解像度 Windows版のみ、-w(ウィンドウ幅)、-h(ウィンドウの高さ)および -FU(フルスクリーン実行)オプションをすべて指定すると、 ディスプレイを -w,-h で指定した解像度に変更して実行します。 例えば glclock -w 640 -h 480 -FU のように指定すると、 640x480 ピクセルのフルスクリーンモードで実行します。 ※エラー処理はしているので特に危険はないはずですが、 明らかに表示の不可能な解像度は指定しないでください。 ○ その他細々とした修正 -- ● glclock-4.4 からglclock-4.41 への変更点(1998/06/12) ○ Windows NT のベンチマーク修正 Windows NT で、ベンチマーク結果がファイルに出力されていなかった バグを修正しました。 ○ FPS 表示の時の PPS を TPS(Triangles Per Second)に FPS 表示を ON にしたとき(-F オプションまたは実行中に 'f'キー)、 標準出力の PPS(Polygons Per Second)を、TPS(Triangles Per Second)に 変更しました。時計を構成している見かけのポリゴン数ではなく、 実際に描画処理を行ったトライアングル数になっています。 って、そんなことどうでもいいか...(^^; ベンチマーク結果も、平均FPS以外に、平均TPS、1フレームの描画に使用している トライアングル数も出力するようにしました。 benchclock での各種テストの説明をマニュアルに記載しました。 マニュアルの「●ベンチマークテストを実行する」をご覧ください。 ○ フォグ(空気遠近法)を正確に フォグが一部おかしかったのを修正しました。 ○ 文字盤へ壁の映り込みをリアルに(UNIX版のみ) 壁の文字盤への映り込みを、距離によってだんだん薄くなるようにしました。 ただし、UNIX版のみで、-r & -R オプション使用時だけです。 Windows版もプログラム上は実装しているのですが、 RIVA128など、アルファグローをサポートしていない環境があるため、 あえて使っていません。 ○ その他、細かな修正 -- ● glclock-4.31 からglclock-4.4 への変更点(1998/05/22) ○ 秒針だけモーションブラー機能追加 モーションブラーが遅すぎてあまりに実用に耐えないため、 秒針にだけモーションブラーをかけることができるようにしました。 それに伴い、-sm[otion] および -ss[hutter] オプションを追加。 しかし、普通に見てるだけではほとんど分かりません。(^^;; ○ テクスチャフォーマット選択オプション(暫定)追加 テクスチャの内部フォーマットが 24bit RGB 固定だったのを 24bit RGB または 32bit RGBA から選択可能にしました。 通常はほとんど意味はありませんが、32bit フォーマットしか使えない 環境があった場合に役に立ちます(まず無いですが...)。 ○ 追加したオプションの説明 -sm[otion] n 秒針のみモーションブラー 秒針のみにモーションブラー効果をかけます。 しかし、普通に見てるだけではほとんど分かりません。(^^;; -C オプション(クリスタル時計)以外の実行では 擬似的な方法になります。 例によって複数回描画しますが、 この時の描画回数を n で指定します。 n には 2 以上を指定します。 1 以下はデフォルト値で、モーションブラーを行いません。 n が大きいほど画質は向上しますが、描画は遅くなります。 ※実行中に'n'キーでいつでも機能を ON/OFF できます。 この時、デフォルト(-sm 0 or 1 または -sm オプションなし)の 場合は自動的に 8 回に再設定されます。 -sm で 2 以上の回数を指定していた場合は、その回数になります。 -m(通常のモーションブラー)と同時には実行できません。 -ss[hutter] d 秒針モーションブラー実行時の、シャッタースピードの指定。 基本的には -sh[utter] オプションと同じです。 モーションブラーでどのくらいの時間ブレをかけるかを 前回から今回のフレームまでの連続時間の百分率で指定します。 1.0 で前回の時間から連続になり(デフォルト) 0.0 だとブラー効果なしになります。 -tf[ormat] s テクスチャフォーマットの指定 現時点では、s には RGB(RGB 24bit フォーマット)または RGBA(RGBA 32bit フォーマット)のいずれかを指定できます。 通常はほとんど意味はありませんが、例えば 32bit フォーマットしか使えない環境があった場合に役に立ちます。 -- ● glclock-4.3 からglclock-4.31 への変更点(1998/05/11) ○ パフォーマンスアップ 描画の仕方を少々変更しました。 その結果、10% 〜 最大で(設定によっては)60% ほどスピードアップしました。 ○ Voodoo 版の操作性が向上 具体的には、ディスプレイの解像度を適切に変更するようにし、 ドラッグしている間だけマウスの位置にサイト(照準??)を 表示するようにしました。 前までかなり劣悪でしたが、随分ましになったと思います。 -- ● glclock-4.22 からglclock-4.3 への変更点(1998/04/25) ○ -n[width] オプション追加 時計の針の幅を変更するオプションを加えました。 あんまし役に立ちませんが... ○テクスチャのフィルタオプションの指定方法追加 テクスチャのフィルタ(-fi[lter])オプションの引数で N, L, NN, LN, NL, LL のいずれかを指定する代わりに、 直接 -N, -L, -NN, -LN, -NL, -LL のいずれかのオプションを 指定することができるようにしました。 またこれにより、-L[OCAL] オプションは、-LO[CAL] に変更。 つまり、-LOCAL オプションの最低認識文字が -L から -LO になりました。 同様に -N[OLID] オプションは、-NO[LID] に変更しました。 ○起動スクリプト f_glclock 追加 ソフトウェアエミュレーション用の起動スクリプト f_glclock(Windows版は f_glclock.bat と、自動作成のショートカット f_glclock) を追加しました。 内容は、woodclock に対する f_woodclock などと同様、 glclock がもっと単純な形になり、速くなるだけです。 ○ glclock をカンパウェアに これはバージョンアップとはあまり関係ありませんが、 glclock はカンパウェアにさせて頂きました。 とはいっても、あくまでユーザの方の御厚意による寄付であり、 配布/改変等は自由です。 使用制限その他も一切ありませんので、これまで通りご利用ください。 詳しくは、README.TXT の ●ソフト種別 をご覧ください。 ○ドキュメント整備 各種ドキュメントを整備しました。 前よりは読みやすくなったことと思います。 特に、MANUAL.TXT のオプションの説明は各オプションを簡単に分類し、 調べやすくしました。 ○その他、細かなバグの修正等 ○追加・変更のあったオプションの説明 -n[width] d 時計針の幅変更オプション d には 0.0 以上 3.0 以下の値を指定できます。 デフォルトは 1.0 です。 デフォルトでも glclock-4.22 以前より少々広めです。 -{ N | L | NN | NL | LN | LL のいずれかを指定 } テクスチャに使用するフィルタを指定します。 指定方法が異なるだけで、-fi[lter]オプションと内容は同じです。 -N … ポイントフィルタ -L … バイリニアフィルタ -NN … ポイントフィルタ & ミップマップ -NL … ポイントフィルタ & ミップマップ・バイリニア -LN … バイリニアフィルタ & ミップマップ -LL … バイリニアフィルタ & ミップマップ・バイリニア (トリリニアフィルタ:デフォルト) ※ -fi[lter] オプションも参照してください。 -LO[CAL] OpenGL の、GL_LIGHT_MODEL_LOCAL_VIEWER を適用します。 これを指定すると、シェーディングの際に 視線ベクトルを頂点単位で計算します。 描画速度は低下しますが、写実性は多少向上します。 ※glclock では、擬似的に面の法線ベクトルをずらすなどして、 このオプションを指定しない場合の画質の劣化を軽減しています。 そのため、このオプションによる劇的な変化はありません。 -NO[LID] 時計の蓋の描画をなくします。開閉(?)はできます。 -- ● glclock-4.21 からglclock-4.22 への変更点(1998/04/19) ○ Windows版 バッチファイル復活 4.21 で起動コマンドのバッチファイルを削除していたのですが、 よく考えるとこれではコンソールから実行できないので、復活させました。 まあ、あまり使う人はいないと思いますが(普通ショートカットで OK)。 ○ Windows版は ショートカット用のアイコンを追加 32x32 256色アイコンをいくつか追加しました。 256色だけです。はっきり言って手抜きです。時間がありません。誰か作って... ○ Windows版は ソースを分離しました。アーカイブには含まれていません。 ○その他細部変更 多少変更した箇所がありませすが、ほとんどWindows版しか変更してません。 -- ● glclock-4.2 から glclock-4.21 への変更点(1998/04/17) ○ Windows版は、バッチファイルの代わりにショートカット自動作成 Windows版は、 benchclock.bat 以外のバッチファイルを添付するのをやめ、 代わりにショートカット自動作成プログラム mkshortcuts.exe を添付しました。 始めに mkshortcuts.exe を実行すると、 f_metalclock, metalclock など合わせて10個のショートカットが 自動的に作成されます。 これまでと違い、いきなりショートカットから簡単に実行できます。 ○ f_skyclock と skyclock を少々変更 -- ● glclock-4.1 から glclock-4.2 への変更点(1998/04/15) ○ Windows版はようやくウィンドウアプリに 要望が多かったのですが、ようやく Windows版はウィンドウアプリになりました。 ただし、バッチファイルはコンソールから上がります(これもいずれ対処します)。 コンソールは上がらなくなりましたが、逆に途中のメッセージは読めません。 読みたい方は、標準出力をリダイレクトしてください。 そのうち、きちんとウィンドウのメッセージにするつもりです(あくまでつもり)。 ※気に入ったオプションの組み合わせを見つけた場合は、 ショートカットにしておくことをお薦めします。 glclock.exe からショートカットを作成し、プロパティのショートカットタブの リンク先に、お気に入りのオプションを加えてお使いください。 ○実行画面左上にも FPS 表示 -F オプション(または実行中に 'f' キー)で fps 表示をした場合、 画面左上にも fps 表示が出るようになりました。 ○テクスチャイメージ読み込みパスの環境変数 "GLCLOCK_IMAGE_PATH" 付加 テクスチャマッピング実行時にカレントディレクトリ(glclock を実行した場所)に 指定した ppm ファイルがない場合は、 環境変数 "GLCLOCK_IMAGE_PATH" で指定したディレクトリも検索するように なりました。 これまでは、実行したディレクトリに指定された ppm ファイルがないと その場でエラー終了していました(実行ファイルにパスが通っていても駄目)。 特に UNIX 環境で有効です。例えば、csh シェルをお使いなら、.cshrc に setenv GLCLOCK_IMAGE_PATH ppmファイルの置いてあるディレクトリのパス のような一行を加えておくと良いでしょう。 ※ただし現時点では、ディレクトリは1つしか指定できません。 そのうちいくつでも指定可能なフォーマットにする...かもしれない。 ○ -sl[eep] オプション追加 ○ -e[nv] オプションは、また引数に 3 まで指定可能に これはちょっと失敗。引数 2 が新しい奴ですが、思い通りに行きませんでした。 うーむ。一応、前までの 2 の指定は 3 に変わりました。 ○形状の不具合を修正 時計の形(-d オプション、デフォルトは 24角形)を 6 以下に指定した場合に、 ガラスや時計の針、その他オブジェクトがはみ出していたのを修正しました。 -d 3 (三角時計)でもちゃんと時計になります(妙な感じにはなりますが) ○画像ファイル変更 "sky.ppm"(環境マップ)および "marble.ppm"(大理石テクスチャ)を 変更しました(きめ細かくなった)。 ただ、これによりアーカイブのサイズが大きくなってしまいました。m(_ _)m そのうち、何らかの形で対処するつもりです。 どっかにフリーの汎用(Windows, UNIX)画像ローダはないでしょうか? JPEGにしてしまえば、全然問題ではなくなるのですが... 何かご存じの方、ご連絡お待ちしています。 ○Voodoo チップ搭載カード専用の実行ファイル作成 これまでは実行ファイルは同じものを使っていましたが、何かと不具合が多いため 別モジュールにしました。 例えば、なかなかフルスクリーンに切り替わらなかったり、 適当にクリックするとウィンドウモードに戻ってしまうことは 滅多に起こらなくなりました。 またこれに伴い、Voodoo モジュールのデフォルトのウィンドウサイズを 640x480 に変更しました。 Voodoo2 搭載カードをお持ちの方は、-w 800 -h 600 などでもお試しください。 実行モジュールは Voodoo用のアーカイブに添付しています。 これまで同様、上書き展開してお使いください。 ※通常のものを残しておきたい場合は、あらかじめ別のフォルダに通常の glclock 関連をすべてコピーしてから、Voodoo用に使いたいフォルダに、 Voodoo用アーカイブを上書き展開してください。 ○その他の修正(ベンチマークの出力を少々変更 etc.) ○追加・変更したオプションの説明 -sl[eep] n CPU 負荷コントロールオプション。 1フレーム描画する度に、n ミリ秒実行をスリープします。 デフォルトは 0(一切スリープしない)です。 スリープしている間 CPU を使いませんので、 常駐させておきたい場合などに負荷を軽減するために使用します。 常駐させるなら毎秒1〜2回程度動けば良いので(多分)、例えば glclock -sl 500 ように実行して毎フレーム 0.5秒スリープさせます。 -e[nv] n 環境マッピングを実行します。 n には、0〜3 までの値を指定します。 0 : デフォルト。環境マッピングを行なわずに 時計自身の素材でシェーディングします。 1 : テクスチャの色を、時計の色と光源0(-bgcolor参照)の色で 変調して描画します(鏡時計) 2 : うーんまだちょっと甘い。 1 をもう少しくっきり綺麗にした 感じになるはずが、あまり変わってません。 そのくせレンダリングには倍時間がかかります。 3 : 環境マッピングとシェーディングを重ね描画します。 半分映り込んだようになり写実性は向上しますが、 レンダリングにはその分時間がかかります。 -- ● glclock-4.01 から glclock-4.1 への変更点(1998/04/03) ○お薦め起動コマンドのスクリプト(Windows版はバッチファイル)を用意 マニュアルのお薦めオプションの項目も大きく変更しました。 作成したコマンドは以下の通りです。 基本的に 'f_' で始まるコマンドは、 ハードウェアアクセラレーションが効かない環境用です。 metalclock 金属質な時計 f_metalclock crystalclock クリスタルな時計 f_crystalclock woodclock テッカテカの木時計 f_woodclock marbleclock テッカテカの大理石時計 f_marbleclock skyclock うーん環境マップをソリッドにしたような妙な時計 f_skyclock benchclock 下記参照 ○ベンチマークモードを追加 benchclock というスクリプトで、一連のベンチマークテストを実行できます。 現段階では、いろいろな条件で実行し、 それぞれの平均のFPS(Frames Per Second)を出力するだけです。 結果は、bench.log というファイルに書き込まれます。 ○今まで書き忘れていたが(申し訳ありません。m(_ _)m)、 -ss[cale], -ts[cale] のデフォルトサイズを 41.0 に ○ -v[smooth] オプション追加 ○ -B[ENCH] オプション追加 ○追加したオプションの説明 -v[smooth] n 時計本体の緯度方向(?)のスムージングフラグ。 緯度方向に対するスムージング(法泉ベクトルを隣同士の ポリゴンから平均化して計算)の条件を次の中から指定します。 -1: 用意したパターンに従って(場所によってデータ化) スムージングを行います(デフォルト)。 0: スムージングを行いません。 1: 必ずスムージングを行います。 ※ -u[smooth] オプションも参照のこと。 -q 1 -v 1 -u 1(時計の形を単純にしてスムージング)などと指定すると、 グーローシェーディングによるハイライトの不具合が良く理解できます。 -B[ENCH] ベンチマークモード(?)で起動します。 マウスやキーボードによる操作はできなくなります。 ある程度経つと自動的に終了し、結果を標準出力に出力します。 現段階では、平均の FPS(Frames Per Second)を出力するだけです。 -- ● glclock-4.0 から glclock-4.01 への変更点(1998/03/31) ○細部の修正(しっかし見て分かる奴はいねぇ!?) -- glclock-3.23 から glclock-4.0 への変更点(1998/03/12) ・-S[INGLE](シングルバッファモードで実行)オプション追加 ・-S[TOP] オプションは、-ST[OP] に変更 前までは、-S だけでこのオプションと認識していたが -ST まで指定が必要に ・-sf(ソリッドテクスチャ画像指定オプション)をコマンド中2回指定可能に 1回しか指定しない場合はこれまで通り(すべて同じ画像でマッピング) 2回指定すると、2回目に指定した画像は文字盤のテクスチャに使用 ※つまり、文字盤とそれ以外の部分で別のテクスチャが使用可能ということです。 ただし、現段階では、-r オプション指定時にしか有効になりません。 ・環境マップ(用のテクスチャ画像)"sky.ppm" に、計算した光源を追加、変更 実行時、環境テクスチャに用途別(ガラス、金属等)にガンマコレクションなどを 施し、-e や -r 指定時の環境マッピングをもっとリアルにした。 これにより、環境マッピングに対してはシェーディングが必要なくなったため、 -e, -r オプションの指定できるレベルを二段階に(引数の最大値を 2 に)変更。 ・ソリッドマッピング用テクスチャ画像 "wood.ppm" 修正 ・その他細部の修正 追加および修正オプションの説明 -S[INGLE] シングルバッファモードで実行します。 デフォルトではダブルバッファモードになります。 ※通常 OpenGL のダブルバッファモードは、ディスプレイの リフレッシュレートとシンクロしながら実行します。 通常の実行時はこれで良いのですが、ベンチマークを取る場合、 正確な測定をするためにはこのオプションを指定します。 -ST[OP] 時計は動きません(意味なし)(^^;; -sf[ile] s ソリッドマッピングに使用する画像ファイルを指定します。 デフォルトは付属の wood.ppm です。 -s または -r で 1 以上が指定されていなければなりません。 ※このオプションは、コマンドライン中最大2回指定できます。 2回指定すると、2回目に指定した画像は文字盤に使用されます。 つまり、文字盤とそれ以外で別のテクスチャを使用できます。 1回しか指定しなかった場合はどちらも同じテクスチャになります。 ただし、現段階では、-r オプション指定時にのみ有効です。 glclock -r 2 -sf marble … 全体を大理石のイメージで描画 glclock -r 2 -sf marble -sf wood … 文字盤だけは木目で描画 それ以外は大理石で描画 ※テクスチャマッピングに使用する画像ファイルは、 現在のところ ppm フォーマットしか対応していません。 拡張子 ".ppm" は省略できます。 -e[nv] n 環境マッピングを実行します。 n には、0〜2 までの値を指定します。 0 : デフォルト。環境マッピングを行なわずに 時計自身の素材でシェーディングします。 1 : テクスチャの色を、時計の色と光源0(-bgcolor参照)の色で 変調して描画します(鏡時計) 2 : 環境マッピングとシェーディングを重ね描画します。 半分映り込んだようになり写実性は向上しますが、 レンダリングにはその分時間がかかります。 -r[eal] n 写実性重視オプション。 ソリッドマッピングと環境マッピングを重ね合わせ、 テッカテカでリアルな時計を描画します。 -e や -s オプションとは次元が違うくらいかっこよくなります! しかし、OpenGL 対応のボードが無いとかなり遅いです。 n には 0〜2 を指定できます。 0 : デフォルト。オプションは無効です。 1 : ソリッドマッピングに環境マッピングを重ねます。 拡散シェーディングは行わないため、多少立体感に欠けます。 2 : ソリッドマッピングで拡散シェーディングし、 さらに環境マッピングでハイライトを表現します。 相当リアルになりますが、もっとも遅くなります。 ※全体的な素材は、ソリッドマッピングによります。 例えば -sf marble を同時に指定すると、リアルな大理石時計になります。 -- glclock-3.22 から glclock-3.23 への変更点(1998/02/25) ・いつのバージョンからか -a[nti] オプションが無効になっていたのを修正 ・2.92 で、FPS をより正確にしたとか言いながら全然正確じゃなかったのを修正 ・表面ガラスの種類によってリソースを喰らい続けていたバグを修正 実行後しばらく経つとメモリ不足になったりしていたのはこれです。 今回はバグの修正のみ。ご迷惑をおかけしました m(_ _)m -- glclock-3.21 から glclock-3.22 への変更点(1998/02/16) ・Windows版は、PERMEDIA2 のボードに対応(作者の環境では正常動作を確認) ・-u[smooth] オプション追加 -u[smooth] n 時計本体の経度方向(?)のスムージングフラグ。 経度方向に対するスムージング(法泉ベクトルを隣同士の ポリゴンから平均化して計算)の条件を次の中から指定します。 -1: 時計が12角形以上(-d オプション参照)の場合に スムージングを行います(デフォルト)。 0: スムージングを行いません。 1: 必ずスムージングを行います。 -q 1 -u 1 (時計の形を単純にしてスムージングを行う)などと指定すると、 グーローシェーディングによるハイライトの不具合が良く理解できます。 -- glclock-3.2 から glclock-3.21 への変更点(1998/02/14) ・Windows版は、RIVA128ボードの OpenGL βドライバに完全対応(多分) PERMEDIA2 は調整中 ・その他細かなバグの修正 -- glclock-3.1 から glclock-3.2 への変更点(1998/02/13) ・Windows版は、RIVA128ボードの OpenGL βドライバ用に暫定的に対応 具体的には -e, -s, -r, -C オプション指定時の描画を正常に ・スペキュラーの描画辺りを大幅に変更(速度重視に) それにより多少(本当に多少)速度が向上 ・マニュアルに、お薦め起動コマンド等の項目を追加 MANUAL.TXT 参照 -- glclock-3.0 から glclock-3.1 への変更点(1998/02/11) ・粗いメッシュ(オプション -me 0 または、-q 1〜3 指定)時に、 時計の底が角張っていたのと、 細かいメッシュ(デフォルト)時に形状が一部間違っていた(?)のを修正 ・-l[ight] オプションが、マニュアルと違い -li[ght] になっていたのを修正 ただし、バージョン 3.0 でも既に直っていたものもあります。 ・マニュアルの -C[RYSTAL] オプション関係を少々変更 ・その他細部の修正等 -C[RYSTAL] クリスタルな(?)時計を描画します。 半透明な環境マッピングが . . . 強引です(^^;; 具体的には、環境テクスチャのカラーによって 透明度を変化させながら描画します。 シェーディングは行いません。 また、本来ならソートする必要がありますが、 一切気にしていませんん。(^^;; -- glclock-2.93 から glclock-3.0 への変更点(1998/02/08) ・引数をとらないオプションを大文字指定に変更 これにより、いくつかのオプションの認識文字数が減少 ・-r[eal] オプションの仕様変更 ・-i[size] オプション追加 ・-R[EFLECT] オプション追加(前までの -r 2 に相当) ・プログラム全体を高速化(あんまし変わらんか . . .) ・ソリッドマッピング用イメージ "wood.ppm", "marble.ppm", "metal.ppm" を 少々加工 ・複数のテクスチャを使用する場合のテクスチャ切り替え処理の無駄を削減 最初にイメージをつなぎ合わせて、一枚のテクスチャに統合しています。 切り替え処理を省けるため、-r[eal] オプション指定時の速度が向上しました。 逆に副作用があります。 -r[eal] オプション指定時に -t[exscale], -ss[cale], -ts[cale] などの オプションで小さなサイズを与えると . . . 見れば分かります。(^^;; このため、これらのオプションのデフォルト値を 20.0 から 33.0 に 変更しました。拡大する分には問題ありません。 ・その他細部をごちゃごちゃと修正 #Windows版で、バージョン 2.91 からアイコンは実行ファイル(glclock)に #含まれているはずなのに、何故か IE-4.0 がないと見えない(?) #Windowsは良く分かんね。 -r[eal] n 写実性重視オプション。 ソリッドマッピングと環境マッピングを重ね合わせ、 テッカテカでリアルな時計を描画します。 -e や -s オプションとは次元が違うくらいかっこよくなります! しかし、OpenGL 対応のボードが無いとかなり遅いです。 n には 0〜3 を指定できます。 0 : デフォルト。オプションは無効です。 1 : ソリッドマッピングに環境マッピングを重ねます。 シェーディングは行わないため、立体感に欠けます。 2 : ソリッドマッピングで拡散シェーディングし、 環境マッピングでハイライトを表現します。 1 より遅くなりますが、立体感が出ます。 3 : ソリッドマッピングで拡散シェーディングし、 さらに環境マッピングもスペキュラーでシェーディングします。 相当綺麗ですが、もっとも遅くなります。 全体的な素材は、ソリッドマッピングによります。例えば、 -sf marble を同時に指定すると、リアルな大理石時計になります。 -i[size] n テクスチャとして設定する前にイメージをフィルタ処理しながら 縦横それぞれ 2 の n乗 サイズにスケーリングします。 ただし、負の数を指定すると、無条件にシステムがサポートする 最大サイズまで拡大します。 0(デフォルト)は、元の画像ファイルの大きさのまま利用します。 -i 8 と指定すると、256x256 にスケーリングします。 ハードウェアでのフィルタ処理を実装しない環境では、フィルタ処理を なくすと大幅に速度が向上します。しかし、画像サイズをよほど大きく しないとサンプリング不足によるジャギーやモアレが目立ちます。 そこで、あらかじめフィルタ処理を施しながらテクスチャのイメージを 拡大しておきます。これにより、擬似的にバイリニアフィルタリングを 施したような効果が得られます。それがこのオプションの目的です。 ※ただし、当然ながらサイズに比例して資源を使います。 ハードウェア非対応の環境でテクスチャマッピングを行う場合、 -q 1 -fi N -i -1 -l 1(各オプション項目参照)を 指定すると劣化も比較的少なく、ずいぶん速くなります。 ※このオプションは、テクスチャにバイリニアフィルタを施している場合、 つまり -fi L or LN or LL オプション指定時には意味がありません。 また、Mesa3D の gluScale()はフィルタ処理が行われないらしく、 効果はありません(現段階では、gluScale()でスケーリングしています)。 -R[EFLECT] 針や、変な球体、文字盤上のオブジェクトを 文字盤へ映り込ませます(細かいことは気にしない(^^;;)。 バージョン 2.93 までの -r 2 オプションに相当します。 ※現時点では、文字盤にしか映らない上に、 -r 2 または 3 指定時にしか正常に実行されません。 -- glclock-2.92 から glclock-2.93 への変更点(1998/02/05) ・文字盤への映り込みを少し綺麗に ・-go[ld] オプションについて、マニュアルを修正 ・その他細部の修正 -go[ld] n 時計の周囲に付いている金色の飾りの細かさを指定します。 金飾りは三角錘(四面体)を n 回分割して描画しています。 1回の処理で、構成する三角形を4枚に分割するため、 1つの飾りで 4 の n+1 乗枚のポリゴンを描画することになります。 n には、1 以上を指定します(デフォルトは 1)。 5 以上はやめた方が良いでしょう(^^;; ※前は、"4 の n 乗枚のポリゴン"となっていましたが、 "4 の n+1 乗枚のポリゴン"の間違いです。 -- glclock-2.91 から glclock-2.92 への変更点(1998/01/30) ・FPSの計算を正確に ・光源処理のおかしかった部分を修正 ・Windows版 glut32.dll を変更(何が違うんだ?でもサイズは遥かに小さい) ・オプションおよびマニュアル修正(前までの -s[pec]オプション) -sp[ecular] d 全体的なスペキュラー(ハイライト)の強さを指定します。 デフォルトは 1.0 です。 ※前までのオプションは、-s[pec] d となっていますが、 -s n だけでは -s[olid] n オプションと認識されてしまいます。 -f[ps] 標準出力に FPS を出力します。 2秒または60フレーム毎に FPS(フレーム/秒)を計算し、 FPS と、PPS(ポリゴン/秒)と、時計を構成している ポリゴン数(描画している枚数ではない)を標準出力に出力します。 実行中に'f'キーを押すと、いつでも出力を ON/OFF できます。 -- glclock-2.9 から glclock-2.91 への変更点(1998/01/28) ・Windows版の意味不明なバグを強制的に修正 それに伴いWindows版のみ -fi[lter] オプションに制限 ・Windows版はアイコン(ただし 32×32 256色のみ)を実行モジュールに付属 ・その他細部の修正(映り込みの手直しなど) -fi[lter] s テクスチャに適用する拡大・縮小フィルタを指定します。 OpenGL の GL_TEXTURE_MAG_FILTER および GL_TEXTURE_MIN_FILTER の設定で、次のいずれかを指定できます。 N : ポイントフィルタリング。 拡大・縮小双方を GL_NEAREST にします。 L : いわゆるバイリニアフィルタリング。 拡大・縮小双方を GL_LINEAR にします。 NN : ミップマップ。 拡大フィルタを GL_NEAREST に、 縮小フィルタを GL_NEAREST_MIPMAP_NEAREST にします。 NL : ミップマップのリニアフィルタリング。 拡大フィルタを GL_NEAREST に、 縮小フィルタを GL_NEAREST_MIPMAP_LINEAR にします。 LN : バイリニアフィルタリングおよびミップマップ。 拡大フィルタを GL_LINEAR に、 縮小フィルタを GL_LINEAR_MIPMAP_NEAREST にします。 LL : いわゆるトリリニアフィルタリング。 拡大フィルタを GL_LINEAR に、 縮小フィルタを GL_LINEAR_MIPMAP_LINEAR にします。 デフォルトは LL です。 OpenGL 用のハードウェアをもたない環境では、 N にするとかなり描画速度が向上します。 ※Windows版のみ、NN および LN フィルタは指定できません。 -- glclock-2.81 から glclock-2.9 への変更点(1998/01/27) ・文字盤への映り込み表現を追加 それに伴い -r[eal] オプションを引数付きに変更 ・テクスチャ関係のバグフィックス ・ソリッドテクスチャ用画像 "metal.ppm" のサイズ変更 ・その他細部の修正 -r[eal] n 写実性超超超!重視オプション。 テッカテカで超リアルな時計を描画します。 -e や -s オプションとは次元が違うくらいかっこよくなります! n には現在のところ 0〜2 を指定できます。 0 : デフォルト。オプションは無効です。 1 : ソリッドマッピングに環境マッピングをあわせ、 リアルなハイライトをもつ時計を描画します。 2 : さらに、文字盤上への針などの映り込みを表現します。 現在は映り込みは文字盤に対してだけです。 全体的な素材は、ソリッドマッピングによります。例えば、 -sf marble を同時に指定すると、リアルな大理石時計になります。 -- glclock-2.8 から glclock-2.81 への変更点(1998/01/25) ・-sscale, -tscale, -texscale オプションの追加 ・-real オプション時の鏡面反射の仕方を多少変更 同じく金飾りのハイライトの色調を金色に ・その他細部の修正 -ss[ize] d ソリッドテクスチャ実行時(-s または -r オプション)の テクスチャの S 座標方向のスケールを変更します。 デフォルトは 20.0 です。 -ts[ize] d ソリッドテクスチャ実行時(-s または -r オプション)の テクスチャの T 座標方向のスケールを変更します。 デフォルトは 20.0 です。 -t[exscale] d ソリッドテクスチャ実行時(-s または -r オプション)の テクスチャの S,T 両方に同じ値を指定します。 -- glclock-2.71 から glclock-2.8 への変更点(1998/01/22) ・ソリッドテクスチャ用サンプル画像 "metal.ppm" を追加 ・-real オプションの追加 ・その他細部の修正 -r[eal] 写実性超超超!重視オプション。 ソリッドマッピングに環境マッピングを加算描画し、 テッカテカで超リアルな時計を描画します。 -e や -s オプションとは次元が違うくらいかっこよくなります。 全体的な素材は、ソリッドマッピングによります。例えば、 -sf marble を同時に指定すると、リアルな大理石時計になります。 -- glclock-2.7 から glclock-2.71 への変更点 ・-pers オプションの追加 -p[ers] s OpenGL に、パースペクティブコレクションのヒントを設定します。 OpenGL の動作環境によって解釈のされ方は異なるため、 必ずしも設定した通りにはなりません。 F : GL_FASTEST : 最も効率の良いオプションを選択。 N : GL_NICEST : 最も正確、または最高品質のオプションを選択。 それ以外 : GL_DONT_CARE : 選択なし(デフォルト)。