CN103337093A - 一种基于Unity3D着色器实现三维机房实时温场效果的方法 - Google Patents

一种基于Unity3D着色器实现三维机房实时温场效果的方法 Download PDF

Info

Publication number
CN103337093A
CN103337093A CN2013102261891A CN201310226189A CN103337093A CN 103337093 A CN103337093 A CN 103337093A CN 2013102261891 A CN2013102261891 A CN 2013102261891A CN 201310226189 A CN201310226189 A CN 201310226189A CN 103337093 A CN103337093 A CN 103337093A
Authority
CN
China
Prior art keywords
temperature
unity3d
tinter
machine room
dimensional machine
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN2013102261891A
Other languages
English (en)
Other versions
CN103337093B (zh
Inventor
杨佩
朱力鹏
王刚
胡斌
彭林
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
State Grid Corp of China SGCC
China Electric Power Research Institute Co Ltd CEPRI
Global Energy Interconnection Research Institute
Original Assignee
State Grid Corp of China SGCC
China Electric Power Research Institute Co Ltd CEPRI
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by State Grid Corp of China SGCC, China Electric Power Research Institute Co Ltd CEPRI filed Critical State Grid Corp of China SGCC
Priority to CN201310226189.1A priority Critical patent/CN103337093B/zh
Publication of CN103337093A publication Critical patent/CN103337093A/zh
Application granted granted Critical
Publication of CN103337093B publication Critical patent/CN103337093B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

本发明提供一种基于Unity3D着色器实现三维机房实时温场效果的方法,包括以下步骤:编写Unity3D着色器;建立与三维机房地板相同的平面模型;编写脚本实时修改Unity3D着色器的属性;对场景进行实时渲染,生成温场效果。本发明根据指定的相关点的位置及温度,渲染生成整个机房温场图,基于Unity3D着色器实现三维机房实时温场效果,方便灵活,便于扩展,生动形象。

Description

一种基于Unity3D着色器实现三维机房实时温场效果的方法
技术领域
本发明属于电力信息可视化技术领域,具体涉及一种基于Unity3D着色器实现三维机房实时温场效果的方法。
背景技术
随着电力系统信息化的大力推进,三维可视化逐渐体现出它相对于二维展现的优势,如更加直观、形象,对全局的把握更加精准到位。三维可视化技术也日趋成熟,可供我们选择的工具有很多,我们所熟知的如3D Max,Maya,Blender等,这些软件的重点在于模型的建立,当然在场景制作、动画制作方面有同样有着丰富的功能。而Unity3D是一款专门用来制作游戏场景、建筑设计、动画展示的软件,它在模型方面只内嵌了最基本的立体体、球体、平面、圆柱体等,实际应用中需要从外界导入制作好的模型。Unity3D的强项在于场景的制作,对于三维机房这样需要有各种交互,场景动画、数据展示的应用来说,正是其所擅长之处。
在Unity3d里,所有的图形绘制都必须通过Shader,即着色器。着色器大大提高了Unity3D的扩展性,对于复杂、具体的应用,我们可以开发出自己想要的着色器,达到想要的效果。Shader按管线分类一般分为固定渲染管线与可编程渲染管线:
1)固定渲染管线——这是标准的几何&光照(Transforming&Lighting)管线,功能是固定的,它控制着世界、视、投影变换及固定光照控制和纹理混合。T&L管线可以被渲染状态控制,矩阵,光照和采制参数。功能比较有限。基本所有的显卡都能正常运行。
2)可编程渲染管线——对渲染管线中的顶点运算和像素运算分别进行编程处理,而无须象固定渲染管线那样套用一些固定函数,取代设置参数来控制管线。
温场效果(温度云图)在三维机房展示中,能够形象直观地表现出机房内各个区域的温度高低和对比。目前常见的技术手段是将温度数据渲染成二维图片作为贴图应用到三维场景当中,但这样的缺点是需要预先生成好贴图,无法作到动态效果。
发明内容
为了克服上述现有技术的不足,本发明提供一种基于Unity3D着色器实现三维机房实时温场效果的方法,根据指定的相关点的位置及温度,渲染生成整个机房温场图,基于Unity3D着色器实现三维机房实时温场效果,方便灵活,便于扩展,生动形象。
为了实现上述发明目的,本发明采取如下技术方案:
提供一种基于Unity3D着色器实现三维机房实时温场效果的方法,所述方法包括以下步骤:
步骤1:编写Unity3D着色器;
步骤2:建立与三维机房地板相同的平面模型;
步骤3:编写脚本实时修改Unity3D着色器的属性;
步骤4:对场景进行实时渲染,生成温场效果。
所述步骤1中,用户通过添加参数解析函数、UV计算函数和颜色映射函数,接收外部参数,并通过参数解析函数对外部参数进行解析,最后计算各UV点的温度值,并通过颜色值展现计算出的温度值,即完成Unity3D着色器的编写。
对外部参数进行解析过程为:接收参数字符串,内容为多个温度点,每个温度点由分隔符分号隔开,温度点包含的数据有坐标和温度值,由逗号隔开,Unity3D着色器对参数进行处理,得出温度点的数量、位置及温度值,用以计算各UV点的温度值。
根据各UV点与给定温度点的距离,通过二维线性插值法计算各UV点的温度值;
d 1 = ( x 1 - x uv ) 2 + ( y 1 - y uv ) 2 2 - - - ( 1 )
d 2 = ( x 2 - x uv ) 2 + ( y 2 - y uv ) 2 2 - - - ( 2 )
d 3 = ( x 3 - x uv ) 2 + ( y 3 - y uv ) 2 2 - - - ( 3 )
d n = ( x n - x uv ) 2 + ( y n - y uv ) 2 2 - - - ( 4 )
T uv = T 1 / d 1 + T 2 / d 2 + T 3 / d 3 + · · · + T n / d n 1 / d 1 + 1 / d 2 + 1 / d 3 + · · · + 1 / d n - - - ( 5 )
其中,xuv和yuv分别为当前计算的UV点的横坐标和纵坐标;x1,x2,x3…xn、y1以及y2,y3…yn分别为给定温度点的横坐标和纵坐标;d1,d2,d3…dn为通过计算得出的每个UV点与各给定温度点的距离;T1,T2,T3…Tn为给定温度点的温度值;Tuv为根据UV点与各给定温度点的距离以及给定温度点的温度值计算出的UV点的温度值。
所述步骤2中,建立与三维机房地板形状与大小均相同的平面模型,将所述平面模型与机三维机房模型重合,使其与三维机房模型的地板平行并位于地板之上,将平面模型的材质的着色器属性修改为之前编写的Unity3D着色器。
所述步骤3中,编写脚本,接收参数字符串,内容为数个给定温度点,每个给定温度点由分隔符隔开,所述分隔符为分号;获取给定温度点的信息,给定温度点包括坐标和温度值,坐标和温度值分别由逗号隔开;通过gameObject.render.material获取平面模型的材质对象,将接收到的字符串传递进Unity3D着色器,Unity3D着色器在运行时对参数进行处理和相应的计算。
步骤4中,编写JS或C#脚本,获取动态温度数据,并传递给所述Unity3D着色器,计算机对场景进行实时渲染,渲染过程中计算机根据着色器进行各UV点的温度数据的计算与映射,最终生成温场效果。
与现有技术相比,本发明的有益效果在于:
1.基于Unity3D着色器,灵活方便,扩展性强,能够针对不同的应用场景,对算法稍加修改,即可以实现不同的效果。如以某一点为中心一圈圈地变化、以某条线为基准平行变化等等。
2.本方法以在实际运行中获取温度信息进而传递给着色器,实现了实时渲染,相比以往通过二维图片进行贴图,具有实时、真实、形象生动等优点。
附图说明
图1是本发明实施例中Unity3D着色器工作原理图;
图2是本发明实施例中温场运行流程图。
具体实施方式
下面结合附图对本发明作进一步详细说明。
提供一种基于Unity3D着色器实现三维机房实时温场效果的方法,Unity3D着色器为顶点与碎花着色器,该方法包括以下步骤:
步骤1:编写顶点与碎花着色器;
步骤2:建立与三维机房地板相同的平面模型;
步骤3:编写脚本实时修改顶点与碎花着色器的属性;
步骤4:对场景进行实时渲染,生成温场效果。
所述步骤1中,用户通过添加参数解析函数、UV计算函数和颜色映射函数,接收外部参数,并通过参数解析函数对外部参数进行解析,最后计算各UV点的温度值,并通过颜色值展现计算出的温度值,即完成顶点与碎花着色器的编写。
对外部参数进行解析过程为:接收参数字符串,内容为多个温度点,每个温度点由分隔符分号隔开,温度点包含的数据有坐标和温度值,由逗号隔开,顶点与碎花着色器对参数进行处理,得出温度点的数量、位置及温度值,用以计算各UV点的温度值。
根据各UV点与给定温度点的距离,通过二维线性插值法计算各UV点的温度值;
d 1 = ( x 1 - x uv ) 2 + ( y 1 - y uv ) 2 2 - - - ( 1 )
d 2 = ( x 2 - x uv ) 2 + ( y 2 - y uv ) 2 2 - - - ( 2 )
d 3 = ( x 3 - x uv ) 2 + ( y 3 - y uv ) 2 2 - - - ( 3 )
d n = ( x n - x uv ) 2 + ( y n - y uv ) 2 2 - - - ( 4 )
T uv = T 1 / d 1 + T 2 / d 2 + T 3 / d 3 + · · · + T n / d n 1 / d 1 + 1 / d 2 + 1 / d 3 + · · · + 1 / d n - - - ( 5 )
其中,xuv和yuv分别为当前计算的UV点的横坐标和纵坐标;x1,x2,x3…xn、y1以及y2,y3…yn分别为给定温度点的横坐标和纵坐标;d1,d2,d3…dn为通过计算得出的每个UV点与各给定温度点的距离;T1,T2,T3…Tn为给定温度点的温度值;Tuv为根据UV点与各给定温度点的距离以及给定温度点的温度值计算出的UV点的温度值。
所述步骤2中,建立与三维机房地板形状与大小均相同的平面模型,将所述平面模型与机三维机房模型重合,使其与三维机房模型的地板平行并位于地板之上,将平面模型的材质的着色器属性修改为之前编写的顶点与碎花着色器。
所述步骤3中,编写脚本,接收参数字符串,内容为数个给定温度点,每个给定温度点由分隔符隔开,所述分隔符为分号;获取给定温度点的信息,给定温度点包括坐标和温度值,坐标和温度值分别由逗号隔开;通过gameObject.render.material获取平面模型的材质对象,将接收到的字符串传递进顶点与碎花着色器,顶点与碎花着色器在运行时对参数进行处理和相应的计算。
步骤4中,编写JS或C#脚本,获取动态温度数据,并传递给顶点与碎花着色器,计算机对场景进行实时渲染,渲染过程中计算机根据着色器进行各UV点的温度数据的计算与映射,最终生成温场效果。
最后应当说明的是:以上实施例仅用以说明本发明的技术方案而非对其限制,尽管参照上述实施例对本发明进行了详细的说明,所属领域的普通技术人员应当理解:依然可以对本发明的具体实施方式进行修改或者等同替换,而未脱离本发明精神和范围的任何修改或者等同替换,其均应涵盖在本发明的权利要求范围当中。

