游戏地形雪山效果

  • 雪山效果

雪山效果

要达到雪山覆盖的效果,我们要判断两张贴图的方向向量,通过方向来渲染雪的颜色。

定义属性

    Properties{_Color ("Color", Color) = (1,1,1,1)_MainTex ("Albedo (RGB)", 2D) = "white" {}_Bump("Bump",2D)="bump"{}_Snow("Snow", Range(0,1)) = 0.5_SnowDirection("SnowDirection", Vector) =(0,1,0)//Vector也是四元数组}

子着色器

    SubShader{Tags { "RenderType"="Opaque" }LOD 200CGPROGRAM#pragma surface surf Lambert#pragma target 3.0sampler2D _MainTex;struct Input{float2 uv_MainTex;float2 uv_Bump;float3 worldNormal;INTERNAL_DATA//世界空间中的法线向量(normal vector)。如果表面着色器不写入法线(o.Normal)参数,将包含这个参数。为了获得获得基于每个顶点法线贴图(per-pixel normal map)的法线向量(normal vector)需要使用世界法线向量(WorldNormalVector(IN,o.Normal))};//申明属性里定义的sampler2D _Bump;float4 _Color;float _Snow;float4 _SnowDirection;void surf (Input IN, inout SurfaceOutput o){fixed4 c=tex2D(_MainTex,IN.uv_MainTex);o.Normal=UnpackNormal(tex2D(_Bump,IN.uv_Bump));//UnpackNormal接受一个fixed4的输入,并将其转换为所对应的法线值(fixed3),并将其赋值给输出的Normal,就可以参与到光线运算中完成接下来的的渲染工作。
//dot函数的作用用于返回两个向量的标量积
//WorldNormalVector表示转化为世界坐标的法向量
//lerp代表线性插值,当_Snow取最小值1时,这个函数将返回1,而Snow取最大值时,返回-1if((dot(WorldNormalVector(IN,o.Normal),_SnowDirection.xyz))>lerp(1,-1,_Snow)){o.Albedo=_Color.rgb;}else{o.Albedo=c.rgb;}o.Alpha = c.a;}ENDCG}

效果展示

Unity3d Terrain地形制作系列(三)雪山相关推荐

  1. 【蓝鸥Unity开发基础三】课时3 Terrain地形系统【未完】

    [蓝鸥Unity开发基础三]课时3  Terrain地形系统[未完] 推荐视频讲师博客:http://11165165.blog.51cto.com/ 一.Terrain地形系统 Terrain地形系 ...

  2. 制作一幅扑克牌系列三---动起来

    制作一幅扑克牌系列三---动起来 加入了扑克牌拖动js功能,更像空当接龙小游戏了.顺便感谢一下草履虫,这段代码是从他哪儿抄来的,哈哈! <script type="text/javas ...

  3. 怎样用Unity Terrain工具制作美观的场景(四)

    怎样用Unity Terrain工具制作美观的场景(四) 1.前言 这篇文章将是这个系列最后的一篇文章了,关于unity terrain工具更详细的内容,如果后面我再用到也会给大家出续集,话不多说直接 ...

  4. Unity3d数字模型制作规范(更多资讯资料群:193521697邀请码:10026)

    Unity3d数字模型制作规范 本文提到的所有数字模型制作,全部是用3D MAX建立模型,即使是不同的驱动引擎,对模型的要求基本是相同的.当一个VR模型制作完成时,它所包含的基本内容包括场景尺寸.单位 ...

  5. 《UnityAPI.Terrain地形》(Yanlz+Unity+SteamVR+云技术+5G+AI+VR云游戏+Unity+Terrain+AddTreeInstance+立钻哥哥++OK++)

    <UnityAPI.Terrain地形> 版本 作者 参与者 完成日期 备注 UnityAPI_Terrain_V01_1.0 严立钻 2020.09.24 #<UnityAPI.T ...

  6. 前端工程师和设计师必读文章推荐【系列三十三】

    <Web 前端开发精华文章推荐>自2011年6月20号发布第一期以来,历经三年半,总共发布了30多期.今天这篇是2015年第2期(总第33期),希望你能在这里发现有用的资料. 梦想天空专注 ...

  7. 地图定义一个中间不动标注_高精度地图制作(三)

    高精度地图主要用于无人驾驶路径规划,还可以应用于无人驾驶定位,ROI区域过滤等.接下来我们主要来看如何制作高精度地图. 高精度地图制作流程 高精度地图的制作过程分为4个步骤: 地图采集 点云地图制作 ...

  8. 前端工程师和设计师必读文章推荐【系列三十六】

    <Web 前端开发精华文章推荐>自2011年6月20号发布第一期以来,历经五年半,总共发布了30多期.今天这篇是2017年第2期(总第36期),希望你能在这里发现有用的资料. 梦想天空专注 ...

  9. 12款免费素材图标系列三

    为什么80%的码农都做不了架构师?>>>    日期:2013-3-4  来源:GBin1.com 45个 iOS Tab Bar icon 一套45个为retina显示器设计的ta ...

最新文章

  1. 公布.NET 框架库源代码(转)
  2. 【数学建模】MATLAB应用实战系列(九十)-变异系数法应用案例(附MATLAB和Python代码)
  3. 计算机视觉、机器学习相关领域论文和源代码大集合
  4. 【VB.NET】实验 控件综合运用——“五一”商城大促の模拟
  5. linux kill -9 杀不掉的进程
  6. 【codevs1039】01年noip TG--数的划分满分dp+愚蠢深搜+pas的奇怪做法
  7. 细节打满,IO 操作必须手动关闭?关闭流方法是否有顺序?
  8. 蒋本珊计算机组成原理知识点笔记,计算机组成原理习题答案解析(蒋本珊)
  9. Javascript 判断浏览器是否为IE的最短方法
  10. 【Android开发】高级组件-选项卡
  11. 35. Element title 属性
  12. 【Selenium Grid 分布式测试】Selenium Grid下载安装
  13. labview自制对话框
  14. 在线作图|2分钟绘制一张精美的火山图(Volcano Plot)
  15. mysql.sock 路径_关于mysql.sock路径的问题
  16. 百合网“免费”革命 一场饮鸩止渴的大戏
  17. decay_rate, decay_steps ,batchsize,iteration,epoch
  18. layui 的文件上传组件的使用
  19. 中企海外周报 | 宁德时代与大众拉美卡客车达成合作;亿航与沃达丰共建欧洲城市空中交通生态...
  20. 【科普】苹果ARM版Mac发布会——大人,时代变了

热门文章

  1. 使用模拟工具Modbus Slave和PLC通讯
  2. rpc协议微服务器,go微服务之rpc:hprose服务端
  3. Mac电脑使用EasyAR45的注意事项
  4. C#获取网页的HTML码、下载网站图片
  5. java excel导出并下载
  6. 如何使用ricequant量化平台进行落单和回测
  7. ajax.remotecall,Securing a remote ajax method call
  8. python调用ansys_windows下用python调用HFSS
  9. PHP_XLSXWriter 样式,PHP_XLSXWriter
  10. 机器学习十大经典算法