Unity Shader(固定管线着色器)
固定管线着色器(SubShader中必须写Pass通道)
Shader指令顺序图
Rander Setup
Properties
Properties |
浮点数(Float) | _FloatValue("一个浮点数",float) = 0.4 |
范围浮点数(Range) | _RangeValue("一个范围浮点数",Range(1,100)) = 50 | |
四维数(Vector) | _VectorValue("一个四维数",Vector) = (1,1,1,1) | |
颜色(Color) | _ColorValue("一个颜色值",Color) = (1,0,0,1) | |
2阶贴图(2D) | _Texture2D("一个2阶贴图",2D) = ""{} | |
非2阶贴图(Rect) | _TextureRect("一个非2阶贴图",Rect) = ""{} | |
立方体贴图(Cube) | _TextureCube("一个立方体贴图",Cube) = ""{} |
Color
固定渲染一个颜色():Color(0,0,0.6,1) |
固定渲染一个可变颜色[]:Color[_MainColor] |
Material
前提 | 需要开启顶点光照 → Lighting On/Off(开启/关闭顶点光照) | |
Material |
漫反射颜色(Diffuse) | |
环境光反射颜色(Ambient) | ||
前提:需要开启镜面反射(SeparateSpecular On | Off) 光泽度(Shininess) |
||
高光颜色(Specular) | ||
自发光颜色(Emission) |
设置多边形剔除
Cull Back/Front/Off
深度测试(判断该模型的深度,满足时渲染模型)
前提:需要写入深度缓冲
ZWrite On | Off | On(开启的话,如果满足判断就只会渲染模型框架不会渲染颜色) |
Off(关闭的话,如果满足判断即可渲染模型也可渲染颜色) |
ZTest
ZTest | Less(小于)、LEqual(小于等于) |
Greater(大于)、GLqual(大于等于) | |
Equal(等于)、NotEqual(不等于) | |
Always(渲染所有像素。这在功能上等同于 AlphaTest Off。) |
|
Never(不渲染任何像素) |
Pass{// 进行深度测试,当前像素的深度大于缓存里的深度// 说明当前像素在缓存像素的后面// 通俗来讲就是被挡住了ZTest Greater// 关闭深度缓存ZWrite Off// 被挡住渲染该颜色Color(1,0,0,1)}Pass{// 进行深度测试,当前像素的深度小于或等于缓存里的深度// 说明当前像素不在缓存像素的后面// 通俗来讲就是没有被挡住了ZTest LEqual// 没被挡住渲染该颜色Color(0,0,1,1)}
什么是深度?
顶点&像素距离摄像机的距离 | 距离越近深度越小 |
距离越远深度越大 |
Blend(混合)
Blend(混合) |
Alpha(混合):Blend SrcAlpha OneMinusSrcAlpha |
相加:Blend One One | |
比较柔和的相加:Blend One OneMinusDstColor | |
乘法:Blend DstColor Zero | |
2倍乘法:Blend DstColor SrcColor | |
开启透明混合:Blend SrcAlpha OneMinusSrcAlpha |
Tags
SubShader标签Queue |
测试需要关闭ZTest | ||||||||
|
|||||||||
Tags{"Queue" = "Transparent+1"} |
TextureSetup
SetTexture[TexturePropertyName]{TextureBlock}
前提 | Lighting On | |
stc【颜色源】 |
Primary是来自光照计算的颜色或是它绑定时的顶点颜色 | |
Texture是在SetTexture中被定义的纹理的颜色 | ||
Previous是上一次Set Texture的结果 | ||
Constant是被ConstantColor定义的颜色 | 固定颜色:constantColor(1,1,1,1) |
combine |
暗:combine src1 * src2 亮:combine src1 + src2 combine src1 - src2 |
combine src1 lerp(src2) src3 | |
双倍/四倍————Double \ Quad | |
RGB与A分离 |
Unity Shader(固定管线着色器)相关推荐
- 【Unity3D】固定管线着色器二
1 前言 固定管线着色器一 中介绍了 Shader 中外部属性.光照.贴图等基础用法,本文将进一步讲解固定管线着色器,介绍正面与反面剔除.Alpha 测试.深度测试.混合.渲染队列等用法.渲染管线相关 ...
- Unity Shader:细分着色器(Tessellation Shader)在Unity顶点着色器中的写法以及各参数变量解释
图1:在Unity内将sphere细分后 图2:在Unity内将sphere细分后 Unity官网关于细分着色器的资料比较少,只有在Surface Shader中使用的例子.我看了下Surface S ...
- Unity Shader之几何着色器(Geometry Shader)实现面片飞散的爆炸效果
前言 上篇文章初学集合着色器实现了草地效果,这篇再次使用GS实现一个"爆炸效果".为什么要加上引号呢,因为实现的其实不是一个传统的爆炸效果,更类似于面片向外扩散消失的一种科幻效果, ...
- Unity Shader - Predefined Shader preprocessor macros 着色器预处理宏
目录:Unity Shader - 知识点目录(先占位,后续持续更新) 原文:Predefined Shader preprocessor macros 版本:2019.1 Predefined Sh ...
- Unity初学Shadergraph创建着色器学习教程
MP4 |视频:h264,1280×720 |音频:AAC,44.1 KHz,2 Ch 语言:英语+中英文字幕(根据原英文字幕机译更准确) |时长:51节课(4h 44m) |大小解压后:2.55 G ...
- OpenGL shader class自定义着色器的实例
OpenGL shader class自定义着色器 先上图,再解答. 完整主要的源代码 源代码剖析 先上图,再解答. 完整主要的源代码 #include <glad/glad.h> #in ...
- OpenGL Compute Shader Raytracing 计算着色器光线追踪的实例
OpenGL Compute Shader Raytracing 计算着色器光线追踪 先上图,再解答. 完整主要的源代码 源代码剖析 先上图,再解答. 完整主要的源代码 // #define USE_ ...
- (八)unity自带的着色器源码剖析之——————Unity3D的全局光照和阴影:下篇(unity3D中的球谐光照和SH球谐函数、unity实时阴影抗锯齿解决方案)
一.探针基于球谐函数的全局光照 球谐光照是基于预计算辐射度传输理论实现的一种实时渲染技术.预计算辐射度传输技术能够重现在区域面光源照射下的全局照明效果.这种技术通过在运行前对场景中光线的相互作用进行预 ...
- unity关于纹理、着色器和材质的介绍
图形资源可以分解为纹理.着色器和材质.纹理和着色器应用于材质,然后把材质应用于模型. 纹理(Texture):应用于3D对象的平面图像,使模型变得色彩斑斓,而不是只有形状. 创建一个复杂模型时,常用展 ...
- unity 彩带粒子_超级技术贴:Unity粒子遇上着色器,引爆视觉特效
下面来分析粒子系统驱动的数据,Michał使用粒子的尺寸(Size)和颜色(Color)来控制一些着色器参数.为了更好的进行参数调整,MeltingObject脚本除了引用了"熔化" ...
最新文章
- python非贪婪、多行匹配正则表达式例子[转载]
- VMware下ghost安装XP后无法从硬盘启动的问题
- Game On Serverless:SAE 助力广州小迈提升微服务研发效能
- log.php(157),Log出现permission Denied的错误
- java抽象继承-模板方法
- python 内置递归
- python的数据类型_Python支持哪些数据类型
- java与算法_Java与算法之(1) - 冒泡排序
- leetcode110. 平衡二叉树(递归)
- Django-ORM数据库操作
- spring3: 切面及通知实例 Aspectj的aop
- 手把手教你详细分析 Chrome 1day 漏洞 (CVE-2021-21224)
- Java语言课程设计——简易计算器(详细含报告和源代码)
- 小学计算机课的微案例,小学信息技术教学案例分析
- 宗海图cad_技术绘制论文,关于CAD技术机械制图关键技术相关参考文献资料-免费论文范文...
- TensorFlow实现语音识别
- 批处理(bat)打开之后闪退怎么办?
- 微信小程序 -- 原生JS集成腾讯IM实时聊天/实时音视频(踩坑及心得)
- JAVA实现2048小游戏
- 大数据专业应该怎么学习