![](https://img-blog.csdnimg.cn/20201014180756724.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
shader入门精要
萌DClulu酱
这个作者很懒,什么都没留下…
展开
-
10.5高光纹理-玻璃效果
//高级纹理-玻璃效果//定义一个GlabPass后,unity会把当前屏幕的的图像绘制在一张纹理中,以便在后续的Pass中访问它。//使用GlabPass来实现诸如玻璃等透明材质的模拟//需要格外小心物体的渲染队列设置,要把队列设置为透明队列"Queue"="Transparent"//使用一种法线来模拟玻璃的反射,在模拟折射时,使用GlabPass获取玻璃后面的屏幕图像,//并使用切...原创 2020-04-11 11:37:43 · 330 阅读 · 0 评论 -
10.4高光纹理-镜子效果
//高级纹理-镜子效果//创建RenderTexture 并付给相机镜子,创建一个quad当作镜子,并赋值材质//使用渲染纹理作为输入属性,并把渲染纹理的水平向上反转 o.uv.x=1-o.uv.xShader "Unity shader book/Chapter 10/Mirror" { Properties { _MainTex("Main Tex",2D) = ...原创 2020-04-11 11:37:08 · 198 阅读 · 0 评论 -
10.3菲涅尔反射
//菲涅尔反射//一部分发生放射 另一部分发生折射//schlick菲涅尔近似公式 f=f+(1-f)(1-v.n)乘5次方Shader "Unity shader book/Chapter 10/Fresnel" { Properties { _Color("Color Tint",Color)=(1,1,1,1) _FresnelScale("Fr...原创 2020-04-11 11:36:24 · 502 阅读 · 0 评论 -
10.2高光纹理-折射
//高级纹理-折射Shader "Unity shader book/Chapter 10/Refraction" { Properties { _Color("Color Tint",Color)=(1,1,1,1) _RefractColor("Refract Color",Color)=(1,1,1,1) _RefractAmount...原创 2020-04-11 11:35:23 · 172 阅读 · 0 评论 -
10.1高光纹理-反射
//高级纹理 -反射Shader "Unity shader book/Chapter 10/Reflection" { Properties { _Color("Color Tint",Color)=(1,1,1,1) _ReflectColor("Reflection Color",Color)=(1,1,1,1)//反射颜色 _Ref...原创 2020-04-11 11:34:47 · 214 阅读 · 0 评论 -
9.2光照衰减和阴影
//光照衰减和阴影Shader "Unity shader book/Chapter 9/AttenuationAndShadowUseBuildFunction" { Properties{ _DiffuseColor("DiffuseColor",Color) = (1,1,1,1) _SpecularColor("SpecularColor",Co...原创 2020-04-11 11:33:47 · 209 阅读 · 0 评论 -
9.1光照衰减-前向渲染
// Upgrade NOTE: replaced '_LightMatrix0' with 'unity_WorldToLight'//计算光照衰减 -前向渲染//unity使用一张纹理作为查找表来在片元着色器中计算逐像素光照的衰减Shader "Unity shader book/Chapter 9/ForwardRendering" { Properties{ ...原创 2020-04-11 11:32:55 · 255 阅读 · 0 评论 -
8.3透明度混合-开启深度写入
//透明度混合//模型本身有遮挡情况下,使用2个pass,第一个pass开启深度写入,不输出颜色,只是为里吧模型的深度值吸入到深度缓冲中;第二个pass进行正常的透明度混合//使用混合命令Blend//正确的透明效果,解决了由于关闭深度写入而造成的错误排序//本列只计算环境光和漫反射Shader "Unity shader book/Chapter 8/AlphaBlendZWrite...原创 2020-04-11 11:31:54 · 238 阅读 · 0 评论 -
8.2透明度混合-关闭写入
//透明度混合//使用当前偏移的透明度作为混合因子,与已经存储在绿色缓冲中的颜色进行混合。得到颜色。//使用混合命令Blend//可以得到真正的半透明效果//关闭深度写入会造成错误排序的情况//本列只计算环境光和漫反射Shader "Unity shader book/Chapter 8/AlphaBlend" { Properties { _Color("C...原创 2020-04-11 11:31:14 · 162 阅读 · 1 评论 -
8.1透明度测试
//透明度测试//只要一个片元的透明度不满足条件(小于某个阈值),则对应的片元就被舍弃,不进行任何处理//void clip(v) v的任何一个分量时负数,则会舍弃当前像素的输出颜色//要么透明,要么全显示//本列只计算环境光和漫反射Shader "Unity shader book/Chapter 8/AlphaTest" { Properties { _Co...原创 2020-04-11 11:30:27 · 131 阅读 · 0 评论 -
7.5基础纹理-遮罩纹理
//基础纹理:遮罩纹理//通过采样得到遮罩纹理的文素质,然后使用其中某个通道的值来与某种表面属性进行相乘//使用一张高光遮罩纹理,逐像素的控制模型表面的高光反射强度Shader "Unity shader book/Chapter 7/Mask Texture" { Properties { _Color("Color Tint",Color)=(1,1,1,1)...原创 2020-04-09 15:42:23 · 157 阅读 · 0 评论 -
7.3基础纹理-渐变纹理
//基础纹理:渐变纹理//使用渐变纹理来控制漫反射光照//使用这种技术,保证物体的轮廓线相比之前使用的传统漫反射光照更加明显//需要注意的是,需要把渐变纹理的Wrap Mode设为Clamp模式,放在对纹理采样时由于浮点数精度造成问题Shader "Unity shader book/Chapter 7/Ramp Texture" { Properties { _C...原创 2020-04-09 15:41:38 · 212 阅读 · 0 评论 -
7.2基础纹理-法线纹理
//基础纹理//凹凸映射:使用一张纹理来修改模型表面的法线//世界空间中的计算Shader "Unity shader book/Chapter 7/NormalMapWorldSpace" { Properties { _Color("Color Tint",Color)=(1,1,1,1) _MainTex("Main Tex",2D) = "wh...原创 2020-04-09 15:40:41 · 191 阅读 · 0 评论 -
7.1基础纹理-单张纹理
//基础纹理//一张纹理代替物体的漫反射颜色//使用Blinn-Phong光照模型计算光照Shader "Unity shader book/Chapter 7/Single Texture" { Properties { _Color("Color Tinet",Color)=(1,1,1,1) //控制物体的整体颜色 _MainTex("Main ...原创 2020-04-09 15:38:41 · 125 阅读 · 0 评论 -
6.6高光反射-BlinnPhong光照模型
//BlinnPhong光照模型// specular = (c.m)max(0,n.h)乘glass的 次方//需要4个参数:入射光颜色和强度c,材质的高光反射系数m,法线n和矢量h//Blinn-Phong光照模型高光反射部分更大更亮,更符合结果Shader "Unity shader book/Chapter 6/Blinn" { Properties{ _D...原创 2020-04-09 15:37:32 · 203 阅读 · 0 评论 -
6.5 高光反射-逐像素方法
//高光反射光照模型 specular = (c.m)max(0,v.r)乘glass的 次方//需要4个参数:入射光颜色和强度c,材质的高光反射系数m,视角方向v,反射方向r//反射方向 reflect(i.n) i为入射方向 n为法线方向//逐像素方法//得到的高光效果更平滑,完整的Phone光照模型Shader "Unity shader book/Chapter 6/Specu...原创 2020-04-09 15:36:25 · 198 阅读 · 0 评论 -
6.4 高光反射-逐顶点方法
// Upgrade NOTE: replaced '_World2Object' with 'unity_WorldToObject'//高光反射光照模型 specular = (c.m)max(0,v.r)乘glass的 次方//需要4个参数:入射光颜色和强度c,材质的高光反射系数m,视角方向v,反射方向r//反射方向 reflect(i.n) i为入射方向 n为法线方向//逐顶点方...原创 2020-04-09 15:35:21 · 242 阅读 · 0 评论 -
6.2 漫反射-半兰伯特
//漫反射 半兰伯特 diffuse = (c.m)(0.5(n.i)+0.5)//模型背光面有可以有明暗变化Shader "Unity shader book/Chapter 6/HalfLambert" { Properties{ _Diffuse("Diffuse",Color) = (1,1,1,1) } SubShader{ ...原创 2020-04-09 15:33:37 · 188 阅读 · 0 评论 -
6.2 漫反射-逐像素光照
//漫反射 逐像素光照//diffuse = (c.m)max(0,n.i)//计算漫反射光照需要4个参数:m漫反射颜色,n顶点法线,c光源颜色和强度,i光源方向//光线无法到达区域,模型外观上全黑Shader "Unity shader book/Chapter 6/DiffusePixelLevel" { Properties{ _Diffuse("Diffus...原创 2020-04-09 15:32:21 · 132 阅读 · 0 评论 -
6.1 漫反射-逐顶点光照
//漫反射 逐顶点光照//diffuse = (c.m)max(0,n.i)//计算漫反射光照需要4个参数:m漫反射颜色,n顶点法线,c光源颜色和强度,i光源方向//对于细分程度较低模型,逐顶点光照出现问题Shader "Unity Shader Book/Chapter 6/Diffuse Vertex-level" { Properties{ _Diffuse...原创 2020-04-09 15:31:05 · 205 阅读 · 0 评论