Claims (7)

1.一种基于Unity3D着色器实现三维机房实时温场效果的方法,其特征在于:所述方法包括以下步骤:
步骤1:编写Unity3D着色器;
步骤2:建立与三维机房地板相同的平面模型;
步骤3:编写脚本实时修改Unity3D着色器的属性;
步骤4:对场景进行实时渲染,生成温场效果。
2.根据权利要求1所述的基于Unity3D着色器实现三维机房实时温场效果的方法,其特征在于:所述步骤1中,用户通过添加参数解析函数、UV计算函数和颜色映射函数,接收外部参数,并通过参数解析函数对外部参数进行解析,最后计算各UV点的温度值,并通过颜色值展现计算出的温度值,即完成Unity3D着色器的编写。
3.根据权利要求2所述的基于Unity3D着色器实现三维机房实时温场效果的方法,其特征在于:对外部参数进行解析过程为:接收参数字符串,内容为多个温度点,每个温度点由分隔符分号隔开,温度点包含的数据有坐标和温度值,由逗号隔开,Unity3D着色器对参数进行处理,得出温度点的数量、位置及温度值,用以计算各UV点的温度值。
4.根据权利要求2或3所述的基于Unity3D着色器实现三维机房实时温场效果的方法,其特征在于:根据各UV点与给定温度点的距离,通过二维线性插值法计算各UV点的温度值;
d 1 = ( x 1 - x uv ) 2 + ( y 1 - y uv ) 2 2 - - - ( 1 )
d 2 = ( x 2 - x uv ) 2 + ( y 2 - y uv ) 2 2 - - - ( 2 )
d 3 = ( x 3 - x uv ) 2 + ( y 3 - y uv ) 2 2 - - - ( 3 )
d n = ( x n - x uv ) 2 + ( y n - y uv ) 2 2 - - - ( 4 )
T uv = T 1 / d 1 + T 2 / d 2 + T 3 / d 3 + · · · + T n / d n 1 / d 1 + 1 / d 2 + 1 / d 3 + · · · + 1 / d n - - - ( 5 )
其中,xuv和yuv分别为当前计算的UV点的横坐标和纵坐标;x1,x2,x3…xn、y1以及y2,y3…yn分别为给定温度点的横坐标和纵坐标;d1,d2,d3…dn为通过计算得出的每个UV点与各给定温度点的距离;T1,T2,T3…Tn为给定温度点的温度值;Tuv为根据UV点与各给定温度点的距离以及给定温度点的温度值计算出的UV点的温度值。
5.根据权利要求1所述的基于Unity3D着色器实现三维机房实时温场效果的方法,其特征在于:所述步骤2中,建立与三维机房地板形状与大小均相同的平面模型,将所述平面模型与机三维机房模型重合,使其与三维机房模型的地板平行并位于地板之上,将平面模型的材质的着色器属性修改为之前编写的Unity3D着色器。
6.根据权利要求1所述的基于Unity3D着色器实现三维机房实时温场效果的方法,其特征在于:所述步骤3中,编写脚本,接收参数字符串,内容为数个给定温度点,每个给定温度点由分隔符隔开,所述分隔符为分号;获取给定温度点的信息,给定温度点包括坐标和温度值,坐标和温度值分别由逗号隔开;通过gameObject.render.material获取平面模型的材质对象,将接收到的字符串传递进Unity3D着色器,Unity3D着色器在运行时对参数进行处理和相应的计算。
7.根据权利要求1所述的基于Unity3D着色器实现三维机房实时温场效果的方法,其特征在于:步骤4中,编写JS或C#脚本,获取动态温度数据,并传递给所述Unity3D着色器,计算机对场景进行实时渲染,渲染过程中计算机根据着色器进行各UV点的温度数据的计算与映射,最终生成温场效果。
CN201310226189.1A 2013-06-07 2013-06-07 一种基于Unity3D着色器实现三维机房实时温场效果的方法 Active CN103337093B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201310226189.1A CN103337093B (zh) 2013-06-07 2013-06-07 一种基于Unity3D着色器实现三维机房实时温场效果的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201310226189.1A CN103337093B (zh) 2013-06-07 2013-06-07 一种基于Unity3D着色器实现三维机房实时温场效果的方法

