查看: 1132|回复: 0
打印 上一主题 下一主题

UniSky入门资料翻译

[复制链接]

5472

主题

6

听众

1万

积分

版主

Rank: 7Rank: 7Rank: 7

纳金币
76544
精华
23

活跃会员 荣誉管理 突出贡献 优秀版主 论坛元老

跳转到指定楼层
楼主
发表于 2012-12-13 13:23:29 |只看该作者 |倒序浏览


上图就是UniSky的制作天空的一个截图




今天我不想在和往前一样,是step by step的方式了,在这里,我利用unity3d官网的文档,进行了中文的翻译,并且加上了自己的部分注解。同样希望朋友可以很明白,很快的可以上手去制作属于自己的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.  重分利用太阳和月亮的光和颜色,移除场景中其他直射的灯光并且设置环境光的颜色为灰色或黑色.


更多UniSky资料分享尽在web3D纳金网http://www.narkii.com/
分享到: QQ好友和群QQ好友和群 腾讯微博腾讯微博 腾讯朋友腾讯朋友 微信微信
转播转播0 分享淘帖0 收藏收藏0 支持支持0 反对反对0
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

手机版|纳金网 ( 闽ICP备2021016425号-2/3

GMT+8, 2024-11-25 19:47 , Processed in 0.117765 second(s), 32 queries .

Powered by Discuz!-创意设计 X2.5

© 2008-2019 Narkii Inc.

回顶部