本申请涉及图像处理技术领域,特别是涉及一种场景实现方法、装置、计算机设备和存储介质。
背景技术:
全景图通过广角的表现手段以及绘画、相片、视频、三维模型等形式,尽可能多表现出周围的环境。全景图片,即通过对专业相机捕捉整个场景的图像信息或者使用建模软件渲染过后的图片,使用软件进行图片拼合,并用专门的播放器进行播放,以形成全景场景,用于虚拟现实浏览,把二维的平面图模拟成真实的三维空间,呈现给用户。
在传统的技术中,为了实现全景场景,通常需要专业的设备获取原始的全景素材,例如单反、鱼眼镜头、三脚架及云台的组合设备或特定的全景照相机;在全景素材获取之后,仍需要专业的人员通过专业软件对全景素材进行拼接并映射到球形空间中。
可以看出,传统的全景场景实现方案中,不仅全景素材对拍摄人员的专业要求高,需要昂贵的拍摄设备,而且难以处理,使得全景场景的构建门槛过高,普通用户根本无法快速实现全景场景。
技术实现要素:
基于此,有必要针对上述技术问题,提供一种简易快捷的场景实现方法、装置、计算机设备和存储介质。
第一方面,本申请提供一种场景实现方法,所述方法包括:
根据首尾连贯的平面场景图和预设的材料对象构建材料集合;
将预先创建的圆柱体和所述材料集合加载至网格对象中,得到新的网格对象;所述纹理图片对象为所述圆柱体的内壁贴图,所述预设的材料对象分别为所述圆柱体的顶面和底面;
将所述新的网格对象加载至预先创建的舞台场景中,并对所述舞台场景进行渲染后生成场景画面。
在本申请的一个实施例中,所述方法还包括:
获取相机初始化参数,所述相机初始化参数包括可视角度,高宽比,近端距离及远端距离;
根据所述相机初始化参数创建相机;
确定所述相机的位置,并调整所述相机的角度;所述相机的角度用于调整所述舞台场景的展示角度。
在本申请的一个实施例中,所述方法还包括:
获取预设的构建参数,所述构建参数包括顶面半径、底面半径、圆柱体高度、顶面与底面的分段数、侧面的分段数、顶面底面布尔值;
根据所述构建参数创建所述圆柱体。
在本申请的一个实施例中,所述根据所述构建参数创建所述圆柱体之后,还包括:
根据所述舞台场景的尺寸,对所述圆柱体的大小进行缩放,以使所述圆柱体的尺寸与所述预先创建的舞台场景的尺寸相匹配。
在本申请的一个实施例中,所述根据首尾连贯的平面场景图和预设的材料对象构建材料集合,包括:
根据首尾连贯的平面场景图创建纹理图片对象;
根据所述纹理图片对象和所述预设的材料对象构建材料集合;所述预设的材料对象包括两个透明平面图。
在本申请的一个实施例中,所述根据首尾连贯的平面场景图创建纹理图片对象,还包括:
获取所述首尾连贯的平面场景图的图片地址;
根据所述图片地址加载所述首尾连贯的平面场景图以形成所述纹理图片对象;所述纹理图片对象的格式为多级渐远纹理格式。
在本申请的一个实施例中,所述对所述舞台场景进行渲染后生成场景画面,包括:
获取渲染器初始化参数,所述渲染器初始化参数包括反锯齿参数,着色精度参数,纹理精度参数;
根据所述渲染器初始化参数及渲染函数对所述舞台场景进行渲染,生成全景场景画面。
第二方面,本申请提供一种场景实现装置,所述装置包括:
材料集合构建模块,用于根据首尾连贯的平面场景图和预设的材料对象构建材料集合;
网格对象生成模块,将预先创建的圆柱体和所述材料集合加载至网格对象中,得到新的网格对象;所述文理图片对象为所述圆柱体的内壁贴图,所述预设的材料对象分别为所述圆柱体的顶面和底面;
渲染模块,用于将所述新的网格对象加载至预先创建的舞台场景中,并对所述舞台场景进行渲染后生成场景画面。
在本申请的一个实施例中,所述材料集合构建模块,具体用于:
根据首尾连贯的平面场景图创建纹理图片对象;
根据纹理图片对象和预设的材料对象构建材料集合;预设的材料对象包括两个透明平面图。
在本申请的一个实施例中,所述材料集合构建模块,还具体用于:
获取首尾连贯的平面场景图的图片地址;
根据图片地址加载首尾连贯的平面场景图以形成纹理图片对象;纹理图片对象的格式为多级渐远纹理格式。
在本申请的一个实施例中,所述渲染模块,具体用于:
获取渲染器初始化参数,渲染器初始化参数包括反锯齿参数,着色精度参数,纹理精度参数;
根据渲染器初始化参数及渲染函数对舞台场景进行渲染,生成全景场景画面。
在本申请的一个实施例中,所述装置还可以包括:相机构建模块和圆柱体构建模块。其中:
所述相机构建模块,具体用于:
获取相机初始化参数,相机初始化参数包括可视角度,高宽比,近端距离及远端距离;
根据相机初始化参数创建相机;
确定相机的位置,并调整相机的角度;相机的角度用于调整舞台场景的展示角度。
所述圆柱体构建模块,具体用于:
获取预设的构建参数,构建参数包括顶面半径、底面半径、圆柱体高度、顶面与底面的分段数、侧面的分段数、顶面底面布尔值;
根据构建参数创建圆柱体。
在本申请的一个实施例在,所示圆柱体构建模块,还具体用于:
根据舞台场景的尺寸,对圆柱体的大小进行缩放,以使圆柱体的尺寸与预先创建的舞台场景的尺寸相匹配。
第三方面,本申请提供一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现以下步骤:
根据首尾连贯的平面场景图和预设的材料对象构建材料集合;
将预先创建的圆柱体和所述材料集合加载至网格对象中,得到新的网格对象;所述纹理图片对象为所述圆柱体的内壁贴图,所述预设的材料对象分别为所述圆柱体的顶面和底面;
将所述新的网格对象加载至预先创建的舞台场景中,并对所述舞台场景进行渲染后生成场景画面。
第四方面,本申请提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现以下步骤:
根据首尾连贯的平面场景图和预设的材料对象构建材料集合;
将预先创建的圆柱体和所述材料集合加载至网格对象中,得到新的网格对象;所述纹理图片对象为所述圆柱体的内壁贴图,所述预设的材料对象分别为所述圆柱体的顶面和底面;
将所述新的网格对象加载至预先创建的舞台场景中,并对所述舞台场景进行渲染后生成场景画面。
上述场景实现方法、装置、计算机设备和存储介质,通过根据首尾连贯的平面场景图和预设的材料对象构建材料集合;将预先创建的圆柱体和材料集合加载至网格对象中,得到新的网格对象;首尾连贯的平面场景图为圆柱体的内壁贴图,预设的材料对象分别为圆柱体的顶面和底面;将新的网格对象加载至预先创建的舞台场景中,并对舞台场景进行渲染后生成场景画面。根据本申请实施例提供的场景实现方法,通过获取首尾连贯的平面场景图,将其作为圆柱体对象的内表面,通过渲染包含该圆柱体对象的舞台场景,即可得到全景场景画面,本申请提供的场景实现方法,无需专业设备拍摄的全景素材,也不需要专业软件对全景素材进行拼接并映射到球形空间中,在保证全景效果的同时,降低了全景场景的实现难度。
附图说明
图1为本申请实施例提供的场景实现方法的实施环境图;
图2为本申请实施例提供的一种场景实现方法的流程图;
图3a为本申请实施例提供的一种平面场景图示意图;
图3b为本申请实施例提供的一种柱状全景图;
图3c为本申请实施例提供的一种全景场景示意图;
图4为本申请实施例提供的另一种场景实现方法的流程图;
图5为本申请实施例提供的另一种场景实现方法的流程图;
图6为本申请实施例提供的另一种场景实现方法的流程图;
图7为本申请实施例提供的另一种场景实现方法的流程图;
图8为本申请实施例提供的另一种场景实现方法的流程图;
图9为本申请实施例提供的一种场景实现装置的框图;
图10为本申请实施例提供的另一种场景实现装置的框图;
图11为本申请实施例提供的一种计算机设备的框图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
本申请提供的场景实现方法,可以应用于如图1所示的应用环境中。其中,终端102与服务器104通过网络进行通信。其中,终端102可以但不限于是各种个人计算机、笔记本电脑、智能手机、平板电脑和便携式可穿戴设备,服务器104可以用独立的服务器或者是多个服务器组成的服务器集群来实现。其中,服务器104用于存储全景场景构建过程中的需要的图像素材及构建函数,每当用户通过终端102访问服务器104的全景场景时,服务器104将该图像素材及构建函数传输至终端102中,以使终端102生成全景场景并显示于对应的显示装置中。
请参考图2,其示出了本实施例提供的一种场景实现方法,以该方法应用于图1中的终端为例进行说明,包括以下步骤:
步骤202,根据首尾连贯的平面场景图和预设的材料对象构建材料集合。
在本申请的一个实施例中,当用户通过该终端访问服务器中的全景场景时,终端需要先获取该全景场景对应的材料集合。具体的,终端可以通过向服务器发送材料获取请求,以请求服务器发送该全景场景对应的材料。具体的,该全景场景对应的材料集合至少包括首尾连贯的平面场景图及材料对象。
在本申请的一个实施例中,该平面场景图与该全景场景相关联,可选的,对于每一个全景场景,服务器端均设置有一个对应的平面场景图,当终端访问其中一个全景场景时,服务器会将被访问的全景场景对应的平面场景图发送至终端;可选的,全景场景中设置有场景属性,服务器可以根据该全景场景的场景属性在平面场景素材库中筛选得到最适合该全景场景的平面场景图并发送至终端。例如,若该全景场景为城市场景,可以在平面场景素材库中查找街道类型的平面场景图,若该全景场景为户外场景,可以在平面场景素材库中查找森林、山水类型的平面场景图。
在本申请的一个实施例中,该平面场景图通常为矩形的平面图片,其中,该矩形平面图片由于具备首尾连贯的属性,因此,可以通过卷曲的方式将其中的一组对边连接起来,形成柱状的全景图。如图3a所示的平面场景图示意图,该图的左右两边是连贯的,因此,可以通过卷曲的方式将左右两边作为一组对边连接起来,形成图3b所示的柱状的全景图,可以看到,由于该图3a所示的平面场景图是左右连贯的,因此在图3b所示的柱状全景图中看不见首尾连接过程中的连接处。
步骤204,将预先创建的圆柱体和材料集合加载至网格对象中,得到新的网格对象;首尾连贯的平面场景图为圆柱体的内壁贴图,预设的材料对象分别为圆柱体的顶面和底面。
在本申请的一个实施例中,预先构建的圆柱体时不能被渲染的,即单独构建的圆柱体不能被渲染并显示于终端的显示设备中,因此,需要将该预先构建的圆柱体与相应的材料集合相结合,以形成新的网格对象,该新的网格对象可以被渲染并显示。具体的,可以通过网格对象的构建函数mesh(geometry,material)创建网格对象,其中,geometry表示网格对象的形状,material表示网格对象的材质。在本实施例中,geometry为预先构建的圆柱体,material为步骤202生成的材料集合。
具体的,预先构建的圆柱体具有侧面,顶面及底面,终端会将获取到的首尾连贯的平面场景图作为该侧面的纹理,并将该预设的材料对象分别为该顶面和底面的纹理。可选的,服务器可以在材料对象数据库中查找天空类别的材料并发送至该终端,以使终端将天空类别的材料作为该顶面对应的材料对象;服务器可以在材料对象数据库中查找地面类别的材料并发送至该终端,以使终端将地面类别的材料作为该底面对应的材料对象。
在本申请的一个实施例中,可以设置网格对象的属性以改变该网格对象在舞台场景中的位置及显示效果。具体的,该网格对象的属性可以包括,位置position,旋转rotation,比例scale,x轴平移translatex,y轴平移translatey,z轴平移translatez。
在进一步的实施例中,圆柱体各表面的side属性可以设置为“back”或“double”,以使该材料集合中各个材料对象可以显示于该圆柱体的内部,进而以此建立全景场景。如图3c所示的全景场景示意图中,其表示了圆柱体各表面的side属性设置为“back”时,将图3a所示的平面场景图作为圆柱体侧面时的全景场景。
步骤206,将新的网格对象加载至预先创建的舞台场景中,并对舞台场景进行渲染后生成场景画面。
在本申请的一个实施例中,对于该新的网格对象,通过将其加载至预先创建的舞台场景中,并利用舞台场景中设置的渲染器对舞台场景进行渲染后生成场景画面。
在本申请的一个实施例中,该舞台场景中还预先设置了光源对象,具体的,该光源对象可以设置为环境光源(ambientlight),以使灯光可以作用于所有物体上,但不会产生阴影效果。可以在提升全景场景可见性的同时,降低终端处理器的运行压力。
在本申请实施例提供的场景实现方法中,通过根据首尾连贯的平面场景图和预设的材料对象构建材料集合;将预先创建的圆柱体和材料集合加载至网格对象中,得到新的网格对象;首尾连贯的平面场景图为圆柱体的内壁贴图,预设的材料对象分别为圆柱体的顶面和底面;将新的网格对象加载至预先创建的舞台场景中,并对舞台场景进行渲染后生成场景画面。根据本申请实施例提供的场景实现方法,通过获取首尾连贯的平面场景图,将其作为圆柱体对象的内表面,通过渲染包含该圆柱体对象的舞台场景,即可得到全景场景画面,本申请提供的场景实现方法,无需专业设备拍摄的全景素材,也不需要专业软件对全景素材进行拼接并映射到球形空间中,在保证全景效果的同时,降低了全景场景的实现难度。
请参考图4,其示出了本实施例提供的另一种场景实现方法的流程图,该场景实现方法可以应用于上文所述的实施环境中的终端102中。在上述图2所示实施例的基础上,上述方法,还可以包括以下步骤:
步骤302,获取相机初始化参数,相机初始化参数包括可视角度,高宽比,近端距离及远端距离。
步骤304,根据相机初始化参数创建相机。
在本申请的一个实施例中,该相机可以为正交投影相机及透视投影相机中的一种,当该相机类型设置为正交投影相机时,不考虑物体对象和相机的距离,均按照统一的大小比例进行绘制;当该相机类型设置为透视投影相机时,随着物体对象和相机之间距离的增大,物体对象会越来越小。
在本申请的一个实施例中,选取透视投影相机作为该相机的相机类型,并且可以根据相机初始化参数及透视投影相机创建函数创建该相机。具体的,可以利用three.perspectivecamera函数创建相机,对于该函数,需要待创建相机对应的相机初始化参数,包括可视角度fov,高宽比aspect,近端距离near及远端距离far。其中,可视角度为相机在垂直方向上的张角;高宽比为相机水平方向和竖直方向长度的比值,等于width/height;近端距离为相机到观测区域的最近距离;远端距离为相机到观测区域的最远距离。
在进一步的实施例中,该高宽比为当前浏览器窗口的高度与宽度的比值,具体的,可以通过window.innerwidth获取浏览器窗口的宽度,通过window.innerheight获取浏览器窗口的高度。
步骤306,确定相机的位置,并调整相机的角度;相机的角度用于调整舞台场景的展示角度。
在本申请的一个实施例中,可以通过three.vector3函数设置相机的位置,通过scene.rotation.set函数设置相机的角度,通过该角度可以调整舞台场景的展示角度。较优的,可以将相机设置与原点位置。
在本申请实施例提供的场景实现方法中,通过获取相机初始化参数,相机初始化参数包括可视角度,高宽比,近端距离及远端距离;根据相机初始化参数创建相机;确定相机的位置,并调整相机的角度;相机的角度用于调整舞台场景的展示角度。根据本申请实施例提供的场景实现方法,可以根据预设的相机初始化参数创建相机,并通过调整相机的初始角度,控制舞台场景的初始展示角度,提升了全景场景的可控性。
请参考图5,其示出了本实施例提供的另一种场景实现方法的流程图,该场景实现方法可以应用于上文所述的实施环境中的终端102中。在上述图2或图4所示实施例的基础上,所述方法,还可以包括以下步骤:
步骤402,获取预设的构建参数,构建参数包括顶面半径、底面半径、圆柱体高度、顶面与底面的分段数、侧面的分段数、顶面底面布尔值。
步骤404,根据构建参数创建圆柱体。
在本申请的一个实施例中,根据预设的构建参数及圆柱体创建函数创建该圆柱体。具体的,可以利用three.cylindergeometry函数创建该圆柱体,对于该函数,需要待创建圆柱体对应的构建参数,包括:顶面半径radiustop,底面的半径radiusbottom,圆柱体高度height,顶面与底面的分段数radiussegments,侧面的分段数heightsegments,顶面底面布尔值openended。其中,顶面底面布尔值为布尔类型,缺省值为false,表示有顶面和底面;当顶面半径和底面半径设置为相同的值时,创建的是一个标准圆柱体。在一个具体的实施例中,该顶面半径与底面半径被设置为12,圆柱体高度被设置为11,顶面与底面的分段数与侧面的分段数被设置为72、顶面底面布尔值为false,表示创建一个顶面与底面半径都为12,高度为11的圆柱体。
为了使创建的圆柱体与舞台场景的尺寸相匹配,在上述步骤的基础上,还包括:
步骤406,根据舞台场景的尺寸,对圆柱体的大小进行缩放,以使圆柱体的尺寸与预先创建的舞台场景的尺寸相匹配。
在本申请的一个实施例中,终端会将当前浏览器窗口的尺寸作为舞台场景的尺寸,为了使创建的圆柱体可以正常的显示,因此,需要根据该舞台场景的尺寸对该创建好的圆柱体进行等比例缩放,缩放后的圆柱体的尺寸可以与预先创建的舞台场景的尺寸相匹配。
在本申请实施例提供的场景实现方法中,通过获取预设的构建参数,构建参数包括顶面半径、底面半径、圆柱体高度、顶面与底面的分段数、侧面的分段数、顶面底面布尔值;根据构建参数创建圆柱体;根据舞台场景的尺寸,对圆柱体的大小进行缩放,以使圆柱体的尺寸与预先创建的舞台场景的尺寸相匹配。根据本申请实施例提供的场景实现方法,通过预设的构建参数及构建参数创建圆柱体,并根据舞台场景的尺寸对生成的圆柱体大小进行缩放,可以得到与浏览器窗口更加匹配的圆柱体,使得最终得到的全景场景可以更加完美的呈现在浏览器中,即提升了全景场景的真实性。
请参考图6,其示出了本实施例提供的另一种场景实现方法的流程图,该场景实现方法可以应用于上文所述的实施环境中的终端102中。在上述图2或图4所示实施例的基础上,上述步骤202具体可以包括以下步骤:
步骤502,根据首尾连贯的平面场景图创建纹理图片对象。
步骤502,根据纹理图片对象和预设的材料对象构建材料集合;预设的材料对象包括两个透明平面图。
在本申请的一个实施例中,可以通过创建纹理数组来存储该纹理图片对象及预设的材料对象,以形成材料集合。该纹理数组包含一个由首尾连贯的平面场景图生成的纹理图片对象及包含两个透明平面图材料对象。具体的,可以通过three.meshbasicmaterial函数将该纹理图片对象保存至该纹理数组中;也可以通过three.meshbasicmaterial函数将transparent属性设置为true的两个透明平面图作为预设的材料对象保存至该纹理数组中。
在本申请的另一个实施例中,还可以通过three.meshbasicmaterial函数设置纹理图片对象的颜色,线框,线框宽度,线框线段端点,线框线段连接点,着色,顶点颜色及雾化属性。
在本申请实施例提供的场景实现方法中,通过根据首尾连贯的平面场景图创建纹理图片对象;根据纹理图片对象和预设的材料对象构建材料集合;预设的材料对象包括两个透明平面图。根据本申请实施例提供的场景实现方法,可以快速生成构建全景场景所需要的材料集合。
请参考图7,其示出了本实施例提供的另一种场景实现方法的流程图,该场景实现方法可以应用于上文所述的实施环境中的终端102中。在上述图6所示实施例的基础上,上述步骤502具体可以包括以下步骤:
步骤602,获取首尾连贯的平面场景图的图片地址。
在本申请的一个实施例中,终端可以向服务器请求并接收该首尾连贯的平面场景图的图片地址,该图片地址可以为网络地址、本地路径等。通过该图片地址可以获取该平面场景图。
步骤604,根据图片地址加载首尾连贯的平面场景图以形成纹理图片对象;纹理图片对象的格式为多级渐远纹理格式。
在本申请的一个实施例中,可以通过three.textureloader().load()函数加载该图片地址对应的平面场景图。
在本申请的一个实施例中,根据该平面场景图生成纹理图片对象时,激活该纹理图片对象的多级渐远纹理属性。具体的,可以将该纹理图片对象的多级渐远纹理属性generatemipmaps设置为true,以将其设置为多级渐远纹理格式。本实施例将generatemipmaps设置为true后,会事先生成一组缩小后的纹理贴图,当相机距离纹理比较远的时候自动用较小的纹理贴图。通常会多占用33%的存储空间,这个是典型的空间换取时间的用法
在进一步的实施例中,需要设置纹理缩小方法minfilter及纹理放大方法magfilter,具体的,可以将minfilter属性设置为three.lineafilter,将magfilter属性设置为three.linearfilter。由于本实施例中纹理变化得很频繁,所以我们需要设置简单高效的过滤器。即linearfilter线性过滤器。
在本申请实施例提供的场景实现方法中,通过获取首尾连贯的平面场景图的图片地址;根据图片地址加载首尾连贯的平面场景图以形成纹理图片对象;纹理图片对象的格式为多级渐远纹理格式。根据本申请实施例提供的场景实现方法,通过将纹理图片对象的格式设置为多级渐远纹理格式,可以预先生成一组缩小后的纹理贴图,在相机与纹理间距变化时,直接调取对应的纹理贴图,缩短了全景场景的响应时间,提升了用户的观看体验。
请参考图8,其示出了本实施例提供的另一种场景实现方法的流程图,该场景实现方法可以应用于上文所述的实施环境中的终端102中。在上述图2或图4所示实施例的基础上,上述步骤206具体可以包括以下步骤:
步骤702,获取渲染器初始化参数,渲染器初始化参数包括反锯齿参数,着色精度参数,纹理精度参数。
步骤704,根据渲染器初始化参数及渲染函数对舞台场景进行渲染,生成全景场景画面。
在本申请的一个实施例中,可以通过three.webglrenderer函数及渲染器初始化参数对舞台场景进行渲染,以生成全景场景画面。具体的,该渲染器初始化参数包括反锯齿参数antialias表示是否开启反锯齿;着色精度参数precision表示着色精度选择;纹理精度参数mipmap表示纹理精度选择。在一个具体的实施例中,可以将该渲染器初始化参数包括反锯齿参数antialias设置为false,表示不开启反锯齿;着色精度参数precision及纹理精度参数mipmap设置为highp,表示着色精度及纹理精度较高。
在本申请实施例提供的场景实现方法中,通过获取渲染器初始化参数,渲染器初始化参数包括反锯齿参数,着色精度参数,纹理精度参数;根据渲染器初始化参数及渲染函数对舞台场景进行渲染,生成全景场景画面。根据本申请实施例提供的场景实现方法,可以将得到的舞台场景按照渲染器初始化参数进行快速渲染,并得到全景场景。
应该理解的是,虽然上述流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,上述流程图中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
请参考图9,其示出了本申请实施例提供的一种场景实现装置900的框图。如图9所示,所述场景实现装置900可以包括:材料集合构建模块901、网格对象生成模块902及渲染模块903,其中:
所述材料集合构建模块901,用于根据首尾连贯的平面场景图和预设的材料对象构建材料集合;
所述网格对象生成模块902,将预先创建的圆柱体和材料集合加载至网格对象中,得到新的网格对象;文理图片对象为圆柱体的内壁贴图,预设的材料对象分别为圆柱体的顶面和底面;
所述渲染模块903,用于将新的网格对象加载至预先创建的舞台场景中,并对舞台场景进行渲染后生成场景画面。
在本申请的一个实施例中,所述材料集合构建模块901,具体用于:
根据首尾连贯的平面场景图创建纹理图片对象;
根据纹理图片对象和预设的材料对象构建材料集合;预设的材料对象包括两个透明平面图。
在本申请的一个实施例中,所述材料集合构建模块901,还具体用于:
获取首尾连贯的平面场景图的图片地址;
根据图片地址加载首尾连贯的平面场景图以形成纹理图片对象;纹理图片对象的格式为多级渐远纹理格式。
在本申请的一个实施例中,所述渲染模块903,具体用于:
获取渲染器初始化参数,渲染器初始化参数包括反锯齿参数,着色精度参数,纹理精度参数;
根据渲染器初始化参数及渲染函数对舞台场景进行渲染,生成全景场景画面。
请参考图10,其示出了本申请实施例提供的一种场景实现装置1000的框图。如图10所示,所述场景实现装置1000除了包括场景实现装置900包括的各模块外,可选的,还可以包括:相机构建模块904和圆柱体构建模块905。其中:
所述相机构建模块904,具体用于:
获取相机初始化参数,相机初始化参数包括可视角度,高宽比,近端距离及远端距离;
根据相机初始化参数创建相机;
确定相机的位置,并调整相机的角度;相机的角度用于调整舞台场景的展示角度。
所述圆柱体构建模块905,具体用于:
获取预设的构建参数,构建参数包括顶面半径、底面半径、圆柱体高度、顶面与底面的分段数、侧面的分段数、顶面底面布尔值;
根据构建参数创建圆柱体。
在本申请的一个实施例在,所示圆柱体构建模块905,还具体用于:
根据舞台场景的尺寸,对圆柱体的大小进行缩放,以使圆柱体的尺寸与预先创建的舞台场景的尺寸相匹配。
关于场景实现装置的具体限定可以参见上文中对于场景实现方法的限定,在此不再赘述。上述场景实现装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是终端,其内部结构图可以如图11所示。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口、显示屏和输入装置。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统和计算机程序。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种场景实现方法。该计算机设备的显示屏可以是液晶显示屏或者电子墨水显示屏,该计算机设备的输入装置可以是显示屏上覆盖的触摸层,也可以是计算机设备外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。
本领域技术人员可以理解,图11中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现以下步骤:
根据首尾连贯的平面场景图和预设的材料对象构建材料集合;
将预先创建的圆柱体和材料集合加载至网格对象中,得到新的网格对象;首尾连贯的平面场景图为圆柱体的内壁贴图,预设的材料对象分别为圆柱体的顶面和底面;
将新的网格对象加载至预先创建的舞台场景中,并对舞台场景进行渲染后生成场景画面。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:
根据首尾连贯的平面场景图和预设的材料对象构建材料集合;
将预先创建的圆柱体和材料集合加载至网格对象中,得到新的网格对象;首尾连贯的平面场景图为圆柱体的内壁贴图,预设的材料对象分别为圆柱体的顶面和底面;
将新的网格对象加载至预先创建的舞台场景中,并对舞台场景进行渲染后生成场景画面。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(rom)、可编程rom(prom)、电可编程rom(eprom)、电可擦除可编程rom(eeprom)或闪存。易失性存储器可包括随机存取存储器(ram)或者外部高速缓冲存储器。作为说明而非局限,ram以多种形式可得,诸如静态ram(sram)、动态ram(dram)、同步dram(sdram)、双数据率sdram(ddrsdram)、增强型sdram(esdram)、同步链路(synchlink)dram(sldram)、存储器总线(rambus)直接ram(rdram)、直接存储器总线动态ram(drdram)、以及存储器总线动态ram(rdram)等。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。