Welcome to PGV home page ENGLISH

なにものなんだ?

PGV は、ポリゴン化した任意の3次元形態を表示(Polygon viewerから銘々)し、リアルタイムにぐるぐるまわして観察しよう、というプログラムです。 このプログラムは OpenGL + GLUT ライブラリで書いてあります。 従って、描画面はかなり質が高い(Pretty good visualizerは隠れた意味)ので、そのまま画像データとして使用できるレベルだと思います。 そのため、出力形式も多様に用意しています。

特に分子における電子雲の状態を観察するために開発しているので、分子表示などの特化した機能が盛り込んであるところが特徴ですが、他にも応用可能だと思います。
原子の色見本


インストール方法

下記のバイナリプログラムから、それぞれのプラットフォーム用の pgv (pgv.exe) をダウンロードして、しかるべきディレクトリ下におきます。 Windows系でしたら、Program files の下に PGV というディレクトリを作って、そこにおくというのが普通ですが、 ルートディレクトリ直下に PGV ディレクトリを作っても良いかと思います。

Windows(95-Vista) は、さらに glut32.dll をダウンロードして、システムディレクトリ下におきます。 WindowsXP ではこのファイルは最初から存在しますので、ダウンロードの必要はありませんが、上書きしても支障はありません。
どこにおいたら良いか分からない場合は、検索を使って opengl32.dll を探して同じ場所において下さい。そもそもこのファイルが見つからない場合は、pgv は動作不能です。

Windows 用はコンソール付き(コマンドプロンプトウインドウが開く)ものと、そうで無いものがあります。 通常使う場合はコンソール無しのものを使った方が煩わしさがありません。 ただしエラー表示等が何も出ないため、もし表示が出来ないなどの問題が発生した 場合にはコンソール付きのものを起動させて、表示されるメッセージを参照してください。
UNIX マシンでは、/usr/local/bin などに pgv を格納して使いたい、 と思われると思いますが、現在の表示状況の書き出し、を行うと、 プログラム格納ディレクトリ上に書き込みますので、利用者レベルで 書き込み特権を持っていないと、書き出しに支障がおきます。 また複数ユーザで利用している場合も(現時点では)、書き込みの オーバーライト問題が発生しますので、個々にプログラムを所有して お使いください。

初級操縦法

起動は、コマンドラインからプログラムに続いて、見たいデータファイル名を入力します。 Windows の場合は、ドラッグ&ドロップでも起動します。 現在のところ、データを後から指定出来ないので、データの指定が無いとプログラムはすぐに終了してしまいます。

起動すると、3次元表示をするウインドウが開きます。 ウインドウ上でマウスの左ボタンを押しながら動かすと、ぐるぐる任意回転(厳密には X 軸および Y 軸のまわり)をします。
Ver.2.0.0 から回転方法を変えました。表示窓全体をトラックボールに見立てた操作方法となります。 つまり画面中心から放射線方向に(または任意点からこの放射線上に沿って)ドラッグすると操作どおりの動作(Z軸回転が無い動作)が得られます。 それ以外の方向でドラッグするとZ軸回転を含んだ回転となります。 トラックボールを想像して動作を眺めて下さい。 トラックボールをご存じで無い方は、ボール内蔵マウスを天地ひっくり返して、ボールを直に操作することを想像下さい。 ボール内蔵マウスもご存じで無い方は、画面上に表示物を覆う透明な大きなボールがあって、その内部中心に表示物が存在しており、マウスで大きなボールを操作する様子を想像下さい...

機能を呼び出すには、特定キーを押すか、マウスの右ボタンを押してメニューを表示させてから機能を選択します。 機能については機能説明書を参照してください。

プログラムの終了は End key またはメニューから Quit を選択します。

特定キーには、次の様なものがあります(主なものだけ)。
End key,Q keyプログラムの終了
1-9 keyメニュー内の Mouse mode の上から順に対応しています。
J key画面表示状態を jpeg file に出力します。
Down,UpX 軸方向に -90度,90度回転します。(Ver.1.5.17より)
Left,RightY 軸方向に -90度,90度回転します。(Ver.1.5.17より)
PageDown,PageUpZ 軸方向に -90度,90度回転します。(Ver.1.5.17より)
N,P key4Dデータの時 next, previous frame へ切り替えます。(Ver.2.3.0より)
F key4Dデータの時、キーを押す毎に FrameAnimation ON/OFF を切り替えます。(Ver.2.3.0より)
A key振動データの時、キーを押す毎に Animation ON/OFF を切り替えます。(Ver.2.3.0より)
R keyキーを押す毎に Rotation (Holizontal smooth) ON/OFF を切り替えます。(Ver.2.3.0より)

