unity, 颜色随高度渐变shader

一,颜色随世界空间高度渐变。

Shader "Custom/heightGradual_worldSpace" {
    Properties {
        _Color ("Color", Color) = (1,1,1,1)
        _MainTex ("Albedo (RGB)", 2D) = "white" {}
        _Glossiness ("Smoothness", Range(0,1)) = 0.5
        _Metallic ("Metallic", Range(0,1)) = 0.0
        _ButtonY ("ButtonY", Range(-10,10)) = 0.0
        _GradualScale("GradualScale",Range(0.1,10)) =1.0
    }
    SubShader {
        Tags { "RenderType"="Opaque" }
        LOD 200
        
        CGPROGRAM
        // Physically based Standard lighting model, and enable shadows on all light types
        #pragma surface surf Standard fullforwardshadows 

        // Use shader model 3.0 target, to get nicer looking lighting
        #pragma target 3.0

        sampler2D _MainTex;

        struct Input {
            float2 uv_MainTex;
            float3 worldPos;
        };

        half _Glossiness;
        half _Metallic;
        fixed4 _Color;
        float _ButtonY;
        float _GradualScale;
     
        void surf (Input IN, inout SurfaceOutputStandard o) {
            // Albedo comes from a texture tinted by color
            fixed4 c = tex2D (_MainTex, IN.uv_MainTex) * _Color;
            o.Albedo = c.rgb*(IN.worldPos.y*_GradualScale-_ButtonY);
            // Metallic and smoothness come from slider variables
            o.Metallic = _Metallic;
            o.Smoothness = _Glossiness;
            o.Alpha = c.a;
        }
        ENDCG
    } 
    FallBack "Diffuse"
}

二,颜色随模型空间高度渐变。

 

Shader "Custom/heightGradual_localSpace" {
    Properties {
        _Color ("Color", Color) = (1,1,1,1)
        _MainTex ("Albedo (RGB)", 2D) = "white" {}
        _Glossiness ("Smoothness", Range(0,1)) = 0.5
        _Metallic ("Metallic", Range(0,1)) = 0.0
        _ButtonY ("ButtonY", Range(-10,10)) = 0.0
        _GradualScale("GradualScale",Range(0.1,10)) =1.0
    }
    SubShader {
        Tags { "RenderType"="Opaque" "DisableBatching"="True" }//DisableBatching tag,ref: http://docs.unity3d.com/Manual/SL-SubShaderTags.html
        LOD 200
        
        CGPROGRAM
        // Physically based Standard lighting model, and enable shadows on all light types
        #pragma surface surf Standard fullforwardshadows vertex:vert

        // Use shader model 3.0 target, to get nicer looking lighting
        #pragma target 3.0

        sampler2D _MainTex;

        struct Input {
            float2 uv_MainTex;
            float3 my_vertPos;
        };

        half _Glossiness;
        half _Metallic;
        fixed4 _Color;
        float _ButtonY;
        float _GradualScale;
        void vert (inout appdata_full v, out Input o) {
        
            UNITY_INITIALIZE_OUTPUT(Input,o);//ref: http://forum.unity3d.com/threads/what-does-unity_initialize_output-do.186109/
            o.my_vertPos=v.vertex;
         }
        void surf (Input IN, inout SurfaceOutputStandard o) {
            // Albedo comes from a texture tinted by color
            fixed4 c = tex2D (_MainTex, IN.uv_MainTex) * _Color;
            o.Albedo = c.rgb*(IN.my_vertPos.y*_GradualScale-_ButtonY);
            // Metallic and smoothness come from slider variables
            o.Metallic = _Metallic;
            o.Smoothness = _Glossiness;
            o.Alpha = c.a;
        }
        ENDCG
    } 
    FallBack "Diffuse"
}

参考:http://www.cnblogs.com/wantnon/p/4689304.html

效果:

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/263029.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

IBM如何拥抱Spark

Spark是目前相当火热的开源计算框架,相对于Hadoop,Spark优势是高性能和易用性。Spark的高性能源于其采用内存储存数据,应用可以以内存的速度进行运算;Spark的易用性在于通用的API,用户可以编写复杂的并行计算程序&…

arcgis js 4.x 地图中加入图片

arcgis js 4.x版本,如何加入图片问题:如何将自定义图片放入到arcgis的图层当中?本人在网上查找的方法中,发现大部分方法只适用于3.x版本,只有一种引入自定义BaseDynamicLayer的方法可用,然而按照这种方式&a…

对你的的应用程序进行Debug

对你的的应用程序进行Debug 介绍如何使用Microsoft Visual Studio Code Name "Orcas" Beta 1对基于Silverlight的应用程序进行debugging .在Silverlight中debugging所使用的工具和技巧和其它的 Visual Studio projects是类似的. 想查看更多的关于debugging信息的, 查…

在.Net如何制作自定义的快捷方式(转)

我们用.Net安装程序生成的快捷方式是这样的,如下图:该图中目标所对应的文本框是灰色的,并且下方的查找目标和更改图标两个按钮也是不可用。这样我们根本就没有办法更改这个快捷方式。假如这时有个客户需要在程序启动的时候传入一些参数&#…

大数据——Kafka学习笔记

具体代码可以参考: https://github.com/Ostrich5yw/java4BigData/tree/master/java4Kafka

