本发明涉及三维建模的,尤其涉及一种基于分布式光伏出力动态绘制星光图的算法。
背景技术:
1、三维建模系统的主要功能是提供三维建模的环境和工具,帮助人们实现物体的三维数字模型,具体是在计算机上构造三维形体的过程。
2、在数据可视化系统中,涉及到在三维地图中展示光伏发电、火力发电、风力发电、水力发电等绿色电力时,建模师会在3dmax或玛雅中建造模型然后根据地图示例在三维地图中摆放,此过程不仅繁琐、耗时较长而且如果示例图不准确还需要二次返工。
技术实现思路
1、本部分的目的在于概述本发明的实施例的一些方面以及简要介绍一些较佳实施例。在本部分以及本申请的说明书摘要和发明名称中可能会做些简化或省略以避免使本部分、说明书摘要和发明名称的目的模糊,而这种简化或省略不能用于限制本发明的范围。
2、鉴于上述现有一种基于分布式光伏出力动态绘制星光图的算法存在的问题,提出了本发明。
3、为解决上述技术问题,本发明提供如下技术方案:
4、一种基于分布式光伏出力动态绘制星光图的算法,包括以下步骤:
5、步骤一:获取数据创建模型对象,具体方式为:
6、s1:读取配置文件、本地数据库或者接口请求的方式获取模型本身固定的json数据;
7、s2:将获取的数据序列化成对象并进行存储;
8、s3:针对存储的对象创建对象池容器,对不同层级的模型根据模型标签进行归纳创建后存放在对象池容器中,对象池容器的对象调用方法为:当外部需要某个对象,去对象池容器中调取;判断当前对象池容器中有没有该对象,如果存在则将对象提供出去如果不存在则通过对象工厂创建对应新的对象然后提供出去;最后在每次对象使用完归还给对象池容器,用于下次直接使用;
9、步骤二:将所述步骤一中对象池容器中的模型基于在unity引擎中进行合并网格和材质操作;
10、步骤三:进行经纬度数据与世界坐标系以及屏幕坐标系的转化;
11、步骤四:根据转化后的坐标系数据,创建并渲染三维模型。
12、作为本发明所述一种基于分布式光伏出力动态绘制星光图的算法的一种优选方案,其中:所述步骤二中进行合并网格和材质操作的具体方法为:
13、s1:首先需要将模型上的材质和装饰材质上的贴图进行剥离,遍历所有材质,将贴图信息存储到数组里;
14、s2:创建新材质并赋予纹理从而实现材质的合并;
15、s3:最后进行合并网格和材质打包。
16、作为本发明所述一种基于分布式光伏出力动态绘制星光图的算法的一种优选方案,其中:所述步骤三的经纬度数据与世界坐标系以及屏幕坐标系的转化具体方式为:
17、s1:根据获取的经纬度坐标数据与引擎中世界坐标系的转换,世界坐标转换成原点位于地球中心的经纬度坐标即(α,β,r)→(x,y,z),转换关系为:
18、;
19、相应的,经纬度坐标转换成世界坐标坐标即(x,y,z)→(α,β,r),转换关系为:
20、;
21、s2:根据屏幕坐标到世界坐标的映射公式,将世界坐标转换成屏幕坐标,设屏幕坐标是(a,b),世界坐标是(α,β,r),r为球体半径,即为在世界坐标系下地球模型相应的半径,则两者转化关系为:
22、α=r*cos(a)*cos(b)
23、β=r*sin(a)*cos(b)
24、r=r*sin(b)。
25、作为本发明所述一种基于分布式光伏出力动态绘制星光图的算法的一种优选方案,其中:所述步骤四中,创建三维模型的具体方式为:
26、根据步骤三拿到模型在引擎中的世界坐标后,从步骤一的对象池容器中根据设备类型找到对应模型创建即可完成创建。
27、作为本发明所述一种基于分布式光伏出力动态绘制星光图的算法的一种优选方案,其中:所述步骤四中,渲染三维模型的具体方式为:
28、通过在unity引擎中动态添加lod组件,并给lod组件设置不同精度的模型,根据摄像机距离某个对象远近,软件自动呈现最清晰层的画面,提升渲染效率;
29、在unity渲染过程中,立方体纹理是环境映射的一种实现方法环境映射可以模拟物体周围的环境从而是物体反射出周围的环境,我们介绍一下常用到的折射和反射,而对于折射,要根据折射定律计算出折射光线,即 n1sina = n2sinb, 其中n1,n2是两个界面的折射率,a是入射角,b是折射角;
30、对于反射会菲涅耳现象:当光线照射到物体表面上时,一部分发生反射,一部分进入物体内部,发生折射或散射。被反射的光和入射光之间存在一定的比率关系:f(v,n)=f0+(1-f0)(1-dot(v*n))∧5;
31、其中, f(v,n)表示反射光的强度,v是视线方向,n是表面法线,f0是一个反射系数,用于控制反射的强度。
32、本发明的有益效果:
33、本发明通过上述步骤即可实现自动创建模型并匹配到相应位置,当建模师再次修改模型位置或者模型类型时候只需要修改步骤一中提到的配置文件、本地数据库或者接口中修改原始数据即可,无需美术师在地图上进行二次修改。
34、本发明通过本地配置或接口的形式获取数据,软件完成部署后便于维护,避免了因调整模型位置或数量而去打包带来的繁琐步骤,节约了时间成本。
1.一种基于分布式光伏出力动态绘制星光图的算法,其特征在于,包括以下步骤:
2.根据权利要求1所述的一种基于分布式光伏出力动态绘制星光图的算法,其特征在于:所述步骤二中进行合并网格和材质操作的具体方法为:
3.根据权利要求2所述的一种基于分布式光伏出力动态绘制星光图的算法,其特征在于:所述步骤三的经纬度数据与世界坐标系以及屏幕坐标系的转化具体方式为:
4.根据权利要求1-3任一项所述的一种基于分布式光伏出力动态绘制星光图的算法,其特征在于:所述步骤四中,创建三维模型的具体方式为:
5.根据权利要求1所述的一种基于分布式光伏出力动态绘制星光图的算法,其特征在于:所述步骤四中,渲染三维模型的具体方式为: