ue4sky时间_Simul trueSKY – 实时渲染真实的天空

原标题:Simul trueSKY – 实时渲染真实的天空

trueSKY是一款软件开发工具包,可以在各种平台上实时渲染真实的天空,云彩和大气效果。

TrueSKY是多年研发的结果。它基于光散射和吸收的物理原理,并对速度进行了高度优化。我们相信这是表现真实的实时天空和云彩最好的系统。

SDK是在主“Simul”目录下的一组库。这些可以静态或动态链接,具体取决于平台。 在静态库中,二进制文件在“Simul / lib”目录下;若是dll,则在“Simul / exe”中。 源文件可在组成库的子目录中找到。

在 exe 和 lib,有以下结构:

Win32

VC11调试

发布

静态调试

静态发布

v140

...

x64

...

{控制台平台}

...

已编译的Windows库有两个运行时版本,_MD和_MT。 运行时是Microsoft提供的一组库,提供基本的系统功能。您通常应该通过一个项目一直使用相同的运行时,尽管不同的运行时可以用于DLL,因为它们是独立的。

对于Windows,调试和发布配置是作为DLL链接到动态MD运行时提供的。 静态调试和静态释放配置是作为与静态MT运行时间链接的静态库提供的。

Unity

要使用trueSKY Unity插件,请将相应的trueSkyUnityPlugin.unitypackage安装到Unity项目中。

Unreal Engine 4

trueSKY虚幻引擎4插件作为GitHub上的UE4引擎的一个分支,也作为UE4二进制分发的单独安装程序。

trueSKY SDK

trueSKY SDK可以通过两种不同的方式与游戏/模拟集成。首先,我们可以像使用Unity和Unreal一样动态链接到trueSkyPluginRender库和API。 第二种选择是直接链接trueSKY库,并直接访问低级类别。

所有Simul的默认渲染器都使用右手坐标系统,x指向东,y指北和z向上。所有单位的距离是米或公里。如果未指定为公里,则距离以米为单位。角度单位是弧度,除非指定为度数。 温度以开尔文为单位,除非指定为摄氏度。

天气处理这样完成 ::clouds::BaseWeatherRenderer BaseWeatherRendererendlink.

Weather Renderer拥有并管理天空,云彩,大气和其他效果的渲染器。 所以Weather Renderer是你的程序和trueSKY之间的主要接口。

以下描述渲染器中实现的天空元素:

特征元素

宇宙背景

星辰

行星

体积云

二维云

混合分辨率渲染

大气

体积光

降水

雨条纹

宇宙背景

首先绘制宇宙背景贴图,其方向与银河系的平面相对应-即

::sky::SkyKeyframer::SetBackgroundBrightness BackgroundBrightnessendlink.

它使用一个plate-carree投影,与银河地平线对齐。给定矢量“视角”,这是银河系坐标的方向,计算是:float az =atan2(view.y,-view.x);vec2 texcoord =vec2((ang/(pi*2.0)),0.5-asin(view.z)/pi);

即x坐标与方位角成比例,并且y坐标与仰角成比例。

星辰

星星被画成点状精灵,沿着与太阳相同的方向绕着地球的旋转轴旋转。星星通常被拖到最高分辨率的缓冲区(即帧缓冲区或最终缓冲区)。如

::sky::SkyKeyframer::SetStarBrightness StarBrightness ::sky::SkyKeyframer::SetMaxStarMagnitude MaxStarMagnitudeendlink.

太阳

太阳画在星星之后。

行星

行星(例如月亮)由BaseSkyRenderer绘制。需要提供行星贴图位置图,着色器将太阳方向作为参数 - 用于点亮行星(例如月亮的相位)。 像恒星一样,行星通常被绘制到最高分辨率的缓冲区,以确保它们具有清晰的轮廓。

天空、大气效果

天空和大气被绘制成一个体积贴图,其中x和y轴是屏幕坐标,z轴是距离。最后的合成步骤将天空,大气和云带到当前的rendertar get。

云彩

云通常被绘制到一对较低分辨率的缓冲区。 :: clouds :: BaseCloudRenderer BaseCloudRenderer绘制的云卷贴图是最新的,并以卷为单位绘制云。

性能

渲染性能主要取决于绘制像素的数量以及光线投影步骤(或云切片)的数量。 计算性能(主要是云闪)在很大程度上取决于网格大小 - 网格越大,点亮云关键帧点的时间就越多。

降低天空渲染的云彩部分很平常,通过以下控制:

::clouds::CloudRenderingOptions::MaximumCubemapResolution MaximumCubemapResolution the ::clouds::CloudRen

deringOptions CloudRenderingOptionsendlink。

雨和雪

::clouds::CloudKeyframe::precipitation precipitation用于控制一定时间内的降雨量或降雪量,而::clouds::CloudKeyframer PrecipitationThresholdKm用于设置降雨所需的云的厚度(将其设置为0允许即使最小的云产生雨)。在雪和雨之间切换使用::clouds::CloudKeyframe rain_to_snowendlink (0是雨,1是雪)。

每个云关键帧都有一个::clouds::PrecipitationRegion PrecipitationRegionendlink, 它定义了降水的局部区域,如果它不是关键帧的全球范围。用于降水的颗粒的数量可以通过::clouds::BasePrecipitationRenderer MaxParticles来改变。

由 simul::clouds::BasePrecipitationRenderer生成的类别是用来画雨或雪的颗粒的,而 ::clouds::PrecipitationRegion是云渲染器绘制的雨纹效果。这一类别有一个属性 “UseSimulationTime”, 这决定了雨雪速度是基于模拟的天的时间,或者是以秒为单位的实时。

着色器

着色器在平台目录的着色器子目录中作为源文件提供。

Plugin Rendering Interface

将trueSKY连接到游戏或模拟引擎的一种方法是使用Plugin Rendering Interface。动态链接库或称为PluginRenderInterface.dll(或类似)的DLL从游戏引擎中动态加载。 导出的函数用于为每

个视图执行每帧的天空渲染。

Sky Sequencer

Sky Sequencer是艺术家,技术人员,关卡设计师和任务计划人员的工具。它还可以帮助程序员了解True Sky的天空,云彩和时间系统的运作情况。

要启动Sky Sequencer,请转到Start Menu/All Programs/Simu

l/Sky Sequencer/Sky Sequencer。

责任编辑:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值