大数据——SparkCore学习笔记

Spark 一、Spark简介 Spark 是一种由 Scala 语言开发的快速、通用、可扩展的大数据分析引擎Spark Core 中提供了 Spark 最基础与最核心的功能Spark SQL 是 Spark 用来操作结构化数据的组件。通过 Spark SQL,用户可以使用 SQL 或者 Apache Hive 版本的 SQL 方言&am…

Kubernetes权威指南精彩段落

2019独角兽企业重金招聘Python工程师标准>>> 看到上述两段代码,你可能会有一种“开门复动竹, 疑是故人来”的感觉。的确,这段代码经笔者反复考证后认定:100%高仿kubernetes Controller Server中的代码。连传说中的谷歌大神也能cop…

大数据——SparkSQL学习笔记

Spark 一、SparkSQL简介 ​ Spark用来处理结构化数据的一个模块,它提供了两个编程抽象分别叫做DataFrame和DataSet,它们用于作为分布式SQL查询引擎(类似于Hive,为便于进行MapReduce操作而使用类SQL语句进行Spark操作&#xff09…

用SD卡下载uboot、linux内核和文件系统

1、 移植mtd-utils: a) 下载utd-utils 下载地址为ftp://ftp.infradead.org/pub/mtd-utils/b) 交叉编译mtd-utilsi 修改Makefile CROSSarm-linux-ii makeiii 查看下mtd-utils-1.0.0目录下是否生成了咱们所需要大工具 (flashcp,nandwrite......等)。有工具生成了&#xf…

css3中变形与动画(三)

transform可以实现矩阵变换,transition实现属性的平滑过渡,animation意思是动画,动漫,这个属性才和真正意义的一帧一帧的动画相关。本文就介绍animation属性。 animation属性通过一些关键帧中元素属性的改变来实现动画效果。当然也…

Scott Mitchell 的ASP.NET 2.0数据教程之四十四::DataList和Repeater数据分页

原文 | 下载本教程中的编码例子 | 下载本教程的PDF版 导言 分页和排序是显示数据时经常用到的功能。比如,在一个在线书店里搜索关于ASP.NET 的书的时候,可能结果会是成百上千,而每页只列出十条。而且结果可以根据title(书名&#…

通过ClassLoader调用外部jar包

通过ClassLoader调用外部jar包 我们大家都知道,每个运行中的线程都有一个成员contextClassLoader,用来在运行时动态地载入其它类。 系统默认的contextClassLoader是systemClassLoader,所以一般而言java程序在执行时可以使用JVM自带的类、$JAV…

Git回滚操作的总结

git结构和各操作之间的关系 1,撤销add操作: git reset 2,撤销commit操作: git reset –soft 保留源码,只回退commit信息到某个版本,不涉及index的回退,如果还需要提交,直接commit即…

Blender建模与游戏换装(转载文)

本文转载自https://my.oschina.net/huliqing/blog/880113?hmsrtoutiao.io 如果本文涉及侵权行为,请原作者联系博主邮箱,我将及时进行删除处理 博主邮箱:yibiandaoaliyun.com 前言 本文将详细讲解3D游戏中换装的原理及换装中的一些重点问题&a…

出路在哪里?出路在于思路!智者无敌

有人工作,有人继续上学,大家千万不要错过这篇文章,能看到这篇文章也是一种幸运,真的受益匪浅,对我有很大启迪,这篇文章将会改变我的一生,真的太好了,希望与有缘人分享,也…

xml02 XML编程(CRUD)增删查改

XML解析技术概述 Demo2.java import javax.xml.parsers.DocumentBuilder; import javax.xml.parsers.DocumentBuilderFactory; import org.w3c.dom.Document; public class Demo2 { public static void main(String args[])throws Exception { //1.创建工程 DocumentBuilderFac…

ASP.NET Web Game 架构设计1--服务器基本结构

ASP.NET Web Game 架构设计1--服务器基本结构 1. 基本结构图 2. 系统组成与角色 整个系统大体上分为三个部分:1.网页客户端。2.IIS Web服务器。3.数据库及逻辑服务器。其中Web服务器不处理任何逻辑,它的作用只有两点:1.承载用户。…

人人网 Windows Phone 7 应用开发起步

目前,人人网在国内高校学生中的普及率非常高。前段时间,大概是11月下旬的样子,人人网发布了Windows Phone 7客户端的公测版。我想,Windows Phone 7本地化的优劣,直接关系到其将来在国内的市场份额。而诸如人人等针对学…

XP Sp2下双机通过无线网卡实现Internet共享

两台均有无线网卡、装有XP SP2系统的计算机如何实现共享Internet上网呢,请参考一下步骤: 1、打开两台计算机的无线网络连接属性,并切换至“无线网络配置”页签。2、点中右下角的高级按钮设置,选中最下面的“仅计算机到计算机” 和…

C#面向对象设计模式第九讲:Composite 组合模式(结构型模式)

(根据MSDN Webcast相关课程整理) 由俄罗斯套娃讲起。娃娃里又包含另一个娃娃,最后那个不包含任何娃娃。 组合模式,采用树型结构来实现普遍存在的对象容器,将本原一对多的复杂的关系,转换成一对一的简单关系…