shader
QO_GQ
这个作者很懒,什么都没留下…
展开
-
unity shader卡通渲染(描边)+阴影+多光源处理
说道卡通渲染,应该都会想到描边:我所学的描边有三种:一种是计算边缘深度检测描边一种是色差检测描边一种是利用顶点法线向外扩展返回单色pass,使用正面裁剪我用的第三种:pass{ //剔除前面 (朝向摄像机的面)保留内部渲染 Cull Front CGPROGRAM #pragma fragment frag float4 _LineColor; float _Line; struct a2v { float4 pos:POSITION; float3原创 2021-08-11 20:57:01 · 1952 阅读 · 5 评论 -
unityshader 消融效果
代码,讲解都在注释上面了:冯乐乐的《unity shader 入门精要》:相关知识:透明度阴影计算普通光照法线贴图Properties { _BurnAmount("BurnAmount",Range(0,1)) = 0 _LineWidth("LineWidth",Range(0,0.2)) = 0.1 _MainTex("MainTex",2D) = "white"{} _BumpMap("BumpMap",2D) = "white"{} _BumpFirstCo原创 2021-07-03 16:05:37 · 149 阅读 · 0 评论 -
unityshader法线,纹理遮罩
法线贴图可以让低模看起来像是高模一样,具体的实现原理,是改变了光照,呈现出凹凸度:下图中为法线贴图根据光照模型来进行更改:首先我们需要声明法线贴图纹理和法线的凹凸度:_BumpMap("bumpMap",2D) = "bump"{}_BumpScale("BumpScale",Float) = 1.0sampler2D _BumpMap;float4 _BumpMap_ST;float _BumpScale;输入我们需要添加一个切线和法线:struct Input{ float原创 2021-06-25 17:32:01 · 427 阅读 · 0 评论 -
普通光照模型:unityshader
我们都知道物体表面的光照是由:自发光+镜面光(高光)+环境光+漫反射得出来的:环境光:光照系数*环境光颜色Ambient=K*GlobalAmbient;漫反射:Diffuse=K*LightColor*max(dot(N,L),0) ;反射光线:两倍的水平投影减去入射光线,得到反射光线镜面反射:k为高光系数Specular=LightColor*pow(max(dot(N*R),0),K);自发光:那就直接是纹理+uv了:EmissIve=K;嗯,就这些了:代码:Shad原创 2021-06-16 21:02:28 · 130 阅读 · 0 评论