IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 游戏开发 -> Unity---Shader -> 正文阅读

[游戏开发]Unity---Shader

【千锋合集】史上最全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"
}

?

  游戏开发 最新文章
6、英飞凌-AURIX-TC3XX: PWM实验之使用 GT
泛型自动装箱
CubeMax添加Rtthread操作系统 组件STM32F10
python多线程编程:如何优雅地关闭线程
数据类型隐式转换导致的阻塞
WebAPi实现多文件上传,并附带参数
from origin ‘null‘ has been blocked by
UE4 蓝图调用C++函数(附带项目工程)
Unity学习笔记(一)结构体的简单理解与应用
【Memory As a Programming Concept in C a
上一篇文章      下一篇文章      查看所有文章
加:2021-12-03 13:21:36  更:2021-12-03 13:22:58 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/27 20:33:49-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码