Publications (2)

Publication Number Publication Date
CN103337093A true CN103337093A (zh) 2013-10-02
CN103337093B CN103337093B (zh) 2016-05-25

Family

ID=49245241

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201310226189.1A Active CN103337093B (zh) 2013-06-07 2013-06-07 一种基于Unity3D着色器实现三维机房实时温场效果的方法

Country Status (1)

Country Link
CN (1) CN103337093B (zh)

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104869323A (zh) * 2015-05-18 2015-08-26 成都平行视野科技有限公司 一种基于gpu的模块化实时视频与图像处理方法
CN104966312A (zh) * 2014-06-10 2015-10-07 腾讯科技(深圳)有限公司 一种3d模型的渲染方法、装置及终端设备
CN105825471A (zh) * 2016-03-13 2016-08-03 华东理工大学 一种基于Unity 3D的三维体表面重构与渲染方法
CN106709981A (zh) * 2016-12-29 2017-05-24 天津瀚海星云数字科技有限公司 一种用于U3D中UI Sprite图片的局部光照方法及系统
CN106952329A (zh) * 2017-02-21 2017-07-14 长沙趣动文化科技有限公司 基于Unity3D与NGUI的粒子特效编辑方法及系统
CN106971419A (zh) * 2016-01-14 2017-07-21 深圳中兴力维技术有限公司 三维温度云图的渲染方法及装置
CN108492381A (zh) * 2018-03-30 2018-09-04 三盟科技股份有限公司 一种将实物颜色转换成3d模型贴图的方法及系统
CN109377541A (zh) * 2018-08-22 2019-02-22 山东捷瑞数字科技股份有限公司 一种基于着色器实时表现气象变化的虚拟仿真系统和方法
CN109591297A (zh) * 2018-12-21 2019-04-09 山东捷瑞数字科技股份有限公司 一种自定义三维模型外观的3d打印方法及系统
CN107230245B (zh) * 2016-03-25 2022-02-18 北京神州泰岳软件股份有限公司 一种基于Unity3D着色器显示机房地面温场分布的方法和装置

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102937799A (zh) * 2012-09-10 2013-02-20 山东省计算中心 一种数据中心节能系统及方法

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102937799A (zh) * 2012-09-10 2013-02-20 山东省计算中心 一种数据中心节能系统及方法

