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的更多相关文章
随机推荐
- JavaScript 随机链接
<html> <body> <script type="text/javascript"> var r=Math.random() if (r& ...
- Sharepoint学习笔记—习题系列--70-576习题解析 -(Q78-Q80)
Question 78 You are designing an application configuration approach for a custom SharePoint 2010 app ...
- 转 java中static{}语句块详解
原文地址:http://blog.csdn.net/lubiaopan/article/details/4802430 感谢原作者! static{}(即static块),会在类被加载的时候执 ...
- 利用Dreamweaver配置PHP服务器的站点
配置的步骤: 1.打开Dreamweaver的站点------->新建站点-------->点击保存 2.点击服务器------>保存 3.配置完成之后就可以看到在Dreamweav ...
- iOS Apple Pay
iOS 苹果支付 需要证书支持支付功能 targets 打开支付功能按钮 //ApplePay#import <PassKit/PassKit.h> ...
- 优化MySchool数据库(存储过程)
什么是“存储过程”: ---- 数据库中,用于存储“业务逻辑”的技术!(T-SQL代码当做数据一样保存到数据可) 语法 : [if exists(select * from sysobjects wh ...
- 学习Coding-iOS开源项目日志(三)
继续前两篇,接着本第三篇<学习Coding-iOS开源项目日志(三)>讲解Coding-iOS开源项目. 前 言:作为初级程序员,想要提高自己的水平,其中一个有效的学习方法就是学习别人好的 ...
- iOS 9 升级过程汇中白苹果 iPhone或iPad 解决方案
最近想必有很多朋友升级了iOS 9,不过有部分朋友在升级过程中遇到了白苹果问题.也就是卡在升级过程中,不限重启.这时,你只能通过dfu进行升级了. ios9怎么进入dfu模式: 1.将你的iPhone ...
- 用Phaser实现Flappy Bird 游戏
How to Make a Flappy Bird in HTML5 With Phaser - Part 1 Flappy Bird is a nice little game with easy ...
- 如何从SharePoint Content DB中查询List数据
SharePoint用来维护基础数据非常方便,只需要建立自定义列表,然后使用InfoPath自定义一下维护界面,就可以实现在线的增删改查,开发效率很高.如果维护的数据需要进行审批,还可以加入工作流功能 ...