Ver.2.0.0 よりメニューに "Keep state" が増えました。 この操作を行うと、次回プログラムを起動したときに、保存した画面条件から表示が始まります。 標準条件に戻したい場合は メニューの "Reset" から "Default" を実行してください。

データの作り方

電子雲ポリゴンデータを作る流れを示します。

  1. Gaussian で density または orbital 計算した結果のアスキーファイル test.cube があるとします。
  2. 最初に isoconv (下のツールを参照)でバイナリデータ化します。出力は iso.dat になります。 計算内容が orbital の場合は軌道番号が付加された isoXX.dat になります。 orbital の計算では複数軌道を同時に計算できますが、その様な出力にも対応しています。 その場合は、複数個の isoXX.dat が作成されます。 このバイナリデータの内容は isocheck で確認できます。
    ex. isoconv.exe test.cube
  3. 最後に d2p でポリゴンデータを作成します。出力結果は iso(XX).pgv になります。 作成時に iso value が必要となります。 これはポリゴン面の境界値のことです。 適切な値を指定するには、isoconv を実行した結果表示される最大値を参考にするとよいでしょう。だいたい 0.1 〜 0.05 ぐらいが良い様です。 ポリゴンデータの内容のチェックは pcheck で可能です。
    ex. d2p.exe iso10.dat 0.05

おまけとして p2vrml, d2vrml を作りました。 p2vrml はポリゴンデータから VRML 用の wrl ファイルを作成するものです。 d2vrml はバイナリデータから VRML 用の wrl ファイルを作成するものです。 ともに pgv が出力可能な VRML 用の wrl ファイルと内容は同じです。 ただし pgv で出力した方が、色や透過度などの設定が反映される分、多様な出力が可能です。

電子雲以外データを作成するには、isoconv を改良してバイナリデータさえできれば、あとは d2p で作成できるはずです。 その時データタイプを density とする必要があります。

バイナリデータ中のデータ分布を見るために d2h を用意しました。 これはデータの最大値・最小値を100等分して、各範囲にどれだけのポイントが分布しているかを表します。 iso 値を決定するのに使用して下さい。

Gaussian で freq 計算した出力ファイルから、振動モード毎の xyz ファイルを作成するための perl script, freq.pl を用意しました。 現時点では、Gaussian94,98,03 に対応完了しています。 Windowsな方向けにコンパイル?してバイナリ化した freq.exe も用意しています。 さらに1つのファイルにまとめた x4d ファイルを作成する freq2x4d.pl も用意しました。


バイナリプログラム

PGV Ver.2.3.3 Update 2006,3,10  アイコンの紹介

Windows(x86)[212kB](Ver.2.3.3 Up 2006,3,10) (Ver.2.2.1) (Ver.1.5.21) need glut32.dll
Windows(x86)[212kB](Ver.2.3.3 Up 2006,3,10) with console window need glut32.dll
SGI-IRIX6 64 mips-4[605kB](Ver.2.1.0 Up 2000/10/30) glut 3.6
SGI-IRIX6 32 mips-2[490kB](Ver.2.1.0 Up 2000/10/30) glut 3.6
IBM-AIX4.3-PPC[2929kB](Ver.2.1.0 Up 2001/02/21) Using Mesa 3.4.1 glut 3.6
HP-HPUX11 PA-RISC2.0[2292kB](Ver.2.1.0 Up 2000/10/30) Using Mesa 3.2 glut 3.6
SUN-SunOS5.5-SPARC[1286kB](Ver.1.5.18 Up 1998/03/18) Using Mesa 2.6
SUN-Solaris2.6-x86[1099kB](Ver.1.5.19 Up 1999/02/24) Using Mesa 2.6
LINUX2.0(X11R6)-x86[2043kB](Ver.2.1.0 Up 2000/10/30) Using Mesa 3.2 glut 3.6
Macintosh System7 PPC[1293kB](Ver.Beta based 1.5.13 Up 1997/08/19) Using Mesa
Macintosh OSX (Intel)[321kB](Ver. 2.3.3 Up 2011/09/27) only command line
ダイナミックリンクライブラリ (for Ver.1.5.17 later) glut32.dll GLUT 3.7 for Win32[216kB]
コントロールファイル (for Ver.1.5.11) PGV.PPC.ctl for Macintosh
Ver.1.5.18 以降は pgv のファイル出力を使用してサンプルを作ってください
New functions


