Shader smoothstep实现线条渐变色
效果展示
细节说明
线条为绿色红色两种拼接而成,非两种颜色叠加。可以理解成红色和绿色覆盖叠加,然后红色在中间的区域(绿色部分)被抠掉了,然后填充上绿色了。(下面有gif效果图证明)
具体实现
线条创建
基础线条载体就是LineRenderer组件。先在场景中创建一个空对象,然后挂在LineRenderer组件,保持默认设置就好。设置线条起点(-7,0,0)和终点(7,0,0),线条宽度0.5,以及线条颜色。
如图:
创建Shader(LineGradualColor)
- 创建Shader。首先创建一个UnlitShader模板,命名为LineGradualColor.shader。接着创建一个材质球,命名为LineGradualColor。
- 打开LineGradualColor.shader,修改第一行shader名称为Shader “ShadersHub/LineGradualColor”;
- 设置刚刚创建的材质球的shader为ShadersHub/LineGradualColor(即刚刚创建的shader);
Shader源码
Shader "ShadersHub/LaserBeam"
{
Properties
{
_MiddleColor("_MiddleColor color", Color) = (1,1,1,1)
_EdgeColor("Edge color", Color) =