【千锋合集】史上最全Unity3D全套教程|匠心之作_哔哩哔哩_bilibili

Unity Shader教程 序+Shader和材质的创建与认知 - 哔哩哔哩

Shader "Custom/NewSurfaceShader" {
    //ShaderLab语法中不需要加分号
    Properties {
    //属性名(面板显示名称,类型)=默认值
        _FloatValue("一个浮点数",float)=1
    }
    SubShader {
        pass
        {
        
        }
    }
    FallBack "Diffuse"
}

Shader "Custom/NewSurfaceShader" {
    //ShaderLab语法中不需要加分号,初值一定要给
    Properties {
    //属性名(面板显示名称,类型)=默认值
        _FloatValue("一个浮点数",float)=1
        //***
        _RangeValue("一个范围浮点数",Range(1,100))=50
        _VectorValue("一个四维数",Vector)=(1,1,1,1)
        //***
        _ColorValue("一个颜色值",Color)=(1,0,0,1)
        //***
        _Texture2D("一个二阶贴图",2D)="red"{}
        _TextureRect("一个非2阶贴图",Rect)=""{}
        _TextureCube("一个立方体贴图",Cube)=""{}

}
    SubShader {
        pass
        {
        
        }
    }
    FallBack "Diffuse"
}

//固定管线着色器【Shader1.0】__001
Shader "MyShader/FixedShader/Fixed002"
{
    Properties {
        _MainColor("颜色值",Color)=(1,0,0,1)
        _DiffuseColor("漫反射颜色值",Color)=(1,0,0,1)
        _AmbientColor("环境光颜色值",Color)=(1,1,1,1)
        _SpecularColor("镜面反射颜色",Color)=(1,1,1,1)
        _Shininess("光泽度",Range(0.02,1))=0.5
        _EmissionColor("自发光颜色",Color)=(1,0,0,1)
    }
    SubShader {
        Pass
        {
            //开启顶点光照
            Lighting On
            //开启镜面反射开关
            SeparateSpecular On
            Material{
            //固定漫反射
            //Diffuse(0,1,0,0)
            //可变漫反射颜色[偏暗]
            Diffuse[_DiffuseColor]
            //可变环境光颜色
            Ambient[_AmbientColor]
            //可变镜面反射光颜色
            Specular[_SpecularColor]
            //光泽度设置
            Shininess[_Shininess]
            //自发光
            Emission[_EmissionColor]
            }
        }
    }
    FallBack "Diffuse"
}

//固定管线着色器【Shader1.0】__001
Shader "MyShader/FixedShader/Fixed003"
{
    Properties {
        _DiffuseFrontColor("正面漫反射颜色值",Color)=(1,0,0,1)
        _DiffuseBackColor("反面漫反射颜色值",Color)=(1,0,0,1)
    }
    SubShader {
        Pass
        {
            //开启顶点光照
            Lighting On
            //剔除背面
            Cull Back
            Material{
                Diffuse[_DiffuseFrontColor]
            }
        }
        Pass{
            //剔除正面,渲染北美
            Cull Front
            //开启顶点光照
            Lighting On
            Material{
                Diffuse[_DiffuseBackColor]
            }
        }
    }
    FallBack "Diffuse"
}

p149-3:18

//固定管线着色器【Shader1.0】__001
Shader "MyShader/FixedShader/Fixed004"
{
    Properties {
        
    }
    SubShader {
        Pass
        {
            //进行深度检测,当前像素的深度大于缓存里的深度
            //说明当前像素被挡在缓存像素后面
            //就是被挡住了,但依旧渲染颜色
            ZTest Greater
            //关闭深度缓存
            ZWrite Off
            //被挡住渲染该颜色
            Color(1,0,0,1)
        }
        Pass{
            //进行深度检测
            //被挡住渲染的颜色,当前像素的深度小于或等于缓存里的深度
            //说明当前像素不在缓存像素的后面
            //通俗来讲就是没被挡住
            ZTest LEqual

Color(0,0,1,1)
        }
    }
    FallBack "Diffuse"
}

//固定管线着色器【Shader1.0】__001
Shader "MyShader/FixedShader/Fixed005"
{
    Properties {
        _DiffuseColor("漫反射颜色值",Color)=(1,0,0,1)
    }
    SubShader {
        Pass
        {
            //开启顶点光照
            Lighting On
            //开启半透明混合
            Blend SrcAlpha OneMinusSrcAlpha
            //各种混合
            //Blend One One
            
            Material{
                Diffuse[_DiffuseColor]
            }
        }
        
    }
    FallBack "Diffuse"
}

链接:http://pan.baidu.com/s/1qYThKuS 密码:ripn

