vmd初始化文件(vmd.rc)我的推荐设置 | 宜武汇-ag真人国际厅网站

vmd初始化文件(vmd.rc)我的推荐设置

 first release: 2020-apr-1   last update: 2023-apr-4

 

vmd启动时会先用初始化文件对一些设置进行初始化,即执行里面的各种命令,用户也可以往里添加额外的命令。对于windows版来说,这个文件就是vmd目录下的vmd.rc。对于linux版来说,这个文件叫.vmdrc,vmd会先在当前目录下搜索,没有的话就去找~/.vmdrc,还没有的话去找$vmddir/.vmdrc(这里$vmddir环境变量是没有预先定义的),如果还找不到此文件,就会用默认设置。
注:linux下的.vmdrc文件默认出现在安装目录下,比如以默认路径安装会出现为/usr/local/lib/vmd/.vmdrc,但如果不配置vmddir环境变量的话这个文件并不会被vmd在启动时自动载入。linux下.vmdrc一般都是自行在用户主目录下创建。

在此我将我自己的初始化文件里的设置进行分享,其中额外添加的内容如下(放到原有内容后头即可)。下文的叙述是对撰文时最新版本vmd 1.9.3而言的。

mol default style {lines 2.0}
display depthcue off
#color display background white
#axes location off
display rendermode glsl
display distance -8.0

proc bw {} {color display background white}
proc bb {} {color display background black}

user add key right {animate next}
user add key left {animate prev}
user add key up {animate goto [expr $vmd_frame([molinfo top]) 10]}
user add key down {animate goto [expr $vmd_frame([molinfo top])-10]}
user add key b {mol bondsrecalc all; topo retypebonds}

proc bt {} {
global vmd_frame
trace variable vmd_frame([molinfo top]) w updatebond
}
proc updatebond {args} {
mol bondsrecalc all
topo retypebonds
}
proc bn {} {
global vmd_frame
trace vdelete vmd_frame([molinfo top]) w updatebond
}

proc fog {} {
display depthcue on
display cuemode linear
display cuestart 1.75
display cueend 2.5
}

下面解释一下做这些设置有什么好处。

程序默认的显示方式是lines,但是线的粗细太细,往往看不清楚,所以用mol default style {lines 2.0}将默认的显示方式改为两倍粗细的lines。

程序默认开着雾化,即让距离镜头越远的物体的颜色混入越多的背景色。这会导致在黑色背景下物体的颜色显得不够鲜艳,而在白色背景下物体又显得有点雾蒙蒙,因此用display depthcue off将雾化效果关掉。

#color display background white这行是被注释掉的。如果你想让vmd启动后默认就用白背景,就把#去掉。

#axes location off这行也是被注释掉的,如果你想让vmd默认不显示坐标轴,就把#去掉。

vmd默认用称作normal的rendermode,但此时有些材质的显示效果很差,甚至transparent材质根本没法正确显示出透明效果。因此通过display rendermode glsl将默认的rendermode设为效果好得多的glsl。

有很多人肯定早已发现画面边缘的物体畸变得特别厉害,很难看。通过display distance -8.0语句可以充分避免。但导致一个问题就是原本在窗口左下方的坐标轴看不到了,需要坐标轴的时候可以选display – axes – origin让坐标轴显示在窗口中央。

下面这两行是自定义命令。在vmd的文本窗口里输入bw(意为background white)就可以令背景立刻变为白的,输入bb就可以令背景立刻变为黑的,非常方便。
proc bw {} {color display background white}
proc bb {} {color display background black}

下面的内容是设置用户自定义快捷键。载入轨迹后,在图形窗口处于被激活的状态时(激活窗口就是鼠标点击这个窗口的意思),按左、右键就可以分别后退1帧、向前1帧,按上、下键就可以分别增加10帧、后退10帧。这使得观看轨迹方便很多。
user add key right {animate next}
user add key left {animate prev}
user add key up {animate goto [expr $vmd_frame([molinfo top]) 10]}
user add key down {animate goto [expr $vmd_frame([molinfo top])-10]}

关于vmd判断原子间连接关系的问题我在《谈谈vmd可视化程序的连接关系的判断和设置问题》()里有非常详细的说明。为了能很方便地让vmd对当前帧根据当前结构重新判断连接关系,增加了下面这句。图形窗口处于激活状态时按b键(意为bond)就能重新判断连接关系。
user add key b {mol bondsrecalc all; topo retypebonds}

如果想播放的时候实时自动更新连接关系,而不需要每次都按b键,靠以下语句可以实现。也就是定义了一个bt命令,如果在命令行窗口输入了bt,那么每当当前top体系的帧号发生了变化,就会调用updatebond命令自动来更新连接关系。这样做的代价就是对较大体系,每播放一帧都要根据距离重新判断连接关系,播放时会比较卡。
proc bt {} {
global vmd_frame
trace variable vmd_frame([molinfo top]) w updatebond
}
proc updatebond {args} {
mol bondsrecalc all
topo retypebonds
}

下面的内容定义bn命令。如果不想自动更新成键方式了,可以输入bn命令取消掉对帧号的跟踪即可。
proc bn {} {
global vmd_frame
trace vdelete vmd_frame([molinfo top]) w updatebond
}

雾化效果绝非毫无意义。只要恰当使用,就可以让近距离的物体完全不受影响,而让偏远的原子恰当地雾化,避免扰乱视觉、妨碍清楚地观看近距离的物体。下面的语句是自定义命令,只要在文本窗口输入fog,就可以打开雾化并且使用在我来看比较合适的雾化设置。如果觉得实际效果不好,需要进一步调节,可以用display – display settings,修改里面的cue start和cue end。
proc fog {} {
display depthcue on
display cuemode linear
display cuestart 1.75
display cueend 2.5
}

原文链接:http://sobereva.com/545

网络摘文,本文作者:15h,如若转载,请注明出处:https://www.15cov.cn/2023/08/27/vmd初始化文件vmd-rc我的推荐设置/

发表评论

邮箱地址不会被公开。 必填项已用*标注

网站地图