バイナリプログラム (ツール for DOS-x86)

ISOCONV.EXE[60kB]
ISOCHECK.EXE[39kB]
D2H.EXE[51kB]
D2P.EXE[75kB]
PCHECK.EXE[37kB]
P2VRML.EXE[54kB]
D2VRML.EXE[79kB]
FREQ.EXE[1458kB]Update 2006,3,8
FREQ2X4D.EXE[1459kB]Update 2006,3,8
pgv2p4d.exe[44kB]Update 2006,3,10


ソースプログラム(ツールのみ)

ISOCONV.C [7kB] Update 1996,11,18
ISOCHECK.C [6kB] Update 1996,10,18
D2H.C [7kB] Update 1996,10,18
D2P.C [43kB] Update 1997,6,11
PCHECK.C [4kB] Update 1996,10,18
P2VRML.C [18kB] Update 1996,10,18
D2VRML.C [54kB] Update 1997,6,11
FREQ.PL [5kB] Update 2006,3,8
FREQ2X4D.PL[5kB] Update 2006,3,8
pgv2p4d.c [4kB] Update 2006,3,10

ツールの作り方

注1:math library が必要です
例1:UNIX: cc -O d2p.c -o d2p -lm

注2:DOS 用の場合は、"DOS" を宣言して下さい
例2:DOS: cl -DDOS d2p.c

注3:LINUX on x86 の場合は、DOS の宣言をして下さい
例3:LINUX: cc -O d2p.c -o d2p -lm -DDOS


サンプルデータ

構成原子数順リスト

構成分子量順リスト

構成炭素原子数順リスト

分子名アルファベット順リスト

分子和名50音順リスト

分子種類別リスト
飽和炭化水素alkane (アルカン)methane, ethane,...
2重結合をもつものalkene (アルケン), diene (ジエン)ethene(ethylene), propene(propylene)...
3重結合をもつものalkyne (アルキン)ethyne(acetylene), propyne(methylacethylene),...
-OH をもつものalcohol (アルコール)methanol, ethanol,...
-CHO をもつものaldehyde (アルデヒド)methanal(formaldehyde), ethanal(acetaldehyde),...
-COOH をもつものcarboxylic acid (カルボン酸)methanoic acid, ethanoic acid,...
-COO- をもつものester (エステル)methyl formate, methyl acetate,...
-O- をもつものether (エーテル)dimethyl ether, ethylmethyl ether,...
>C=O をもつものketone (ケトン), ketene (ケテン)propanone(acetone), butanone,...
-NH2 をもつものamine (アミン)methylamine, ethylamine,...
-CN をもつものnitrile (ニトリル)hydrocyanic acid, ethanenitrile, propanenitrile,...
-CONH2 をもつものamide (アミド)methanamide(formamie), ethanamide(acetamide),...
-F,-Cl,-Br,-I alkyl halide (ハロゲン化アルキル)fluoromethane, chloromethane, bromomethane,...
単環式飽和炭化水素cycloalkane (シクロアルカン)cyclopropane, cyclobutane,...
二環式飽和炭化水素bicycloalkane (ビシクロアルカン)bicyclobutane, bicyclopentane,...
芳香族aromatic (置換基をもたない芳香族)benzene, naphthalene,...
aromatic 1 (1 置換基をもつ芳香族)toluene, phenol,...
aromatic 2 (2 置換基をもつ芳香族)xylene, cresol,...
aromatic 3 (3 置換基をもつ芳香族)mesitylene,...
複素環式化合物heterocyclespiperidine, pyridine,...
フラーレンfullereneC60, C84,...
その他otherh2o, nh3,...

サンプルデータ(その他)

