- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Unity3D教程宝典之Shader篇:第二十一讲视差贴图
原创文章如需转载请注明:转载自风宇冲Unity3D教程学院?????????????????????????????????第二十一讲?视差贴图视差贴图的展示图一:注意轮胎印中的自阴影,实际上路面只是一个平地图二:孤岛危机的成功,视差贴图功不可没图三:视差贴图同样可用于人物,装备及道具本讲分四个部分一:优点特性二:基本原理三:使用方法四:视差计算第一部分?视差贴图的优点及特性上一讲讲了法线贴图。法线贴图,无论是RGB法线贴图还是DXT5nm,都有一个缺点就是。越接近面的水平视角,则画面越不真实。因为使用法线贴图后,凸起的部分只是看起来凸起而已,网格模型却并没有凸起依然是平的。正常来说凸起的部分会遮挡后面的部分,法线贴图却没有这个效果。于是我们有了法线贴图的改进版 - 视差贴图视差贴图的好处:(1)在相对视角会发生变化时,很有立体感(2)在入视角接近水平时,依然有不错的质量下面两图对比可以看出,在入视角接近水平时,视差贴图要比法线贴图清晰不少。注意:在入视角等于或接近垂直时,视差贴图与法线贴图的效果是几乎一样的。第二部分?视差贴图的原理视差贴图,由Tomomichi Kaneko在2001年发明,但是限于计算机的性能,真正的商业运用是从2007年开始的。视差贴图通过uv偏移实现。uv的偏移值由高度及由点指向摄像机的向量计算得出。所以视差贴图依然不改变真正的模型表面构造。注意:如果使用的是Unity自带的Parallax 类shader,则高度必须位于A通道中(对应color.w),如果高度图是灰度图的话,则需转换至A通道,下面的使用部分有详细方法。有关高度的知识,参阅17讲的前半部分。左图:凹凸不平的鹅卵石 ????????右图:实际只是一个平面第三部分视差贴图的使用(1)准备好贴图,法线贴图,高度图。(2)如果高度图的高度储存在透明通道,略过此步。如果是灰度图则需:选中图,勾选Alpha from Grayscale,然后Apply即可(3)创建plane及材质,Shader选Parallax Diffuse或者Parallax Diffuse(4)把三个图拖到材质对应的栏里(5)调整Height高度。如果是初次使用视差贴图的话,把Height调到最高,然后旋转plane查看,这样能快速理解视差贴图的好处。如果是真正运用的话,Height稍微低些,否则会失真。第四部分视差贴图的计算打开Build-in shader里的 Normal-Parallax.Shader,即Parallax Diffuse。有如下代码:half h = tex2D (_ParallaxMap, IN.uv_BumpMap).w;float2?offset?= ParallaxOffset (h, _Parallax, IN.viewDir);IN.uv_MainTex +=?offset;IN.uv_BumpMap +=?offset;(1)纹理映射取得高度值h??(2) 由高度值h及指向摄像机的向量计算偏移offset??(3) 对纹理贴图以及法线贴图进行uv偏移offset其中第二步是重点。打开UnityCG.cginc , 看到如下代码。// Calculates UV offset for parallax bump mappinginline float2 ParallaxOffset( half h, half height, half3 viewDir ){h = h * height - height/2.0;float3 v = normalize(viewDir);//单位指向相机向量.z +0.42v.z += 0.42;// 偏移.x = 高度*(单位指向相机向量的x /?单位指向相机向量的z)// 偏移.y = 高度*(单位指向相机向量的y /?单位指向相机向量的z)return h * (v.xy / v.z);}计算方法出来了。具体算法的理论依据感兴趣的同学可以自己去研究。部分内容出自:【技术贴】最强贴图——视差贴图技术
您可能关注的文档
- 人教版八年级英语下册第六月单元《How+Long+Have+You+Been+Collecting+Shells_》PPT.ppt
- 一元二次方程的实验报告.doc
- 八年级英语module_4_How_long_have_you_studied_English课件1.ppt
- C++实验报告1、2小结.docx
- 八年级Unit1整单元5.ppt
- C语言程序设计上机指导第12章答案.doc
- 钱宝军八年级课件1 Unit6_How_long_have_you_been_collecting_shells.ppt
- C++上机指导(第12次实验)(附答案).doc
- DS18B20测温计LCD显(经ISIS仿真验证).doc
- 人教版初二八年级下册英语《Unit 6 How long have you been collecting shells PPT课件》.ppt
- 八年级英语第三单元比较级语法.ppt
- 实验三:类和对象(二).doc
- unit6howlonghaveyoubeencollectingshells第1课时.ppt
- 操作系统3100717102周杰.doc
- html+css2.1总结.docx
- 新目标英语八年级下Unit 6 Section A.ppt
- 人教新目标八年级英语下册 课件:Unit 7 Section A Period 1(1a-2d)(共48张PPT).ppt
- 2010上全国信息技术水平考试计算机程序设计技术水平证书(C语言).doc
- 八年级英语下册《Unit7 What’s the highest mountain in the world》Section A-1.ppt
- 3-2选择结构.doc
文档评论(0)