Blender寻找边缘算法方案

本次原理探索主要发现在Blender中三种寻找边缘的方案

分别是:环境光遮蔽(AO)、倒角、尖锐度

【环境光遮蔽(AO)】


AO即环境光遮蔽,是对光线反弹的模拟运算,输出的值需要使用反转进行调整,因此可以实现寻找边缘的需求

优点:

可单独区分向内向外边缘(在AO节点中勾上内向即可寻找边缘,不勾内向则是寻找凹陷夹角)

可控距离

缺点:

当出现距离过小的情况会将正片区域输出为大于零的值,因此距离过小的位置可以考虑使用其他算法运算

需要消耗较大性能

因输出结果是经过多次采样输出的,所以输出的值参与运算的结果影响不大,建议开启高采样进行烘培后转换为贴图后即可保证运算结果正常

【倒角】


使用倒角的算法输出的值为在该倒角参属下的法向,因此使用该值与物体的法向进行距离运算输出的值,需要注意的是法向和真正法线的区别,需要注意的是真实法线:不参与平滑着色的计算。

优点:

能更好的算出固定半径范围内的边缘

上图左侧添加一条卡边也能很好的算出顶部的边缘

缺点:

不能单独区分向外向内凹陷边缘

如果倒角不合理的情况可能中间部分也会出现非0值

输出值是多次采样的结果,所以边缘可能会出现明显分层

测试期间使用的运算节点、颜色渐变节点进行运算,对计算结果参与的运算影响并不大,所以也不能实现明显的边缘线

因输出结果是经过多次采样输出的,所以输出的值参与运算的结果影响不大,建议开启高采样进行烘培后转换为贴图后即可保证运算结果正常,同时配合大于运算可以得到明显的边缘

有性能消耗

【尖锐度】


使用尖锐度进行寻找边缘适合边缘有倒角或者边缘布线密度不统一的情况,但是尖锐度输出的值一班会比较大,所以需要配合颜色渐变节点进行调节,或使用相减再相乘再相加(将输出结果减0.5,把结果区分为正负两种情况,然后相乘此时正数会越来越大负数越来越小,再相加调整整体对比度)的方案进行调节,此方案不适用在完全直角或布线密度完全相等的情况,例如左侧物体底部和第二个物体没有倒角则不会识别出边缘。

其中正片叠底节点运算值输入小于零的值可取得凹陷角度

[The Cycles  Encyclopedia  X - Frederik Steinmetz & Gottfried Hofmann]


总结:

需要注意的是如果需要让输出值进行乘法运算实现磨损交集运算必须保证倒角输出部分的值大于零,因为正片叠底的结果是负负得负,负正得负,正负得负,正正得正。

高密度布线模型可使用锐度进行运算(该方案会存在不可到达的死角)

低密度模型可使用倒角或AO进行取值

可使用不同的UV贴图配合纹理坐标进行不同区域使用不同取边缘算法取值

0 条回复   |  直到 2022-11-30 | 1215 次浏览




附件列表
文件名称 文件大小 下载次数
untitled.zip 文件大小:0.288M 8
热门评论


登录后才可发表内容