Unity屏幕雪花另类完成方法示例

发布时间: 2019-10-09 16:29:41 来源: 互联网 栏目: C#教程 点击:

这篇文章重要简介了Unity屏幕雪花另类完成方法示例,文中经过过程示例代码简介的异常详细,对大年夜家的进修或许任务具有必定的参考进修价值,须要的同伙们下面随着小编来一路进修进修吧

明天是圣诞节安然夜,为此特别制造了一个雪花飘落的场景,我们的雪花衬着方法不合于网优势行的应用Camera Filter,须要将脚本挂接到相机下面,而我们是挂接到空对象下面,完成方法采取的是自定义Mesh,自定义Mesh可以赞助我们完成很多的后果,并且对效力的晋升异常有赞助,雪花完成方法分为:C#脚本和Shader衬着,C#担任雪花的生成,Shader担任雪花的飞舞和衬着。下面我们简介完成方法:

关于unity,每帧可衬着65000顶点,表示雪的网状物每1片雪花应用4个顶点,65,000 / 4 = 1,6250,这也是你可以一次画的雪数量。

自定义Mesh,我们须要这两个参数:雪花数量,雪花的范围,别的完成自定义Mesh须要以下几个参数:存放雪花顶点,雪花的三角形索引,雪花UV,最后我们须要MeshRender赞助我们衬着。起首我们针对定义的参数以下所示:


变量定义好了,接上去的任务就是初始化了,我们的初始化任务只须要做一次,是以在Start函数中完成的。下面我们根据定义的变量渐渐将他们填充起来,先完成雪花顶点的生成以下所示:


顶点有了,再来填充索引,代码以下所示:


索引有了,下面就是UV了,再看看UV的完成方法:


顶点,索引,UV定义好了后,下面就是写自定义雪花Mesh了,将我们曾经完成的顶点,索引,UV一次性的赋给我们的Mesh,以下所示:


到这里,我们的自定义Mesh就完成了,我们还须要对Mesh停止衬着,这个就用到了我们的Shader了,雪花是飞舞的并且还须要材质,雪花地位的变更我们在顶点着色器中完成,这个也是重点,而片段着色器只是做了简单的衬着,核心代码以下所示:


剩下的是在C#中,应用CPU对GPU中定义的Shader传值,Shader中定义了以下变量:


这些变量须要在C#中完成对它们的传值操作,由于须要每帧去履行,我们将其放在了LateUpdate中完成,代码以下所示:


如许我们的雪花制造就完成了,我们将代码挂到本身新建的空对象下面,留意这里不是相机上,完成后果以下:


我们的雪景出现了,然则后果不是特别好,衬出力度不敷,为此我将其加上,景深,雾效,Bloom衬着,再看看后果以下所示:


后果明显加强了,图中的鹿是给大年夜家送祝愿了,祝贺开辟者技巧更上一层楼,就写到这里吧,代码前面整顿一下传下去,供参考,晚安各位。

以上就是本文的全部内容,欲望对大年夜家的进修有所赞助,也欲望大年夜家多多支撑我们。

本文标题: Unity屏幕雪花另类完成方法示例
本文地址: http://yourctp.com/ruanjian/csharp/278145.html

假设认为本文对您有所赞助请赞助本站

付出宝扫一扫赞助微信扫一扫赞助

  • 付出宝扫一扫赞助
  • 微信扫一扫赞助
  • 付出宝先领红包再赞助
    声明:凡注明"本站原创"的一切文字图片等材料,版权均属编程客栈一切,迎接转载,但务请注明出处。
    C#调用OpenCV开辟简略单纯版美图对象【推荐】前往列表
    Top