retinalC20H28O15649
vitamin AC20H28O216450
Chlorophyllide B HsC37H38O7N4Mg35687
ダイオキシン類
PCDD ポリ塩化ジベンゾジオキシン
MCDD 塩化ジベンゾジオキシン 2種類
DCDD 二塩化ジベンゾジオキシン 10種類
TrCDD 三塩化ジベンゾジオキシン 14種類
TCDD 四塩化ジベンゾジオキシン 22種類
PeCDD 五塩化ジベンゾジオキシン 14種類
HxCDD 六塩化ジベンゾジオキシン 10種類
HpCDD 七塩化ジベンゾジオキシン 2種類
OCDD 八塩化ジベンゾジオキシン 1種類
PCDF ポリ塩化ジベンゾフラン
MCDF 塩化ジベンゾフラン 4種類
DCDF 二塩化ジベンゾフラン 16種類
TrCDF 三塩化ジベンゾフラン 28種類
TCDF 四塩化ジベンゾフラン 38種類
PeCDF 五塩化ジベンゾフラン 28種類
HxCDF 六塩化ジベンゾフラン 16種類
HpCDF 七塩化ジベンゾフラン 4種類
OCDF 八塩化ジベンゾフラン 1種類

サンプルデータ (基底関数比較)

ammonia (アンモニア) HOMO
ammonia (アンモニア) LUMO

サンプルデータ (分子以外)

MRI断層写真より構築した頭部

おまけ

1997年一般公開ポスター原図 JPEG 900x1200pixel TrueColor 405kByte


注意点

  1. Windows 95 では opengl32.dll および glu32.dll が必要です。 ただし、最近プレインストールされている OSR2 版には標準で付属しています。 もし opengl32.dll, glu32.dll が無い場合は、身近な OSR2 版のシステムを使っている人から、コピーさせてもらって使って下さい。 ドライバを入手したら、windows/system へコピーして下さい。
  2. 特定グラフィックボード(MATROX Millennium)では Windows 95 上で OpenGL 描画ができないようです。もしかすると OSR2 版の dll に変えるとうまく表示できるかも知れません。
  3. Windows 95 では、OUTPUT で画面の Capture がうまくいかないようです。 もしかすると Windows 95 の glu32.dll のバグかも知れません... これはマウスから操作した場合で、キー操作の場合は不思議と起きないようです。 JPEG 出力したい場合は J key を押すと確実に出力できます。
    なお OSR2 版の dll と差し替えて試したところ、うまく Capture できています。 ちなみに使用したのは 1996/9/5 11:11:00 のものです。
  4. 同様に X Window で動かす場合、メニュー画面を消去する前に Capture し始めてしまう場合があるようです。 この場合も上述のキー操作で行った方が確実に Capture できます。
  5. 3DLabs の PERMEDIA, PERMEDIA2 を搭載したグラフィックカードでは、比較的安価にも関わらず OpenGL が通常の高速なアクセラレータよりも2から3倍高速な描画が行われます (ベンチマークの結果)。 ただし PGV を使用すると、表示すべき場所に表示されなかったり、ライティング異常でオブジェクトが暗く表示されたりします。 これは、3dogldrv.dll のバグです。3DLabs に BUG fix 依頼をして直接送付してもらった対応版(97/10/14現在)では正常に表示されています。 そのほかにも、ゴミが表示されたり、Netscape でイメージが抜けるなど 2D にも若干の不具合があるようです。 IO-DATA の GA-PII8 の最新のドライバでは、これら不具合が全て解消されています。
  6. 画面のキャプチャで、JPEG はそのまま Web への張り付けができるので大変便利ですが、圧縮を行う設定にしているため、若干の劣化があります。ただし、その分データサイズが少なく押さえられます。原図として利用したい場合は、非圧縮な BMP や PPM を使用すると良いでしょう。
  7. nVIDIA の GeForce4 (使用しているのは Canopus SPECTRA WX25) では分子模型で空間充填モデル表示にすると、ポリゴンの粒度に関係なく球の境界がぎざぎざ表示になってしまいます。 これはベンダも確認している現象です。動作は高速で快適なのですが、絵としては使い物にならないです。最新のドライバでも対応できていません。(2003/7/23)
  8. ATI の RADION9800pro を今使っています。非常に快適です。(2003/07/23)

