材料研究 / 第 009 号

西瓜 果冻。

一片三角切分的凝胶体。弹性由四面体弹簧给出,
光线按厚度被吸收,刀落之后它仍是果冻。
全部几何在加载时现场生成,每次形状一致。

正在启动

WEBGPU · 实时

手掌 · 抓住果冻向外拖可拉伸,滚轮扭转抓取的果肉

空白处 · 拖动环绕,滚轮缩放,双击回默认机位

切刀 · 在瓜面横划一道,松手落刀

空格 暂停 · N 轻推 · R 重置 · K 切刀 · H 手掌

实时读数
质量—克
体积—% 静止态
动能—微焦
块数—块
帧率—fps

换算:1 模拟单位 ≈ 3.5 cm,密度按 1.3 g/cm³ 计, 故 1 单位³ = 3.5³ cm³ ≈ 42.9 cm³ ≈ 55.7 克;动能以微焦(µJ)显示。

实验内部

四面体身体

二维 Delaunay(Bowyer–Watson)剖出瓜面的三角网,沿厚度挤出成棱柱再切成四面体, 当前 — 个单元、— 个粒子。 每个单元用共旋弹性拉向"最佳旋转后的静止形状",被翻转也能自己翻回来; 体积约束让它接近不可压缩,拉长时会收腰。

切割

刀面由屏幕笔画在表面高度反投影得到,再按该块当前姿态的最佳旋转变换回静止平面, 用 Sutherland–Hodgman 在半平面裁出带圆角的两半。 新网格与 GPU 缓冲在刀落下之前就已建好,所以切穿那一帧只是原子替换。

随果肉运动的表面

籽、气泡与外壳的每个渲染顶点都持有一组重心坐标,绑定到某个四面体; 单元怎么变形,它们就怎么跟着走。房子果冻的门窗、屋顶同样绑在静止坐标系里, 被拉伸时会一起撕开,而不是浮在表面。

光线穿过果冻

先渲染背面深度估计视线穿过的厚度,再按 Beer–Lambert 吸收着色: 浅层更乳白,薄边在逆光处透出泛红背光,叠上 Fresnel 反射与 GGX 高光。 环境由解析函数给出——无缝背景、头顶柔光箱、左后条形灯、右前补光板。