描边/轮廓线总结

本文总结了描边技术的四种主要方法:基于V和N描边、过程式几何描边、后处理描边和轮廓边检测描边。每种方法都有其优缺点,例如基于V和N描边效果一般,过程式几何描边不适合规则模型,后处理描边对深度变化小的轮廓检测不足,而轮廓边检测描边则存在帧间跳跃性问题。同时,文章探讨了模板测试描边和如何结合使用这些技术来优化描边效果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


refer:
Unity模板描边
openGL模板测试
《UnityShader入门精要》



种类概述

描边的基础实现方式有以下这五大类:

  1. 基于V和N描边:通过V·N来得到轮廓信息,只需要一个Pass
    (缺点:效果一般)
  2. 过程式几何描边:先渲染放大的背面,再渲染正面,这样轮廓就出现在屏幕上了;需要两个Pass,适合表面平滑模型
    (缺点:不适合cube这种规则平整的模型)
  3. 后处理描边:通过后处理的卷积实现,详情看本人的另一篇文章
    (缺点:深度和法线变化小的轮廓无法检测:桌面上的纸张)
  4. 轮廓边检测描边:通过公式(后面会讲)判断模型上的哪些边是位于边缘的,直接获取构成轮廓的边,并直接用渲染这些边
    (缺点:由于是逐帧单独提取轮廓,因此帧之间会出现跳跃性)

*以上4种结合使用:

  • 34结合:先找到轮廓边,再将模型和轮廓边都渲染到RenderTex中,再在RenderTex中进行风格化处理




基于V和N描边

就是边缘光啦,详细去看本人的边缘光文章,很简单,这里不作介绍



过程式几何描边

代码实现在这篇文章中,后续在处理下面残留的几个问题后,我会把代码改进并搬过来(坏!那篇文章还没写完,后续补吧)


Learn OpenGL中的模板测试描边,个人认为可以包含在这部分中,原理是一致的,只是实现细节不一样:

模板测试描边:很简单,用模板测试渲染两次模型,第一次渲染时放大模型并用纯色Pass,第二次正常渲染(第五个入门精要里没有说)


(暂时还没法解决这些问题,后续学懂了再来修改)
存在的问题:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值