余談

  1. PGV は VRML 用のファイル出力が可能ですが、PGV や P2VRML,D2VRML が出力するポリゴンデータは、透明で smooth な面になる設定です。 しかし多くの browser では flat 面になってしまう様です。 Netscape の標準 plug-in の Cosmo Player 2.0 では、指定どおりの画像が得られます。
  2. PGV は DXF output でポリゴンデータのみ出力します。 これを任意のレンダリングソフトに読み込ませれば、さらにリアルな描画が可能です。 ちなみにデモ版 TrueSpace は DXF input が可能なので、これによるテストはしてあります。 OpenGL, VRML では Z 軸が手前になりますが、DXF では Y 軸が手前になるため、出力時に Y 軸 と Z 軸の入れ替えを行っています。
  3. POV はフリーなレイトレーシングプログラムPOV-Rayのデータファイルを出力します。 このデータには、ポリゴンとあわせて分子模型も出力します。表示角度も、その時点の状態を再現する(キャプチャという感覚)ようになっています。 ただし、ズームアップした場合の比率が正確に合わせ切れていないので、若干ファイル内の比率を操作してください。 計算に時間はかかりますが、現在考えられるレベルで最高品質の画像が得られます。
  4. XYZ ファイルはRasmolなどの分子表示プログラムで読み込むことができます。 PDB 出力も用意しました。 この出力結果も Rasmol で読めます。 逆に XYZ や PDB ファイルを読み込んで表示が可能になりました。 ただし PDB のフルセットサポートではありませんので、複雑なデータは理解できません。 これらファイルを入力した時は、分子モデルのみの表示になります。
    また XYZ ファイルの各原子座標の後ろに、ベクトル座標が記入されていると、振動ベクトルを表示します。 この時、振動アニメーション (データ例) も表示可能になります。さらにこの場合はファイル出力メニューに、アニメーションを構成する画像をシリーズを JPEG で出力する項目が増えます。これより、JavaScript (アニメーション例1) を使用したり、animation GIF (アニメーション例2) を利用したページに応用できます。
  5. 表示イメージを印刷したい場合は、Capture で JPEG ファイル出力して、PhotoShop などに読み込ませてから行ってください。 Capture をする前にバック面を白に変えた方がよい結果が得られることが多いようです。
    モノクロのポストスクリプトレーザープリンタで出力する場合は、PostScript 出力が利用できます。 ps file を出力した後、WindowsNT や unix ならば、lpr でプリンタに出力できます。
  6. OpenGL では裏面描画しない方が速度があがるので、標準では裏面描画をしていません。 したがって、ポリゴン面に穴があくと、本来あるべき裏面はなく、その向こう世界が見えてしまうので変な感じがします。 この場合はメニューの Polygon mode の中の Cull mode で Whole mode を選択してください。
  7. ポリゴン面に穴があくことがあります。 穴があく、と言っても、表示側の問題ではなく、ポリゴンデータを作成する時に既に穴があいている現象のことです。 今回 d2p で使用している マーチン・キューブ法 だと、空間分解能のレベルで 鞍型の曲面 が存在していると、穴のあいたポリゴン面になってしまいます。 このような場合は空間分解能をあげることで回避できます。

