知识卡片

程序化模型:用算法生成难以手工建模的复杂形态

专业/工作 · 1294.b

内容

山脉、树木、云、烟这类自然形态既没有简洁的几何公式可以描述,逐点手工建模(数字化)的工作量又大到不现实,解法是编写能自动”生长”出所需形状的程序(程序化模型)——比如山脉可以从一个三角形出发,反复找到各边中点、随机扰动中点位置、再对生成的更小三角形递归重复这个过程,几轮之后就能长出崎岖的地形;树木可以套用类似语法分析器生成语法分析树的分支规则来”生长”,不同的规则集合能长出松树或橡树。这类程序生成的图形结构往往具有分形特征——局部形态和整体形态自相似,放大任意一部分看到的依然是同一套生成规律的产物。发散:程序化模型体现的是”用简单规则的递归应用替代穷举式的手工描述”这个通用思路——与其试图为每一片叶子、每一道山脊单独指定坐标,不如设计一条能不断自我复制、自我扰动的生成规则,让复杂性从规则的重复应用中自然涌现,这正是[[递归:把重复当作自身的子任务]]这一算法思想在几何建模领域最具想象力的应用场景之一。

参考来源

《计算机科学概论》第10章《计算机图形学》