• 用VMD繪制藝術級軌道等值面圖的方法(含演示視頻)

    注:本文的操作配有演示視頻,請注意觀看,五分鐘就能學會畫出本文里面的圖像的效果,見https://www.bilibili.com/video/av37101659/


    用VMD繪制藝術級軌道等值面圖的方法

    文/Sobereva@北京科音

    First release: 2018-Nov-30  Last update: 2021-Sep-19


    在《使用Multiwfn觀看分子軌道》(http://www.shanxitv.org/269)中筆者詳細介紹過怎么用Multiwfn繪制軌道,用起來又方便速度又快。后來筆者在《使用Multiwfn+VMD快速繪制高質量分子軌道等值面圖》(http://www.shanxitv.org/447,含演示視頻)中演示了如何利用Multiwfn結合VMD非常簡單快速地繪制出效果令人滿意的等值面圖,沒看過此文者務必要看。在本文中,筆者進一步說明怎么恰當修改VMD的設定和利用Tachyon渲染器獲得效果更完美、更出彩的圖像。讀者請務必使用當前官網上最新的Multiwfn版本。本文用的VMD是1.9.3版,不要用其它版本!

    本文通過一個石墨烯片段的某個軌道為例進行說明,此體系的fchk文件可在http://www.shanxitv.org/attach/449/6x6_graphite.rar下載。大家先按照上文的過程將其第183號軌道顯示出來,等值面用0.02。繪制前把showorb.txt里倒數第二行改為3,使得Multiwfn通過high quality grid格點計算MO183的格點數據。當前在VMD中看到的圖像如下所示,雖然已經令人滿意(已吊打gview的效果),但還不算很出眾

    下面我們試圖繪制出更漂亮的效果。在Multiwfn程序包中,有一個examples\scripts\VMDrender.txt文件,用于在VMD里使用orb命令顯示出軌道圖形后進一步修改設定,參數都是我精心調節出來的,這里解讀一下:
    color Name C tan:把名為C的原子改為tan顏色
    color change rgb tan 0.700000 0.560000 0.360000:修改tan顏色的定義。這最終使得碳原子比其默認的深青色顯得更柔美
    material change mirror Opaque 0.15:修改不透明材質(用于顯示分子結構)的mirror屬性,大于0的時候通過考慮光線追蹤的渲染器渲染的時候就會有反光效果
    material change outline Opaque 4.000000:設定不透明材質的輪廓深度
    material change outlinewidth Opaque 0.5:設定不透明材質的輪廓粗度。設置輪廓可以使原子有勾邊效果(有效避免白色的氫原子在某些地方和白色背景連為一體)
    material change ambient Glossy 0.1:設置用于顯示等值面的Glossy材質的ambient屬性
    material change diffuse Glossy 0.600000
    material change opacity Glossy 0.75:把Glossy材質改為微透明
    material change shininess Glossy 1.0
    mol modcolor 1 top ColorID 12:修改正值部分等值面的顏色為淡綠色
    mol modcolor 2 top ColorID 22:修改負值部分等值面的顏色為淡藍色
    display distance -7.0:讓視角距離畫面的更遠,可避免在窗口邊緣的物體由于近大遠小而畸變太厲害
    display height 10:這句是避免因為減小了distance而導致圖像變小
    light 3 on:開啟額外的3號光源令圖像更亮

    將VMDrender.txt里的內容直接復制到VMD的文本窗口里,此時看到的效果如下,此時已經比前面的圖顯得柔和多了。

    為了效果更出色、加上抗鋸齒效果,并且渲染出更大尺寸的圖像,這里用Tachyon渲染器,而且為了能夠精細調節參數,我們不用Tachyon (internal, in-memory rendering)直接渲染,而是讓VMD調用Tachyon產生此渲染器的輸入文件,然后再根據我們自設的參數手動調用Tachyon進行渲染。

    適當縮放分子,使得分子大體充滿整個VMD圖形窗口,然后在VMD里選擇File - render,選擇Tachyon,然后點擊Start Rendering。此時VMD目錄下出現了vmdscene.dat和vmdscene.dat.bmp。vmdscene.dat就是Tachyon的輸入文件,而vmdscene.dat.bmp是基于這個輸入文件在默認設置下渲染出來的圖像文件,此文件目前沒用,可以刪掉。

    然后把Multiwfn的examples\scripts\目錄下的VMDrender_full.bat和VMDrender_noshadow.bat拷到VMD目錄下。這倆都是Windows下的批處理文件,先看VMDrender_full.bat的內容:
    tachyon_WIN32.exe vmdscene.dat -format BMP -o full.bmp -trans_raster3d -res 2000 1500 -fullshade -numthreads 4 -aasamples 24
    含義是,調用VMD自帶的tachyon_WIN32.exe渲染器,用vmdscene.dat作為輸入文件,在當前目錄下渲染出full.bmp圖像文件,用的透明著色選項是-trans_raster3d(實測效果比其它選項更好),渲染出的圖像像素為2000*1500(通常來說已經足夠大了)。-fullshade代表渲染時考慮陰影效果。-numthreads設定渲染時的線程數(建議設為CPU的實際物理核心數)。-aasamples是抗鋸齒設定,數值越大抗鋸齒效果越好。

    現在雙擊VMDrender_full.bat進行渲染,耐心等候一陣子,得到如下full.bmp圖像文件,可見效果極佳!非常光滑,而且富有立體感。

    另外值得一提的是,在VMDrender_full.bat里可以再加一句-shadow_filter_off,此時雖然繪制出的圖也有陰影效果,但透明的材質的物體,即軌道等值面,不會產生陰影,此時效果如下。下圖好還是上圖好請根據實際情況自行判斷,總的來說下圖顯得更明亮一些。

    VMDrender_noshadow.bat和VMDrender_full.bat的唯一差別就是前者渲染出的圖沒有任何陰影效果,因為把-fullshade替換為了-mediumshade,但也因此渲染速度快更快,得到的圖像如下所示,顯得比較干凈簡潔。

    本文的設定對于示例體系很理想,但不代表用于其它體系效果同樣好,請根據實際情況恰當修改,特別是材質(可以在Graphics - Materials里改)。

    如果用此文方法繪制軌道圖發了文章,如果用此文方法繪制軌道圖發了文章,勿忘引用Multiwfn啟動時提示的Multiwfn的原文


    最后再隨便展示一張圖,以更充分展現本文做法的效果


    下面這張圖是Org. Elect., 69, 85 (2019)一文中按照本文的方法繪制出來的圖



    附:圖像無法繪制出來的排查方法

    老有人問怎么按照此文的方法繪制不出來、VMD文本窗口提示找不到文件之類,在這里明確統一回復一遍

    1 確保用的是Multiwfn官網上的最新版本、用的VMD是1.9.3版,確保VMD沒有被安裝到C盤的默認路徑下(否則可能由于權限問題導致新文件沒法在VMD目錄下創建)
    2 確保showorb.bat批處理文件里的VMD路徑確實設對了。如果路徑里有空格,兩邊必須用雙引號括起來
    3 確保showorb.bat里的輸入文件的路徑無誤,并且showorb.txt文件確實在當前目錄下
    4 確保用的輸入文件的文件格式合理。諸如用.xyz、.pdb之類根本沒有波函數信息的格式顯然不行
    5 死活搞不明白原因的話,先進入操作系統的命令行模式,比如進入Windows的cmd(不會進的話自行Google搜索),并且確保當前處在Multiwfn目錄下,然后把.bat文件里的命令一行一行敲進去運行,從屏幕的提示上判斷是因為什么出錯并試圖解決。如果自行不會判斷、無法解決,把最后那部分輸出的信息的截圖貼到Multiwfn的官方論壇上,筆者通常會在一天內回復

    根據筆者答疑時的經驗,>90%繪制不出來的原因都是路徑沒寫對(現在的天朝計算機教育真是相當失敗,很多搞計算化學的人居然連個路徑都寫不對,甚至有人還在路徑里把雙引號寫成全角的,令我感到十分汗顏)。

    久久精品国产99久久香蕉