u3d_shader_surface_shader_3
参考http://my.oschina.net/u/138823/blog/181131
加了个凹凸贴图:

抱歉把女神苏菲做成这样。
一:Normal Texture的制作:
1.首先是Normal Map的制作,直接在U3D里选取纹理Type为Normal类型即可
二:UnpackNormal:
2. o.Normal = UnpackNormal(tex2D(_BumpMap,mIn.uv_BumpMap));对normal tex进行数据的读取,并转化到对应的二维空间
具体参考http://forum.unity3d.com/threads/unpacknormal-fixed4-packednormal-role.101163/内容。
将法线坐标从0到1转化到-1到1之间;其中法线纹理又区分不同的硬件使用情况
o(︶︿︶)o ,刚开始疑惑为什么以下:
o.Albedo = tex2D(_MainTex,mIn.uv_MainTex).rgb;
o.Normal = UnpackNormal(tex2D(_BumpMap,mIn.uv_BumpMap));
Albedo漫反射没有使用UnpackNormal进行坐标转换,(我理解错误:以为UnpackNormal进行了纹理坐标系到二维空间坐标系的转换)
inline fixed3 UnpackNormalDXT5nm (fixed4 packednormal)
{
fixed3 normal;
normal.xy = packednormal.wy * - ;//RGBA中,x保存在a中,y保存在g中,从A和G中获取发现数据xy;然后再求z值
#if defined(SHADER_API_FLASH)
// Flash does not have efficient saturate(), and dot() seems to require an extra register.
normal.z = sqrt( - normal.x*normal.x - normal.y * normal.y);
#else
normal.z = sqrt( - saturate(dot(normal.xy, normal.xy)));
#endif
return normal;
} inline fixed3 UnpackNormal(fixed4 packednormal)
{
#if defined(UNITY_NO_DXT5nm)
return packednormal.xyz * - ; //
#else
return UnpackNormalDXT5nm(packednormal);
#endif
}
u3d_shader_surface_shader_3的更多相关文章
随机推荐
- webstorm常用的快捷键总结
1. ctrl + shift + n: 打开工程中的文件,目的是打开当前工程下任意目录的文件. 2. ctrl + j: 输出模板 3. ctrl + b: 跳到变量申明处 4. ctrl + al ...
- openssh/ntp/ftp漏洞
这3种漏洞常规加固都要对应操作系统打官方漏洞升级包.既然这么说那下面就是不常规的: Openssh: 改ssh版本:whereis ssh //查看ssh目录cd 到该目录cp ssh ssh.bak ...
- Android自带的theme
android:theme="@android:style/Theme.Dialog" 将一个Activity显示为能话框模式 android:theme="@andro ...
- YYText-显示富文本
github地址: https://github.com/ibireme/YYText CocoaPods安装: pod 'YYText' 1.YYLabel使用注意 private lazy var ...
- zookeeper入门讲解事例
zookeeper使用和原理探究(一) zookeeper介绍zookeeper是一个为分布式应用提供一致性服务的软件,它是开源的Hadoop项目中的一个子项目,并且根据google发表的<Th ...
- Android 短信的还原
上篇文章讲到<Android 短信的备份>,本文主要实现Android 短信的还原,即是将一条 布局文件: <RelativeLayout xmlns:android="h ...
- iOS-字符属性NSAttributedString描述
/* 字符属性 字符属性可以应用于 attributed string 的文本中. NSString *const NSFontAttributeName;(字体) NSString *const N ...
- Mac下修改Hosts文件工具——Gas Mask
这段时间在做公司APP的项目,看到公司开发IOS的同事和我这边联调程序时,经常需要手动修改hosts文件,比较麻烦. 在公司忙,没有来及找,给同事推荐了我当时知道的一个切换hosts文件的工具:sma ...
- input的file 控件及美化
在一些网站进行上传时,当单击了“浏览”按钮之后会弹出[选择文件]的对话框.想要实现这一功能,用input的file控件来实现就好啦~ <!doctype html> <html la ...
- drop和delete的区别是什么
当你不再需要该表时, 用 drop;当你仍要保留该表,但要删除所有记录时, 用 truncate;当你要删除部分记录时(always with a WHERE clause), 用 delete.