高度操縦法

  1. コントロールファイル Ver.1.5.5 以降

    PGV 起動時に -c をつけると、pgv.exe と同じディレクトリ下にあるコントロールファイル pgv.ctl を読み込みます。 (Ver.1.5.21 以降は、標準で参照する様にしました)
    PGV 起動時に -cc をつけると、カレントディレクトリ下にあるコントロールファイル pgv.ctl を読み込みます。(Ver.1.5.18以降)
    ファイル名を指定したい場合は、-cfilename の様に続けて記述します。 ここで指定する filename はフルパス名である必要があります。 ディレクトリ名を指定しなければ、カレントディレクトリが参照されます。
    このコントロールファイルでは PGV の初期状態を変更したり、簡単なマクロ操作が行えます。
    応用例としては、少しずつ回転させながら画像ファイルに保存して movie 用のデータを作成することにも利用できます。
    コントロールファイルの詳細は制御ファイル説明書を参照してください。

    Ver.1.5.18 よりコントロールファイル出力ができるようになりました。 これによって、設定した表示状態を再現することが可能になります。
    たとえば、複数軌道を計算させた結果を比較したい場合など、自動的に同一条件での絵を描かせることが可能です。(下例参照)

    1. 1 軌道データを pgv で表示させ、描画条件を決定して ctl file を出力します。
    2. 出力された pgv0000.ctl を pgv.ctl に変名し、内容を少し変更します。
      • 最後の [MACRO] ブロックで output jpeg および quit をコメントからはずします。
      • 場合によっては、最初の方にある xsize, ysize を変更してピクセル数を整えます。
    3. 最後にバッチやシェル、パールスクリプト等で、軌道分以下の処理をさせます。
      pgv -cc isoXX.dat
      rename pgv0000.jpg isoXX.jpg
    4. 同時に html も作るようにプログラムを組めば、比較も簡単に web でできます。 (sample.pl)

    Ver.1.5.21 より標準コントロールファイル(pgv.exe と同じディレクトリ上の pgv.ctl)の更新機能を付け加えました。 また Reset -> Default を実行すると、表示が初期化され同時に標準コントロールファイルも書き換えます。

  2. コメント表示 Ver.1.5.9 以降

    PGV 起動時に -m に続いて表示したいコメントを記述すると、画面右下にコメントを表示することができます。
    例えば -mtest とか -m"test 123" の様に2語以上にわたる場合はダブルコーテーションで囲んで指定します。
    同時に -f1 の様にして表示フォントの大きさ(種類)を指定することもできます。フォントの種類は 1 から 4 までで、1 が一番大きな文字です。
    同時に -p1 の様にして表示位置を指定することもできます。表示位置は 1:左上,2:左下から選択できます。
    コメント表示指定されると、メニュー内に "Comment mode" が増えます。この中でもフォントの変更は可能です。
    ただし、この表示は現在 100% の確率で表示されるとは限りません。なぜか、特別な状況に表示しない場合があります。原因はまだ分からないのですが、多機種上で再現するので、自分の指定の仕方に間違いがあるのかもしれません。例えば Mouse を Angle mode にして動かすと、表示したり、表示しなかったりします。

  3. 視野角調整 Ver.1.5.14 以降

    視野を決定している視野角は、OpenGL の仕様により Y 軸方向の開き角となっています。
    従って枠の大きさを変更する時に横方向の変更は、図の表示サイズに変更がありませんが、縦方向の変更は、図の表示サイズが変更されます。
    そこで、視野角を調整する機能を、mouse mode に用意しました。視野角調整 view angle を選択した後、mouse を上下に移動すると、視野角が代わり、広角・望遠の効果が得られます。
    図を拡大する効果として、視野角調整のほか、Z 軸方向移動、およびズームがあります。特にズームを多用すると、拡大した時に広角レンズの様なひずみが感じられます。この様な場合は、視野角を減少(望遠効果)させるとひずみのない拡大が可能です。とは言っても、この3方法は、それぞれ異なった意味をもっていますので、どんな効果が必要か考えて使わなければならないでしょう。

  4. Webからの起動

    Web ヘルプアプリケーションとして使用する場合には、MIME type として application / X-polygon-viewer を、拡張子には pgv を設定してください。拡張子 xyz や pdb のファイルのブラウザとしても利用できます。
    Chemical file には決まった MIME type があるので、それを参照して設定してください。
    http://biotech.icmb.utexas.edu/mime/mimelist.html

  5. Windows95/98/NT/2000/XPでの起動

    Windows95/98/NT/2000/XP ではドラッグ&ドロップで起動が可能です。
    ただし pgv を直接クリックして起動させると、読み込みファイル名が分からないため、すぐに終了してしまいます。
    あとエクスプローラやフォルダ画面の「表示」メニューの一番下の「オプション」の中にある「ファイルタイプ」で、pgv データ等の起動アプリケーションを登録すれば、pgv プログラム内のデータ用アイコンをデータ用の表示として使用することができます。この設定がしてあれば、データをクリックしただけで、pgv が起動して表示する様になります。
    コンソール付き、という PGV は起動時に必ずコマンドプロンプトウインドウが開きます。 ヘルプアプリケーションとして使うには非常に煩わしいのですが、若干の情報をコンソールに吐き出すので、 訳が分からない動作をしている場合に、代わりに使うとヒントが得られる・かも・知れません。

  6. アニメーション出力 Ver.1.5.19 以降

    振動データ表示のときに、振動の様子をアニメーション表示できますが、その個々の画像をまとめて出力ができます。 これらのファイルを連結して動画ファイルに変換すれば、プレゼンテーションなどにも簡単に動画が使えます。 例えば AviMaker を使えば AVI ファイルが簡単にできます。

  7. 引数ファイル利用 Ver.2.2 以降

    pgv を起動するときに、複数の引数を指定する手間を省いたり、 またコマンド文字数制限問題を回避するために、引数ファイルを使用できる様にしました。
    pgv の引数として .arg の拡張子がついたファイルを指定すると、その内容を参照して引数として取り込みます。 引数ファイルを使用する場合でも、同時に引数を指定してもそれらは有効です。 引数ファイルはテキストファイルで、1行でも複数行でも指定方法は自由です。

  8. 複数フレーム表示 Ver.2.2 以降

    空間的なアニメーション(4次元観察?)が行える様になりました。
    各フレームに相当する pgv, xyz ファイルを用意し、起動時にフレーム数分のファイルを 指定することで、全フレーム分のデータを読み込みます。
    この場合に登場するメニュー "FrameAnimation" をスタートすると、読み込んだフレーム を次々と切り替えて表示することでアニメーション表示させます。 フレーム表示自身は3次元表示に変わりませんので、アニメーション中でも回転等の操作が可能です。
    ただし、むやみやたらに多いシーンを処理できないと思います。 プログラム上では 1000 を上限値に設定していますが、それ以前に何も表示せずに落ちてしまうかも...

  9. XYZ 4次元表示ファイル Ver.2.2 以降

    xyz ファイルを複数用意するのがうっとおしいあなたに、x4d フォーマットを用意しました。
    つまり複数フレームを1つのファイルに記述するフォーマットです。 形式は、以下のとおりです。

    1. # で始まる行はコメントとして無視します。
    2. 空行も無視します。
    3. ATOMS に引き続き原子数を記述する行が必ず必要です。この後、原子を指定数分読み込みます。 この行がフレームの先頭であると認識します。
    4. COMMENT に引き続き画面に表示するコメントを指定します。
    5. その他は、xyz と同じように、原子番号or原子記号 X座標 Y座標 Z座標 の順に空白文字で連結して指定します。 座標の単位はオングストロームです。
    6. x4d ファイルは振動ベクトルを含んでいても構いません。これを自動作成する freq2x4d.pl も用意しました。

  10. PGV 4次元表示ファイル Ver.2.3 以降

    複数の pgv ファイルしか扱えないと Web での提供が困難なので p4d フォーマットを用意しました。
    複数フレームの pgv ファイルを1つにまとめる pgv2p4d.exe もツールで提供します。
    ツールでは、引数に連結したい pgv を列記するだけですが、テキストファイル(拡張子は .arg) の内部に pgv ファイルを列記(改行の有無は自由)したものを用意し、それを指定してもOKです。
    連結結果として .p4d ファイルが同じディレクトリ内にできます。

  11. 分子表示定義ファイル Ver.2.0.1 以降

    メニューの bond mode 中に output bond parameter を用意しました。 まだ暫定的な機能ですがちょっとした作図には融通が利くと思います。
    これを実行すると、pgv.exe があるディレクトリ内に pgv.atm ファイルを作成します。
    これは原子間接続ルール、原子の球の色、原子の基準となる大きさが定義されています。
    ファイルの内容はタグ行に続いて、定義行となります。行頭が # の場合はコメント行になります。

    1. [CONNECTION]タグ
      接続ルールを記述します。接続ルールは基本ルールと拡張ルールに分かれています。 ともに変更したり、有効化/無効化の設定ができます。
      con0 - con4 の5つは基本ルールです。con0 などの識別子に続いて、コンマに続いてパラメータを指定します。
      第2カラムは有効/無効フラグです。1 が指定されれば、このルールを適用します。
      第3カラムは判別距離を指定します。単位はオングストロームです。
      基本ルールはそれぞれ別の意味を持っています。すぐ上のコメントにその意味が書いてあります。数値はデフォルト値です。
      con0 は全ての原子間で 4.65 以下の各座標軸距離、実距離について接続ルール判定を行います。ここで判定外になると接続しません。
      con1 は水素間の距離のみのルールです。実距離で 1.52 以下の場合接続します。
      con2 は水素・酸素間の距離のみのルールです。実距離で 1.90 以下の場合接続します。
      con3 は原子番号10以下の原子間の距離のみのルールです。実距離で 3.00 以下の場合接続します。
      con4 は水素と任意の原子間の距離のみのルールです。実距離で 3.00 以下の場合接続します。
      拡張(custom)ルールは、任意の原子間に限定して距離を設定します。現在のところ conC0 - conC4 の5つのみ使用できます。
      第1カラムは識別子です。コンマに続いてパラメータを指定します。
      第2カラムは有効/無効フラグです。1が指定されれば、このルールを適用します。
      第3カラム、第4カラムは、ルールを作る任意の2つの原子番号を指定します。
      第5カラムには実距離を指定します。
    2. [COLOR]タグ
      原子球の色を記述します。指定にはだいぶコツが要るので、既に設定済みの原子を参考にして変更ください。
      現在指定している色は、特定原子以外は茶色です。特定原子は以下の色となっています。
      水素:白、炭素:灰、窒素:青、酸素:赤、Na,Mg,Al,P,S:緑、Cl:黄色
      設定は、原子番号に続いて、環境光(RGB)、拡散光(RGB)、鏡面光(RGB)、鏡面光係数となっています。詳しくは OpenGL のライブラリ説明(glMaterial)を参照ください。
      第1カラムは、原子番号です。0 は予約番号です。104 まで指定できます。
      第2−4カラムは、環境光でRGBの順に指定します。光が当たらない部分の色、ということで球で言えば光が当たっていない裏半分の色です。 黒くすれば暗闇または真空中に浮かんだ雰囲気となります。環境光と拡散光の比率で雰囲気(取り囲む環境)を表現できます。 各球の比率バランスが悪いと不自然になります。 数値は 0 - 100 の間で指定します。
      第5−7カラムは、拡散光でRGBの順に指定します。物体そのものの色、ということで球で言えば光が当たっている表半球の色です。 これが球自身の色だと考えて結構です。
      第8−10カラムは、鏡面光でRGBの順に指定します。光があたり輝いている部分の色、ということです。通常は全部 100 で結構です。 全部に同じ色を付けると色付きライトを当てている様な効果があります。あまり操作すると不自然になります。
      最後の第11カラムは、鏡面光係数です。係数が大きいとハイライトが大きくなります(拡散したイメージ)。 係数が大きいとプラスチック球な感じで、小さいと金属球な感じになります。ただし材質的な効果は拡散光との比率も影響します。
    3. [RADIUS]タグ
      原子球の半径を記述します。
      第1カラムは、原子番号です。0 は予約番号です。104 まで指定できます。
      第2カラムは、半径です。単位はオングストロームです。ここで言っている半径は、空間充填モデル表示時の径です。 通常のボール+スティックの場合は 1/8 の大きさで表示しています。


