Skip to content

奇异吸引子 (Strange Attractor)

简介

奇异吸引子将混沌微分方程转化为优雅的节奏化视觉艺术。通过模拟点在三维空间中受数学规则驱动的轨迹,你可以创造出展现“混沌形状”的复杂有机结构。

核心能力:

  • 数学驱动艺术:可视化经典系统(如 Lorenz, Rossler)或编写你自己的方程。
  • 双渲染模式:在基于 CPU 的高质量拖尾渲染与基于 GPU 的海量粒子云渲染之间自由切换。
  • 电影级控制:完整的时间线集成,支持相机运镜与参数动画。

界面概览

所有控制项位于右侧的属性面板中,分为四个主要部分:

  1. Geometry (几何):定义核心微分方程 (dx, dy, dz) 和空间变换。
  2. Parameters (参数):定义方程中使用的自定义常量(如 sigma, rho)。
  3. Settings (设置):配置模拟物理属性(步长、粒子数、积分器)。
  4. Appearance (外观):调整视觉风格(配色、点大小、拖尾长度)。

配置指南

1. Geometry (几何方程)

这里定义速度场(Vector Field)。

  • dx / dy / dz:定义位置 $(x, y, z)$ 处的速度分量的微分方程。
    • 支持变量:x, y, z, t (时间)。
    • 支持函数:sin, cos, tan, exp, log, sqrt, abs 等。
    • 示例 (Lorenz 系统):
      • dx: sigma * (y - x)
      • dy: x * (rho - z) - y
      • dz: x * y - beta * z
  • Scale / Offset (缩放/偏移):调整吸引子在场景中的大小和位置。
    • 提示:不同的吸引子方程产生的数值范围差异巨大。使用 Scale 将其调整到合适的相机视野内。

2. Parameters (自定义参数)

建议不要在方程中硬编码数字,而是在这里定义命名参数。

  • 添加参数:创建如 a, b, sigma 这样的变量。
  • 使用方法:在 Geometry 面板的方程中直接使用这些变量名。
  • 实时调节:在播放过程中修改这些数值,可以动态演变吸引子的形状。

3. Settings (模拟设置)

控制系统随时间的演化方式。

  • Render Mode (渲染模式)
    • CPU:专为 线条与拖尾 (Lines & Trails) 设计。支持平滑、抗锯齿且不仅限宽度的拖尾绘制。适合高质量视频导出。建议粒子数 < 10,000。
    • GPU:专为 海量点云 (Massive Point Clouds) 设计。利用 GPGPU 技术模拟数百万个粒子。此模式下不显示拖尾。适合实时性能表现和流体般的密度效果。
  • Particle Count (粒子数):系统中独立粒子的数量。
  • Time Step (时间步长 dt)
    • dt_min / dt_max:积分步长。值越小,模拟越精确但速度越慢。
    • sub_steps:每帧渲染前的物理计算次数。增加此值可以加快视觉上的演化速度,同时保持数值稳定性。
  • Warmup (预热)
    • warmup_steps:在绘制第一帧之前预先模拟的步数。用于将粒子从初始随机框引导至吸引子轨道上。
    • stagger_min / stagger_max:为每个粒子随机增加预热步数。这能防止所有粒子在开始时聚集成同步的一团,使分布更自然。
  • Initialization (初始化)
    • Bounds:定义粒子初始生成的 X/Y/Z 最小/最大坐标范围。

4. Appearance (外观风格)

  • Dot Size (点大小):粒子头部的直径。
  • Palette (配色方案):颜色列表。粒子会根据其索引值从列表中选取颜色(渐变映射)。
    • 提示:使用 "Randomize" 按钮可以快速生成符合色彩理论的配色方案。
  • Trails (仅限 CPU 模式)
    • show_trails:开启/关闭拖尾。
    • trail_lifetime:拖尾保留的历史时长(秒)。警告:过长的寿命(>15秒)配合大量粒子会消耗极大的内存。
    • line_weight:拖尾线条的粗细。
    • fade_trails:开启后,拖尾会随时间逐渐变透明。

性能与最佳实践

目标推荐设置
高质量视频导出CPU 模式particle_count ~2,000。trail_lifetime 5-10秒。sub_steps 5-10。
实时流体感GPU 模式particle_count 100,000+。sub_steps 2。
锐利细节减小 dt (如 0.005) 并增加 sub_steps
平滑开场设置 warmup_steps 至少 100,避免开场时的随机框分布造成的视觉突兀。

疑难解答 (Troubleshooting)

  • 粒子发散/爆炸:积分步长 dt 可能相对于当前方程的能量过大。尝试减小 dt_max
  • 拖尾不连贯:增加 sub_steps 或降低整体模拟速度。
  • 内存不足 (OOM):减少 trail_lifetime 或切换至 GPU 模式(GPU 模式不存储历史轨迹)。

效果展示

All rights reserved.