PG电子(中国)网站平台

UnityShader实例18:火焰材质 | PG电子
公司动态

UnityShader实例18:火焰材质

2024-05-27 阅读次数:

  我实现的效果思路和这个基本一样只是将第二步的顶点扰动效果使用了unity内置的函数对模型顶点做的扰动以保证对target 3.0以下版本的支持。

  在开始实现火焰效果时首先需要建一个火焰的模型如下图所示其中刷了顶点色需要使用到顶点色的红色通道和alpha透明通道。

  为了便于调整火焰的颜色以及形态需要开放了一些参数

  该函数可以生成循环波动效果通过控制输入的参数以及对输出值的修改可以模拟出比较自然的随机波动效果用于Unity Terrain系统植物随风摆动的效果,效率据说要比正弦或者余弦函数要高未求证在这里我把它直接用于模拟火焰律动的效果代码如下

  vert函数最后一段代码是用来控制模型的边缘透明的和边缘光材质方法是一样的只不过在这里是用来控制透明度并且这里还使用顶点色的alpha通道控制模型的透明代码如下

  PG电子平台 PG电子网站

  frag函数承接从vert函数传过来的参数先对噪波图采样得到的颜色值转化成颜色梯度图的uv值求出火焰的颜色以及透明质主要代码如下:

  这个火焰效果总体来说还可以但是不大适合顶视的效果容易穿帮这个是由模型的形状决定的相对于原作者的代码做了不少的优化在差不多效果的情况下本文的火焰效果可以支持target 2.0当然还有进一步的优化空间比如可以把颜色梯度图的尺寸从256*256改成2*256并设置成线c;这么可以减少很多的贴图大小同样对alpha图也可以做相对应的处理另外一种方式是可以把alpha图放到噪波图其中的一个通道可以节省一张贴图的使用当然与此相对应的就得修改shader的代码了。

  3D游戏中,火焰特效是一种3D游戏中的一种常见特效,通常是使用粒子播放器播放序列帧或者直接使用粒子模拟,在本文中将实现一个区别于这两种方法的火焰效果(如下图),这个火焰的效果来源于一个朋友推荐给我的文章,是一个老外的作品(演示效果和源代码),效果非常不错,还模拟了风的效果,美中不足的是这个shader只支持target 3.0以上,鉴于此我做一些修改,并做了一定的优化,右图就是本文实现的效果,使之能支持target 2.0。

  一、漫反射原理1、兰伯特模型(1)定义:反射光线的强度与表面法线和光源的方向之间夹角的余弦值成正比。 (2)计算公式::最终的漫反色 :入射光的颜色和强度 :

  的漫反射系数 :表面法线)定义:与原兰伯特相比,半兰伯特光照模型没有使用max函数操作来防止向量n向量l的点积为负值,而是对结果进行了一个0.5倍的缩放再加上0.5大小的偏移 (2)计

  Forge里面的基础知识,并配有图片以增强可读性,趣味性,案例中实际讲解

  实现描边流程大致为:对模型进行2遍(2个pass)绘制,第一遍(描边pass)在vertex

  PG电子平台 PG电子网站

  代码: // Upgrade NOTE: replaced mul(

  粒子大合集,MEGA+616+FireFog+Magic+8bit+Misc+-+NeatWolfs+Pack01+v2.2,

  效果和真实的情况比较像,能沿着遮挡物前进,如下是模仿效果。 思路比较简单,开始想的是一圈一圈发出去,但是前圈与后圈的联系不好做,换种思PG电子 PG平台路,每个方向发射一PG电子 PG平台条线,这样根据上一个位置的方位先向前进,如果前面有遮挡,则计算好新的位置与方向,反之前面没有遮挡,选择合适的位置,并从这个方向的上面向下检测,检测这个方向的垂直位置有没遮挡,如果有遮挡,计算新的方向与位置,没有,则...

  Man/AABBCC { Properties{ _MainTex (MainTex, 2D) = white {} } Sub

  { Tags { RenderType = Transparent Queue = Transparent } Pass { ZWrite Off Blend SrcAlpha OneMinusSrcAlpha CGPROGRAM #pragma vertex vert #pr.

  效果。具体操作还是比较简单的,只需几步就能收获意想不到的效果~1、首先需要将这样的

  贴图在PS中使用褪色得到对应的黑白贴图。2、在3D中创建一个平面并赋予它灯光

  贴图连入到颜色通道中,对应的黑白贴图连入到透明度通道中,这一步一定不要连错噢!4、这样就可以得到透明的

  UnityShader实例09:Stencil Buffer&Stencil Test

  UnityShader实例07:在shader调用unity内置lightmap和light Probes