cuemol2/LightWeightSceneCueMol: Molecular Visualization Framework |
Light-weight sceneファイルCueMol 2.0.1.188以降では,新たにLight-weight sceneファイル形式というscene fileの一種が実装されました. ActiveX controlによるプレゼンテーションや,mobile deviceによる可視化に使用するのが主な目的です. 拡張子は,通常のシーンファイル(qsc)と異なり,qslとなっています. Sample scene fileが以下からダウンロードできます.
これは何?Light-weight sceneファイルは,文字通り,軽い(サイズが小さい・読み込みが速い)シーンを格納するためのファイル形式です. Light-weight sceneに変換後は,以下の操作を行うことが可能です
ただし,軽い分のトレードオフとして,通常のシーンファイル(qsc)と比べて以下のような操作は出来なくなっています.
作成方法普通のシーンファイル(qsc)読み込むなどして,Light-weight sceneに変換したいシーンを開く・あるいは作成します. そして, メニュー「Renderer」→「Export scene...」を実行します. ファイルを保存するダイアログが出てきますが,そこで,ファイルの種類から,
というのを選び,拡張子を.qslにします(場合によっては勝手にqslに初めからなっています). 次に,以下のような保存オプションを指定するダイアログが表示されます. ここで,
その後OKをおすと,指定したファイル名でqslファイルができます. 読み込みqslファイルは形式的には普通のシーンファイル(qscファイル)と同じなため, メニュー「File」→「Open scene...」から開くことができます. (Version 2.0.1.188以降では,Open sceneから開ける拡張子にqslが加わっています) 開いた後,Sceneパネルを見ると,例えば以下のようになっています.(冒頭のサンプルファイルを開けば同じシーンを見ることができます) このように,名前は全て元のシーンと同じものになっていますが,
変換されます. 一方,Cameraはもともとあったものが全て引き継がれています(この場合はもともと__currentしかありませんが.) Qslファイルは,以上のようにすべてのobjectとrendererがLWObject/lwrendになっている以外は 形式的には通常のシーンファイルと同じものです. ActiveX controlでの使用Version 2.0.1.188に付属しているActiveX controlにはバグがあるためファイル名が*.qslという拡張子だと読み込めません. ファイル名を*.qscに書き換えた後,通常のシーンqscファイルとして読み込めば一応OKです. (次のreleaseまでには修正します) iOS版CueMolでの使用作成したqslファイルを,iPad/iPhoneで表示させることができます. cuemol2/iOSCueMolViewerを参照してください. 変換時の注意点メッシュの細かさ(ポリゴン数など)Version 2.0.1.192以降では,頂点数が多く複雑なメッシュは自動的に分割して書き出されるため, 原理上は表示できる頂点数(≒ポリゴン数)に制限はありません. ただしかし,mobile deviceの性能上の制限を考えるとメッシュのポリゴン数を減らしておいた方が良いに越したことはありません(読み込み・表示速度が速くなる). 手動設定上記のqsl書き出しオプションの,Change detail設定をoffにして書き出すと, 現在の各rendererのdetail設定値でqslファイルが書き出されます. 各renderer等の設定を以下を参考に変更して,頂点数が少ないqslファイルを作成できます.
自動設定上記のqsl書き出しオプションの,Change detail設定をonにして,右に数値を設定することで,メッシュの頂点数を調節することができます. 1〜5の数値で指定しますが,数値が大きいほどメッシュ数が多くなりファイルサイズが増加します. ただし,density mapやmolsurfは生成(あるいは読み込み)時に頂点数が決まってしまっているため,書き出しオプションで頂点数を調節することはできません. ポリゴン数が多すぎるときに出る警告ポリゴン数がmobile deviceで表示するのには多すぎる(2^16に収まっていない)場合には,output windowに以下のような警告が表示されます. QSLWriter> Mesh(1OX1.pdb:dsurface1) nverts=103884, nfaces=207766 QSLWriter> Warning: Mesh(1OX1.pdb:dsurface1) vertex size 103884 exceeds limit(65535) QSLWriter> Mesh divided into 2 vbos 上記の例では,object 1OX1.pdbのrenderer dsurface1の頂点数が10万を超えており,2^16の制限を回避するために2つのメッシュに分割されたことが分かります. これでもiPad等で読み込むことができるにはできますが,上記の方法で頂点数を減らした方が良いでしょう. desktop版CueMol2デスクトップ版やActiveX版は原理上2^32まで(まあほぼ無限)の頂点を持つrendererまで読み込むことができるため,この点について特に気にする必要はありません.(ただしパフォーマンスを考えるとポリゴン数は減らすに越したことはありませんが) |