参考文献

「グラフィックスとマンマシンシステム」, 岩波講座ソフトウェア科学10, 160-165
相川恭寛,「OpenGLプログラミング・ガイドブック」, 技術評論社, ISBN4-7741-0237-7
OpenGL ARB,「OpenGL Programming Guide」, アジソン・ウェスレイ, ISBN4-7952-9645-6
OpenGL ARB,「OpenGL Reference Manual」, アジソン・ウェスレイ, ISNB4-7952-9644-8
マーク・ペッシ,「VRMLを知る」, プレンティスホール出版, ISBN4-931356-37-0
落合重紀,「新・DXFリファレンスガイド」, 日経BP社, ISBN4-8222-1463-X
David C. Kay & John R. Levine, 「グラフィックファイルフォーマット・ハンドブック」, アスキー出版局, ISBN4-7561-1456-3
 
落合重紀様には、改訂の連絡とともに改訂後の書籍を頂きました。この場を借りて御礼申し上げます。(2000/11/17)

使用ライブラリ

GLUT Lib for UNIX / GLUT Lib for WindowsNT/95
JPEG Lib
Mesa Lib

発表

水谷文保 "3次元ブラウザの開発と生理学分野への応用の可能性" 生理学技術研究会 1997
水谷文保 "4次元ブラウザの開発" 東北大学技術研究会 2000
水谷文保 "分子構造の4次元的観察ツール" 自然科学研究機構技術研究会 2006

紹介

田中扶未 "アニメーション/可視化について(3) -Gaussian94の実行結果の可視化-" 東京工業大学総合情報処理センター広報 1998 No.163
平尾公彦、武次徹也 "すぐできる量子科学計算ビギナーズマニュアル" 2006/5/1, ISBN4-06-154330-X

Papers (Fig. and Ref.)

Masaaki Tomura, Yoshiro Yamashita,
"An Unsymmetrical Tetrathiafulvalene with a Fused 1,2,5-Thiadiazole Ring and Methylthio Groups",
Molecules, 14(10), 4266-4274 (2009)

Papers (Fig.)

Shinkoh Nanbu, Toshimasa Ishida, Hiroki Nakamura,
"Atomic hydrogen transmission through five-membered carbon ring by the mechanism of non-adiabatic tunneling",
Chem. Phys. 324, 721-732 (2006)
[P4D Sample 4052kB]

PGV JP Page, last update 2011/09/27
Copyright(C) 1996-2011 F.Mizutani, RCCS / mizutani@ims.ac.jp