BCView 0.6 → 0.6k / 0.5 → 0.5p (更新日 08/07/20)
08/07/20 0.6k (278,270 bytes) で次の機能追加と修正、現行版
  • 補助ライト4つ追加とGammaをWhite lightに置換 (Tip 26Info 24参照)
  • Stereo、2w、1pかつFSAAのとき連続キャプチャ2枚めでハング (ここで1pとはLRまたはRL)
  • 複数レイヤーを非表示にしておいてsubdivを変更してMake outline polysを変更するとハング
  • オプション'@'/'A'、'D'/'E'が保存されなかった、およびオプション'Y'/'Z'はBasicタブのチェックに変更
  • 9箇所のcolorでshiftキークリックで色設定の機能追加
  • テクスチャロード処理を高速化、解像度2048追加、およびLWOでマスク付きテクスチャの場合の不透明度の処理を修正
  • 0.6d(キャプチャ機能追加)以後のスクリーン設定では起動できない動作環境があったため0.6cまでと同じにした
  • PBによるキャプチャでリソースが共有できないケースに対処 (従来はエラー、詳しくはInfo 23参照)

    ほとんど0.5pでの修正を0.6kに反映したものです。Gammaは特に3DCG処理でもない機能なので、 補助ライトと同じ機能で実現できるWhite lightに置き換え、外観では0.5pと違いがなくなりました。

    08/06/22 0.6j (273,212 bytes) で次の機能追加と3点を修正
  • 1回転アニメ向きマウス操作と1回転キャプチャ設定 (Tip 25参照)
  • Anaglyph有効でRB tintsが選択できない場合があった
  • 0.6gからステレオ表示以外ではFSAAが有効にならなくなっていた
  • 0.6iで日付順は順序正しく並ばなかった

    実際回転アニメさせようと使ってみて、できない回転があったりきっちり1回転しなかったりの不便に気づいたものです。 ただ等角速度1軸回転のみなのは変わっていません。より複雑な動きはアニメーションツールが妥当でしょう。

    08/06/04 0.6i (272,132 bytes) で次の機能追加と2点を修正
  • ライティング分けシャドウ表示機能 (Tip 24参照)
  • ファイル日付の扱いで(Windows 9xの)2秒単位を止めミリ秒に対応 (また日付/サイズ順指定のとき、同一日付/サイズの場合は名前順にしました)
  • Wireframe表示で少数のラインがランダムに欠けることがあった(0.1以来?)

    08/03/16 0.6h (273,650 bytes) で次の1点を修正
  • マイクロポール表示の左右が逆になっていた

    08/03/14 0.6g (273,632 bytes) で次の機能追加と2点を修正
  • ステレオ表示機能でマイクロポール対応
  • ステレオ表示キャプチャの2w設定が保存されなかった
  • DOFオフ中のぼかし/フォーカスのスライダー移動がオンで反映されなかった

    ステレオ表示機能のマイクロポール対応は、大久保さんの提案・要望によります。感謝いたします。
    スクリーン上の表示は、ウィンドウ位置に追従して左右が入れ替わる処理が入っています。 一方キャプチャ出力画像はそのような入れ替わりはなく、常に上端が左です。 (なお作者はこの表示装置を持っていないので実際見ての確認はしていない状況です)

    07/10/28 0.6f (273,645 bytes) で次の1点を修正
  • FBOで連続キャプチャ後、画面表示がフリーズ

    07/10/20 0.6e (273,622 bytes) で次の4点を修正
  • キャプチャPNG保存で、幅が4n+1のとき右端で色がおかしい
  • ZIP関係でbcs設定ロードと再現起動がときどき失敗
  • lwoローダで特定のSURFチャンクデコードでハング
  • Shadow1、2のチェックが保存されなくなっていた

    ほか、効きすぎたらしいので0.6dからconvergenceが最大22.5→18.0、DOFぼかし量が2/3に調整範囲縮小しています。なお、
  • nVidiaビデオカードでPBでキャプチャ後、ウィンドウの描画がおかしくなりハングすることがある
    と報告がありましたがうちでは再現できないため、これに関して修正はありません。 (不具合が出なければ始まらないのがビデオカード対応の難しさです)

    07/10/08 0.6d (273,214 bytes) で次の機能を追加
  • ZIP内連続閲覧機能、画面キャプチャPNG保存機能 (Tip 23Info 23参照)、裸眼立体視/赤青メガネ(アナグリフ)対応ステレオ表示機能、 DOF(フォーカルブラー)と明るめアンチエイリアス処理機能 (Tip 22参照)、アンチエイリアスとシャドウ回数上限増(8)など機能追加
  • 複数回描画時の操作で中断(Info 22参照)と、ドラッグ回転・移動時キー押し垂直水平限定、2ダイアログのタブ短縮コマンドなどGUI修正
  • 設定ファイルを特定拡張子(.bcs)にした場合に、同名モデルのロードでその設定をロード (なお従来の設定ロードから同名モデルをロードする場合と違い、設定が後に継続しない仕様)

    追加機能のうちZIP内続閲閲覧機能と画面キャプチャPNG保存機能は、ひなたさんの提案・要望によります。 感謝いたします。ことのついでで付けたかったDOFとステレオ表示機能も付けました。
    追加機能は0.5jと同じです。ただしオフスクリーンキャプチャのレンダラーは、0.5jのPBとGDIに対し0.6dはPBとFBOです。ともにビデオカードの対応が必要です。 PBは比較的古めで、FBOはだいたいGLSL対応と一致するよう(なおRADEON 9600では色深度4bit、ステンシル(シャドウ)なしと対応が悪いのでPBがおすすめ)です。

    0.6b0.6c
    自慢のロングヘアーが傷物に!
    これは許せません(すみません)
    06/10/14 0.6c (218,301 bytes) で次の1点を修正
  • GLSLバンプでモデル前後左右上下面境界の不連続性の修正 (右図参照→)

    06/10/08 0.6b (218,496 bytes) で次の6点を修正
  • GLSLで環境光計算が暗かったのを修正
  • 同gouraudの表示がそれらしくなかったのを修正
  • 同バンプの表示がモデル回転で強弱むらがあったのを修正
  • 同velvetハイライト復活的追加 (0.6〜0.6aで未実装)
  • アウトラインにシャドウが描画されていたバグを修正 (0.5〜0.5g、0.6〜0.6aで該当)
  • テクスチャ参照でモデルフォルダ相対パス参照処理を追加 (参照順も変更、モデルフォルダ相対、 モデルフォルダ、Basic Settingsの設定フォルダ相対1〜4の順。従来は設定フォルダ相対が優先)

    06/09/23 0.6a (218,063 bytes) で次の5点を修正
  • トゥーンの基本色を0.5gに似せた (Tip 21で書いた、橙色、茶色などはGLSLと無関係に事前計算できることでした)
  • toonハイライトは2ライトの和ではなく最大をとるよう変更
  • キーボードショートカットでgouraud/phongハイライトを切り替えた場合、表示画面を更新しないバグを修正
  • LWO2テクスチャのアルファ画像のマップ不一致を無視して合一するコマンドオプション'c'と解除'b'を追加
  • コマンドオプション'f''g'を起動時指定したとき有効にならずデフォルト設定ファイルに保存もされないバグ、また'd''e'を起動時指定したとき、指定が保存されないバグを修正

    06/09/17 0.6 (217,461 bytes) 06/06/04 0.5eから、0.5fの修正と以下の3点を変更
  • GL 1.3のマルチテクスチャ対応
  • GL 1.1によるgouraudハイライトをGL 1.2の機能で置換
  • GL 1.1によるphongハイライト・トゥーンをGL 2.0 GLSLで置換、バンプマップ表示機能追加 (GLSL使用'g'と強制不使用'f'コマンドオプション追加。なおvelvetハイライトは無くなっていますが、ダイアログ配置上残してあります)
  • サイズは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)
    08/07/20 0.5p (278,793 bytes) で次の機能追加と修正 (7点めまで0.6kと同じ)、現行版
  • 補助ライト4つ追加とLight on textureをWhite lightに置換 (Tip 26Info 24参照)
  • Stereo、2w、1pかつFSAAのとき連続キャプチャ2枚めでハング (ここで1pとはLRまたはRL)
  • 複数レイヤーを非表示にしておいてsubdivを変更してMake outline polysを変更するとハング
    0.5o0.5p
    0.5oは非平面で半分見えない4角形が黒くなり変なハイライトもある(上) 非平面4角形が無い形状ではともに正常(下)
  • オプション'@'/'A'、'D'/'E'が保存されなかった、およびオプション'Y'/'Z'はBasicタブのチェックに変更
  • 9箇所のcolorでshiftキークリックで色設定の機能追加
  • テクスチャロード処理を高速化、解像度2048追加、およびLWOでマスク付きテクスチャの場合の不透明度の処理を修正
  • 0.5j(キャプチャ機能追加)以後のスクリーン設定では起動できない動作環境があったため0.5iまでと同じにした
  • エフェクトで辺縁部の非平面多角形が黒ずむのを改善 (右図参照→) およびLWOで両面ポリゴン裏面のハイライトが崩れるのを修正

    0.5で気に入っていたものの絵作りには使いようが無かったLight on textureの改良が今回の補助ライトですが、 もうバグも枯れたと思っていた部分での修正につながっています。 (ほかダイアログ上"Texture highlight"→"Highlight"字面だけ修正、 これ以外0.6kと外観の違いがなくなったため揃えました。)

    08/06/22 0.5o (274,448 bytes) で次の機能追加と3点を修正 (0.6jと同じ)
  • 1回転アニメ向きマウス操作と1回転キャプチャ設定 (Tip 25参照)
  • Anaglyph有効でRB tintsが選択できない場合があった
  • 0.5lからステレオ表示以外ではFSAAが有効にならなくなっていた
  • 0.5nで日付順は順序正しく並ばなかった

    08/06/04 0.5n (273,446 bytes) で次の機能追加と3点を修正 (1点追加を除き0.6iと同じ)
  • ライティング分けシャドウ表示機能 (Tip 24参照)
  • ファイル日付の扱いで(Windows 9xの)2秒単位を止めミリ秒に対応 (また日付/サイズ順指定のとき、同一日付/サイズの場合は名前順にしました)
  • Wireframe表示で少数のラインがランダムに欠けることがあった(0.1以来?)
  • トゥーンでステレオ表示時にライティングがおかしかった

    08/03/16 0.5m (274,196 bytes) で次の1点を修正 (0.6hと同じ)
  • マイクロポール表示の左右が逆になっていた

    08/03/14 0.5l (274,159 bytes) で次の機能追加と2点を修正 (0.6gと同じ)
  • ステレオ表示機能でマイクロポール対応
  • ステレオ表示キャプチャの2w設定が保存されなかった
  • DOFオフ中のぼかし/フォーカスのスライダー移動がオンで反映されなかった

    07/10/20 0.5k (274,263 bytes) で次の4点を修正 (0.6eと同じ)
  • キャプチャPNG保存で、幅が4n+1のとき右端で色がおかしい
  • ZIP関係でbcs設定ロードと再現起動がときどき失敗
  • lwoローダで特定のSURFチャンクデコードでハング
  • Shadow1、2のチェックが保存されなくなっていた

    07/10/08 0.5j (273,829 bytes) で次の機能を追加
  • ZIP内連続閲覧機能、画面キャプチャPNG保存機能 (Tip 23Info 23参照)、裸眼立体視/赤青メガネ(アナグリフ)対応ステレオ表示機能、 DOF(フォーカルブラー)と明るめアンチエイリアス処理機能 (Tip 22参照)、アンチエイリアスとシャドウ回数上限増(8)など機能追加
  • 複数回描画時の操作で中断(Info 22参照)と、ドラッグ回転・移動時キー押し垂直水平限定、2ダイアログのタブ短縮コマンドなどGUI修正
  • 設定ファイルを特定拡張子(.bcs)にした場合に、同名モデルのロードでその設定をロード (なお従来の設定ロードから同名モデルをロードする場合と違い、設定が後に継続しない仕様)

    0.6dと同じ機能追加です。ただしオフスクリーンキャプチャのレンダラーは、0.6dのPBとFBOに対し0.5jはPBとGDIです。 PBはビデオカード対応が必要な点で0.5としては例外的ですが、対応があれば高速な処理ができるため付けておきました。 GDIはWindowsのGL 1.1対応ソフトウェアレンダラーで、低速なものの、VRAMに制限されない大サイズ画像を得ることができます。

    06/10/22 0.5i (219,484 bytes) で次の1点を修正
  • Light on textureの輝度計算でモデルデータの特定一質感パラメータに他全部が依存していたバグを修正 (0.5c〜0.5hで該当)

    06/10/08 0.5h (219,382 bytes) で次の3点を修正
  • Subdivisionフラットシェードでハイライトが変だったのを修正 (0.5〜0.5gで該当)
  • アウトラインにシャドウが描画されていたバグを修正 (0.5〜0.5g、0.6〜0.6aで該当)
  • テクスチャ参照でモデルフォルダ相対パス参照処理を追加 (参照順も変更、モデルフォルダ相対、 モデルフォルダ、Basic Settingsの設定フォルダ相対1〜4の順。従来は設定フォルダ相対が優先)

    06/09/23 0.5g (219,220 bytes) で次の3点を修正
  • LWO2テクスチャのアルファ画像のマップ不一致のとき、そのマップ情報を使用していたバグを修正 (0.5d〜0.5fで該当、Tip 21のArmedCruiser.lwoの表示例はLWOB版で正常だが、LW6以後付属のLWO2版では赤のデカールが船底に付いてしまった)
  • マップ不一致を無視して合一するコマンドオプション'c'と解除'b'を追加
  • コマンドオプション'd''e'を起動時指定したとき、デフォルト設定ファイルに指定が保存されないバグを修正

    06/09/17 0.5f (218,784 bytes) で次の5点を修正
  • LWOテクスチャのアルファ画像の濃度指定無視を修正
  • 4角形テクスチャポリゴンの推定色計算のバグの修正
  • スピン中に 'z''x''c'で停止後もスピン状態として扱っていたバグの修正
  • 「現す」のショートカットキーに'\'キー追加
  • 拡散テクスチャの色合成処理をbcview 0.6のマルチテクスチャ処理に似せた。

    06/06/04 0.5e (218,714 bytes) で次の2点を修正
  • 処理不能モデルデータのロード処理の安定性向上 (これに関して、0.2c以後でハングアップするような直接的情報や具体的データが確認されたわけではありません。防御的修正です)
  • トゥーン・アウトライン色推定計算の向上とトゥーン暗色無効指定追加。なお設定値が0.5dと少し変わった → またすみません、しかしわかりやすくしました(Tip 5参照)

    06/05/28 0.5d (218,184 bytes) で次の3点を修正
  • LWOテクスチャのアルファ画像指定を無視していたバグを修正 (Tip 2参照)
  • トゥーン・アウトラインの色計算に根本的なミスがあったため全面的に修正。なおこれらの設定値が0.5cまでと変わった (0.5cまでとGUI上・設定ファイル上のスライダー値の互換性がなくなった) → すみません、そもそも表示が全然異なるので
  • 0.5cで強めた対処としてgouraud/phongのスライダー有効化

    0.2c0.5(a)0.5b0.5c
    疑ってもみなかったバグでした・・・
    06/05/18 0.5c (217,602 bytes) 修正もれ修正
    06/05/17 0.5c (217,587 bytes) で次の4点を修正、当HPで1日間のみ公開
  • 質感処理バグ(0.5以後拡散光無視)修正 (右図参照→ 拡散光上から 0、20、40、60、80、100%)
  • 質感処理変更(鏡面光をLWの質感設定レンダリング球とMetasequoiaに似せた。0.5b以前はLWのモデラープレビューと似せていた)
  • Perspective設定の保存がなかったのを修正
  • Mesh lineとwireframe処理でGLのディスプレイリスト使用やめ(描画低速化、ロード高速化。非力なビデオカードでロードが異常に遅いケースがあるようなため)

    06/04/10 0.5b (217,907 bytes) で次の3点を修正
  • MQO質感パラメータambientの処理を変更した(Metasequoiaの表示に似せた)
  • velvetのスライダーをライト別に分けた
  • libpng/zlibのリンクモジュール見直しでサイズを8KB縮小

    06/03/29 0.5a (222,578 bytes) で次の1点を修正
  • 透明ポリゴンがあるとシャドウがおかしい

    06/03/28 0.5a (222,531 bytes) で次の3点を修正、当HPで1日間のみ公開
  • 起動時ビューが異常になってオブジェクトが見えないことがある
  • 設定ファイルロードでトゥーンの色が反映されない
  • MQOでBVertexタグがある場合テクスチャマップがおかしい

    06/03/19 0.5 (222,393 bytes) 01/07/01 0.2cからバージョンアップ
  • サイズは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を参考にしてください。

    Info 24: (補助ライト: Light 3〜6とWhite light)

    補助ライトは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の機能比較)

    GL0.5h0.6b
    1.1 シャドウ、アウトライン、アンチエイリアス
    テクスチャサーフェース上へのgouraudライト・ハイライト
    シングルテクスチャ
    テクスチャによるphong、toon、velvetハイライト
    トゥーンシェード
    (アンチエイリアス以外の全てのエフェクトが透明サーフェースには出ません。また、トゥーンの色が推定色で元絵のテクスチャの色を薄めます 注2)
    シャドウ、アウトライン、アンチエイリアス
    (0.5hと同じ方法で実現しており、同じ制約があります)
    1.2テクスチャサーフェース上へのgouraudハイライト
    (透明サーフェースにも出ます)
    1.3マルチテクスチャ
    (最大4枚まで、velvetハイライトとトゥーンでは3枚まで。ただしビデオカードの制限を越えません)
    2.0phong、toon、velvetハイライト、ガンマ、トゥーン、バンプマップ
    (今のところ、対象としたビデオカード(注1)のプログラム長の制約で、これらのエフェクトはトゥーンとバンプに拘束されます。 トゥーンではガンマなしtoonハイライト、トゥーン以外ではgouraud、phongかvelvetハイライト、ただしバンプサーフェース上ではphongかvelvetになります。 透明サーフェースにも出ます。またトゥーンは元絵のテクスチャ色を薄めません 注2)
    (注1) RADEON 9600、Catalyst 6.2 ('06/02/09)で動作確認しました。(最近のもののような長いGLSLプログラムが入りません。) なお他のGL 2.0対応ビデオカードでも、GLSLプログラムが読み込めない場合、GL 1.3の動作になります。 また、コマンドライン 'f'オプションで強制的にGL 1.3の動作にすることもできます。 (特にGLSLがソフトウェアエミュレーションで動こうとする場合は実用にならない遅さとなるので、それを推奨します。なお'g'で元に戻ります。またオプション変更後はテクスチャをリロード(Tip 8 参照)してください。)
    (注2) シングルテクスチャという制約で、0.5hではエフェクトはInfo 18に書いた複数回描画による制限があります。 マルチテクスチャではその制約がなく、0.6bではGLSLによるエフェクトまで1回描画になり、複数回描画はシャドウとアンチエイリアスのみで、Info 18の"Overlay effect offset"が該当するのはシャドウのみです。


    0.5h GL 1.1
    シングルtx
    +phong
    +シャドウ

    0.6b GL 1.3
    マルチtx
    +gouraud
    +シャドウ

    0.6b GL 2.0
    バンプ
    +phong
    +シャドウ
    このモデルのLWO2版ではコマンド'c'オプションによるアルファ無条件合成での表示です。'b'で解除すると赤いデカールの抜き色が現われます。なおオプション変更後はモデルをリロードしてください。
    右の表示例のモデルで、たまたまLWOB版とLWO2版で相違があり、0.5g/0.6aから同一マッピングという条件(Tip 2 参照)を無視して合成するコマンドラインオプションを付けました。初期状態では無条件合成です。

    設定ファイルは、0.6bが0.5hの設定を読む場合はトゥーンの2つの輝度スライダーが半分になり、 0.5hが0.6bの設定を読む場合は2倍になります。(0.6bではかなり調整がきくためそうしました。なお処理が全然異なるため発色までは互換性はありません。以下参照。)

    (トゥーンの処理方法の相違)

    0.5h0.6b
    基本色に拡散光+環境光+発光を乗じた色(注3)、テクスチャがある場合はそのピクセル色の混合色との合成色(注4)をサーフェース単位で統計した色(この色から輝度/色相/彩度調整した2色テクスチャを作ってポリゴンに貼って表示する) 基本色に拡散光+環境光+発光を乗じた色(注3)、テクスチャがある場合は基本色との合成色(注4、この色をGLSLでピクセル単位で輝度/色相/彩度調整して表示する)
    (注3) 実際には単純な乗算ではなく結果を1.0以内にする非直線的な計算
    (注4) mqoではテクスチャ色は基本色へ乗算、lwoでは加算モードでは加算、アルファモードでは無効(0.5h)/補間(0.6b)、それ以外の合成モードでは乗算
    トゥーンは、0.5hにあったような限定条件(Tip 5の注1を参照)は、0.6bではありません。 しかしサーフェース別の調整はできないので、使いかたとしては同じくTip 5のようになります。
    トゥーンの色の元になる色について、例えば基本色が橙色で拡散光が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"です。

    異常例\表示 highlight toon shade
    highlightでは
    欠け、toon
    shadeでは
    穴が開く感じ
    ポリゴン全体
    ではないから
    ビデオカードの
    内部的精度か
    Info 18: (表示と質感設定の関係 エフェクト)

    0.6bのシャドウと、0.5hのアウトライン以外のエフェクトは、視点に対して少し手前に描かれる必要があり、この調整が"Overlay effect offset"です。

    OpenGL系カードは小さめ、DirectX系カードは大きめと分かれるようで、特にビデオカードの計算精度依存と思えます。計算精度はモデル頂点座標値依存でばらつきがあるので、だいたいの場合欠けが出ないという設定が適切です。

    Info 17: (表示と質感設定の関係 基本)

    質感\表示 smooth flat wireframe smooth
    shadow
    flat
    shadow
    スムージング
    拡散光 100
    反射光 100
    発光 0
    拡散光 100
    反射光 100
    発光 0
    スムージング
    拡散光 0
    反射光 0
    発光 100
    拡散光 0
    反射光 0
    発光 100
    "smooth"は、lwoではサーフェース質感、mqoでは物体設定の「スムージング」チェックと角度が反映されます。 "flat"は強制的にすべてのスムージングを無効として描画するモードで、"wireframe"は辺のみを描画するモードです。

    "smooth"と"flat"の相違は、拡散光と反射光の設定とライティングの設定による照光計算によります。 それに対して両方を0%、発光を100%と設定した場合は照光計算は無効で両者の相違は見えなくなります。 (トゥーン表現を目的としたモデルでこういう設定のものがあるようです。)

    現状、シャドウの計算は"smooth"/"flat"の切り替えによらず、モデルの質感設定でのスムージングのチェックと角度がそのまま反映します。 ("Toon"の明色/暗色の境界も同様で、"smooth"/"flat"の切り替えがモデルの質感設定依存です。)


    char param[MAX_PATH+6];
    strcpy(param, "/o \"");
    //strcpy(param, "/n \"");
    strcat(param, modelPath);
    strcat(param, "\"");
    _spawnlp(_P_NOWAIT, exeName, exeName, param, NULL);
    //_spawnl(_P_NOWAIT, exePath, exeName, param, NULL);
    Info 16: (プログラムからの利用) (viewerまでは作っていられないが結果を見るのに使いたいプラグイン開発者向き。)
    この例でexePathはbcview.exeiconへのフルパス、さもなければ環境変数PATHが通っている場合exeName = "bcview.exe";、またmodelPathは見ようとするモデルファイルへのフルパスとします。 指定しているオプションはただ1個、'/o'または'/n'で、いずれも起動中のbcviewがあればそれを使い、前者はbcviewをアクティブにし、後者はしません。 (この場合特定のbcviewを使う'/t'指定についてなどmanual_j.txtを参照。ついでに、同一モデルの修正中ならTip 10も参照。)


    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 1112の方法では既定オプションに'/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 BCView 0.5 settings
    01 PersFlg 0 1 0 4
    02 LitsFlg 1 1 0
    04 ToonFlg 0 0 1
    05 ShadFlg 1 0 0 4
    06 ColrFlg 0 1 0 1 0
    10 -------
    11 PersCtl 408 469 532 0
    12 LitsCtl 848 352 776 557 0 527 843 352 544...
    14 ToonCtl 480 560 1168 896 640 1120 80 0 640...
    15 ShadCtl 288 0 0 0 128 0 0 0 336 432 0
    16 ColrCtl 1280 864 1024 736 448 624 0 1280...
    20 -------
    21 MainPos 192 -1 871 837
    22 BascPos 501 80 1 0 1
    23 PersPos 43 6 1 1 2
    24 LitsPos 42 374 1 1 0
    40 -------
    43 LayrFlg 1 1 1 0 1 1 0 0 1 0 2 2 2 2 2 2 2...
    44 DrwMode 0 2 7fffffff
    45 ViewPos 0.026641 0.121958 0.000000 0.372461...
    47 ObjSize 0.815070 -0.385222 -0.824035 0.717582
    オプション省略時の既定オプションはbcview.exeiconへドラッグ&ドロップした場合は、'/ruvwxs'で、起動中のbcviewへのそれまたは「開く」場合は、'/oruvxs'です。 このうち設定ファイル内容にかかわるのは'/uvwx'です。

    設定ファイルをテキストエディタで開いて、例えば00(必須)と'u'の06、12、14〜16の6行だけ残して保存したとします。 その設定ファイルを使う場合、該当行がない分はオプション指定がなかったとして扱われます。 ('/ruvwxs'では実質'/rus'、'/oruvxs'では実質'/orus'になります。ただし、後者の場合'/w'はないのでウィンドウを変更するにははコマンドラインを使うほかはありません。)

    モデルファイルのロードやリロードを避けるには'x'の01、02、04、05、44行を削除した設定ファイルを作り、さらに同名のlwoやmqoがない名前で保存して使います。
    もちろん'/x'にかかわる変更はできなくなりますが(それは手動でやるとして)、現在ロードしているモデルの視点、ライトの向きと強さ、背景・シャドウ・トゥーンの色などを変えられます。

    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以来の気になる仕様)

  • Subdivisionの非共有辺が歪んでいる (0.1以来の問題)
  • Subdivisionでは、上に加え、非共有辺のアウトラインは幅が広がってしまう (さらにこのとき処理は低速)
  • 0.5では、トゥーンはGL 1.1のシングルテクスチャの制約により、テクスチャ付きモデルではテクスチャの色が薄れてしまう → 0.5dでいくらか改善
  • 0.5では、上に加えて、サーフェース単位でしか色を与えていないので、テクスチャの色とポリゴンの色が合わないほど、色がおかしい表示になる (1サーフェースしかなく、テクスチャでのみ色分けしてあるモデルは最悪ケース、逆に、ノンテクスチャーのモデルが最善ケース)
  • 0.6以後ではGLSL処理により下2つは当てはまりません。


    再配布条件 (更新日 07/11/02)

    再配布には作者の許可を得てください。理由は、某ファイル交換ソフト裁判で、悪用を目的にしたソフトではないというソフト作者の弁明は通じなかった、 さらに先例として画像マスクソフト裁判で、猥褻画像データとビューアの関係が証拠になったなど、それらを教訓とするもので、 例えば猥褻モデルデータなどにbcviewが添付されたファイルなどが配布され、 それが法律上問題になったとすると、そのデータのビューア作者として巻き添えは避けられないものと考えるからです。

    (なお初出'07/10/29の「再配布許可 (暫定)」では、 結局条件がデータ配布者の自主判断に委ねられあいまいになるため、今回の条件を正式とします。)


    トップへ戻る