法线向量表示某个点上垂直于该点的向量,而法线贴图( Map)就是保存这些法线的贴图 。实际应用中,经常使用法线贴图为低模添加细节 。
文章插图
上图来源于百度百科法线贴图 。
本文就介绍一下,怎样使用来添加法线贴图 。
首先依旧是最简单的漫反射:
Shader "Custom/NormalMap" {Properties {_MainTex ("Albedo (RGB)", 2D) = "white" {}}SubShader {Tags { "RenderType"="Opaque"}LOD 200CGPROGRAM#pragma surface surf Lambertsampler2D _MainTex;struct Input {float2 uv_MainTex;};void surf (Input IN, inout SurfaceOutput o) {fixed2 texUV = IN.uv_MainTex;fixed4 c = tex2D (_MainTex, texUV);o.Albedo = c.rgb;o.Alpha = c.a;}ENDCG}FallBack "Diffuse"}
在里添加:
_NormalMap ("Normal Map", 2D) = "white" {}
并在的 之后,surf方法之前添加:
sampler2D _NormalMap;
这样我们就可以在编辑器里看到多了一个 Map的选项了 。
在Input结构里添加:
half2 uv_NormalMap;
这样我们就可以在surf方法里调用法线贴图的纹理坐标了 。
修改surf方法:
void surf (Input IN, inout SurfaceOutput o) {fixed4 c = tex2D (_MainTex, IN.uv_MainTex);o.Albedo = c.rgb;o.Alpha = c.a;fixed3 n = UnpackNormal(tex2D (_NormalMap, IN.uv_NormalMap));o.Normal = n;}
导入下面这张图片:
文章插图
或者自己找一个也没关系,记得 Type设置为 Map 。(注:因为法线一般都偏向z轴方向,所以法线贴图一般偏蓝色)
【四Shader山下法线贴图】为使用本文的材质设置 Map,并把它应用在场景对象上,我们就可以看到:
文章插图
添加主贴图后的效果:
文章插图
- 揭秘四川某市发现白垩纪时期恐龙足迹
- 四个超奇葩吉尼斯世界纪录,超大容量的嘴,还有一个是宅男最爱 嘴巴大的吉尼斯记录
- 四川军阀范绍增抢婚:终结美人鱼冠军梦
- 第四集:50个超有意思的心理学效应之光环效应。用心理学... 世界十大效应
- 古代四大美男之潘安被灭三族之谜
- 八 Shader山下片段着色器
- 他是四川优秀毕业生,凭借倒立行走创造了吉尼斯世界纪录 吉尼斯记录挑战倒立
- 四行仓库保卫战在什么样的背景下发生的四行仓库保卫战简介
- 从竹林山海到高山草甸,小编带你体验“四站十宝”|走“亲戚”之昭通 昭通有那些中国之最
- 二十七 Shader山下平面阴影