Shader效果
铸梦xy
你只管努力,其他的交给天意。
展开
-
透明度混合
Shader "Unity/AlphaBlent"{ Properties { _MainTex ("Texture", 2D) = "white" {} _Color("Color",Color) =(1,1,1,1) _AlphaScale("AlphaScale",Range(0,1))=1 _Cutoff("Cutoff",float)=0 } SubShader { Tag..原创 2023-06-23 01:36:17 · 163 阅读 · 0 评论 -
Unity Shader 边缘光
边缘光原理:在物体的边缘着色一层颜色光。根据点积来判断模型的边缘,通过视角方向点积法线方向得到的值,来判断该片元是否处于边缘,视角点积法线得到的值在0-1之间,当结果等于0时说明该片元处于模型的边缘这个时候,视角方向与法线相互垂直,与切线共线,可以理解为,当视角方向与法线垂直,或与切线共线时,则说明该片元为边缘。反之,结果越靠近1片元则越处于中心。因此我们可以我们可以根据点积的值来计算边缘光。计算公式:float3 rim=dot(worldNormal,ViewDir);float3 rimCo原创 2020-09-10 16:22:37 · 857 阅读 · 0 评论 -
Unity Shader 反射 折射 菲涅尔反射
反射核心算法:Reflect(-viewDir,worldNormalDir)折射核心算法:Refact(-viewDir,worldNormalDir)菲涅尔反射算法:Fresnel =FresnelInstenisty+(1-fresnelIntensity)*dot(-viewDir,worldNormalDir)原创 2020-09-10 15:34:09 · 2161 阅读 · 1 评论 -
UnityShader 之帧动画
fixed time=floor(time. xspeed)fixed row=time/RowCountfixed culomn=time-rowRowCount原创 2020-09-10 11:28:14 · 453 阅读 · 0 评论 -
Unity Shader模型描边效果
//物体空间法线外拓原创 2020-09-10 11:25:37 · 1513 阅读 · 1 评论 -
Unity Shader GrabPass 抓屏幕 截屏
Shader 抓屏 截屏抓屏命令:GradPass{“Name”}释义: 定义抓屏通道 GradPass{"_GrabPassTexture"}声明抓屏通道名称:_GrabPassTexture 表示抓屏通道的名称,如果声明了抓屏通道的名称,只需在shader属性声明区声明一下,Unity会自动把抓屏的图形填充到我们声明的_GrabPassTexture中,我们可直接通过_GrabPassTexture直接使用该贴图。不声明抓屏通道名称:如果不填写抓屏的名称,那么Unity就会默认使用_原创 2020-09-10 11:18:35 · 1242 阅读 · 1 评论 -
Unity Shader 玻璃材质
玻璃材质要知道玻璃的实现原理那么首先要知道玻璃的原理。在现实世界的情况下:1.在正常透明不模糊的玻璃下,透过玻璃看外界,基本上和不用玻璃没有太大差别。基本上就是透视。2.在模糊的玻璃下,透过玻璃看外界,可以看到因为玻璃模糊导致透过玻璃看到的外界画面有点扭曲不清楚的感觉。这是一种模糊的扰动现象。3.在漆黑的玻璃下,或者晚上,我们透过正常不模糊的玻璃看想外界时会发现看不到任何东西,反而看到的是自己在镜子里的样子。这是一种反射现象。由上可以不同时间的玻璃影响可得到玻璃的三个效果,正常透视、模糊扰动、以原创 2020-09-10 11:05:22 · 3983 阅读 · 0 评论 -
Unity Shader之AlphaTest透明度测试及正确的阴影
透明度测试核心原理:对于Alpha透明通道小于阈值的片元直接舍弃掉,被舍弃掉的这些片元不会对颜色缓冲产生影响,也不会在进行任何处理下面是两种舍弃阀值外的片元方式: //裁掉Alpha小于0的片元 clip(texColor.a-_Cutoff); //裁掉Alpha小于0的片元 if(texColor.a-_Cutoff<0) { discard;原创 2020-09-10 10:56:19 · 2064 阅读 · 0 评论 -
Unity shader Xray 效果
实现原理:通过Ztest(深度测试)判断该物体是否被遮挡,如果被遮挡则为物体画上一层边缘光,加上AlphaBend,实现Xray效果,否则不进行任何处理。判断是否被遮挡:在深度测试中,往往越靠近相机的位置越靠前,越远的地方越靠后,深度值一般用Z表示,范围在0—1之间,深度值越小越靠前,深度值越大越靠后。而Ztest的状态有下面几中,由此的知,当我们当前片元处于大于的状态说明该物体前面有其他的物体被渲染且已经进行深度写入。所以在这种状态下,我们就可以绘制我们的Xray效果了。关闭深度写入:ZWr原创 2020-09-10 10:51:44 · 979 阅读 · 0 评论