OVITO自动渲染与图形环境
在终端生成带编号的苯结构、配位多面体和电荷等值面,说明无显示器环境的运行方式。
阅读本篇目录
下载输入、程序与实际结果,在新目录解压后先运行bash run.sh。新结果在work,参考数据在reference。分析环境为OVITO3.16.1,作图环境为ASE3.29.0。本文的单项命令在完整运行之后执行。
1. 运行分析与渲染#
module purge
module load ovito/3.16.1
export OVITO_THREAD_COUNT=1
export LP_NUM_THREADS=2
export QT_QPA_PLATFORM=ovitoheadless
cd work
python render.py
脚本用Tachyon渲染器输出1800×1400 PNG。OVITO3.16.1的某些图形步骤仍会使用Vulkan,即使最终渲染器是Tachyon;本例使用系统已有的CPU软件驱动完成图像,并不依赖额外GPU计算任务。在带有此驱动文件的机器上,可显式指定:
export VK_ICD_FILENAMES=/usr/share/vulkan/icd.d/lvp_icd.json
不要把这里的ovitoheadless改成offscreen:后者在本环境无法创建所需的Vulkan实例。自己的机器路径可能不同,应按实际已安装驱动配置;不需要更改结构、轨迹或科学参数来处理图形环境问题。
2. 给苯分子加原子编号#
from ovito.io import import_file
from ovito.modifiers import CreateBondsModifier, TextLabelsModifier
from ovito.vis import Viewport, TachyonRenderer
p = import_file('inputs/benzene.xyz')
p.modifiers.append(CreateBondsModifier(mode=CreateBondsModifier.Mode.CovalentRadius))
p.modifiers.append(TextLabelsModifier(property='Particle Identifier', format_string='#%g'))
p.add_to_scene()
vp = Viewport(type=Viewport.Type.Ortho, camera_dir=(0,0,-1))
vp.zoom_all()
vp.render_image(filename='benzene.png', size=(1800,1400),
renderer=TachyonRenderer(ambient_occlusion=False, shadows=False),
background=(1,1,1))
p.remove_from_scene()
完整脚本还设置了粒子半径、键宽和相机留白,并显示芳香键。文字来自真实粒子ID;如果只需要元素名,将property改成Particle Type。筛选和删除原子后不要重新编号来掩盖原有ID对应关系。

3. 着色和环境光遮蔽#
python examples.py python_and_color
python ambient.py
ColorCodingModifier将数值属性映射为颜色;AssignColorModifier统一赋色;ColorByTypeModifier按类型定义着色。此例还用PythonModifier计算每个原子到原点的距离,再用于颜色映射。只改变颜色不会改变能量或结构类型。
AmbientOcclusionModifier(sample_count=24, buffer_resolution=2)给108原子的Al团簇增加遮蔽阴影,原本全白的颜色分量降到约0.3003–1.0;内部较暗、外部较亮。它是视觉效果,不是电荷、温度或配位数。原始颜色数值保存在results/ambient-colors.csv。
4. 生成论文和说明文档用的数图#
module purge
module load ase/3.29.0
python plot_results.py
输出5张2600×1100 PNG,全部使用实际数表。results中的CSV可继续用其他绘图工具处理;电荷和团簇网格可从VTK导出文件继续渲染。正式作图要保留单位、坐标、图例、结构来源和筛选条件。
图形页面与Python包的功能入口并不完全相同。本例不需要GUI许可证,也不借用GUI会话文件绕过程序限制;GUI中的专有交互功能遵从其实际许可与API范围。