
洞穴结构生成
天然的洞穴形态有如下形式

通道切面有如下形式

首先使用LSystem进行结构生成
由于LSystem是一个树状结构,会产生很多死路,所以这里最后会把一定比例的死路互相连通

符号
F前进
R顺时针偏航
L逆时针偏航
U向上倾斜
D向下倾斜
O增大角度
A减小角度
B增加每步的前进距离
S减少每步的前进距离
Z分支的尽头
0停止连接其他分支
[]起始/结束分支
使用的宏:
C 曲线路径
H 上坡结构
Q 产生一个房间
T 类似于H符号,但分成两条分支
I 直线路径
由以下公式进行生成:


这里生成的其实可以看作一堆管道
MetaBall
考虑最简单的场函数D(r)=1/R^2,假设有两个这样的场互相影响,我们画出其中的等势面,会出现两个球交融的效果,每个球都是一个metaBall

一般会限制场的影响范围,将其写为

a为缩放比例,b为控制点生效的最大距离。
可以进一步简化为

当ab都为1时,即为

此外,有一种更平滑的计算方式

产生一系列metaball去影响顶点


ref:https://blog.youkuaiyun.com/noahzuo/article/details/78596407
http://julian.togelius.com/Mark2015Procedural.pdf