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就可以了下面来说一下次级材质的设置首先这个次级材质仅用来实现轮廓所以应设为Unshaded意为不接受光照。将Cull Mode设为Front意为将表面剔除设置为剔除前表面而仅渲染背对摄像机的表面这样次级材质才不会遮挡住主材质。启用GrowGrow即渲染时沿模型面的法线方向偏移渲染以实现模型的视觉缩放效果。设置Grow Amount即Grow的偏移量。Albedo即轮廓的颜色。原理还是很好理解的但是使用中一定要注意Grow Amount值不宜过大否则会出现下面的炸裂情况小结这个实现方式要注意Grow Amount大小尤其是Low Poly模型因为面数较少更容易出现穿帮。