2016-11-15 22:47:23 ecidevilin 阅读数 2909

在Unity3D(5.3.4)中,点击Window->Lighting,切换到Scene页签,就可以选择打开雾效。


效果如图所示:


雾效分为三种模式,它们的雾效因子计算公式为:

Linear 线性

factor = (end-z)/(end-start)

Exponential

factor = exp(-density*z)

Exponential Squared

factor = exp(-(density*z)^2)


其中z为距离摄像机的距离。



我们还可以导入官方的Effects包


为摄像机添加Global Effect的组件:


通过调节参数来对雾效进行屏幕后处理。

2015-06-01 17:09:41 lihandsome 阅读数 5687

原本项目是Unity 4.6版本的,升级到Unity 5之后发现原本的雾不再看见了,然后查了一下相关资料,发现官方是改变了雾的渲染。

这里有相关的官方方式:

http://forum.unity3d.com/threads/official-changing-how-fog-is-done-in-unity-shaders.261217/

里面有比较重要的一段:

  • For surface shaders, nothing needs to be done; fog variants & code will be generated. You can add "nofog" to #pragma surface line, if you really don't want fog.
  • For vertex/fragment shaders, if you want fog you have to do this:
    1. Add #pragma multi_compile_fog
    2. Add UNITY_FOG_COORDS(n) to your vertex-to-fragment struct
    3. Add UNITY_TRANSFER_FOG(o,o.vertex); to your vertex shader. "o" is output struct name, and "o.vertex" is position in clip space.
    4. Add UNITY_APPLY_FOG(i.fogCoord, col); to end of your pixel shader. "i" is input struct name, and "col" is the color computed in your pixel shader. This applies standard fog color; if you want custom fog color (as some particle/additive shaders do, for example), you can do UNITY_APPLY_FOG_COLOR(i.fogCoord, col, fixed4(0,0,0,0)); to fog towards black for example.
  • For fixed function shaders, nothing needs to be done. "Fog { ... }" command in shaderlab still works, but now it onlyaffects fixed function shaders (for non-fixed function, see point 2 above).
  • By default, fog modes used by scenes are included into game data build. If you know you'll want to change them at runtime, you can choose "Custom fog modes" (default is "automatic") under project's Graphics Settings, and tick checkboxes you need.

  • 2014-11-18 22:02:33 caj8600 阅读数 461


    第六周的场景布置中,学习了雾化效果。所谓雾化效果,就是越远越模糊,走近了看一切就清晰了。

       

    步骤:Edit --Render Settings -- Fog,如下图,勾选Fog,设置Fog Density.




    2017-06-22 22:33:49 yu13473054 阅读数 3648

    unity 版本:5.6.0

    项目开启雾效后,某些物体不收雾效的影响,如下图所示:


    此时,选中不受雾效影响的物体,原因可能是以下方面:

    ① 摄像机的Rendering Path 使用的是Deferred方式;

    ② 模型所选用 shader不对造成的(此例子中就是),如下图:


    修改使用的shader:


    再次运行,物体可以受到雾效的影响了

    2016-10-10 15:03:28 ElyXiao 阅读数 736

    开启Fog(雾效)将会在场景中渲染出雾的效果,在Unity中,可以对雾的颜色、密度等属性进行调整。开启雾效通常用于优化性能,开启雾效后远处的物体被雾遮挡,此时便可选择不渲染距离摄像机较远的物体。这种性能优化方案需要配合摄像机对象的远裁切面设置来使用。通常先调整雾效得到正确的视觉效果,然后调小摄像机的远裁切面,使场景中的距离摄像机对象较远的游戏对象在雾效变淡前被裁切掉。

    在Unity中,开启雾效的方法非常简单,依次打开菜单栏中的Edit->Render Settings,在Inspector视图中会显示出Render Settings的参数面板,勾选Fog复选框即可开启雾效,如下图:


    Fog Color:雾的颜色

    Fog Mode:雾效模式,有3项,可以一个个试下,看下效果

    Fog Density:雾效浓度,取值0-1之间

    Linear Fog Start:线性雾效开始距离

    Linear Fog End:线性雾效结束距离

    效果如下图:



    下面我们来看下水效果,水效果在游戏中频繁使用,游戏中的河流、海洋、湖泊、池塘等都属于水效果,使用unity可以非常方便地创建出逼真的水效果。Unity提供了两个水资源包,分别使Water(Basic)基本水资源以及Water(Pro Only)高级水资源。如下图:


    我们先看下Water Basic,导入资源包,如下图:


    资源包被导入后,资源包中包含两个水资源预设体,分别使Daylight Simple Water(日间基本水效果)预设体以及Nighttime Simple Water(夜间基本水效果)预设体,通过两个预设体的名称,可以得知两个预设体分别用于模拟简单的日间水效果以及简单的夜间水效果,将两个预设体依次添加到场景中生成实例,基本水效果预设体不能对游戏场景中的天空盒以及游戏对象等进行反射、折射运算,但使相对高级水效果而言对系统资源占用较小,如下图:


    高级水资源Water Pro和刚才Water Basic导入一样,高级水效果预设体能够对游戏场景中的天空盒以及游戏对象进行反射、折射运算,效果非常真实,但是相对基本水效果而言对系统资源占用较高。

    下面我们具体看案列,导入现有的场景,场景中使没有河流的,如下图:


    我们导入高级水资源包,把daylight water预设体拖进场景中,如下图:


    我们发现桥下已经有一条河流了,并且水中有倒影,我们可以调整一些属性来达到我们想要的效果。

    下面我们来看下如何添加音效,导入现有的场景,场景中山坡的位置已经添加了模拟水流的粒子,如下图:


    如果要在场景中播放声音,需要为发出声源的游戏对象添加Audio Source组件,我们先在水源的附近创建一个空对象,然后为这个空对象添加Audio Source组件,如下图:


    选中这个对象,在Inspector视图Audio Source组件参数面板中单击Audio Clip(音频剪辑)项右侧的圆圈按钮,进而在弹出的对话框中为组件指定音频剪辑,如下图:


    为这个对象指定音频剪辑后,场景中就可以监听到水流的声音了,然后勾选Loop循环选项,这样就可以循环播放音效,

    Unity支持立体音效,按住鼠标右键不放,通过键盘WSAD在场景中移动,可以测出来立体声音效效果,即距离声源对象越近,监听到的声音就越大,反之就越小。但是即使距离声源对象较远的位置仍然可以监听到较大声音,这是因为声源停止衰减最大距离的范围过大,默认值为500m,我们将Max Distance项的数值改到25m,如下图:


    经过上一步骤的设置,解决了声源距离衰减的问题,但是在声源停止衰减最大距离周围依然可以隐约听见流水的声音,这是因为曲线上距离声源25m位置的节点其纵轴的数值是大于0的,所以我调节曲线到0,如下图:



    Unity3d 无人机

    阅读数 520

    没有更多推荐了,返回首页