//固定管线着色器【Shader1.0】__001
Shader "MyShader/FixedShader/Fixed008"
{
    Properties {
        _MainTex("纹理图片",2D)=""{}
        _DiffuseColor("漫反射颜色值",Color)=(1,0,0,1)
    }
    SubShader {
        Pass
        {
            Lighting On
            Material{
                Diffuse[_DiffuseColor]
            }
            //设置纹理
            SetTexture[_MainTex]
            {
                //融合纹理和其他
                //ComBine:融合命令
                Combine texture+Primary
            }
        }
        
    }
    FallBack "Diffuse"
}

//固定管线着色器【Shader1.0】__001
Shader "MyShader/FixedShader/Fixed008"
{
    Properties {
        _MainTex("纹理图片",2D)=""{}
        _SeconTex("第二个纹理",2D)=""{}
        _DiffuseColor("漫反射颜色值",Color)=(1,0,0,1)
        _MainColor("颜色值",Color)=(1,0,0,1)
    }
    SubShader {
        Pass
        {
            Lighting On
            Material{
            Diffuse[_DiffuseColor]
            }
            //设置纹理
            /*SetTexture[_MainTex]
            {
                //融合纹理和其他
                //ComBine:融合命令
                Combine texture+Primary
            }*/
            SetTexture[_MainTex]
            {
                ConstantColor[_MainColor]
                //纹理的颜色与上面的固定颜色做混合
                Combine texture*Constant Double
            }
            SetTexture[_SeconTex]
            {
                Combine texture*Previous
            }

}
        
    }
    //FallBack "Diffuse"
}

//固定管线着色器【Shader1.0】__001
Shader "MyShader/FixedShader/Fixed009"
{
    Properties {
        _MainTex("纹理图片",2D)=""{}
        _SeconTex("第二个纹理",2D)=""{}
        _DiffuseColor("漫反射颜色值",Color)=(1,0,0,1)
        _MainColor("颜色值",Color)=(1,0,0,1)
    }
    SubShader {
        Pass
        {
            //设置纹理
            /*SetTexture[_MainTex]
            {
                //融合纹理和其他
                //ComBine:融合命令
                Combine texture+Primary
            }*/
            SetTexture[_MainTex]
            {
                ConstantColor[_MainColor]
                //纹理的颜色与上面的固定颜色做混合
                Combine texture
            }
            SetTexture[_SeconTex]
            {
                ConstantColor[_MainColor]
                //      src1     src2          src3
                Combine texture lerp(Constant) Previous
            }

}
        
    }
    //FallBack "Diffuse"
}

重点

//固定管线着色器【Shader1.0】__001
Shader "MyShader/FixedShader/Fixed009"
{
    Properties {
        _MainTex("纹理图片",2D)=""{}
        _SeconTex("第二个纹理",2D)=""{}
        _DiffuseColor("漫反射颜色值",Color)=(1,0,0,1)
        _MainColor("颜色值",Color)=(1,0,0,1)
        _LerpValue("插值比例",Range(0,1))=0
    }
    SubShader {
        Pass
        {
            //设置纹理
            /*SetTexture[_MainTex]
            {
                //融合纹理和其他
                //ComBine:融合命令
                Combine texture+Primary
            }*/
            SetTexture[_MainTex]
            {
                ConstantColor[_MainColor]
                //纹理的颜色与上面的固定颜色做混合
                Combine texture
            }
            SetTexture[_SeconTex]
            {
                //ConstantColor[_MainColor]
                ConstantColor(0,0,0,[_LerpValue])
                //      src1     src2          src3
                Combine texture lerp(Constant) Previous
            }

}
        
    }
    //FallBack "Diffuse"
}

C#代码,重点 发廊洗剪吹效果

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class SetShaderProperties : MonoBehaviour {
    private MeshRenderer meshRenderer;
    private void Awake()
    {
        meshRenderer = GetComponent<MeshRenderer>();
    }
    private void Update()
    {
        //获取此时材质中Shader中属性的值
        float lerpValue=meshRenderer.material.GetFloat("_LerpValue");
        lerpValue += Time.deltaTime/5;
        //设置材质中Shader属性的值
        meshRenderer.material.SetFloat("_LerpValue", lerpValue);
        meshRenderer.material.SetTextureOffset("_SecondTex",new Vector2(Time.time,0));
    }
}

溶解效果制作

//固定管线着色器【Shader1.0】__001
Shader "MyShader/FixedShader/Fixed010"
{
    Properties {
        _MainTex("纹理图片",2D)=""{}
        _TestValue("透明度测试值",Range(0,1))=0
    }
    SubShader {        
        Pass
        {
            AlphaTest Greater [_TestValue]
            SetTexture[_MainTex]
            {
                ConstantColor[_MainColor]
                //纹理的颜色与上面的固定颜色做混合
                Combine texture
            }
            SetTexture[_SecondTex]
            {
                //ConstantColor[_MainColor]
                ConstantColor(0,0,0,[_LerpValue])
                //      src1     src2          src3
                Combine texture lerp(Constant) Previous
            }

}
        
    }
    //FallBack "Diffuse"
}

