遮挡(Occlusion)¶
在 3D 中绘制的线条画有一个 2D 没有的问题:那些本应藏在其他几何体后面的笔画。OVB 在导出时将它们剔除,所以导出的线条只包含摄像机实际能看到的部分 —— 这是 Blender 原生 SVG 导出器做不到的事。
遮挡是 Grease Pencil 的功能。Pencil+ 自行遮挡(见下文)。
工作原理¶
OVB 从摄像机向每个笔画点投射射线。若某个点与摄像机之间被实体网格挡住,该点就会被剔除。
一条规则:每个实体网格都会遮挡线条。 若要豁免某个网格 —— 让它永不遮挡 —— 关闭它的渲染图标(Outliner 中的摄像机图标)。被禁用渲染的网格不会挡住任何东西;射线径直穿过它,到达后面的任何物体。这就是全部机制:“这个不能挡住我的线条”是 Blender 已有的手势,而不是从合成里借来的第二套词汇。
哪些被射线投射,哪些原样输出¶
OVB 按(对象,图层)自动决定这一点。
Grease Pencil 的 Line Art 修改器会声明一个目标图层。Line Art 写入的图层,其隐藏线已经由生成器去除,所以 OVB 将它们原样导出 —— 再用射线投射检验它们只会在掠射角处啃掉链条的末端。其他每个图层都会经过射线投射。
唯一的例外是你手绘过、同时也是 Line Art 目标的图层。对象求值之后,OVB 无法把手绘笔画与生成的笔画分开,所以这种混合图层归入射线投射一侧。手绘内容透过墙壁显示出来是必须避免的明显错误;而重新检验的 Line Art 只会在链条末端损失一点点。
| 图层内容 | 处理方式 |
|---|---|
| 由 Line Art 写入(目标图层,无手绘笔画) | 原样导出(Line Art 已去除隐藏线) |
| 手绘 / 普通美术内容 | 对实体网格进行射线投射 |
| 艺术家也在其中绘制过的 Line Art 目标 | 射线投射(安全的一侧) |
按 pass 退出
Grease Pencil pass 在其 Content 面板中有一个 Export as-is (never hide) 复选框。勾选后该 pass 完全跳过遮挡 —— 美术内容忽略场景。适用于无论几何体如何都应显示在最上层的东西:速度线、x-ray 注释、标注。见 Structure 与 Subartlayers。
提交前先预览¶
Show in Viewport 会在视口中绘制一个精确分类的 WYSIWYG 叠加层:保留的笔画与剔除的笔画。由于叠加层和导出共用同一条代码路径,预览永远不会与帧范围将要产生的结果不一致。在导出整个序列之前,先在一帧上确认剔除是正确的。
调整射线投射¶
有两个控件可防止掠射的表面遮挡贴在其上的线条(自遮挡 /“acne”):
- Surface Bias —— 将遮挡射线略微朝摄像机方向缩短,使贴在表面上的笔画不会被那个表面挡住。它与尺度无关(相对于摄像机距离),并且在掠射角下的余量比正对时更宽松,所以真正隐藏的线条仍然保持隐藏。
- Ignore Thinner Than(薄片测试)—— 在表面背离摄像机的地方,射线可能会擦过一片纸一样薄的实体,而任何 bias 都无法把它与真正的遮挡区分开。此控件测量射线实际穿过多少实体:比设定厚度更薄的障碍物会被穿过,而穿过厚实体的射线仍保持被遮挡。
0表示关闭。 - Gap Tolerance —— 一条笔画在被切成两段之前,最多可以连续跨越多少个被剔除的点。调高它可让笔画跨过发丝般的遮挡物保持完整;调低它则严格切断。
它们位于 Settings 卡片中,与 Stroke Width 和 Pressure → Variable Width 在一起。除非你看到线条沿着它们所属的表面掉落,否则请保持射线投射控件的默认值。
Pencil+¶
在 Pencil+ 模式下,线条生成和遮挡都由 Pencil+ 自身通过它的 Line 节点处理 —— OVB 导出 Pencil+ 产生的结果。请在 Pencil+ 设置中配置剔除,而不是在 OVB 面板中。上述 OVB 遮挡控件仅适用于 Grease Pencil。

