zoukankan      html  css  js  c++  java
  • 【转】UniSky入门资料

    上图就是UniSky的制作天空的一个截图。今天呢,我不想在和往前一样,是step by step的方式了,在这里,我利用官网的文档,进行了中文的翻译,并且加上了自己的部分注解。同样希望朋友可以很明白,很快的可以上手去制作属于自己的sky。
    UniSky是一个令人瞠目结舌的程序天气插件。他提供了模拟大气视觉效果系统。可以让你快速创建出AAA级别的逼真的天空。
    注意:UniSky目前不支持Unity Xbox。
    如何设置UniSky?
    UniSky很简单就可以导入到你的项目中:
    注意:首先重要的是确保你的摄像机可以看到UniSky.修改摄像机的标签为"Solid Color"并且设置颜色为黑色.设置摄像机裁切面大约为100000左右.
    1. 第一步导入你选择的包到你的场景中,并且打开文件夹.
    2. 在"Resource"文件夹中找到"UniskyAPI"预置,把他拖到你的层次面板.
    3. 拖拽你的主摄像机到UniSkyAPI's编辑器UI的"Scene Camera"槽中.
    4. 现在你可以实例化并且通过脚本控制UniSkyAPI.
    5. 下面的API函数,我都已经给加上了中文注解,想设置什么环境,就加上相应的api函数的调用就ok啦!
    API函数/参数
    下面是对UniSky参数的介绍,并且都对其进行了效果解释。下面的列表可以再UniSkyAPI.js/cs中找到。
    //一天的时间(0到24小时循环) SetTime(float time); LerpTime(float time, float milliseconds); GetTime();

    //返回太阳的颜色 GetSunColor();

    //启用或禁用太阳和月亮的阴影。类型: "LightShadows.None" 、"LightShadows.Hard"和 "LightShadows.Soft"
    public void SetSunShadows(LightShadows sunShadows)
    public void SetMoonShadows(LightShadows moonShadows)
    //设置暴风雨云层中心的坐标 SetStormCenter(Vector3 stormCenter);
    //散射半径,他影响着天空的颜色(默认是45000,通常情况下是一个真实的天空) SetScatteringRadius(float scatteringRadius); LerpScatteringRadius(float scatteringRadius, float milliseconds);
    //主大气层的覆盖是(-5到5) void SetCloudCover(float cloudCover); LerpCloudCover(float cloudCover, float milliseconds);
    //黑暗的云层,不是暴风雨的大气层。(2-0,越低,云层颜色越深) SetPrecipitationLevel(float precipitationLevel); LerpPrecipitationLevel(float precipitationLevel, float milliseconds);
    //暴风雨的覆盖层级是(建议是-3.5到-1.0) SetStormCloudCover(float cloudCover); LerpStormCloudCover(float cloudCover, float milliseconds);
    //雨的数量。没有大暴雨的,但是都是小雨。(任何地方都是从0-1000) SetRainLevel(float rainLevel, float sfxLevel); LerpRainLevel(float rainLevel, float sfxLevel, float milliseconds);
     
    //特大暴雨。一片都有雨。(任何地方都是从0-200) SetStormLevel(float stormLevel, float sfxLevel); LerpStormLevel(float stormLevel, float sfxLevel, float milliseconds);
     
    //太阳的亮度或浓度。由于黑暗中阴天或暴风雨天(0到0.5)淡入淡出 SetSunIntensity(float intensity); LerpSunIntensity(float intensity, float milliseconds);
     
    //设置内置雾(0到0.03) SetFogLevel(float fogLevel); LerpFogLevel(float fogLevel, float milliseconds);
    //设置屏幕图像上滴落的速率(0到5) SetDropletLevel(float dropletLevel); LerpDropletLevel(float dropletLevel, float milliseconds);

    //设置云的方向,加速度和演化的速度。X=x方向和加速度,Y=y方向和加速度,Z=演化速度(0到1) SetCloudSpeedDirection(Vector3 speedDirection); LerpCloudSpeedDirection(Vector3 speedDirection, float milliseconds);

    //光晕差异。设置云边缘的照明强度(0到10)。提示:设置为0左右,会有一个很好的卷云效果。 SetGlowVariance(float glowVariance); LerpGlowVariance(float glowVariance, float milliseconds);
     
    //设置云褪色到大气中的距离(0到20) SetViewDistance(float viewDistance); LerpViewDistance(float viewDistance, float milliseconds);
     
    //调节默认颜色。建议RGB的默认值(1.5,1.5,1.5)。如果你想要粉红色或绿色的云:D SetColorVariance(Vector3 colorVariance); LerpColorVariance(Vector3 colorVariance, milliseconds);
    //如果你想时间自动循环,这个是时间流逝的速度。(0到0.1) SetSpeedOfTime(float speedOfTime);

    //改变光散射到云中,只影响云的颜色。最好是保持他的默认值,40.(-20到100) SetRayleighLevel(float rayleighLevel);

    //如果启用该选项,一天中时间的播放器与系统时钟同步。 SetUseSystemTime(bool enabled);
    //改变环境光的颜色。我建议在一天的时间内进行插值或混浊。 SetAmbientLighting(Color ambientLevel); LerpAmbientLighting(Color ambientLevel, float milliseconds);
    //设置月亮的大小 SetMoonSize(float moonSize);
     
    //清除雾滴缓存 ClearDropletBuffer();
     
    //设置打雷闪电的频率。越高越频繁(0到100)。
    SetLightningFrequency(float frequency);
     
    重要提醒:
    1. 为了避免着色器的问题重要的是保留UniSky的位置和缩放.如果有需要,缩放你的场景或适当的使用脚本来回移动,你不会失去场景的任何缩放.
    2. 如果你看不到完整的天空或不能看到月亮,有可能是摄像机剔除掉他了.为了避免这个问题设置摄像机的远切面为一个很高的值(或许100000).一个聪明的解决方案是设置预置体在他自己的层,不会被摄像机的远切面剔除,你仍然可以保持一个更有效的剔除效果.
    3. 重分利用太阳和月亮的光和颜色,移除场景中其他直射的灯光并且设置环境光的颜色为灰色或黑色.

    看完上面的这些内容,已经学会了如何来制作sky,但是想制作出来一个逼真效果很赞的sky,需要你花点耐心多做些参数细化的设置,搭配出来sky的环境。如果再想有进一步的了解sky的工作原理,亲,那就好好的研究下里面的脚本和shader方面的东东喽!come on

  • 相关阅读:
    pgspider sqlite mysql docker 镜像
    pgspider docker 镜像
    pgspider基于pg 的高性能数据可视化sql 集群引擎
    diesel rust orm 框架试用
    golang 条件编译
    Performance Profiling Zeebe
    bazel 学习一 简单java 项目运行
    一个好用node http keeplive agnet
    gox 简单灵活的golang 跨平台编译工具
    mailhog 作为smtp server mock工具
  • 原文地址:https://www.cnblogs.com/DragonX/p/3199238.html
Copyright © 2011-2022 走看看