| BCView 0.6 → 0.6k / 0.5 → 0.5p | (更新日 08/07/20) |
| 0.6b | 0.6c |
|---|---|
|
|
|
自慢のロングヘアーが傷物に! これは許せません(すみません) | |
サイズはzipファイルのサイズです。名前(bcview06.zip)は変わっていません。
内蔵のbcview.exeのサイズは0.6〜0.6cが352KB、0.6d〜0.6hが428KB、0.6i〜0.6jが420KB、0.6kが428KBです。
実行中は'?'か'<F1>'キーから「About/help」でバージョンを確認できます。
| BCView 0.5 → 0.5p / 0.6 → 0.6k | (更新日 08/07/20) |
| 0.5o | 0.5p |
|---|---|
|
|
|
|
| 0.5oは非平面で半分見えない4角形が黒くなり変なハイライトもある(上) 非平面4角形が無い形状ではともに正常(下) | |
| 0.2c | 0.5(a) | 0.5b | 0.5c |
|---|---|---|---|
|
|
|
|
| 疑ってもみなかったバグでした・・・ | |||
サイズはzipファイルのサイズです。名前(bcview05.zip)は変わっていません。
内蔵のbcview.exeのサイズは0.5、0.5aが364KB、0.5bが356KB、0.5c〜0.5iが352KB、0.5j〜0.5mが428KB、0.5n〜0.5oが424KB、0.5pが432KBです。
実行中は'?'か'<F1>'キーから「About/help」でバージョンを確認できます。
| 修正情報補足 | (更新日 08/07/20) |
ここには普通使うぶんには必要なさそうな説明をまとめています。普通に使いそうな説明はTipsにまとめています。 Info 20以前は時期的に0.6リリース前に書いたもので、気づいた限りでは追記していますが、0.6については0.5との相違点Info 21を参考にしてください。
補助ライトは0.5pと0.6kで同一処理で複数回描画によるエフェクト(Tip 26参照)です。 このため0.6kで補助ライトはGLSLシェーダー無効でも使用可能です。 描画順序は最後で、補助ライトは塗り潰しシャドウやトゥーンへも通常のライティングのグラデーションを上乗せします。
従来の複数回描画エフェクトと違って、透明サーフェースへも描きます。 ただし、透明サーフェース上への複数回描画はうまくありません。 エフェクトは強まります。(例えば透明サーフェースに覆われる下地には、透明サーフェースを透過したライトが減衰するような計算がないので、重なるほど余計に光ってしまいます。) また、処理がかなり重いかもしれません。(不透明サーフェースであれば全ポリゴン描画につき1回で済むライトや質感設定が、 透明サーフェースでの複数回描画では1ポリゴンにつき複数回繰り返されます。他にも重くなる理由と、軽くするにはInfo 19 参照)
Info 23: (キャプチャのオフスクリーン画像バッファ)
"Offscreen rendered by"をチェックした場合、画像ソースは(表示画像ではない)画像バッファになります。この場合画像サイズ指定が可能です。 画像バッファは0.6dではPB(pixel buffer)とFBO(framebuffer object)、0.5jではPBとGDI(WindowsのGL 1.1対応ソフトウエアレンダラー)です。
GDI以外はビデオカードのハードウエア対応が必要です。PBは比較的古めで、FBOはだいたいGLSL対応と一致するようです。 (ただしRADEON 9600では、FBOでは色深度 4bit、ステンシル 0bitでシャドウが出ないなど対応が悪く、 それに対してPBは、スクリーンと同画質で大画像キャプチャができました。)
画像サイズの上限はビデオカードにより制限されます。 ただしVRAMはディスプレイ表示、テクスチャ、その他アプリケーションに利用されますので、上限サイズが無事にレンダリングできるとは限りません。 例えば、VRAM不足で描画が極端に低速になることがあります。 またGDIはVRAMではなくメインメモリを使うためサイズの上限は常に不明です。
内部処理的な話ですが、FBO以外はディスプレイ表示上のVRAM上のテクスチャを共有できない場合があって、その場合、0.5j、0.6k以後ではテクスチャをリロードしてPBまたはGDIに与えます。 リロードした場合は、画像サイズなど変更がない間はテクスチャを保持し、その間はキャプチャ毎にリロードすることはありません。 ただしVRAMはシステム全体で共有されるリソースで、例えばウインドウの最小化ではOSから強制的に解放させられます。 そこでbcviewではウィンドウのサイズ変更があれば連続キャプチャ処理を中断するようにしています。
アンチエイリアスは"GL"は常に無効になり、"GL"が選択されている場合"CPU"を使って処理します。 現状、FBOではアキュームバッファをサポートされず、PBでもされないほうが多いようだからです。
Info 22: (複数回描画の一時的中断)
GUI関係では特に複数回描画処理中、GUI操作をしたとき操作優先で一時的な描画中断をするようになりました。
また複数回描画をともなう"DOF"の2つのスライダーとシャドウの"Soft edge"のスライダーは機能を使わなくても常に動かせるようにしました。
また機能を使用中のその3つのスライダーの最低描画回数は"2"であるほかは、多くの操作では"1"で複数回描画しないようになっています。
(とても細かい話: この設定自体のGUIはありませんが、設定ファイルの"08 CaptFlg"の先頭5つの数字 1、1、1、1、2は、ダイアログ操作、キー操作、
回転・移動関係のマウスドラッグ、ライト操作関係のマウスドラッグ、DOF関係のマウスドラッグの最低描画回数で、
8、8、8、8、8にすれば旧バージョン同様に一時的な中断のない複数回描画になります。)
Info 21: (0.5hと0.6bの機能比較)
| GL | 0.5h | 0.6b |
| 1.1 |
シャドウ、アウトライン、アンチエイリアス
テクスチャサーフェース上へのgouraudライト・ハイライト シングルテクスチャ テクスチャによるphong、toon、velvetハイライト トゥーンシェード (アンチエイリアス以外の全てのエフェクトが透明サーフェースには出ません。また、トゥーンの色が推定色で元絵のテクスチャの色を薄めます 注2) |
シャドウ、アウトライン、アンチエイリアス (0.5hと同じ方法で実現しており、同じ制約があります) |
| 1.2 | テクスチャサーフェース上へのgouraudハイライト (透明サーフェースにも出ます) |
|
| 1.3 | マルチテクスチャ (最大4枚まで、velvetハイライトとトゥーンでは3枚まで。ただしビデオカードの制限を越えません) |
|
| 2.0 | phong、toon、velvetハイライト、ガンマ、トゥーン、バンプマップ (今のところ、対象としたビデオカード(注1)のプログラム長の制約で、これらのエフェクトはトゥーンとバンプに拘束されます。 トゥーンではガンマなしtoonハイライト、トゥーン以外ではgouraud、phongかvelvetハイライト、ただしバンプサーフェース上ではphongかvelvetになります。 透明サーフェースにも出ます。またトゥーンは元絵のテクスチャ色を薄めません 注2) |
設定ファイルは、0.6bが0.5hの設定を読む場合はトゥーンの2つの輝度スライダーが半分になり、 0.5hが0.6bの設定を読む場合は2倍になります。(0.6bではかなり調整がきくためそうしました。なお処理が全然異なるため発色までは互換性はありません。以下参照。) (トゥーンの処理方法の相違)
トゥーンの色の元になる色について、例えば基本色が橙色■で拡散光が0.5、環境光、発光が0ならば、0.5h、0.6bとも茶色■と計算します。 (しかし、0.6ではそのまま基本色の橙色としていました。 GLSLではプログラム長も計算速度も問題なので単純化したつもりが、この比較を書いて無関係と気づき0.6aで修正しました。) toon/velvetハイライトは、トゥーンの色計算に依存するため0.5hと0.6bで異なります。 これに対してアウトラインの色計算は、0.5hと0.6bとも0.5hのトゥーンと同じです。 Info 19: (表示と質感設定の関係 透明) 透明サーフェースとはlwoで透明度が0%でない、mqoで不透明度が100%でない、または、アルファテクスチャによる透明ピクセルがあるサーフェースです。 ただし、"tr"オフでは透明度0%、不透明度100%、または透明ピクセルなしとして不透明サーフェース扱いになります。 また、アルファテクスチャのみによる透明の場合は"tx"オフでも不透明扱いになります。 透明度の表現には視点に対する前後関係の並べ替え(2DCG的にはレイヤー合成の順序)が必要ですが、bcviewではポリゴン単位で並べ替えを行っています。 (ポリゴンが交差しても分割せず、速度優先の簡略処理で、処理方式的にZバッファを有効にできないので、前後関係は必ずしも正しくないというレベルです。 それでもモデラーなどで操作性優先でこの処理がない場合もあるので、簡単な表示確認に使えると思います。) なお透明サーフェースには出ない複数回描画エフェクトは、0.5hでは"Hilight"と"Toon"、 0.5hと0.6bで"Shadow"と"Outline"です。
0.6bのシャドウと、0.5hのアウトライン以外のエフェクトは、視点に対して少し手前に描かれる必要があり、この調整が"Overlay effect offset"です。
OpenGL系カードは小さめ、DirectX系カードは大きめと分かれるようで、特にビデオカードの計算精度依存と思えます。計算精度はモデル頂点座標値依存でばらつきがあるので、だいたいの場合欠けが出ないという設定が適切です。
Info 17: (表示と質感設定の関係 基本)
"smooth"と"flat"の相違は、拡散光と反射光の設定とライティングの設定による照光計算によります。 それに対して両方を0%、発光を100%と設定した場合は照光計算は無効で両者の相違は見えなくなります。 (トゥーン表現を目的としたモデルでこういう設定のものがあるようです。)
現状、シャドウの計算は"smooth"/"flat"の切り替えによらず、モデルの質感設定でのスムージングのチェックと角度がそのまま反映します。
("Toon"の明色/暗色の境界も同様で、"smooth"/"flat"の切り替えがモデルの質感設定依存です。)
この例でexePathはbcview.exe Info 15: (カスタム設定ファイル 基本3) もし設定ファイルの拡張子を決めて拡張子の関連付けからオプションを指定する方法をとってよいなら、それはコマンドラインと同様にオプション指定ができ、使うのも設定ファイルのクリックだけで済むようになります。 (Windowsのことなので簡単に書きますが、関連付けは、新しい拡張子のファイルをクリックすると開くためのアプリケーションを問われるのでそこでbcview.exeを選び、また、オプションはexplorerのフォルダオプションから拡張子別の編集で変更できます。) なお設定ファイルの拡張子は特に定めていません。(1個のlwoやmqoに同名の複数の設定ファイルがあることを想定しました。特に1個で関連付けもしないならテキストファイルを意味する"txt"が妥当と思います。注1) Windowsの関連付けにかかわらず、bcviewは拡張子が何でもファイル内容の先頭9文字が"00 BCView"であれば設定ファイルとして扱います。 (特に、ctrl+shift+'v'キーで上書き保存になる場合にもこれをチェックしています。保存ファイル名を誤ったときlwoやmqoを上書きしないようにするためです。) (注1) 0.5jと0.6d以後では".bcs"を特定拡張子として認識し、"Load bcs setting"がチェックされていると同名モデルのロード時に同時ロードされますが、この場合設定はそのモデル閲覧限りで、次のモデル閲覧には持ち越されません。 ".bcs"の設定がロードは暗黙的であるため、明示的に設定を変更したい場合とは異なる動作としました。 ".bcs"が明示的にロードされた場合は従来通りです。 Info 14: (カスタム設定ファイル 基本2) 設定ファイルを指定するコマンドラインでは常に読み出し専用オプション'/r'を指定して使うことを推奨します。これは自動更新しないという意味で、手動更新はctrl+shift+'v'キーからいつでも可能です。 (自動更新はタイミングがあまりにわかりにくいため。なおInfo 11、12の方法では既定オプションに'/r'が付いているのでこの問題はありません。) Info 13: (カスタム設定ファイル 応用2) 複数の設定ファイルを組み替えて使う場合です。 (Info 11を先に読んでください。) 2つの設定ファイルa.001、a.002があって、例えば視点はa.001の設定を、ライトはa.002の設定を使いたい場合、 2つの設定ファイルをテキストエディタで開いてa.001から'v'■の行、a.002から'u'■の行をコピペしたものをa.003などとして保存し、それを使うのが楽です。 これをもう少し細かく見ると、同じ'u'■の行でもライト、シャドウ、トゥーンはそれぞれ12、15、14の行らしいと判るので、行単位に組み替えできます。 (さらに行の中の数字はどう並んでいるのかというと、だいたいはView controlsまたはLight controlsのスライダーの上からの並び順ですが、しかしcolorがある場合white、green、blueと並んで、redは最後のほうに付いたり、プログラムの修正履歴もからむのでめちゃくちゃです。そこまで細かくいじることはないと思うので説明は省きます。) Info 12: (カスタム設定ファイル 応用) 設定ファイルのドラッグ&ドロップでの既定オプションのうち'/uvwx'のいずれかを無効にする方法です。 (Info 11を先に読んでください。)
設定ファイルをテキストエディタで開いて、例えば00(必須)と'u'■の06、12、14〜16の6行だけ残して保存したとします。 その設定ファイルを使う場合、該当行がない分はオプション指定がなかったとして扱われます。 ('/ruvwxs'では実質'/rus'、'/oruvxs'では実質'/orus'になります。ただし、後者の場合'/w'はないのでウィンドウを変更するにははコマンドラインを使うほかはありません。)
モデルファイルのロードやリロードを避けるには'x'■の01、02、04、05、44行を削除した設定ファイルを作り、さらに同名のlwoやmqoがない名前で保存して使います。
Info 11: (カスタム設定ファイル 基本) ctrl+shift+'v'キーで書き出すカスタム設定ファイルは右上のような内容になっています。 コマンドオプションの'/uvwx'と設定ファイルの行は'u'■、'v'■、'w'■、'x'■のように対応し、大雑把にはスライダー、視点、ウィンドウ、チェックボックスの設定内容です。またウィンドウ以外はView controlsとLight controlsの設定の全部です。(また、デフォルトの設定ファイルbcview.txtの一部です。manual_j.txtも参照) カスタム設定ファイルの簡単な利用法はbcviewへドラッグ&ドロップするか、もし起動中なら'o'キーからファイルを開くダイアログで'All Files'を選んで開くことです。 (bcview.exeへのドラッグ&ドロップでは全情報、起動中のbcviewへのそれではウィンドウを除く情報が参照されます。) この方法は既定オプション付きかつモデルファイル指定省略のコマンドと同じです。 このとき、もし設定ファイルと拡張子以外同名のモデルファイルがある場合には、そのモデルファイルをロードします。 例えば「test.001」という設定ファイルならば「test.lwo」か「test.mqo」があればロードします。 (このロードを避けるにはコマンドではTip 6で触れた'/q'指定があり、モデルファイルがない場合と同じにできます。)
また、該当するモデルファイルがない場合には、既にロードされているモデルファイルがなければ設定のみが反映されます。
あれば(既定オプションに'/x'指定が含まれるので)、モデルファイルをリロードします。
('/x'指定は表示モードの変更は内部処理で表示用ポリゴンの再構成になり、再構成が重なる場合はリロードのほうが速いためリロードするようになっています。
そして、このコマンドラインを使わない方法でリロードを避ける裏技がInfo 12です。)
Info 1: (0.5以来の気になる仕様)
0.6以後ではGLSL処理により下2つは当てはまりません。
再配布には作者の許可を得てください。理由は、某ファイル交換ソフト裁判で、悪用を目的にしたソフトではないというソフト作者の弁明は通じなかった、 さらに先例として画像マスクソフト裁判で、猥褻画像データとビューアの関係が証拠になったなど、それらを教訓とするもので、 例えば猥褻モデルデータなどにbcviewが添付されたファイルなどが配布され、 それが法律上問題になったとすると、そのデータのビューア作者として巻き添えは避けられないものと考えるからです。
(なお初出'07/10/29の「再配布許可 (暫定)」では、
結局条件がデータ配布者の自主判断に委ねられあいまいになるため、今回の条件を正式とします。)
トップへ戻る |