波浪墙真的用砖更少吗?我在Blender中测试了
摘要
作者通过在Blender中创建程序化模型并分析砖块数量,测试了波浪墙(蛇形墙)是否比直墙使用更少的砖块。
<p><a href="https://lobste.rs/s/xfjchg/do_wavy_walls_really_use_fewer_bricks_i">评论</a></p>
查看缓存全文
缓存时间: 2026/07/04 16:43
# 波浪形墙真的更省砖吗?我用Blender做了测试
来源:https://blog.tymscar.com/posts/crinklecranklewalls/
一张蛇形墙的Blender渲染图
大约十五年前,我在Reddit上读到过一个很酷的东西,叫做**Crinkle Crankle墙**(https://en.wikipedia.org/wiki/Crinkle_crankle_wall),这是一种用砖砌成的、带有曲线的非标准墙体。
据我所知,这种墙最早出现在3500多年前的古埃及,但如今在英格兰最为“常见”。
时间快进到11年前,我自己也搬到了英国。我本已忘记了这些墙,但有一天坐公交车时,我透过窗户看到了其中一堵弯曲的墙。
这让我再次兴奋起来,于是我开始查阅更多资料,结果发现,虽然网上有一些相关信息,但远没有我想象的那么多。
## 各种理论
(https://blog.tymscar.com/posts/crinklecranklewalls/#the-theories)
维基百科上提到:“墙体的正弦曲线提供了稳定性,帮助抵抗侧向力”,但当我尝试访问其引用的网站时,它总是离线。
它们通常这样比较:“与相同厚度的直墙相比,这种墙无需扶壁就能更强固”。嗯,相同厚度?实际上并不是这样!
我是在看完所有能找到的相关视频后才发现这一点的(后来维基百科也补充了这个细节:典型的独立式砖墙厚度为“一砖宽”,但这指的是砖块纵向放置的宽度。这种墙由两块砖并排砌成)。
因此,许多资料声称,直墙使用两块砖的宽度(我平时走在墙边也确实常见到这种情况),而蛇形墙只使用一块砖的宽度,却更坚固(当然说法不一,有的说一样坚固,有的说侧向抗冲击能力高出3倍,比如某建筑Discord服务器上的随机评论)。
好吧,另一个问题是:虽然这些墙在宽度上少用了一半的砖,但肯定因为曲线而在长度上多用砖,对吧?而这当然很大程度上取决于构成墙体的正弦波的振幅和频率。
实际上,根本找不到任何清晰的信息。有些资料听起来像是圣杯,例如维基百科提到托马斯·杰斐逊——没错,就是那位——将蛇形墙融入了弗吉尼亚大学的建筑中,而且有一份他亲手写的大学文件,展示了他如何计算节省砖量,并将美学与实用性结合起来。你猜怎么着?当我点击来源时……什么也没找到。
我能找到的唯一测量数据是下面这张来自**gobrick**(https://www.gobrick.com/media/file/29a-brick-in-landscape-architecture---garden-walls.pdf)的图片。它对角度有帮助,但并非我需要的全部信息。
来自gobrick的蛇形墙测量图
于是我退而求其次,痴迷地查看了我能找到的所有图片,查阅了谷歌地图,并试图得出一套测量数据。
## 在Blender中构建墙体
(https://blog.tymscar.com/posts/crinklecranklewalls/#building-the-wall-in-blender)
我直接上手Blender,开始使用几何节点制作完全程序化的蛇形墙。花了几个小时,最终得到了这个美丽的节点网络:
几何节点网络
我附上了**Blender文件**(https://blog.tymscar.com/crinkle-crankle/serpentine.blend),你可以自行研究,但我想强调一些我不得不做的炫酷操作。
例如,我创建墙体的方法是:先生成一条曲线,将其塑造成正弦波(可控制频率和振幅),然后再在该曲线上的每个点生成一块砖。
一切顺利,但我想让墙不止一块砖的高度,这意味着我需要为每一层生成一条垂直线,线上有相应数量的点来放置砖块,然后对于每个点,再生成我的正弦砖块行。
问题?它们都始于并止于同一点,但我希望它们像现实中一样错位排列。我想让每相邻两行砖块错开半块砖的距离,但当我生成这些行时,已经丢失了它们的索引。
后来我发现,自上次使用Blender以来,几何节点中新增了“for each”节点,这让我可以在所有行上运行任意算法,同时获得新的索引——这正是我需要的。
For each 节点
另一件我觉得很酷的事情是,我也在几何节点中根据英国砖块尺寸创建了砖块,最后为了动态计算墙体总砖数,我只需将墙体总面数除以单块砖的总面数。
通过除以面数计算砖块数量
砖块的材质没什么特别之处,我只是用随机噪点和颜色反复调试,直到看起来足够随机、不易察觉重复图案。
毕竟这次的重点不是让它好看,对吧?好吧,我是在自欺欺人。
砖块着色器
## 它真的用更少的砖吗?
(https://blog.tymscar.com/posts/crinklecranklewalls/#does-it-use-fewer-bricks)
我对直墙做了同样的处理,只是跳过了正弦函数,看吧,我在Blender中有了完全参数化的墙体。
这说明了什么?我们需要实时验证:对于相同长度,这种墙是否使用更少的砖块?我已经在几何节点中计算出了长度,于是再用一点文字魔法,将结果显示在3D屏幕上,并让它渲染了一整夜:
您的浏览器不支持视频标签。看!在100米长度时,蛇形墙使用的砖块数量仅为直墙的55%,前提是按照我能找到的大多数实例的建造方式。这太惊人了!所以这个说法(省砖)得到了证实。
## 冲击测试
(https://blog.tymscar.com/posts/crinklecranklewalls/#the-impact-test)
那它抵抗侧向冲击的能力更强呢?我添加了一个斜坡,让一个150公斤的金属球滚下,撞向我们美丽的蛇形墙。
您的浏览器不支持视频标签。好吧,墙倒了……不太好。让我们看看双倍厚度的直墙表现如何:
您的浏览器不支持视频标签。嗯,也倒了,但球没有穿到另一边,所以我认为这个说法(更抗冲击)算是被推翻了。
但好吧,我听到你在说:为什么不试试更重的球呢?好的,我从Blender深处拿出了一个300公斤的球。开始:
您的浏览器不支持视频标签。说实话,它根本没有机会。球像穿过乐高积木一样穿过了墙。现在我们来看看300公斤球下的直墙:
您的浏览器不支持视频标签。可惜球还是穿过去了,但停得更快,所以我认为,基于周末Blender渲染(使用稀疏的测量数据但正确的重量和尺寸,包括砖块间的摩擦,但遗憾地排除了填充物,不过两边都排除了,比较是公平的),这个说法(更抗冲击)被推翻了。
不过我注意到,蛇形墙上受损的墙体范围更小。
掉落的砖更少,因此在材料上修复成本可能更低(尽管人工成本更高)。
此外,它看起来与**2013年伊斯顿镇(Easton)一处真实倒塌的Crinkle Crankle墙**(https://www.bbc.co.uk/news/uk-england-suffolk-24984978)几乎一模一样,所以我认为这算一个小小的胜利。
伊斯顿倒塌的Crinkle Crankle墙
*照片由Evelyn Simak和Ian Palfreyman拍摄,来自BBC新闻(https://www.bbc.co.uk/news/uk-england-suffolk-24984978)。*
## 结论
(https://blog.tymscar.com/posts/crinklecranklewalls/#conclusion)
总而言之,蛇形墙非常酷,它们并不是最能抵抗蛮力冲击的(但可能抵御风力,我很难测量),同时你应该尝试一下Blender中的几何节点。
下次见!
相似文章
BrickSolvr
BrickSolvr 是一款工具,可将任何3D模型转换为可搭建的积木模型,让用户能够将数字设计变为实体积木构造。
Coding a Brick Tower [video]
作者使用数学SDF在Shader Toy中创建了一个由砖块和砂浆组成的塔,实现了圆周和垂直重复以及随机化。
BrickAnything:基于几何条件的可构建砖块生成与结构感知标记化
BrickAnything是一种自回归框架,通过点云和结构感知树标记化,从多种3D表示中生成物理可构建的砖块结构,确保几何保真度和结构稳定性。
本地Qwen 3.6与前沿模型在编码基础任务上的对比:单文件HTML Canvas驾驶动画——结果与GIF
用户将本地量化的Qwen 3.6模型与前沿模型在单文件HTML Canvas驾驶动画任务上进行比较,发现本地27B Qwen量化模型在视差和运动方面比某些前沿输出表现更好。
基于截图的等距房间。Qwen3.6-35B
用户展示了 Qwen3.6-35B 根据截图重建等距房间场景的能力,突出了该模型在 3D 场景生成上的表现,家具细节和纹理处理均有改进。