当前位置: 首页 > news >正文

Godot Shader特效:3D描边(outline)效果 原理篇

本教程参考了油管上Dave the Dev的教程How to outline a 3D object in Godot _ Game Dev Tutorial 4,感谢大神们无私的奉献!

先看效果图


注:这次实现全部使用Godot自带的材质和Shader

原理

Godot的材质系统为每一个材质提供了一个**Next Pass属性,该属性的作用就是给材质提供一个次级材质,通过Next Pass可以将多个材质以的形式串联起来。在这个例子中,我们会为主材质添加一个Next Pass材质用于专门渲染Outline**。这意味着模型会被渲染两次:第一次按照主材质渲染第二次按照次级材质渲染。

主材质不需要什么特别设置,仅仅是在Next Pass处再新建一个SpatialMaterial就可以了

下面来说一下次级材质的设置:

  1. 首先这个次级材质仅用来实现轮廓,所以应设为Unshaded意为不接受光照。
  2. Cull Mode设为Front,意为将表面剔除设置为剔除前表面,而仅渲染背对摄像机的表面,这样次级材质才不会遮挡住主材质。
  3. 启用GrowGrow即渲染时沿模型面的法线方向偏移渲染,以实现模型的视觉缩放效果。
  4. 设置Grow AmountGrow的偏移量。
  5. Albedo即轮廓的颜色。

原理还是很好理解的,但是使用中一定要注意Grow Amount值不宜过大,否则会出现下面的炸裂情况:

小结
这个实现方式要注意Grow Amount大小,尤其是Low Poly模型,因为面数较少,更容易出现穿帮。

http://www.jsqmd.com/news/1282212/

相关文章:

  • 计算机毕业设计之《计算机网络》课程微信小程序
  • TTS-Backup终极指南:守护你的桌游模拟器珍贵数据
  • vue 复习02
  • 速卖通商品详情接口实战指南:官方合规调用与全维度数据解析
  • Python简单介绍及环境搭建
  • 武校收费标准查询方式,石家庄圣龙武术学校咨询电话 - 圣龙武术朱老师
  • 游戏后端分布式学习——消息队列在游戏的用法
  • 伪类选择器
  • Linux蓝牙管理神器Blueman:3分钟搞定无线设备连接
  • 常用的激活函数总结
  • 灌装机品牌哪家好?2026年市场深度评测与选购指南 - 品牌推荐
  • Tg分级差异带来板材成本波动,采购议价与预算管控策略
  • 计算机毕业设计之《计算机网络》在线学习平台设计与实现
  • Linux用户、群组与权限
  • 为什么要使用元组tuple?
  • 双拐撑起的从容 - 东方既白~(-^
  • 云计算概念及发展历程
  • 访问控制符
  • Adobe破解工具终极指南:5分钟免费解锁Adobe全家桶的完整方法
  • 中山夏令营:军博营地可信 - 18002239949
  • 淘宝新店上架几个产品最好?淘宝起店上架策略+引流工具实操
  • MRP、APS与MES:从计划到执行的制造信息流闭环
  • 支付超时自动关单 + 库存回滚 Java 实现方案
  • incude指令和include行为
  • OpenRocket终极指南:免费开源火箭仿真软件从零到精通
  • 蒸发浓缩与结晶厂家2026年实力榜:五大品牌深度评测与选型指南 - 品牌推荐
  • linux 判断服务是否在线 ss命令
  • BCI Competition IV 2a数据集实战指南:从数据加载到运动想象分类的完整流程
  • [数据结构]一般顺序表部分总结
  • eclipse使用alt+/很卡的解决方法