Unity---Shader相关推荐

  1. Unity Shader 阴影

    最近在看Unity shader开发实战详解,刚开始看阴影部分,稍微有了点思路.在这里写点笔记,算是小结吧. .阴影实现方法 一种是通过模拟光照的原理,用向量的方法 找到被光线照射的点 映射到平面的位 ...

  2. Unity Shader入门精要学习笔记 - 第6章 开始 Unity 中的基础光照

    转自冯乐乐的<Unity Shader入门精要> 通常来讲,我们要模拟真实的光照环境来生成一张图像,需要考虑3种物理现象. 首先,光线从光源中被发射出来. 然后,光线和场景中的一些物体相交 ...

  3. Unity shader学习之屏幕后期处理效果之高斯模糊

    高斯模糊,见 百度百科. 也使用卷积来实现,每个卷积元素的公式为: 其中б是标准方差,一般取值为1. x和y分别对应当前位置到卷积中心的整数距离. 由于需要对高斯核中的权重进行归一化,即使所有权重相加 ...

  4. Unity Shader着色器优化

    对游戏开发者而言,着色器长久以来就是游戏开发中的重要部分,在Unity中编写并实现着色器的过程直观且高效,优秀的着色器还可以创造非常精美的游戏画面,同时保证极高的性能.今天将由Unity的技术工程师张 ...

  5. vs unity shader插件_一些Shader资料

    [Unity Shader] 常用的数值类型和语义 unity shader编辑器语法高亮插件 Unity Shader-法线贴图(Normal)及其原理 Unity 提供的CG/HLSL语义 (se ...

  6. Unity Shader 序列帧动画

    shader中的序列帧动画属于纹理动画中的一种,主要原理是将给定的纹理进行等分,再根据时间的变化循环播放等分中的一部分. Unity Shader 内置时间变量 名称 类型 描述 _Time floa ...

  7. qnetworkreply 获取状态_谈谈Unity Shader中的采样器状态和(Texture Filtering)纹理滤波方式

    参考文章: 使用采样器状态 - Unity 手册​docs.unity3d.comhttps://blog.csdn.net/chenjinxian_3D/article/details/518169 ...

  8. Unity Shader 之 透明效果

    本文引用 Unity Shader入门精要 开启透明混合后,一个物体被渲染到屏幕上时,每个片元除了颜色值和深度值外,还有--透明度.透明度为1,则完全不透明,透明度为0,则完全不会显示. 在Unity ...

  9. unity shader入门精要_Unity Shader 入门(一):渲染流水线

    一.参考与说明(需要写在开始东西): 1.1 Unity Shader 入门紧要学习 candycat1992/Unity_Shaders_Book​github.com 1.2 还有一些图形学的历史 ...

  10. 【Unity Shader】(六) ------ 复杂的光照(上)

    笔者使用的是 Unity 2018.2.0f2 + VS2017,建议读者使用与 Unity 2018 相近的版本,避免一些因为版本不一致而出现的问题.              [Unity Sha ...

最新文章

  1. vmrun 批量创建vmware虚拟机
  2. object+java+equals_java-为什么SparseIntArray.equals(Object)不起作用?
  3. Python 一种接触就容易爱上的语言一
  4. 批量生成100万张小程序码?了解一下。
  5. Redis 5.0新功能介绍
  6. MySQL-库的操作
  7. 手机技巧:手机用一段时间就发烫,如何解决?
  8. springMVC3学习(十一)--文件上传CommonsMultipartFile
  9. python向空列表添加列表_Python列表核心知识点汇总
  10. 多媒体计算机是多媒体教室的核心部件,浅析多媒体教室的设备配置
  11. 程序员如何在春节假期避免加班?
  12. 字节跳动面试真题:安装kafka集群
  13. 红包封面发货平台卡密系统 全新红包封面平台可搭建分站独立后台的源码
  14. Mybatis的pooled连接池工作原理
  15. 【Typecho插件】SimpleAdmin后台美化插件
  16. 用excel、matlab、python绘制正态分布图
  17. 谷歌浏览器突然不能翻译了怎么解决?
  18. SAP 财务-统驭科目
  19. PHP 实现防抖功能(防重复请求)
  20. graphpad prism怎么添加图例_如何用Graphpad prism添加多个图例

热门文章

  1. 【数据结构】顺序表的创建、插入、删除、合并
  2. 学习笔记:获取疫情数据,并绘制可视化地图
  3. 【自动控制原理】根轨迹法之绘制根轨迹
  4. 大模型为什么是深度学习的未来?
  5. python时间复杂度和空间复杂度是指,时间复杂度与空间复杂度
  6. 【MPPT】基于MPPT的风力发电系统simulink仿真
  7. C语言实现顺序栈的基本操作(初始化、判断空、入栈、出栈、获取栈顶元素)
  8. 逻辑回归(logistic regression)原理理解+matlab实现
  9. linux下搜索文件和文件夹
  10. 从顶会论文看2022年推荐系统序列建模的趋势