Unity使用着色器实现颜色渐变

这篇具有很好参考价值的文章主要介绍了Unity使用着色器实现颜色渐变。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

效果演示:

Unity使用着色器实现颜色渐变
当前效果需要自己手动写一个shader,效果与unity版本无关,模型没有特别要求

在unity创建一个SurfaceShader类型的shader,命名为CotrolGradient_3Color,双击进入vs进行编辑,shader内容如下:文章来源地址https://www.toymoban.com/news/detail-506400.html

Shader "Custom/CotrolGradient_3Color"
{
	Properties
	{
		[PerRendererData] _MainTex("Sprite Texture", 2D) = "white" {}
		_ColorTop("Top Color", Color) = (1, 1, 1, 1)
		_ColorMid("Mid Color", Color) = (1, 1, 1, 1)
		_ColorBot("Bot Color", Color) = (1, 1, 1, 1)
		_Middle("Middle", Range(0.001, 0.999)) = 1
		_test("Test", Range(0.001, 0.999)) = 1
	}
		SubShader
		{
		Tags {"Queue" = "Background"  "IgnoreProjector" = "True"}
		LOD 100
		ZWrite On
		Pass
		{
		CGPROGRAM
#pragma vertex vert  
#pragma fragment frag
#include "UnityCG.cginc"
		fixed4 _ColorTop;
	fixed4 _ColorMid;
	fixed4 _ColorBot;
	float  _Middle;
	float _test;
	struct v2f
	{
		float4 pos : SV_POSITION;
		float4 texcoord : TEXCOORD0;
	};
	v2f vert(appdata_full v)
	{
		v2f o;
		if (v.vertex.y > _test)
		{
			v.vertex.y = _test;
	}
		o.pos = UnityObjectToClipPos(v.vertex);
	o.texcoord = v.texcoord;
	return o;
	}
		fixed4 frag(v2f i) : COLOR
	{
		fixed4 c = lerp(_ColorBot, _ColorMid, i.texcoord.y / _Middle) * step(i.texcoord.y, _Middle);
	c += lerp(_ColorMid, _ColorTop, (i.texcoord.y - _Middle) / (1 - _Middle)) * step(_Middle, i.texcoord.y);
	c.a = 1;
	return c;
	}
		ENDCG
		}
		}
}

到了这里,关于Unity使用着色器实现颜色渐变的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【Kotlin】使用 ProgressBar 的样式属性来实现圆形进度条,进度使用gradient渐变效果

    Android ProgressBar 默认提供了水平和圆形两种进度条,水平进度条通过 ProgressBar 控件实现,而圆形进度条通过 ProgressDialog 控件实现。如果想要将 ProgressBar 控件设置为圆形进度条,可以使用 ProgressBar 的样式属性来实现。 首先,在布局文件中添加一个 ProgressBar 控件,并设置其样

    2024年02月10日
    浏览(34)
  • Cocos2d-x实现文字颜色渐变

    更改CCLabel文件的updateColor()函数中的顶点颜色即可,代码如下: 效果图:  

    2024年02月12日
    浏览(32)
  • 【Android App】三维投影OpenGL ES的讲解及着色器实现(附源码和演示 超详细)

    需要源码请点赞关注收藏后评论区留言私信~~~ 虽然OpenGL的三维制图功能非常强大,但是它主要为计算机设计的,对于嵌入式设备和移动端设备来说显得比较臃肿,所以业界又设计了专供嵌入式设备的OpenGL ES 它相当于OpenGL的精简版,因为嵌入式设备追求性价比,所以能不做的

    2024年02月04日
    浏览(34)
  • 文字效果 用背景渐变实现 波浪背景文字

    1. 实现波浪背景 原理:透明到纯色的径向渐变,然后复制该渐变背景,最后加上背景水平方向移动的无限循环动画 2. 文字波浪背景 将该渐变应用在文本标签上,并添加一下css属性 最后,在做一些适当调整,比如弧度衔接处 动画时间等 。搞定 3. 总结 波浪的本质上是一个曲

    2024年02月08日
    浏览(42)
  • CSS3 实现边框圆角渐变色&&渐变文字效果

      background-clip: text; 是CSS中的一个属性,用于指定背景图片或颜色的裁剪方式,裁剪的区域是文本的轮廓。具体来说,就是将背景图片或颜色限制在文本的轮廓内,而不是整个元素的范围内。这个属性通常用于创建一些特殊的文本效果,比如文字渐变、文字填充等。  参考:

    2024年02月16日
    浏览(31)
  • CSS中如何实现元素的渐变背景(Gradient Background)效果?

    前端入门之旅:探索Web开发的奇妙世界 欢迎来到前端入门之旅!感兴趣的可以订阅本专栏哦!这个专栏是为那些对Web开发感兴趣、刚刚踏入前端领域的朋友们量身打造的。无论你是完全的新手还是有一些基础的开发者,这里都将为你提供一个系统而又亲切的学习平台。在这个

    2024年02月10日
    浏览(37)
  • Android背景Shape颜色渐变—线性渐变

    Android背景颜色渐变可以通过在res/drawable里定义一个xml文件(xml文件名称可根据个人定义): 一、 color_gradient. xml代码: 1、 android:angle 渐变方向角度 2、 android:startColor 开始颜色 3、 android:centerColor 中间颜色 4、 android:endColor 结束颜色 5、 android:type 渐变类型,线性linear 二、在你

    2024年02月09日
    浏览(56)
  • iOS开发之颜色渐变

    CAGradientLayer 在其 背景色上 绘制颜色渐变的图层,填充该图层的形状(包括圆角)。 使用渐变层可以创建包含任意数量颜色的颜色渐变。默认情况下,颜色均匀地分布在整个图层中,但您可以通过渐变指定控制颜色位置的位置。 下例,显示了如何创建包含四种颜色的渐变层,这

    2024年01月17日
    浏览(33)
  • 【CSS 23】颜色 RGBA HSLA 不透明度opacity 线性渐变 径向渐变 透明度渐变 重复渐变

    颜色 CSS 支持 140 多种颜色名称,以及十六进制值、RGB 值、RGBA 值、HSL 值、HSLA 值和不透明度 RGBA颜色 RGBA 颜色值是 RGB 颜色值的扩展,带有 alpha 通道 - 该通道规定颜色的不透明度 RGBA 颜色值是这样规定的:rgba(red, green, blue, alpha) alpha 参数是介于 0.0(完全透明)和 1.0(完全不

    2024年02月13日
    浏览(38)
  • css颜色渐变到透明怎么写

    在 CSS 中,可以使用 background-image 属性来实现颜色渐变到透明的效果。 具体方法是使用 linear-gradient 函数,该函数接受两个或多个颜色作为参数,并在这些颜色之间进行线性渐变。 例如,要从蓝色渐变到透明,可以使用以下代码: 这会在 .my-element 元素的背景上创建一个从蓝

    2024年02月12日
    浏览(27)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包