admin
|
e40f7a49e4
|
feat: move_camera.txt 改为速度段格式驱动相机运动
格式:
1-60 vx=1.0 rx=10 # 1-60帧:x平移1/帧 + 绕x转10°/帧
30-90 vy=2.0 ry=20 rz=10 # 30-90帧:y平移2/帧 + 绕y转20°/帧 + 绕z转10°/帧
draw.py 每帧累加平移速度修改center,累加旋转速度修改
elevation/azimuth,实现连续平滑的相机运动。
|
2026-06-12 07:58:08 +08:00 |
|
admin
|
22b94011ee
|
feat: 运动相机支持 + move_camera.txt 关键帧驱动
input.txt 新增:
move_camera: 0 # 0=固定视角, 1=按 move_camera.txt 运动
move_camera.txt 格式(4列:帧号 距离 俯仰角 方位角):
0 40.0 0 0
100 80.0 -30 180
200 40.0 0 360
display.txt header 传递 camera_keyframes JSON 数组,
draw.py 按帧时间线性插值驱动相机运动(循环播放)。
|
2026-06-12 07:52:06 +08:00 |
|
admin
|
f1afb7c479
|
feat: 摄像机初始位置可在 input.txt 配置
新增 input.txt 字段:
camera_distance: 40.0 # 到场景中心的距离
camera_elevation: 0 # 俯仰角
camera_azimuth: 0 # 方位角
通过 display.txt header 传递到 draw.py,
不再硬编码在 draw.py 中。
|
2026-06-12 07:48:37 +08:00 |
|
admin
|
757a891a43
|
feat: display.txt 传递原子半径数组,draw.py 读取 per-atom 半径
之前所有原子使用统一的 ball_radius(来自 input.txt),
现在 display.txt header 包含 atom_radii 字段(逗号分隔
的半径数组),draw.py 据此为每个原子设置独立半径。
fallback:若没有 atom_radii 字段,仍使用 ball_radius。
|
2026-06-12 07:46:28 +08:00 |
|
admin
|
54aa20d7c5
|
fix: display.txt 缺失 alpha 透明度参数,draw.py 读取不到
alpha(盒子透明度)未写入 display.txt header,
draw.py 回退到默认 0.2 而非 input.txt 配置值。
现在 alpha 通过 header 字段正确传递。
Python 引擎:alpha 支持单值或数组 → 逗号分隔字符串
外部引擎:从 trajectory.txt 读取 alpha 值
|
2026-06-12 07:24:38 +08:00 |
|
admin
|
c3e50d265d
|
ui: 缩小 ball_info 字体 28 → 18,适配更多信息显示
|
2026-06-12 07:07:26 +08:00 |
|
admin
|
6b5e12da46
|
fix: display.txt 丢失 use_marker 导致强制使用 Sphere 渲染模式
新格式 display.txt 未包含 use_marker 字段,draw.py 中
USE_MARKER 被硬编码为 0(Sphere 模式),对 120 个原子
每帧更新 120 次 STTransform 极慢。
修复:将 use_marker 加入 display.txt header,draw.py 从
header 读取而非硬编码。case06 配置 use_marker: 1 会
自动启用 Marker(GPU 实例化)模式,动画流畅。
|
2026-06-12 07:04:29 +08:00 |
|
admin
|
9d1f84d2bf
|
refactor: 引擎直接抽帧 + 新 display.txt 纯文本格式 + save_trajectory 开关
核心变更:
1. compute.py: run_simulation 直接按 NSTEP 抽帧写 display.txt(新格式)
- 新格式:纯文本,帧 1→n 分块,每行: n x y z vx vy vz
- 新函数 save_display_txt() / load_display_txt()
- save_trajectory 参数(默认0=不保留 trajectory.txt)
2. dynamics.py: 移除旧 JSON 采样逻辑,自动检测 display.txt
- Python 引擎直接读取引擎输出的 display.txt
- 外部引擎仍写 trajectory.txt,自动抽帧转 display.txt
3. draw.py: 适配 load_display_txt() 新格式
4. case06/input.txt: 添加 save_trajectory: 0, step_sample: 0
TODO: 外部引擎(C/C++/Fortran)内部抽帧写 display.txt
TODO: plot_wave.py 适配新格式
TODO: 其他案例 input.txt 更新默认值
|
2026-06-12 06:36:50 +08:00 |
|
admin
|
80520590d1
|
feat: 新增波形能量动画系统 plot_wave.py
- 创建 plot_wave.py: 从 display.txt 读取原子位移数据
绘制纵波(x) + 横波(y) + 横波(z) 波形随时间的动画
同时绘制系统动能/弹性势能/总能量/输入功率(dE/dt)时变曲线
输出 wave_animation.gif
- 所有 input.txt 新增 step_plot_wave: 0 开关
- case05 开启 step_plot_wave: 1
- dynamics.py disp_data 新增 bond_stiffness/bond_rest_lengths
- 更新案例文档
|
2026-06-11 12:39:46 +08:00 |
|
admin
|
854f00ae44
|
feat: 增加驱动力系统、Marker渲染模式、动画防闪退、案例文档
- 新增 driving_force 驱动力系统(driver.txt 定义,支持周期控制)
- 新增 use_marker 渲染开关(GPU实例化点精灵,提升大量原子性能)
- 修复动画闪退:独立控制台、错误日志、启动存活检测
- 重绘 draw.py 架构:双渲染模式 + 预分配键线缓冲区
- 修复 raw trajectory 采样时间变量遮蔽 bug
- 重构 case05: 60原子一维链 + 驱动力 + 完整案例文档
- 修复所有案例 Readme.md 编码(GBK → UTF-8)
- 所有 input.txt 新增 driver_file / driving_force / use_marker 参数
|
2026-06-10 15:34:53 +08:00 |
|
admin
|
45513fe334
|
init
|
2026-05-17 08:47:25 +08:00 |
|