




已阅读5页,还剩13页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
Unity3D游戏制作 移动平台上的角色阴影制作 本文将重点介绍两种目前在移动平台上的主流阴影制作技术,同时也会简单介绍两种移动平台上相对较为高级的动态阴影生成方法。由于目前主流使用Unity3.x在移动平台上并不支持阴影的动态生成技术,所以目前最普遍流行同时性价比也最高的阴影生成方法有以下两种:1、 简单贴图法所谓简单贴图法即是直接在角色的角底附加一个阴影半透明贴图,并让其跟随角色一起运动,一般是将该阴影Object成为角色模型的子物体,该种阴影生成效果如下:阴影的Inspector视图如下:其中ShadowComponent是控制阴影的一个脚本,与其生成无关,故不再这里介绍。影响该应用生成的主要有两个部分,一个是Shadow网格,另外一个则是渲染所需要的材质“No Name”。需要注意的是,Shadow网格是一个平面,但不建议使用Unity自身生成的Plane,因为Unity生成的面数较多,可通过3DMax等建模工具来自行建模,如下所示:对于材质,最重要的则是Shader的书写,我将其列在下方,以方便大家使用:csharp view plaincopyprint?1. ShaderiPhone/SimpleShadow2. 3. Properties4. 5. _MainTex(MainTex,2D)=6. 7. 8. SubShader9. 10. TagsQueue=Transparent11. 12. Pass13. 14. BlendSrcAlphaOneMinusSrcAlpha15. 16. Color_clrBase17. 18. CullOff19. LightingOff20. SetTexture_MainTexcombinetexture,one-texture21. 22. 23. csharp view plaincopyprint?1. ShaderiPhone/SimpleShadow2. 3. Properties4. 5. _MainTex(MainTex,2D)=6. 7. 8. SubShader9. 10. TagsQueue=Transparent11. 12. Pass13. 14. BlendSrcAlphaOneMinusSrcAlpha15. 16. Color_clrBase17. 18. CullOff19. LightingOff20. SetTexture_MainTexcombinetexture,one-texture21. 22. 23. Shader iPhone/SimpleShadowProperties_MainTex (MainTex, 2D) = SubShaderTags Queue = Transparent PassBlend SrcAlpha OneMinusSrcAlphaColor _clrBaseCull OffLighting OffSetTexture _MainTex combine texture, one - texture 通过以上设置即可生成最简单的阴影效果,大家可以通过自己设定脚本来控制阴影的移动和变化等等。但是,该阴影生成方法有一个明显的“硬伤”,即该阴影只能适用于平坦的地面,一旦地面凹凸不平或有遮挡物,则会出现“穿帮”的效果,如下图所示,该方法生成的阴影对脚下的正方体完全没有影响,所以为了解决这种问题,投影生成法应运而生。2、 投影生成法该方法本质上来说是一种贴花(Decal)技术,即设定一个投影器,然后将阴影贴图投射到你想展现阴影的地方,该方法的优点在于投影效果不取决于被投影区域的几何形状,即被投影区域可以任意凹凸的曲面,也可以处理各种障碍物。该方法生成的阴影效果如下:下面我就具体介绍一下该阴影的生成方法:(1) 通过“GameObject-Create Empty”来创建一个空的物体,并取名为“Shadow Projector”。(2) 通过“Component-Effects-Projector”在该空物体上加入Projector组件,并通过平移、旋转和调整参数达到如下效果:(3) 然后在Material选项中拖入已经准备好的材质,即可投影出阴影,效果如下:我们看到,场景中不仅生成了阴影,同时角色的身体也“变黑”了,这是因为投影器的“Ignore Layers”设定为“Nothing”的缘故,我们将可忽略层设为角色的层“Player”,则可使角色不再被投影,效果如下:(4) 最终的Shadow Projector的Inspector视图如下:其中材质所用到的shader为:csharp view plaincopyprint?1. ShaderProjector/Multiply2. Properties3. _ShadowTex(Cookie,2D)=grayTexGenObjectLinear4. _FalloffTex(FallOff,2D)=whiteTexGenObjectLinear5. 6. 7. Subshader8. TagsRenderType=Transparent-19. Pass10. ZWriteOff11. FogColor(1,1,1)12. AlphaTestGreater013. ColorMaskRGB14. BlendDstColorZero15. Offset-1,-116. SetTexture_ShadowTex17. combinetexture,ONE-texture18. Matrix_Projector19. 20. SetTexture_FalloffTex21. constantColor(1,1,1,0)22. combinepreviouslerp(texture)constant23. Matrix_ProjectorClip24. 25. 26. 27. csharp view plaincopyprint?1. ShaderProjector/Multiply2. Properties3. _ShadowTex(Cookie,2D)=grayTexGenObjectLinear4. _FalloffTex(FallOff,2D)=whiteTexGenObjectLinear5. 6. 7. Subshader8. TagsRenderType=Transparent-19. Pass10. ZWriteOff11. FogColor(1,1,1)12. AlphaTestGreater013. ColorMaskRGB14. BlendDstColorZero15. Offset-1,-116. SetTexture_ShadowTex17. combinetexture,ONE-texture18. Matrix_Projector19. 20. SetTexture_FalloffTex21. constantColor(1,1,1,0)22. combinepreviouslerp(texture)constant23. Matrix_ProjectorClip24. 25. 26. 27. Shader Projector/Multiply Properties _ShadowTex (Cookie, 2D) = gray TexGen ObjectLinear _FalloffTex (FallOff, 2D) = white TexGen ObjectLinear Subshader Tags RenderType=Transparent-1 Pass ZWrite Off Fog Color (1, 1, 1) AlphaTest Greater 0 ColorMask RGB Blend DstColor Zero Offset -1, -1 SetTexture _ShadowTex combine texture, ONE - texture Matrix _Projector SetTexture _FalloffTex constantColor (1,1,1,0) combine previous lerp (texture) constant Matrix _ProjectorClip 通过以上的步骤,我们即可实现投影式的阴影生成方法。与第一种方法一样,可以设定一些特定脚本来控制该阴影的移动以及变化等等。另外,需要注意的一点是“Ignore Layers”选项的设定,原则上是尽量去掉那些不需要被投影的层,从而来减少不必要的计算量。上述两种方法是目前移动平台上的主流阴影生成方法,优点是生成简单,使用方便、计算量较小,但缺点同样突出,即该阴影是假的,并不是真的物体投射阴影,所以真实感并不强。下面我就介绍两种目前可以在移动平台上使用的实时动态阴影生成方法,不过在这篇中我们只介绍阴影效果,并不介绍具体的实现技术和生成方法,留待以后高级教程中讲解。3、Shadow Map方法虽然Unity目前并不支持在移动设备上生成动态阴影,但同样可以通过RenderTexture来生成简单的Shadow Map,效果图如下所示:我们看到所生成的阴影存在锯齿,这是由于Shadow Map分辨率不够所致,你可以通过增加RenderTexture的分辨率来减少锯齿的影响,如下图所示,当然这样做的同时也会带来一定的渲染消耗。4、 环境遮挡方法该方法取自于游戏Shadow Gun,通过分析物体的近似环境遮挡信息来实时生成动态阴影,效果如下图所示: 其生成方法大致为如下三步:首先在角色脚底生成一个显示阴影的网格。其次,根据分别在角色的跨步以及两腿处生成三个圆球,通过这三个圆球来计算底面的环境遮挡(A
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 《石榴又红了》课件
- 2025技术研发合作协议合同范本
- 颈椎病的围手术期护理
- 《生死攸关的烛光》课件
- 广东省揭阳市榕城区2024-2025学年高二上学期期末考试生物试卷及答案
- 护理带教老师授课比赛
- 2025房屋租赁信托合同协议书模板
- 2025刨花板模板购销合同
- 音标翻译工作总结
- 2025型钢支撑租赁及安装拆卸合同协议书
- 村民森林防火承诺书
- Q∕SY 06504.2-2016 炼油化工工程储运设计规范 第2部分:火炬系统
- 税法(第三版)项目一任务三增值税应纳税额的计算
- 系统数据导出确认单
- Q∕SY 01004-2016 气田水回注技术规范
- TSG Z8002-2022 特种设备检验人员考核规则
- 植物组织培养论文 月季
- QC∕T 900-1997 汽车整车产品质量检验评定方法
- TCECS 822-2021 变截面双向搅拌桩技术规程
- Q∕GDW 12130-2021 敏感用户接入电网电能质量技术规范
- 2019年广东公务员考试行测真题及答案(县级)
评论
0/150
提交评论