Cited By (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104966312A (zh) * 2014-06-10 2015-10-07 腾讯科技(深圳)有限公司 一种3d模型的渲染方法、装置及终端设备
US9916676B2 (en) 2014-06-10 2018-03-13 Tencent Technology (Shenzhen) Company Limited 3D model rendering method and apparatus and terminal device
CN104869323A (zh) * 2015-05-18 2015-08-26 成都平行视野科技有限公司 一种基于gpu的模块化实时视频与图像处理方法
CN106971419B (zh) * 2016-01-14 2020-04-10 深圳力维智联技术有限公司 三维温度云图的渲染方法及装置
CN106971419A (zh) * 2016-01-14 2017-07-21 深圳中兴力维技术有限公司 三维温度云图的渲染方法及装置
CN105825471A (zh) * 2016-03-13 2016-08-03 华东理工大学 一种基于Unity 3D的三维体表面重构与渲染方法
CN107230245B (zh) * 2016-03-25 2022-02-18 北京神州泰岳软件股份有限公司 一种基于Unity3D着色器显示机房地面温场分布的方法和装置
CN106709981A (zh) * 2016-12-29 2017-05-24 天津瀚海星云数字科技有限公司 一种用于U3D中UI Sprite图片的局部光照方法及系统
CN106952329A (zh) * 2017-02-21 2017-07-14 长沙趣动文化科技有限公司 基于Unity3D与NGUI的粒子特效编辑方法及系统
CN108492381A (zh) * 2018-03-30 2018-09-04 三盟科技股份有限公司 一种将实物颜色转换成3d模型贴图的方法及系统
CN109377541A (zh) * 2018-08-22 2019-02-22 山东捷瑞数字科技股份有限公司 一种基于着色器实时表现气象变化的虚拟仿真系统和方法
CN109377541B (zh) * 2018-08-22 2021-08-17 山东捷瑞数字科技股份有限公司 一种基于着色器实时表现气象变化的虚拟仿真系统和方法
CN109591297A (zh) * 2018-12-21 2019-04-09 山东捷瑞数字科技股份有限公司 一种自定义三维模型外观的3d打印方法及系统
CN109591297B (zh) * 2018-12-21 2021-01-08 山东捷瑞数字科技股份有限公司 一种自定义三维模型外观的3d打印方法及系统

Also Published As

Publication number Publication date
CN103337093B (zh) 2016-05-25

Similar Documents

Publication Publication Date Title
CN103337093A (zh) 一种基于Unity3D着色器实现三维机房实时温场效果的方法
CN101923462A (zh) 一种基于FlashVR的三维微型场景网络发布引擎
CN107369205B (zh) 一种移动终端城市二三维联动显示方法
CN107358643A (zh) 图像处理方法、装置、电子设备及存储介质
CN103886631A (zh) 基于移动设备的三维虚拟室内展示系统
CN103020340A (zh) 基于web的3D家居设计系统
CN107341853A (zh) 超大虚拟场景和动态摄屏的虚实融合方法及系统
CN111476882B (zh) 一种面向浏览器的机器人虚拟图形建模方法
CN109448137A (zh) 交互方法、交互装置、电子设备及存储介质
CN106952329A (zh) 基于Unity3D与NGUI的粒子特效编辑方法及系统
CN101477701A (zh) 面向AutoCAD和3DS MAX软件的植入式真三维立体渲染方法
CN104392479A (zh) 一种利用灯光索引号对像素进行光照着色的方法
CN102819855A (zh) 二维图像的生成方法及装置
CN105184843B (zh) 一种基于OpenSceneGraph的三维动画制作方法
CN107102991A (zh) 一种三维gis系统中的杆塔参数化建模方法
CN106980378A (zh) 虚拟显示方法和系统
CN106846474B (zh) 基于时序特征和粒子系统的WebGIS时空过程模拟方法
Gimeno et al. Multiuser augmented reality system for indoor exhibitions
CN113648652A (zh) 对象渲染方法和装置、存储介质及电子设备
CN109243217A (zh) 一种可时移的农业负荷电子沙盘设计方法
CN105574913A (zh) 一种基于虚拟现实技术的角色动画创建系统
Jeremias et al. Shadertoy: Learn to create everything in a fragment shader
Zhang et al. Simulation of snow effects in visual simulation of virtual campus based on OSG
CN103400407B (zh) 一种资源展示的方法、装置与终端
CN111523161A (zh) 一种基于BIM和Unity3d的3D物联网可视化人机交互方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C41 Transfer of patent application or patent right or utility model
TA01 Transfer of patent application right

Effective date of registration: 20160425

Address after: 100031 Xicheng District West Chang'an Avenue, No. 86, Beijing

Applicant after: State Grid Corporation of China

Applicant after: China Electric Power Research Institute

Applicant after: State Grid Smart Grid Institute

Address before: 100031 Xicheng District West Chang'an Avenue, No. 86, Beijing

Applicant before: State Grid Corporation of China

Applicant before: China Electric Power Research Institute

C14 Grant of patent or utility model
GR01 Patent grant
C56 Change in the name or address of the patentee
CP01 Change in the name or title of a patent holder

Address after: 100031 Xicheng District West Chang'an Avenue, No. 86, Beijing

Patentee after: State Grid Corporation of China

Patentee after: China Electric Power Research Institute

Patentee after: GLOBAL ENERGY INTERCONNECTION RESEARCH INSTITUTE

Address before: 100031 Xicheng District West Chang'an Avenue, No. 86, Beijing

Patentee before: State Grid Corporation of China

Patentee before: China Electric Power Research Institute

Patentee before: State Grid Smart Grid Institute