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 LEqualColor(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相关推荐
- Unity Shader 阴影
最近在看Unity shader开发实战详解,刚开始看阴影部分,稍微有了点思路.在这里写点笔记,算是小结吧. .阴影实现方法 一种是通过模拟光照的原理,用向量的方法 找到被光线照射的点 映射到平面的位 ...
- Unity Shader入门精要学习笔记 - 第6章 开始 Unity 中的基础光照
转自冯乐乐的<Unity Shader入门精要> 通常来讲,我们要模拟真实的光照环境来生成一张图像,需要考虑3种物理现象. 首先,光线从光源中被发射出来. 然后,光线和场景中的一些物体相交 ...
- Unity shader学习之屏幕后期处理效果之高斯模糊
高斯模糊,见 百度百科. 也使用卷积来实现,每个卷积元素的公式为: 其中б是标准方差,一般取值为1. x和y分别对应当前位置到卷积中心的整数距离. 由于需要对高斯核中的权重进行归一化,即使所有权重相加 ...
- Unity Shader着色器优化
对游戏开发者而言,着色器长久以来就是游戏开发中的重要部分,在Unity中编写并实现着色器的过程直观且高效,优秀的着色器还可以创造非常精美的游戏画面,同时保证极高的性能.今天将由Unity的技术工程师张 ...
- vs unity shader插件_一些Shader资料
[Unity Shader] 常用的数值类型和语义 unity shader编辑器语法高亮插件 Unity Shader-法线贴图(Normal)及其原理 Unity 提供的CG/HLSL语义 (se ...
- Unity Shader 序列帧动画
shader中的序列帧动画属于纹理动画中的一种,主要原理是将给定的纹理进行等分,再根据时间的变化循环播放等分中的一部分. Unity Shader 内置时间变量 名称 类型 描述 _Time floa ...
- qnetworkreply 获取状态_谈谈Unity Shader中的采样器状态和(Texture Filtering)纹理滤波方式
参考文章: 使用采样器状态 - Unity 手册docs.unity3d.comhttps://blog.csdn.net/chenjinxian_3D/article/details/518169 ...
- Unity Shader 之 透明效果
本文引用 Unity Shader入门精要 开启透明混合后,一个物体被渲染到屏幕上时,每个片元除了颜色值和深度值外,还有--透明度.透明度为1,则完全不透明,透明度为0,则完全不会显示. 在Unity ...
- unity shader入门精要_Unity Shader 入门(一):渲染流水线
一.参考与说明(需要写在开始东西): 1.1 Unity Shader 入门紧要学习 candycat1992/Unity_Shaders_Bookgithub.com 1.2 还有一些图形学的历史 ...
- 【Unity Shader】(六) ------ 复杂的光照(上)
笔者使用的是 Unity 2018.2.0f2 + VS2017,建议读者使用与 Unity 2018 相近的版本,避免一些因为版本不一致而出现的问题. [Unity Sha ...
最新文章
- vmrun 批量创建vmware虚拟机
- object+java+equals_java-为什么SparseIntArray.equals(Object)不起作用?
- Python 一种接触就容易爱上的语言一
- 批量生成100万张小程序码?了解一下。
- Redis 5.0新功能介绍
- MySQL-库的操作
- 手机技巧:手机用一段时间就发烫,如何解决?
- springMVC3学习(十一)--文件上传CommonsMultipartFile
- python向空列表添加列表_Python列表核心知识点汇总
- 多媒体计算机是多媒体教室的核心部件,浅析多媒体教室的设备配置
- 程序员如何在春节假期避免加班?
- 字节跳动面试真题:安装kafka集群
- 红包封面发货平台卡密系统 全新红包封面平台可搭建分站独立后台的源码
- Mybatis的pooled连接池工作原理
- 【Typecho插件】SimpleAdmin后台美化插件
- 用excel、matlab、python绘制正态分布图
- 谷歌浏览器突然不能翻译了怎么解决?
- SAP 财务-统驭科目
- PHP 实现防抖功能(防重复请求)
- graphpad prism怎么添加图例_如何用Graphpad prism添加多个图例