CN109615686B - 潜在可视集合的确定方法、装置、设备及存储介质 - Google Patents
潜在可视集合的确定方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN109615686B CN109615686B CN201811493375.0A CN201811493375A CN109615686B CN 109615686 B CN109615686 B CN 109615686B CN 201811493375 A CN201811493375 A CN 201811493375A CN 109615686 B CN109615686 B CN 109615686B
- Authority
- CN
- China
- Prior art keywords
- detection point
- area
- determining
- pvs
- dimensional
- 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.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/10—Geometric effects
- G06T15/20—Perspective computation
- G06T15/205—Image-based rendering
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F13/00—Video games, i.e. games using an electronically generated display having two or more dimensions
- A63F13/80—Special adaptations for executing a specific game genre or game mode
- A63F13/803—Driving vehicles or craft, e.g. cars, airplanes, ships, robots or tanks
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F13/00—Video games, i.e. games using an electronically generated display having two or more dimensions
- A63F13/50—Controlling the output signals based on the game progress
- A63F13/53—Controlling the output signals based on the game progress involving additional visual information provided to the game scene, e.g. by overlay to simulate a head-up display [HUD] or displaying a laser sight in a shooting game
- A63F13/537—Controlling the output signals based on the game progress involving additional visual information provided to the game scene, e.g. by overlay to simulate a head-up display [HUD] or displaying a laser sight in a shooting game using indicators, e.g. showing the condition of a game character on screen
- A63F13/5378—Controlling the output signals based on the game progress involving additional visual information provided to the game scene, e.g. by overlay to simulate a head-up display [HUD] or displaying a laser sight in a shooting game using indicators, e.g. showing the condition of a game character on screen for displaying an additional top view, e.g. radar screens or maps
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/04—Texture mapping
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/10—Geometric effects
- G06T15/20—Perspective computation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T19/00—Manipulating 3D models or images for computer graphics
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T19/00—Manipulating 3D models or images for computer graphics
- G06T19/20—Editing of 3D images, e.g. changing shapes or colours, aligning objects or positioning parts
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/90—Determination of colour characteristics
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2219/00—Indexing scheme for manipulating 3D models or images for computer graphics
- G06T2219/20—Indexing scheme for editing of 3D models
- G06T2219/2012—Colour editing, changing, or manipulating; Use of colour codes
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Multimedia (AREA)
- Computer Graphics (AREA)
- Computing Systems (AREA)
- Geometry (AREA)
- Computer Hardware Design (AREA)
- Computer Vision & Pattern Recognition (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Optics & Photonics (AREA)
- Architecture (AREA)
- Radar, Positioning & Navigation (AREA)
- Processing Or Creating Images (AREA)
Abstract
本申请公开了一种潜在可视集合的确定方法、装置、设备及存储介质,属于数据处理技术领域。该方法包括:将地图区域划分为多个检测点区域;将检测点区域中的三维物体的贴图材质替换为单颜色材质;在检测点区域中确定至少一个检测点;渲染出检测点对应的立方体贴图,确定立方体贴图上出现的目标颜色标识;将目标颜色标识对应的三维物体添加至检测点区域的PVS中。本申请通过立方体贴图做可视物体的检测,保证了检测可视物体时的准确性,从而使得最终显示在PVS中的结果无误。
Description
技术领域
本申请涉及数据处理技术领域,特别涉及一种潜在可视集合的确定方法、装置、设备及存储介质。
背景技术
渲染性能是三维虚拟环境的应用程序在运行过程中的重要因素,渲染性能的高低决定了三维虚拟环境的应用程序运行时的流畅程度,而限制渲染性能的瓶颈则是中央处理器(Central Processing Unit,CPU)。比如,在3D竞速游戏中,CPU频繁地通过Draw Call向图形处理器(Graphics Processing Unit,GPU)发送执行渲染操作的命令,使得Draw Call占3D竞速游戏对CPU消耗的一半。因此,CPU通过基于预计算的方式,对3D竞速游戏的地图场景进行可视检测,能够减少Draw Call对CPU的消耗。
当CPU在预计算时,以摄像机模型自身为原点向四周随机打射线,判断该摄像机模型四周的可视物体,当打出的射线与物体存在交集,CPU判定该物体为可视物体;当打出的射线与物体没有存在交集,CPU判定该物体为不可视物体。
然而,CPU采用随机打射线的方式进行预计算,当打出的射线的数量不够多时,可能会存在一些物体由于未被射线打中而导致误判成不可视,使得CPU没有通过Draw Call向GPU发送渲染该物体的命令,虽然Draw Call在CPU上的消耗减少了,但是最终显示在潜在可视集合(Potentially Visible Set,PVS)中的结果有误。
发明内容
本申请实施例提供了一种潜在可视集合的确定方法、装置、设备及存储介质,可以解决当CPU采用随机打射线的方式进行预计算,而打出的射线的数量不够多时,导致未被射线打中却误判为不可视,使得最终显示在PVS中的结果有误的问题。所述技术方案如下:
根据本公开实施例的一方面,提供了一种PVS的确定方法,所述方法包括:
将地图区域划分为多个检测点(Check Point)区域;
将所述检测点区域中的三维物体的贴图材质替换为单颜色材质,每个三维物体对应的单颜色材质的颜色标识不同;
在所述检测点区域中确定至少一个检测点;
渲染出所述检测点对应的立方体贴图,确定所述立方体贴图上出现的目标颜色标识;
将所述目标颜色标识对应的三维物体添加至所述检测点区域的PVS中。
根据本公开实施例的另一方面,提供了一种三维场景的渲染方法,应用于存储有检测点区域和PVS的终端中,所述PVS是采用如上所述的方法生成的,所述方法包括:
检测摄像机模型在当前帧所在的检测点区域与上一帧所在的检测点区域是否相同;
当所述摄像机模型在所述当前帧所在的检测点区域与所述上一帧所在的检测点区域不相同时,读取所述当前帧所在的检测点区域的PVS;
根据所述当前帧所在的检测点区域的PVS,渲染得到所述摄像机模型的镜头画面。
根据本公开实施例的另一方面,提供了一种PVS的确定方法,所述方法应用于3D竞速游戏中,所述3D竞速游戏包括位于虚拟环境中的赛道区域,所述方法包括:
将赛道区域划分为多个检测点区域;
将所述检测点区域中的三维物体的贴图材质替换为单颜色材质,每个三维物体对应的单颜色材质的颜色标识不同;
在所述检测点区域中确定至少一个检测点;
渲染出所述检测点对应的立方体贴图,确定所述立方体贴图上出现的目标颜色标识;
将所述目标颜色标识对应的赛道物体添加至所述检测点区域的赛道PVS中。
根据本公开实施例的另一方面,提供了一种PVS的确定装置,所述装置包括:
划分模块,用于将地图区域划分为多个检测点区域;
替换模块,用于将所述检测点区域中的三维物体的贴图材质替换为单颜色材质,每个三维物体对应的单颜色材质的颜色标识不同;
确定模块,用于在所述检测点区域中确定至少一个检测点;
第一渲染模块,用于渲染出所述检测点对应的立方体贴图,确定所述立方体贴图上出现的目标颜色标识;
添加模块,用于将所述目标颜色标识对应的三维物体添加至所述检测点区域的PVS中。
根据本公开实施例的另一方面,提供了一种三维场景的渲染装置,应用于存储有检测点区域和PVS的终端中,所述PVS是采用如上所述的方法生成的,所述装置包括:
检测模块,用于检测摄像机模型在当前帧所在的检测点区域与上一帧所在的检测点区域是否相同;
读取模块,用于当所述摄像机模型在所述当前帧所在的检测点区域与所述上一帧所在的检测点区域不相同时,读取所述当前帧所在的检测点区域的PVS;
第二渲染模块,用于根据所述当前帧所在的检测点区域的PVS,渲染得到所述摄像机模型的镜头画面。
根据本公开实施例的另一方面,提供了一种PVS的确定装置,所述装置应用于3D竞速游戏中,所述3D竞速游戏包括位于虚拟环境中的赛道区域,所述装置包括:
第二划分模块,用于将赛道区域划分为多个检测点区域;
第二替换模块,用于将所述检测点区域中的三维物体的贴图材质替换为单颜色材质,每个三维物体对应的单颜色材质的颜色标识不同;
第二确定模块,用于在所述检测点区域中确定至少一个检测点;
第三渲染模块,用于渲染出所述检测点对应的立方体贴图,确定所述立方体贴图上出现的目标颜色标识;
第二添加模块,用于将所述目标颜色标识对应的赛道物体添加至所述检测点区域的赛道PVS中。
根据本公开实施例的另一方面,提供了一种终端,所述终端包括处理器和存储器,所述存储器中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由所述处理器加载并执行以实现如上所述的PVS的确定方法。
根据本公开实施例的另一方面,提供了一种终端,所述终端包括处理器和存储器,所述存储器中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由所述处理器加载并执行以实现如上所述的三维场景的渲染方法。
根据本公开实施例的另一方面,提供了一种计算机可读存储介质,所述存储介质中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由所述处理器加载并执行以实现如上所述的PVS的确定方法。
根据本公开实施例的另一方面,提供了一种计算机可读存储介质,所述存储介质中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由所述处理器加载并执行以实现如上所述的三维场景的渲染方法。
根据本公开实施例的另一方面,提供了一种计算机程序产品,所述程序产品中存储有计算机程序,所述计算机程序由处理器加载并执行以实现如上所述的PVS的确定方法。
根据本公开实施例的另一方面,提供了一种计算机程序产品,所述程序产品中存储有计算机程序,所述计算机程序由处理器加载并执行以实现如上所述的三维场景的渲染方法。
本申请实施例提供的技术方案带来的有益效果至少包括:
通过将地图区域划分为多个检测点区域,并将检测点区域中的三维物体的贴图材质替换为单颜色材质,每个三维物体对应的单颜色材质的颜色标识不同,使得检测点区域中的三维物体具有唯一标识,再在检测点区域中确定的检测点对应的立方体贴图上,确定目标颜色标识,将目标颜色标识对应的三维物体添加至检测点区域的PVS中,从而确定出在立方体贴图上的可视物体。区别于相关技术中使用立方体贴图对天空等远景进行渲染,达到远景的效果,本申请创造性地利用立方体贴图做检测点区域内的可视物体的检测,通过检测立方体贴图的六个方向面上的目标颜色标识,使得检测点区域内任何角度的可视物体都得以检测到,与相关技术相比,避免了随机打射线的随机性与不稳定性,检测可视物体时的准确性得以保证,从而使得最终显示在PVS中的结果无误。而检测点区域内的三维物体替换为二维的单颜色,减少了检测时的计算量。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请一个示例性实施例提供的计算机系统的结构框图;
图2是本申请一个示例性实施例提供的PVS的确定方法的流程图;
图3是本申请另一个示例性实施例提供的PVS的确定方法的流程图;
图4是本申请另一个示例性实施例提供的虚拟环境中的三维物体的示意图;
图5是本申请另一个示例性实施例提供的虚拟环境中的三维物体映射后的示意图;
图6是本申请另一个示例性实施例提供的在平面检测点处路面高度的示意图;
图7是本申请另一个示例性实施例提供的在检测点处的二维纹理贴图的示意图;
图8是本申请另一个示例性实施例提供的半透明三维物体的可视检测方法的流程图;
图9是本申请另一个示例性实施例提供的PVS的确定方法的流程图;
图10是本申请另一个示例性实施例提供的第一对话框的示意图;
图11是本申请另一个示例性实施例提供的第二对话框的示意图;
图12是本申请另一个示例性实施例提供的第三对话框的示意图;
图13是本申请一个示例性实施例提供的三维场景的渲染方法的流程图;
图14是本申请一个示例性实施例提供的沿赛道划分的检测点区域的示意图;
图15是本申请一个示例性实施例提供的判断摄像机模型是否在检测点区域的示意图;
图16是本申请一个示例性实施例提供的摄像机模型在室内场景的示意图;
图17是本申请一个示例性实施例提供的摄像机模型在室内场景站的镜头画面的示意图;
图18是本申请一个示例性实施例提供的摄像机模型在室外山脚场景的示意图;
图19是本申请一个示例性实施例提供的PVS的确定装置的结构示意图;
图20是本申请一个示例性实施例提供的第一替换模块的结构示意图;
图21是本申请一个示例性实施例提供的第一渲染模块的结构示意图;
图22是本申请一个示例性实施例提供的三维场景的渲染装置的结构示意图;
图23是本申请另一个示例性实施例提供的PVS的确定装置的结构示意图;
图24是本申请一个实施例提供的服务器的结构示意图;
图25是本发明一个示例性实施例提供的终端的结构框图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。
首先,对本申请实施例涉及的若干个名词进行解释:
虚拟环境:是应用程序在终端上运行时显示(或提供)的虚拟环境。该虚拟环境可以是对真实世界的仿真环境,也可以是半仿真半虚构的三维环境,还可以是纯虚构的三维环境。虚拟环境可以是二维虚拟环境、2.5维虚拟环境和三维虚拟环境中的任意一种,下述实施例以虚拟环境是三维虚拟环境来举例说明,但对此不加以限定。可选地,该虚拟环境包括至少一个虚拟角色,该虚拟角色在虚拟环境中活动。可选地,该虚拟环境还用于至少两个虚拟角色之间的虚拟环境竞速。可选地,该虚拟环境还用于至少两个虚拟角色之间使用虚拟载具进行竞速。
虚拟对象:是指在虚拟环境中的可活动对象。该可活动对象可以是虚拟人物、虚拟动物、动漫人物、虚拟载具中的至少一种。可选地,当虚拟环境为三维虚拟环境时,虚拟对象是三维立体模型。每个虚拟对象在三维虚拟环境中具有自身的形状和体积,占据三维虚拟环境中的一部分空间。
GPU:又称显示核心、视觉处理器、显示芯片,是一种在终端上专门对图像进行图像运算工作的微处理器。GPU用于根据CPU的命令,对检测点区域中的三维物体进行渲染,使得渲染后的三维物体具有三维效果。
Draw Call:是CPU调用图形编程的函数接口。CPU通过Draw Call向GPU下渲染命令,GPU根据渲染命令执行渲染操作。Draw Call用于实现CPU与GPU之间渲染命令的参数的传递。
视锥体(Frustum):是指类似于切去顶部,且顶部与底部平行的金字塔形状的立方体。视锥体具有上、下、左、右、近、远,共六个面。视锥体是以摄像机模型为原点,根据摄像机模型的摄像镜头的角度确定的视觉范围,即根据摄像机模型的摄像镜头的角度,形成类似金字塔形状的视觉范围。而在类似金字塔形状的视觉范围内距离摄像机模型过近的物体或距离摄像机模型过远的物体,都不会显示在摄像镜头中,能够显示在摄像镜头中的视觉范围即为视锥体,故视锥体是用于在摄像镜头中显示物体的立方体空间,且位于视锥体内的物体即为可见物体,位于视锥体外的物体即为不可见物体。而位于视锥体内的三维物体通过投影显示在摄像镜头的二维平面上,该投影显示的图像即为人眼在地图场景中看到的图像。
检测点区域:是在虚拟环境中,按照划分规则划分出的凸四边形区域。划分规则包括沿虚拟对象行进的预定路线进行划分,按照虚拟对象活动范围进行划分中的至少一种。可选地,在3D竞速游戏中,检测点区域是在3D竞速游戏的虚拟环境中,根据赛道路线划分的凸四边形区域,该检测点区域在划分好之后,不会变化。
遮挡剔除:指在摄像镜头中,一个物体被其他物体遮挡住,使得该物体不可见,CPU对该物体不渲染。CPU通过遮挡剔除的方法,减少CPU对地图场景中的物体的渲染,从而减少Draw Call在CPU上的消耗。而且,为了减少重复渲染的操作,采用测量物体与摄像机之间的距离的方法,根据距离的远近,由近及远的对物体进行遮挡剔除操作。
立方体贴图(Cubemap):是由六张二维纹理贴图拼合而成的立方体。立方体贴图是以摄像机模型为中心点,摄像机模型通过向六个方向分别进行一次渲染(即每次将摄像镜头的角度旋转90°),形成的具有六张二维纹理贴图的立方体。立方体贴图用于对天空等远景进行渲染,使得远景能够与移动的近景(比如人物)保持相对静止,从而实现远景的效果。
PVS:是在视点位置,或视点所在区域,经过遮挡剔除后,剩余的能看见的物体集合。
顶点渲染器(VertexShader):用于对具有顶点属性的顶点数据进行各种运算。
像素渲染器(PixelShader):用于对具有像素属性的像素数据进行各种运算。
本申请实施例提供了一种潜在可视集合的确定方法、装置、设备及存储介质,可以解决当CPU采用随机打射线的方式进行预计算,且打出的射线的数量不够多时,可能会存在摄像镜头中的可视物体由于未被射线打中而导致误判成不可视,导致最终显示在摄像镜头中的渲染结果出现缺失的问题。
图1示出了本申请一个示例性实施例提供的计算机系统的结构框图,该计算机系统100包括:第一终端110、第二终端130以及服务器120。
第一终端110安装和运行有支持虚拟环境的应用程序,当第一终端110运行应用程序时,第一终端110的屏幕上显示应用程序的用户界面111。该应用程序可以是体育游戏、载具模拟游戏、动作游戏中的任意一种。第一终端110是第一用户101使用的终端,第一用户101使用第一终端110控制位于虚拟环境中的第一虚拟对象进行竞速,该第一虚拟对象包括但不限于:赛车、越野车、卡丁车、飞车、飞机、摩托车、山地车、虚拟人物中的至少一种。示意性的,第一虚拟对象是第一虚拟载具,比如仿真飞车或仿真赛车。
第二终端130安装和运行有支持虚拟环境的应用程序。该应用程序可以是体育游戏、载具模拟游戏、动作游戏中的任意一种,当第二终端130运行应用程序时,第一终端130的屏幕上显示应用程序的用户界面131。第二终端130是第二用户102使用的终端,第二用户102使用第二终端130控制位于虚拟环境中的第二虚拟对象进行竞速,该第二虚拟对象包括但不限于:赛车、越野车、卡丁车、飞车、飞机、摩托车、山地车、虚拟人物中的至少一种。示意性的,第二虚拟对象是第二虚拟载具,比如仿真飞车或仿真赛车。
可选地,第一虚拟对象和第二虚拟对象具处于同一虚拟环境中。可选地,第一虚拟对象和第二虚拟对象可以属于同一个阵营、同一个队伍、同一个组织、具有好友关系或具有临时性的通讯权限。可选的,第一虚拟对象和第二虚拟对象可以属于不同的阵营、不同的队伍、不同的组织或具有敌对关系。
可选地,第一终端110和第二终端130上安装的应用程序是相同的,或两个终端上安装的应用程序是不同控制系统平台的同一类型应用程序。第一终端110可以泛指多个终端中的一个,第二终端130可以泛指多个终端中的一个,本实施例仅以第一终端110和第二终端130来举例说明。第一终端110和第二终端130的设备类型相同或不同,该设备类型包括:台式计算机、膝上型便携计算机、手机、平板电脑、电子书阅读器、MP3(Moving PictureExperts Group Audio Layer III,动态影像专家压缩标准音频层面3)播放器、MP4(MovingPicture Experts Group Audio Layer IV,动态影像专家压缩标准音频层面4)播放器中的至少一种。
其它终端140可以是开发者对应的终端,在终端140上安装有虚拟环境的应用程序的开发和编辑平台,开发者可在终端140上对应用程序进行编辑,并将编辑后的应用程序文件通过有线或无线网络传输至服务器120,第一终端110和第二终端130可从服务器120下载应用程序对应的更新包实现对应用程序的更新。
第一终端110、第二终端130以及其它终端140通过无线网络或有线网络与服务器120相连。
服务器120包括一台服务器、多台服务器、云计算平台和虚拟化中心中的至少一种。服务器120用于为支持三维虚拟环境的应用程序提供后台服务。可选地,服务器120承担主要计算工作,终端承担次要计算工作;或者,服务器120承担次要计算工作,终端承担主要计算工作;或者,服务器120和终端之间采用分布式计算架构进行协同计算。
服务器120包括至少一个服务器模组121,服务器模组121包括处理器122、用户数据库123、应用程序数据库124、面向用户的输入/输出接口(Input/Output Interface,I/O接口)125以及面向开发者的输出/输出接口126。其中,处理器122用于加载服务器模组121中存储的指令,处理用户数据库123和应用程序数据库124中的数据;用户数据库123用于存储第一终端110和/或第二终端130通过无线网络或有线网络上传的用户数据;应用程序数据库124用于存储2.5维虚拟环境的应用程序中的数据;面向用户的I/O接口125用于通过无线网络或有线网络和第一终端110和/或第二终端130建立通信交换数据;面向开发者的I/O接口126用于通过无线网络或有线网络和其它终端140建立通信交换数据。
本领域技术人员可以知晓,上述终端的数量可以更多或更少。比如上述终端可以仅为一个,或者上述终端为几十个或几百个,或者更多数量。本申请实施例对终端的数量和设备类型不加以限定。
图2示出了本申请一个示例性实施例提供的PVS的确定方法的流程图,该方法可以应用于如图1所示的计算机系统中,该方法包括:
步骤201,将地图区域划分为多个检测点区域。
地图区域是虚拟对象在虚拟环境中的活动范围。在地图区域中包括不透明物体和半透明物体。虚拟对象在地图区域中活动,不透明物体和半透明物体皆是可视物体,处理器通过Draw Call调用GPU对可视物体进行渲染,使得可视物体显示时具有三维效果。其中,不透明物体在本实施例中称为三维物体,半透明物体在本实施例中称为半透明三维物体。
处理器根据划分规则将地图区域划分为多个检测点区域,检测点区域是根据划分规则划分而成的凸四边形区域。划分规则包括沿虚拟对象行进的预定路线进行划分,和,按照虚拟对象活动范围进行划分中的至少一种。
可选地,多个检测点区域的形状可以是相同的形状,也可以是不相同的;多个检测点区域的面积可以是相等的,也可以是不相等的;不同的地图区域划分出的检测点区域的数量可以是相同的,也可以是不相同的。
步骤202,将检测点区域中的三维物体的贴图材质替换为单颜色材质,每个三维物体对应的单颜色材质的颜色标识不同。
处理器对检测点区域中的每个三维物体进行唯一标识,即不同的三维物体对应一个唯一物体标识。唯一物体标识用于标记检测点区域中的三维物体,处理器根据唯一物体标识在三维虚拟世界中确定对应的三维物体。
处理器对唯一物体标识进行映射,将检测点区域中的三维物体的贴图材质替换为单颜色材质。由于唯一物体标识的唯一性,每个三维物体对应的单颜色材质的颜色标识不同。颜色标识用于标识三维物体的贴图材质替换后的单颜色材质对应的单颜色。
步骤203,在检测点区域中确定至少一个检测点。
处理器在检测点区域中设置多个检测点。检测点是用于监测可视物体的位置点。多个检测点是分散位于检测点区域中的不同位置点。
可选地,本实施例对检测点区域中的检测点设置的位置和数量不做限定。
步骤204,渲染出检测点对应的立方体贴图,确定立方体贴图上出现的目标颜色标识。
以确定的检测点作为摄像机模型的所在位置,摄像镜头在检测点处通过每次旋转90°对检测点的六个方向面进行一次渲染,得到二维纹理贴图。处理器根据六个方向面渲染得到的二维纹理贴图,得到检测点对应的立方体贴图。处理器根据立方体贴图做三维物体的可视检测,通过检测在立方体贴图上的目标颜色标识,确定在该立方体贴图上出现的单颜色。
步骤205,将目标颜色标识对应的三维物体添加至检测点区域的PVS中。
处理器根据确定出的立方体贴图上的目标颜色标识,确定目标颜色标识对应的三维物体,从而确定当摄像机模型在形成该立方体贴图的检测点时,摄像镜头能够看到的三维物体。目标颜色标识用于识别立方体贴图上存在的三维物体。处理器将确定的三维物体添加至检测点区域的PVS中,使得在用户侧运行时,根据检测出的用户当前所在的检测点区域,渲染该检测点区域中的所有可视物体,故PVS是该检测点区域中所有可视物体的集合。
综上所述,本实施例提供的方法,通过将地图区域划分为多个检测点区域,并将检测点区域中的三维物体的贴图材质替换为单颜色材质,每个三维物体对应的单颜色材质的颜色标识不同,使得检测点区域中的三维物体具有唯一标识,再在检测点区域中确定的检测点对应的立方体贴图上,确定目标颜色标识,将目标颜色标识对应的三维物体添加至检测点区域的PVS中,从而确定出在立方体贴图上的可视物体。区别于相关技术中使用立方体贴图对天空等远景进行渲染,达到远景的效果,本申请创造性地利用立方体贴图做检测点区域内的可视物体的检测,通过检测立方体贴图的六个方向面上的目标颜色标识,使得检测点区域内任何角度的可视物体都得以检测到,与相关技术相比,避免了随机打射线的随机性与不稳定性,检测可视物体时的准确性得以保证,从而使得最终显示在PVS中的结果无误。而检测点区域内的三维物体替换为二维的单颜色,减少了检测时的计算量。
图3示出了本申请另一个示例性实施例提供的PVS的确定方法的流程图,该方法可以应用于如图1所示的计算机系统中,该方法包括:
步骤301,将地图区域划分为多个检测点区域。
地图区域是虚拟对象在虚拟环境中的活动范围。在地图区域中包括不透明物体和半透明物体。虚拟对象在地图区域中活动,不透明物体和半透明物体皆是可视物体,处理器通过Draw Call调用GPU对可视物体进行渲染,使得可视物体显示时具有三维效果。其中,不透明物体在本实施例中称为三维物体,半透明物体在本实施例中称为半透明三维物体。
处理器根据划分规则将地图区域划分为多个检测点区域,检测点区域是根据划分规则划分而成的凸四边形区域。划分规则包括沿虚拟对象行进的预定路线进行划分,和,按照虚拟对象活动范围进行划分中的至少一种。
可选地,多个检测点区域的形状可以是相同的形状,也可以是不相同的;多个检测点区域的面积可以是相等的,也可以是不相等的;不同的地图区域划分出的检测点区域的数量可以是相同的,也可以是不相同的。
步骤302,将检测点区域中的三维物体的唯一物体标识映射为颜色标识。
唯一物体标识是检测点区域中的每个三维物体的唯一标记。处理器对检测点区域中的三维物体使用唯一物体标识进行唯一标识,即检测点区域中的每个三维物体对应一个唯一物体标识,且唯一物体标识不重复。该唯一物体标识用于在三维场景中唯一地标识三维物体。
参见图4,示出了虚拟环境中的三维物体,图4中的三维物体由GPU进行渲染后,显示出三维效果,每个三维物体皆是可视物体。处理器读取每个三维物体对应的唯一物体标识。
在一种可选的实施方式中,当图4所示的地图区域中的每个检测点区域中的可视物体的数量不超过255个时,处理器将根据读取到的检测点区域中的三维物体的唯一物体标识的最后三位,分别映射为红绿蓝颜色空间中的红色通道值、绿色通道值和蓝色通道值,图4所示的地图区域经过映射后,处理器得到图5所示的映射图。结合图4与图5中的可视物体分析,发现每个三维物体对应唯一一个单颜色,即每个三维物体经过映射后得到不同的单颜色,每个三维物体根据不同的单颜色获得唯一的颜色标识。
在一个示意性的例子中,实现将三维物体的唯一物体标识的最后三位分别映射为红色通道值、绿色通道值和蓝色通道值的代码如下:
处理器根据红色通道值、绿色通道值和蓝色通道值,确定出三维物体对应的颜色标识。颜色标识用于根据颜色标识的唯一性,识别检测点区域中的三维物体。
步骤303,将三维物体贴图材质替换为与颜色标识对应的单颜色材质。
颜色标识是对三维物体的唯一物体标识映射后得到的唯一标识。可选地,颜色标识包括红色通道值、绿色通道值、蓝色通道值。单颜色材质是根据红色通道值、绿色通道值和蓝色通道值合成的单颜色对应的材质。
步骤304,在检测点区域上确定出离散的多个平面检测点。
在一种可选的实施方式中,处理器通过在检测点区域的平面上插值,将插值所在的位置确定为离散的多个平面检测点。
可选的,处理器通过在检测点区域的平面上均等插值,得到在检测点区域的平面上均等分布的多个平面检测点。
可选地,本实施例对如何在检测点区域上确定出多个平面检测点,以及在检测点区域上确定出的平面检测点的数量不做具体限定。
步骤305,对于多个平面检测点中的每个平面检测点,通过物理模型射线检测对平面检测点进行检测,获得平面检测点处的路面高度。
对于多个平面检测点中的每个平面检测点,处理器通过物理模型射线检测,对每个平面检测点进行碰撞检测。在检测点区域中的多个平面检测点处于同一水平线上,处理器确定至少一个平面检测点,在该平面检测点处沿垂直向下方向发射射线,根据发射射线碰撞到路面的碰撞点,确定该平面检测点处的路面高度。
示意性的,参见图6,示出了对平面检测点进行碰撞检测,获取路面高度的示意图。图6中包括第一平面检测点601和第二平面检测点602,第一平面检测点601和第二平面检测点602处于同一水平线上。
处理器在第一平面检测点601处通过物理模型射线检测进行碰撞检测,射线从第一平面检测点601处沿垂直向下方向发射射线,处理器获得第一平面检测点601的碰撞点603,根据第一平面检测点601的碰撞点603,确定第一平面检测点601的路面高度h2。
处理器在第二平面检测点602处通过物理模型射线检测进行碰撞检测,射线从第二平面检测点602处沿垂直向下方向发射射线,处理器获得第二平面检测点602的碰撞点604,根据第二平面检测点602的碰撞点604,确定第二平面检测点602的路面高度h4(图中未示出)。在图6中,第二平面检测点602处的路面高度h4=0,即第二平面检测点602处的路面是平路。
可选地,平面检测点是若干个均匀分布在检测点区域中的检测点。
步骤306,根据路面高度与第一高度相加后的第一和值,确定出平面检测点对应的低区检测点。
第一高度是虚拟对象处在活动状态下自身的高度。处理器将检测到的平面检测点处的路面高度与第一高度相加,得到第一和值,第一和值是虚拟对象在活动时紧贴在路面上的状态的高度值。处理器根据第一和值,将第一和值对应的平面检测点确定为低区检测点,低区检测点是虚拟对象紧贴在路面上活动的检测点。
参见图6,虚拟对象605活动时自身的高度为h1,第二平面检测点602处的路面高度h4=0。当虚拟对象605竞速至第二平面检测点602对应的路面处,虚拟对象601紧贴在路面上,故第一高度是虚拟对象601自身高度h1。处理器将h1与h4相加得到第一和值,即h1+h4,根据第一和值,确定第二平面检测点602对应的低区检测点606。
可选地,低区检测点是若干个均匀分布在检测点区域中的检测点。
步骤307,根据路面高度与第二高度相加后的第二和值,确定出平面检测点对应的高区检测点。
第二高度是虚拟对象处在活动状态下自身的高度,与虚拟对象在活动时自身距离路面的腾空高度的高度之和。处理器将检测到的平面检测点处的路面高度与第二高度相加,得到第二和值,第二和值是虚拟对象在活动时腾空在路面上空的状态的高度值。处理器根据第二和值,将第二和值对应的平面检测点确定为高区检测点,高区检测点是虚拟对象腾空在路面上空的检测点。
参见图6,虚拟对象605活动时自身的高度为h1,第一平面检测点601处的路面高度h2。当虚拟对象605竞速至第一平面检测点601对应的路面处,虚拟对象601腾空在路面上空,腾空高度为h3,故第二高度是虚拟对象601自身高度h1和腾空高度h3之和。处理器将第二高度与h2相加得到第二和值,即h1+h3+h2,根据第二和值,确定第一平面检测点601对应的高区检测点605。
可选地,高区检测点是若干个均匀分布在检测点区域中的检测点。
步骤308,对检测点处的六个方向面分别进行渲染,得到每个方向面上对应的二维纹理贴图。
处理器对低区检测点处的前面、后面、左面、右面、底面、顶面共六个方向面分别进行二维渲染,得到六个二维纹理贴图,六个二维纹理贴图对应低区检测点处的六个方向面。处理器对高区检测点处的六个方向面分别进行二维渲染,得到六个二维纹理贴图,六个二维纹理贴图对应高区检测点处的六个方向面。
示意性的,参见图7,示出了处理器在确定的一个检测点处二维渲染后得到的二维纹理贴图。该检测点可以是低区检测点,也可以是高区检测点。处理器以检测点作为摄像机模型,通过摄像镜头分别对检测点处的前面、后面、左面、右面、底面、顶面共六个方向面进行二维渲染,得到了该检测点六个方向面上的二维纹理贴图。
步骤309,将六个方向面上的二维纹理贴图进行拼合,得到检测点对应的立方体贴图。
处理器将在低区检测点处得到的六个方向面上的六个二维纹理贴图进行拼合,得到低区检测点对应的立方体贴图。处理器将在高区检测点处得到的六个方向面上的六个二维纹理贴图进行拼合,得到高区检测点对应的立方体贴图。
参见图7,处理器将检测点的六个方向面上的二维纹理贴图进行拼合,得到该检测点对应的立方体贴图。
步骤310,遍历立方体贴图的六个方向面上的二维纹理贴图的像素值,根据二维纹理贴图上出现的像素值确定立方体贴图上出现的目标颜色标识。
目标颜色标识是在检测点对应的立方体贴图上出现的颜色标识。
处理器遍历低区检测点对应的立方体贴图的六个方向面上的二维纹理贴图的像素值,根据二维纹理贴图上出现的像素值,确定该像素值属于的单颜色,从而确定低区检测点对应的立方体贴图上出现的目标颜色标识。
处理器遍历高区检测点对应的立方体贴图的六个方向面上的二维纹理贴图的像素值,根据二维纹理贴图上出现的像素值,确定该像素值属于的单颜色,从而确定高区检测点对应的立方体贴图上出现的目标颜色标识。
步骤311,将目标颜色标识对应的三维物体添加至检测点区域的PVS中。
目标颜色标识用于确定在检测点对应的立方体贴图上存在的三维物体。
可选地,检测点区域的PVS包括第一PVS和第二PVS。
处理器根据低区检测点对应的立方体贴图上的目标颜色标识,确定目标颜色标识对应的三维物体,并将三维物体添加至检测点区域的第一PVS中。处理器根据高区检测点对应的立方体贴图上的目标颜色标识,确定目标颜色标识对应的三维物体,并将三维物体添加至检测点区域的第二PVS中。
可选地,第一PVS和第二PVS可以合并为一个PVS。
综上所述,本实施例提供的方法,通过将地图区域划分为多个检测点区域,并将检测点区域中的三维物体的贴图材质替换为单颜色材质,每个三维物体对应的单颜色材质的颜色标识不同,使得检测点区域中的三维物体具有唯一标识,再在检测点区域中确定的检测点对应的立方体贴图上,确定目标颜色标识,将目标颜色标识对应的三维物体添加至检测点区域的PVS中,从而确定出在立方体贴图上的可视物体。区别于相关技术中使用立方体贴图对天空等远景进行渲染,达到远景的效果,本申请创造性地利用立方体贴图做检测点区域内的可视物体的检测,通过检测立方体贴图的六个方向面上的目标颜色标识,使得检测点区域内任何角度的可视物体都得以检测到,与相关技术相比,避免了随机打射线的随机性与不稳定性,检测可视物体时的准确性得以保证,从而使得最终显示在PVS中的结果无误。而检测点区域内的三维物体替换为二维的单颜色,减少了检测时的计算量。
本实施例提供的方法,通过对检测点处的六个方向面分别进行二维渲染,得到每个方向面上对应的二维纹理贴图,将六个二维纹理贴图进行拼合后得到检测点对应的立方体贴图,相比于三维渲染,GPU对二维渲染的消耗较小,通过确定立方体贴图上的目标颜色标识,实现对立方体贴图上的三维物体的可视检测。
本实施例提供的方法,根据三维物体的唯一物体标识的最后三位分别映射为红绿蓝颜色空间中的红色通道值、绿色通道值和蓝色通道值,得到三维物体对应的颜色标识,且每个三维物体的颜色标识不相同,保证了每个三维物体的唯一性,使得在做可视检测时,不会出现相同的颜色标识,导致三维物体的可视检测的结果有误。
本实施例提供的方法,将检测点区域中的检测点分为低区检测点和高区检测点,并将在低区检测点处的三维物体添加进第一PVS中,将高区检测点处的三维物体添加进第二PVS中,使得用户在操作虚拟对象活动时,具有活动在路面和腾空于路面两种不同状态下的真实感受。
开发人员在做可视检测过程中,会先对不透明物体进行可视检测,不透明物体即为三维物体,再对半透明物体进行可视检测,半透明物体即为半透明三维物体,以防止半透明三维物体的存在使得三维物体的部分颜色发生变化的现象,故开发人员先将半透明三维物体进行隐藏,待三维物体的可视检测结束后,再重新检测一遍半透明三维物体,图8示出了在基于图3所示的方法上,示例性的说明半透明三维物体的可视检测方法的流程图,该方法可以应用于如图1所示的计算机系统中,该方法包括:
步骤701:将检测点区域中的半透明三维物体设置为隐藏属性。
半透明三维物体是相对于三维物体,具备透光性的三维物体,即透过半透明三维物体,视觉可以看到半透明三维物体之后的三维物体,也即半透明三维物体是不可遮挡三维物体,但可被三维物体遮挡的物体。
在图3所示的步骤301至步骤303之后,处理器将检测点区域中的半透明三维物体的属性设置为隐藏属性,将检测点区域中的三维物体的显示属性不变,使得半透明物体在检测点区域中不可见,三维物体在检测点区域中可见。
步骤702,将检测点区域中的半透明三维物体重新设置为显示属性,将除半透明三维物体之外的三维物体设置为隐藏属性。
在图3所示的步骤304至步骤310之后,处理器对三维物体进行了可视检测,确定了在检测点区域中的三维物体。处理器将检测点区域中的半透明三维物体的属性从隐藏属性重新设置为显示属性,将三维物体的属性从显示属性重新设置为隐藏属性,使得半透明三维物体在检测点区域中可见,三维物体在检测点区域中不可见。
步骤703,将半透明三维物体的贴图材质替换为单颜色材质,每个半透明三维物体对应的单颜色材质的颜色标识不同。
每个半透明三维物体具有唯一物体标识,颜色标识是对半透明三维物体的唯一物体标识映射后得到的唯一标识。单颜色材质是根据红色通道值、绿色通道值和蓝色通道值合成的单颜色对应的材质。每个半透明三维物体的唯一物体标识不同,使得根据唯一物体标识映射后得到的单颜色材质的颜色标识不同。
步骤704,在检测点区域中确定至少一个检测点。
步骤705,渲染出检测点对应的立方体贴图,确定立方体贴图上出现的目标颜色标识。
本实施例中对如何实现步骤703至步骤705的内容,在图3所示的方法中有说明,这里不再赘叙。
步骤706,将目标颜色标识对应的三维物体和半透明三维物体合并添加至检测点区域的PVS中。
目标颜色标识用于确定在检测点对应的立方体贴图上存在的半透明三维物体。
检测点区域的PVS包括第一PVS和第二PVS。
处理器根据低区检测点对应的立方体贴图上的目标颜色标识,确定目标颜色标识对应的半透明三维物体,将半透明三维物体添加至检测点区域的第一PVS中。处理器根据高区检测点对应的立方体贴图上的目标颜色标识,确定目标颜色标识对应的半透明三维物体,将半透明三维物体添加至检测点区域的第二PVS中。
处理器将在低区检测点处,根据目标颜色标识确定的三维物体和半透明三维物体合并添加至检测点区域的第一PVS中;将在高区检测点处,根据目标颜色标识确定的三维物体和半透明三维物体合并添加至检测点区域的第二PVS中。
本实施例提供的方法中,处理器通过先渲染三维物体再渲染半透明三维物体,避免了因先渲染半透明三维物体后渲染三维物体导致的重复渲染,同时在美工人员处理图像时,美工人员可以发现因半透明三维物体的存在导致三维物体的部分材质发生变化的问题,美工人员可以针对该问题进行修改,保证了最终显示在PVS中的结果符合三维效果。
在本实施例中,以提供的虚拟环境是应用于3D竞速游戏中为例,在3D竞速游戏中,确定PVS。3D竞速游戏可以是体育游戏、载具模拟游戏、动作游戏中的任意一种,3D竞速游戏中包括多个赛道,多个虚拟对象沿赛道竞速,虚拟对象即为摄像机模型所在的位置,在摄像机模型的镜头画面中显示有山、海、花草树木、房子、隧道等可视物体中的至少一种,故多个赛道以及沿赛道分布的可视物体构成赛道区域。
图9示出了本申请另一个示例性实施例提供的PVS的确定方法的流程图,该方法应用于3D竞速游戏中,3D竞速游戏包括位于虚拟环境中的赛道区域,该方法可以应用于如图1所示的计算机系统中,该方法包括:
步骤801,将赛道区域划分为多个检测点区域。
赛道区域是虚拟对象在虚拟环境中的竞速范围,在赛道区域中包括赛道路线、不透明物体和半透明物体,赛道路线是虚拟对象进行竞速的预定路线,不透明物体和半透明物体沿赛道路线分布,不透明物体和半透明物体皆是可视物体,处理器通过Draw Call调用GPU对可视物体进行渲染,使得可视物体显示时具有三维效果。其中,不透明物体在本实施例中称为三维物体,半透明物体在本实施例中称为半透明三维物体。
可选地,三维物体可以是花草树木、山、房子、海、卡通人物等可视物体,半透明三维物体可以是烟雾、氮气喷气、溅起的水珠等可视物体。
处理器根据沿赛道区域中的赛道路线将地图区域划分为多个检测点区域,检测点区域是沿赛道区域中的赛道路线划分而成的凸四边形区域。
可选地,多个检测点区域的形状可以是相同的形状,也可以是不相同的;多个检测点区域的面积可以是相等的,也可以是不相等的;不同的地图区域划分出的检测点区域的数量可以是相同的,也可以是不相同的。
步骤802,将检测点区域中的三维物体的贴图材质替换为单颜色材质,每个三维物体对应的单颜色材质的颜色标识不同。
步骤803,在检测点区域中确定至少一个检测点。
步骤804,渲染出检测点对应的立方体贴图,确定立方体贴图上出现的目标颜色标识。
步骤802至步骤804的内容与图2、图3所示的内容相同,这里不再赘叙。
步骤805,将目标颜色标识对应的三维物体添加至检测点区域的赛道PVS中。
处理器根据确定出的目标颜色标识,确定出目标颜色标识对应的三维物体,处理器将确定的三维物体添加至检测点区域的赛道PVS中,使得在用户侧运行时,根据检测出的用户当前所在的检测点区域,渲染该检测点区域中的所有可视物体,故赛道PVS是沿赛道路线分布的,位于检测点区域中的可视物体的集合。
可选地,在步骤802之后,处理器隐藏半透明三维物体;在步骤805之后,处理器显示半透明三维物体,之后重复步骤803至步骤805。处理器通过先渲染三维物体再渲染半透明三维物体,避免了因先渲染半透明三维物体后渲染三维物体导致的重复渲染,同时在美工人员处理图像时,美工人员可以发现因半透明三维物体的存在导致三维物体的部分材质发生变化的问题,美工人员可以针对该问题进行修改,保证了最终显示在赛道PVS中的结果符合三维效果。
在开发人员对三维物体和半透明三维物体做过可视检测后,确定地图区域中的每个检测点区域的PVS。美工人员需要对开发人员得到的检测点区域的PVS进行美工处理,以保证最终PVS显示的结果的准确性。
处理器运行程序,在终端的界面上跳出如图10所示的第一对话框901,该第一对话框901是PVS遮挡剪裁。处理器在确定PVS遮挡剪裁901中的运行场景902的按键被点击后,自动运行地图区域,并对地图区域中的每个检测点区域的PVS进行计算。处理器将计算得到的检测点区域的PVS进行保存。
处理器运行赛道编辑器的程序,在终端的界面上跳出如图11所示的第二对话框,第二对话框是赛道编辑器。处理器将计算得到的检测点区域的PVS导入到该赛道编辑器中。赛道编辑器分为地图区域1001和手工调整区域1002。处理器在接收到美工人员在地图区域1001中选中目标检测点区域1003后,还接收到美工人员在手工调整区域1002中选中显示区域1004的复选框,确定美工人员需要对目标检测点区域1003的PVS进行手工调整,处理器显示目标检测点区域1003的PVS。美工人员在美术接受的效果范围内,加大目标检测点区域的PVS中可视物体的剔除力度,并根据美术的效果,修改因半透明三维物体的存在导致三维物体的部分材质发生变化的现象。
处理器运行Draw Call监视器的程序,在终端的界面上跳出如图12所示的第三对话框1101,第三对话框1101是Draw Call监视器。处理器在接收到美工人员选中Draw Call监视器1101中的场景1102的复选框后,确定对地图区域进行自动跑图。在自动跑图过程中,处理器监测自身在通过Draw Call让GPU渲染检测点区域的PVS上的消耗,对消耗过大的检测点区域发出警报,提醒美工人员对消耗过大的检测点区域重新进行手工剔除。
美工人员通过重复进行上述步骤的方式,使得Draw Call监视器1101在自动跑图时不再进行报警,从而确定手工调整部分完成。
综上所述,本实施例提供的方法中,通过先渲染三维物体再渲染半透明三维物体,避免了因先渲染半透明三维物体后渲染三维物体导致的重复渲染,同时在美工人员处理图像时,美工人员可以发现因半透明三维物体的存在导致三维物体的部分材质发生变化的问题,美工人员可以针对该问题进行修改,保证了最终显示在赛道PVS中的结果符合三维效果。
开发人员在基于图9所示的方法中获取了3D竞速游戏的检测点区域的赛道PVS,并将每个赛道区域中的检测点区域的赛道PVS打包成压缩包,保存于服务器中。玩该3D竞速游戏的用户通过从服务器下载压缩包,服务器通过检测用户终端的摄像机模型当前帧所在的位置,读取当前帧所在的检测点区域的赛道PVS,并对读取的赛道PVS进行三维渲染。
图13示出了本申请一个示例性实施例提供的三维场景的渲染方法的流程图,以提供的虚拟环境是应用于3D竞速游戏中为例,该方法应用于存储有检测点区域和PVS的终端中,PVS是采用如上所述的方法来得到的,该方法可以应用于图1所示的计算机系统中,该方法包括:
步骤1201,检测摄像机模型在当前帧所在的检测点区域与上一帧所在的检测点区域是否相同。
地图区域中包括多个检测点区域,检测点区域是沿赛道划分的凸四边形区域。参见图14,示例性的示出了沿赛道划分的检测点区域,每个检测点区域分配有唯一区域标识,图14中的灰色部分1301是地图区域中的一个检测点区域。
参见图15,图15中以点A、点B、点C、点D构成的检测点区域,点P作为摄像机模型所在位置为例,判断摄像机模型是否在检测点区域中的算法如下:
2)判断点P是否在三角形ACD内,需要同时符合如下3个条件:
3)判断点P是否在三角形ABC内,需要同时符合如下3个条件:
3)根据左手坐标系原则:
处理器根据上述说明的算法,检测摄像机模型当前帧所在的检测点区域与上一帧所在的检测点区域是否相同。当处理器检测出摄像机模型当前帧所在的检测点区域与上一帧所在的检测点区域相同,处理器已经读取当前帧所在的检测点区域中的PVS,并渲染出当前帧所在的检测点区域中的PVS中的可视物体;当处理器检测出摄像机模型当前帧所在的检测点区域与上一帧所在的检测点区域不相同,转到步骤1102。
其中,当前帧所在的检测点区域中的PVS是根据图2、图3、图8中任意一种方法得到的,处理器将得到的检测点区域中的PVS进行保存,在进行三维场景的渲染时直接读取保存的检测点区域中的PVS。
步骤1202,当摄像机模型在当前帧所在的检测点区域与上一帧所在的检测点区域不相同时,读取当前帧所在的检测点区域的赛道PVS。
当处理器检测出摄像机模型在当前帧所在的检测点区域与上一帧所在的检测点区域不相同时,重新读取当前帧所在的检测点区域的赛道PVS,并渲染出当前帧所在的检测点区域中的赛道PVS中的可视物体。
步骤1203,根据当前帧所在的检测点区域的赛道PVS,渲染得到摄像机模型的镜头画面。
处理器根据当前帧所在的检测点区域的赛道PVS,读取当前帧所在的检测点区域的赛道PVS,将当前帧所在的检测点区域的赛道PVS中的可视物体进行渲染,得到摄像机模型的镜头画面。
示意性的,处理器检测出当前帧所在的区域是如图16所示的区域,图16中黑色点包围的区域1501是当前帧所在的检测点区域,该黑色点包围的区域1501是室内场景。处理器读取黑色点包围的区域1501的赛道PVS,并对黑色点包围的区域1501的赛道PVS中的可视物体进行渲染,得到如图17所示的摄像机模型的镜头画面。
在图17中所示的摄像机模型的镜头画面即为用户玩3D竞速游戏时的镜头画面,在该镜头画面中显示有左按键1601、右按键1602和虚拟对象1603,左按键1601用于控制虚拟对象1603在竞速时向左行驶,右按键1602用于控制虚拟对象1603在竞速时向右行驶,虚拟对象1603行驶在室内场景中。用户玩3D竞速游戏时,用户看到的镜头画面与平时无差异,但室内场景外面的其他检测点区域中的可视物体未进行渲染,从而减少了处理器的消耗。
相同的,在图18所示的情况中,处理器检测出当前帧所在的区域是如图18所示的区域,图18中黑色点包围的区域1701是当前帧所在的检测点区域,该黑色点包围的区域1701是室外山脚的一处场景。处理器读取黑色点包围的区域1701的赛道PVS,并对黑色点包围的区域1701的赛道PVS中的可视物体进行渲染,而除该黑色点包围的区域1701是室外山脚的一处场景以外的区域中的可视物体进行剔除,减少了处理器的消耗。
可选地,处理器在确定当前帧所在的检测点区域后,确定虚拟对象处于紧贴在赛道路面上竞速的状态中,确定摄像机模型位于低区检测点处,处理器读取低区检测点对应的第一赛道PVS。处理器根据当前帧所在的检测点区域的第一赛道PVS,渲染得到摄像机模型的第一镜头画面。第一赛道PVS是检测点区域中在低区检测点处,沿赛道路线分布的可视物体的集合。第一镜头画面是摄像机模型在检测点区域的低区检测点处渲染可视物体后的显示的镜头画面,即第一镜头画面是虚拟对象在竞速时紧贴赛道路面状态下显示的镜头画面。
处理器在确定当前帧所在的检测点区域后,确定虚拟对象处于腾空于赛道路面上空竞速的状态中,确定摄像机模型位于高区检测点处,处理器读取高区检测点对应的第二赛道PVS。处理器根据当前帧所在的检测点区域的第二赛道PVS,渲染得到摄像机模型的第二镜头画面。第二赛道PVS是检测点区域中在高区检测点处,沿赛道路线分布的可视物体的集合。第二镜头画面是摄像机模型在检测点区域的高区检测点处渲染可视物体后的显示的镜头画面,即第二镜头画面是虚拟对象在竞速时腾空于赛道路面状态下显示的镜头画面。
可选地,处理器在确定当前帧所在的检测点区域后,先使用顶点渲染器对检测点区域中的可视物体的顶点进行渲染,得到每个可视物体的轮廓,再使用像素渲染器对每个可视物体的像素进行渲染,得到每个可视物体显示在镜头画面中的三维效果。
综上所示,本实施例提供的方法中,通过检测摄像机模型在当前帧所在的检测点区域与上一帧所在的检测点区域是否相同,决定GPU当前需要渲染的检测点区域,不需要进行多余的渲染,从而减少了处理器的消耗。
下述为本申请装置实施例,可以用于执行本申请方法实施例。对于本申请装置实施例中未披露的细节,请参照本申请方法实施例。
图19示出了本申请一个示例性实施例提供的PVS的确定装置的结构示意图,该装置包括:
第一划分模块1810,用于将地图区域划分为多个检测点区域。
第一替换模块1820,用于将检测点区域中的三维物体的贴图材质替换为单颜色材质,每个三维物体对应的单颜色材质的颜色标识不同。
可选地,如图20所示,第一替换模块1820,包括:
第一映射单元1821,用于将检测点区域中的三维物体的唯一物体标识映射为颜色标识。
可选地,第一映射单元1821,用于将检测点区域中的三维物体的唯一物体标识的最后三位,分别映射为红绿蓝颜色空间中的红色通道值、绿色通道值和蓝色通道值;根据红色通道值、绿色通道值和蓝色通道值,确定出三维物体对应的颜色标识。
第一替换单元1822,用于将三维物体的贴图材质替换为与颜色标识对应的单颜色材质。
第一确定模块1830,用于在检测点区域中确定至少一个检测点。
可选地,第一确定模块1830,用于在检测点区域上确定出离散的多个平面检测点;对于多个平面检测点中的每个平面检测点,通过物理模型射线检测对平面检测点进行检测,获得平面检测点处的路面高度;根据路面高度与第一高度相加后的第一和值,确定出平面检测点对应的低区检测点;根据路面高度与第二高度相加后的第二和值,确定出平面检测点对应的高区检测点。
第一渲染模块1840,用于渲染出检测点对应的立方体贴图,确定立方体贴图上出现的目标颜色标识。
可选地,如图21所示,第一渲染模块1840,包括:
渲染单元1841,用于对检测点处的六个方向面分别进行渲染,得到每个方向面上对应的二维纹理贴图。
拼合单元1842,用于将六个方向面上的二维纹理贴图进行拼合,得到检测点对应的立方体贴图。
遍历单元1843,用于遍历Cubemap的六个方向面上的二维纹理贴图的像素值,根据二维纹理贴图上出现的像素值确定Cubemap上出现的目标颜色标识。
第一添加模块1850,用于将目标颜色标识对应的三维物体添加至检测点区域的PVS中。
可选地,第一添加模块1850,用于当目标颜色标识属于与低区检测点对应的立方体贴图时,将目标颜色标识对应的三维物体添加至检测点区域的第一PVS中;当目标颜色标识属于与高区检测点对应的立方体贴图时,将目标颜色标识对应的三维物体添加至检测点区域的第二PVS中。
可选地,该装置还包括:
设置模块1860,用于将检测点区域中的半透明三维物体设置为隐藏属性。
设置模块1860,用于将检测点区域中的半透明三维物体重新设置为显示属性,将除半透明三维物体之外的三维物体设置为隐藏属性。
第一替换模块1820,用于将半透明三维物体的贴图材质替换为单颜色材质,每个半透明三维物体对应的单颜色材质的颜色标识不同。
第一确定模块1830,用于在检测点区域中确定至少一个检测点。
第一渲染模块1840,用于渲染出检测点对应的立方体贴图,确定立方体贴图上出现的目标颜色标识。
第一添加模块1850,用于将目标颜色标识对应的半透明三维物体添加至检测点区域的PVS中。
图22示出了本申请一个示例性实施例提供的三维场景的渲染装置的结构示意图,应用于存储有检测点区域和PVS的终端中,PVS是采用如上所述的装置来得到的,该装置包括:
检测模块2110,用于检测摄像机模型在当前帧所在的检测点区域与上一帧所在的检测点区域是否相同。
读取模块2120,用于当摄像机模型在当前帧所在的检测点区域与上一帧所在的检测点区域不相同时,读取当前帧所在的检测点区域的PVS。
第二渲染模块2130,用于根据当前帧所在的检测点区域的PVS,渲染得到摄像机模型的镜头画面。
可选地,第二渲染模块2130,用于根据当前帧所在的检测点区域的第一PVS,渲染得到摄像机模型的第一镜头画面。
第二渲染模块2130,用于根据当前帧所在的检测点区域的第二PVS,渲染得到摄像机模型的第二镜头画面。
图23示出了本申请一个示例性实施例提供的PVS的确定装置的结构示意图,该装置应用于3D竞速游戏中,3D竞速游戏包括位于虚拟环境中的赛道区域,该装置包括:
第二划分模块2210,用于将赛道区域划分为多个检测点区域。
第二替换模块2220,用于将检测点区域中的三维物体的贴图材质替换为单颜色材质,每个三维物体对应的单颜色材质的颜色标识不同。
第二确定模块2230,用于在检测点区域中确定至少一个检测点。
第三渲染模块2240,用于渲染出检测点对应的立方体贴图,确定立方体贴图上出现的目标颜色标识。
第二添加模块2250,用于将目标颜色标识对应的赛道物体添加至检测点区域的赛道PVS中。
需要说明的是:上述实施例提供的PVS的确定装置和三维场景的渲染装置,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将设备的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的PVS的确定装置和三维场景的渲染装置与PVS的确定方法和三维场景的渲染方法的方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
图24示出了本申请一个实施例提供的服务器的结构示意图。该服务器用于实施上述实施例中提供的三维场景的渲染方法。具体来讲:
所述服务器2300包括中央处理单元(CPU)2301、包括随机存取存储器(RAM)2302和只读存储器(ROM)2303的系统存储器2304,以及连接系统存储器2304和中央处理单元2301的系统总线2305。所述服务器2300还包括帮助计算机内的各个器件之间传输信息的基本输入/输出系统(I/O系统)2306,和用于存储操作系统2313、应用程序2314和其他程序模块2315的大容量存储设备2307。
所述基本输入/输出系统2306包括有用于显示信息的显示器2308和用于用户输入信息的诸如鼠标、键盘之类的输入设备2309。其中所述显示器2308和输入设备2309都通过连接到系统总线2305的输入输出控制器2310连接到中央处理单元2301。所述基本输入/输出系统2306还可以包括输入输出控制器2310以用于接收和处理来自键盘、鼠标、或电子触控笔等多个其他设备的输入。类似地,输入输出控制器2310还提供输出到显示屏、打印机或其他类型的输出设备。
所述大容量存储设备2307通过连接到系统总线2305的大容量存储控制器(未示出)连接到中央处理单元2301。所述大容量存储设备2307及其相关联的计算机可读介质为服务器2300提供非易失性存储。也就是说,所述大容量存储设备2307可以包括诸如硬盘或者CD-ROM驱动器之类的计算机可读介质(未示出)。
不失一般性,所述计算机可读介质可以包括计算机存储介质和通信介质。计算机存储介质包括以用于存储诸如计算机可读指令、数据结构、程序模块或其他数据等信息的任何方法或技术实现的易失性和非易失性、可移动和不可移动介质。计算机存储介质包括RAM、ROM、EPROM、EEPROM、闪存或其他固态存储其技术,CD-ROM、DVD或其他光学存储、磁带盒、磁带、磁盘存储或其他磁性存储设备。当然,本领域技术人员可知所述计算机存储介质不局限于上述几种。上述的系统存储器2304和大容量存储设备2307可以统称为存储器。
根据本申请的各种实施例,所述服务器2300还可以通过诸如因特网等网络连接到网络上的远程计算机运行。也即服务器2300可以通过连接在所述系统总线2305上的网络接口单元2311连接到网络2312,或者说,也可以使用网络接口单元2311来连接到其他类型的网络或远程计算机系统(未示出)。
所述存储器还包括一个或者一个以上的程序,所述一个或者一个以上程序存储于存储器中,且经配置以由一个或者一个以上处理器执行。上述一个或者一个以上程序包含用于进行以下操作的指令:
检测摄像机模型在当前帧所在的检测点区域与上一帧所在的检测点区域是否相同;当摄像机模型在当前帧所在的检测点区域与上一帧所在的检测点区域不相同时,读取当前帧所在的检测点区域的PVS;根据当前帧所在的检测点区域的PVS,渲染得到摄像机模型的镜头画面。
图25示出了本发明一个示例性实施例提供的终端2400的结构框图。该终端2400可以是:智能手机、平板电脑、MP3播放器(Moving Picture Experts Group Audio LayerIII,动态影像专家压缩标准音频层面3)、MP4(Moving Picture Experts Group AudioLayer IV,动态影像专家压缩标准音频层面4)播放器、笔记本电脑或台式电脑。终端2400还可能被称为用户设备、便携式终端、膝上型终端、台式终端等其他名称。
通常,终端2400包括有:处理器2401和存储器2402。
处理器2401可以包括一个或多个处理核心,比如4核心处理器、8核心处理器等。处理器2401可以采用DSP(Digital Signal Processing,数字信号处理)、FPGA(Field-Programmable Gate Array,现场可编程门阵列)、PLA(Programmable Logic Array,可编程逻辑阵列)中的至少一种硬件形式来实现。处理器2401也可以包括主处理器和协处理器,主处理器是用于对在唤醒状态下的数据进行处理的处理器,也称CPU(Central ProcessingUnit,中央处理器);协处理器是用于对在待机状态下的数据进行处理的低功耗处理器。在一些实施例中,处理器2401可以在集成有GPU(Graphics Processing Unit,图像处理器),GPU用于负责显示屏所需要显示的内容的渲染和绘制。一些实施例中,处理器2401还可以包括AI(Artificial Intelligence,人工智能)处理器,该AI处理器用于处理有关机器学习的计算操作。
存储器2402可以包括一个或多个计算机可读存储介质,该计算机可读存储介质可以是非暂态的。存储器2402还可包括高速随机存取存储器,以及非易失性存储器,比如一个或多个磁盘存储设备、闪存存储设备。在一些实施例中,存储器2402中的非暂态的计算机可读存储介质用于存储至少一个指令,该至少一个指令用于被处理器2401所执行以实现本申请中方法实施例提供的对虚拟环境进行观察的方法。
在一些实施例中,终端2400还可选包括有:外围设备接口2403和至少一个外围设备。处理器2401、存储器2402和外围设备接口2403之间可以通过总线或信号线相连。各个外围设备可以通过总线、信号线或电路板与外围设备接口2403相连。具体地,外围设备包括:射频电路2404、触摸显示屏2405、摄像头2406、音频电路2407、定位组件2408和电源2409中的至少一种。
外围设备接口2403可被用于将I/O(Input/Output,输入/输出)相关的至少一个外围设备连接到处理器2401和存储器2402。在一些实施例中,处理器2401、存储器2402和外围设备接口2403被集成在同一芯片或电路板上;在一些其他实施例中,处理器2401、存储器2402和外围设备接口2403中的任意一个或两个可以在单独的芯片或电路板上实现,本实施例对此不加以限定。
射频电路2404用于接收和发射RF(Radio Frequency,射频)信号,也称电磁信号。射频电路2404通过电磁信号与通信网络以及其他通信设备进行通信。射频电路2404将电信号转换为电磁信号进行发送,或者,将接收到的电磁信号转换为电信号。可选地,射频电路2404包括:天线系统、RF收发器、一个或多个放大器、调谐器、振荡器、数字信号处理器、编解码芯片组、用户身份模块卡等等。射频电路2404可以通过至少一种无线通信协议来与其它终端进行通信。该无线通信协议包括但不限于:万维网、城域网、内联网、各代移动通信网络(2G、3G、4G及5G)、无线局域网和/或WiFi(Wireless Fidelity,无线保真)网络。在一些实施例中,射频电路2404还可以包括NFC(Near Field Communication,近距离无线通信)有关的电路,本申请对此不加以限定。
显示屏2405用于显示UI(User Interface,用户界面)。该UI可以包括图形、文本、图标、视频及其它们的任意组合。当显示屏2405是触摸显示屏时,显示屏2405还具有采集在显示屏2405的表面或表面上方的触摸信号的能力。该触摸信号可以作为控制信号输入至处理器2401进行处理。此时,显示屏2405还可以用于提供虚拟按钮和/或虚拟键盘,也称软按钮和/或软键盘。在一些实施例中,显示屏2405可以为一个,设置终端2400的前面板;在另一些实施例中,显示屏2405可以为至少两个,分别设置在终端2400的不同表面或呈折叠设计;在再一些实施例中,显示屏2405可以是柔性显示屏,设置在终端2400的弯曲表面上或折叠面上。甚至,显示屏2405还可以设置成非矩形的不规则图形,也即异形屏。显示屏2405可以采用LCD(Liquid Crystal Display,液晶显示屏)、OLED(Organic Light-Emitting Diode,有机发光二极管)等材质制备。
摄像头组件2406用于采集图像或视频。可选地,摄像头组件2406包括前置摄像头和后置摄像头。通常,前置摄像头设置在终端的前面板,后置摄像头设置在终端的背面。在一些实施例中,后置摄像头为至少两个,分别为主摄像头、景深摄像头、广角摄像头、长焦摄像头中的任意一种,以实现主摄像头和景深摄像头融合实现背景虚化功能、主摄像头和广角摄像头融合实现全景拍摄以及VR(Virtual Reality,虚拟现实)拍摄功能或者其它融合拍摄功能。在一些实施例中,摄像头组件2406还可以包括闪光灯。闪光灯可以是单色温闪光灯,也可以是双色温闪光灯。双色温闪光灯是指暖光闪光灯和冷光闪光灯的组合,可以用于不同色温下的光线补偿。
音频电路2407可以包括麦克风和扬声器。麦克风用于采集用户及环境的声波,并将声波转换为电信号输入至处理器2401进行处理,或者输入至射频电路2404以实现语音通信。出于立体声采集或降噪的目的,麦克风可以为多个,分别设置在终端2400的不同部位。麦克风还可以是阵列麦克风或全向采集型麦克风。扬声器则用于将来自处理器2401或射频电路2404的电信号转换为声波。扬声器可以是传统的薄膜扬声器,也可以是压电陶瓷扬声器。当扬声器是压电陶瓷扬声器时,不仅可以将电信号转换为人类可听见的声波,也可以将电信号转换为人类听不见的声波以进行测距等用途。在一些实施例中,音频电路2407还可以包括耳机插孔。
定位组件2408用于定位终端2400的当前地理位置,以实现导航或LBS(LocationBased Service,基于位置的服务)。定位组件2408可以是基于美国的GPS(GlobalPositioning System,全球定位系统)、中国的北斗系统或俄罗斯的伽利略系统的定位组件。
电源2409用于为终端2400中的各个组件进行供电。电源2409可以是交流电、直流电、一次性电池或可充电电池。当电源2409包括可充电电池时,该可充电电池可以是有线充电电池或无线充电电池。有线充电电池是通过有线线路充电的电池,无线充电电池是通过无线线圈充电的电池。该可充电电池还可以用于支持快充技术。
在一些实施例中,终端2400还包括有一个或多个传感器2410。该一个或多个传感器2410包括但不限于:加速度传感器2411、陀螺仪传感器2412、压力传感器2413、指纹传感器2414、光学传感器2415以及接近传感器2416。
加速度传感器2411可以检测以终端2400建立的坐标系的三个坐标轴上的加速度大小。比如,加速度传感器2411可以用于检测重力加速度在三个坐标轴上的分量。处理器2401可以根据加速度传感器2411采集的重力加速度信号,控制触摸显示屏2405以横向视图或纵向视图进行用户界面的显示。加速度传感器2411还可以用于游戏或者用户的运动数据的采集。
陀螺仪传感器2412可以检测终端2400的机体方向及转动角度,陀螺仪传感器2412可以与加速度传感器2411协同采集用户对终端2400的3D动作。处理器2401根据陀螺仪传感器2412采集的数据,可以实现如下功能:动作感应(比如根据用户的倾斜操作来改变UI)、拍摄时的图像稳定、游戏控制以及惯性导航。
压力传感器2413可以设置在终端2400的侧边框和/或触摸显示屏2405的下层。当压力传感器2413设置在终端2400的侧边框时,可以检测用户对终端2400的握持信号,由处理器2401根据压力传感器2413采集的握持信号进行左右手识别或快捷操作。当压力传感器2413设置在触摸显示屏2405的下层时,由处理器2401根据用户对触摸显示屏2405的压力操作,实现对UI界面上的可操作性控件进行控制。可操作性控件包括按钮控件、滚动条控件、图标控件、菜单控件中的至少一种。
指纹传感器2414用于采集用户的指纹,由处理器2401根据指纹传感器2414采集到的指纹识别用户的身份,或者,由指纹传感器2414根据采集到的指纹识别用户的身份。在识别出用户的身份为可信身份时,由处理器2401授权该用户执行相关的敏感操作,该敏感操作包括解锁屏幕、查看加密信息、下载软件、支付及更改设置等。指纹传感器2414可以被设置终端2400的正面、背面或侧面。当终端2400上设置有物理按键或厂商Logo时,指纹传感器2414可以与物理按键或厂商Logo集成在一起。
光学传感器2415用于采集环境光强度。在一个实施例中,处理器2401可以根据光学传感器2415采集的环境光强度,控制触摸显示屏2405的显示亮度。具体地,当环境光强度较高时,调高触摸显示屏2405的显示亮度;当环境光强度较低时,调低触摸显示屏2405的显示亮度。在另一个实施例中,处理器2401还可以根据光学传感器2415采集的环境光强度,动态调整摄像头组件2406的拍摄参数。
接近传感器2416,也称距离传感器,通常设置在终端2400的前面板。接近传感器2416用于采集用户与终端2400的正面之间的距离。在一个实施例中,当接近传感器2416检测到用户与终端2400的正面之间的距离逐渐变小时,由处理器2401控制触摸显示屏2405从亮屏状态切换为息屏状态;当接近传感器2416检测到用户与终端2400的正面之间的距离逐渐变大时,由处理器2401控制触摸显示屏2405从息屏状态切换为亮屏状态。
本领域技术人员可以理解,图24中示出的结构并不构成对终端2400的限定,可以包括比图示更多或更少的组件,或者组合某些组件,或者采用不同的组件布置。
在示例性实施例中,还提供了一种计算机可读存储介质,该计算机可读存储介质为非易失性的计算机可读存储介质,该计算机可读存储介质中存储有计算机程序,存储的计算机程序被处理组件执行时能够实现本公开上述实施例提供的PVS的确定方法。
在示例性实施例中,还提供了一种计算机可读存储介质,该计算机可读存储介质为非易失性的计算机可读存储介质,该计算机可读存储介质中存储有计算机程序,存储的计算机程序被处理组件执行时能够实现本公开上述实施例提供的三维场景的渲染方法。
在示例性实施例中,还提供了一种计算机程序产品,该程序产品中存储有至少一条指令、至少一段程序、代码集或指令集,至少一条指令、至少一段程序、代码集或指令集由处理器加载并执行以实现如上述方法实施例中所示的由终端执行的PVS的确定方法。
在示例性实施例中,还提供了一种计算机程序产品,该程序产品中存储有至少一条指令、至少一段程序、代码集或指令集,至少一条指令、至少一段程序、代码集或指令集由处理器加载并执行以实现如上述方法实施例中所示的由终端执行的三维场景的渲染方法。
应当理解的是,在本文中提及的“多个”是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。
上述本申请实施例序号仅仅为了描述,不代表实施例的优劣。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上所述仅为本申请的较佳实施例,并不用以限制本申请,凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
Claims (17)
1.一种潜在可视集合的确定方法,其特征在于,所述方法包括:
将地图区域划分为多个检测点区域;
将所述检测点区域中的三维物体的贴图材质替换为单颜色材质,每个三维物体对应的单颜色材质的颜色标识不同;
在所述检测点区域上确定出离散的多个平面检测点;
对于所述多个平面检测点中的每个平面检测点,通过物理模型射线检测对所述平面检测点进行检测,获得所述平面检测点处的路面高度;
根据所述路面高度与第一高度相加后的第一和值,确定出所述平面检测点对应的低区检测点;
根据所述路面高度与第二高度相加后的第二和值,确定出所述平面检测点对应的高区检测点;
渲染出至少一个检测点对应的立方体贴图,确定所述立方体贴图上出现的目标颜色标识,所述至少一个检测点包括所述低区检测点和所述高区检测点;
将所述目标颜色标识对应的三维物体添加至所述检测点区域的潜在可视集合PVS中。
2.根据权利要求1所述的方法,其特征在于,所述渲染出至少一个检测点对应的立方体贴图,包括:
对所述至少一个检测点处的六个方向面分别进行渲染,得到每个方向面上对应的二维纹理贴图;
将所述六个方向面上的二维纹理贴图进行拼合,得到所述至少一个检测点对应的立方体贴图。
3.根据权利要求2所述的方法,其特征在于,所述确定所述立方体贴图上出现的目标颜色标识,包括:
遍历所述立方体贴图的六个方向面上的二维纹理贴图的像素值,根据所述二维纹理贴图上出现的像素值确定所述立方体贴图上出现的目标颜色标识。
4.根据权利要求1至3任一所述的方法,其特征在于,所述将所述检测点区域中的三维物体的贴图材质替换为单颜色材质,包括:
将所述检测点区域中的三维物体的唯一物体标识映射为颜色标识;
将所述三维物体的贴图材质替换为与所述颜色标识对应的单颜色材质。
5.根据权利要求4所述的方法,其特征在于,所述将所述检测点区域中的三维物体的唯一物体标识映射为颜色标识,包括:
将所述检测点区域中的三维物体的唯一物体标识的最后三位,分别映射为红绿蓝颜色空间中的红色通道值、绿色通道值和蓝色通道值;
根据所述红色通道值、所述绿色通道值和所述蓝色通道值,确定出所述三维物体对应的颜色标识。
6.根据权利要求1至3任一所述的方法,其特征在于,所述将所述目标颜色标识对应的三维物体添加至所述检测点区域的潜在可视集合PVS中,包括:
当所述目标颜色标识属于与所述低区检测点对应的立方体贴图时,将所述目标颜色标识对应的三维物体添加至所述检测点区域的第一PVS中;
当所述目标颜色标识属于与所述高区检测点对应的立方体贴图时,将所述目标颜色标识对应的三维物体添加至所述检测点区域的第二PVS中。
7.根据权利要求1至3任一所述的方法,其特征在于,所述将所述检测点区域中的三维物体的贴图材质替换为单颜色材质之后,还包括:
将所述检测点区域中的半透明三维物体设置为隐藏属性;
所述方法还包括:
将所述检测点区域中的半透明三维物体重新设置为显示属性,将除所述半透明三维物体之外的三维物体设置为隐藏属性;
将所述半透明三维物体的贴图材质替换为单颜色材质,每个半透明三维物体对应的单颜色材质的颜色标识不同;
在所述检测点区域中确定至少一个检测点;
渲染出所述检测点对应的立方体贴图,确定所述立方体贴图上出现的目标颜色标识;
将所述目标颜色标识对应的半透明三维物体添加至所述检测点区域的PVS中。
8.一种三维场景的渲染方法,其特征在于,应用于存储有检测点区域和潜在可视集合PVS的终端中,所述PVS是采用如上权利要求1至7任一所述的方法生成的,所述方法包括:
检测摄像机模型在当前帧所在的检测点区域与上一帧所在的检测点区域是否相同;
当所述摄像机模型在所述当前帧所在的检测点区域与所述上一帧所在的检测点区域不相同时,读取所述当前帧所在的检测点区域的PVS;
根据所述当前帧所在的检测点区域的PVS,渲染得到所述摄像机模型的镜头画面。
9.根据权利要求8所述的方法,其特征在于,所述根据所述当前帧所在的检测点区域的PVS,渲染得到所述摄像机模型的镜头画面,包括:
根据所述当前帧所在的检测点区域的第一PVS,渲染得到所述摄像机模型的第一镜头画面;
根据所述当前帧所在的检测点区域的第二PVS,渲染得到所述摄像机模型的第二镜头画面。
10.一种潜在可视集合的确定方法,其特征在于,所述方法应用于3D竞速游戏中,所述3D竞速游戏包括位于虚拟环境中的赛道区域,所述方法包括:
将赛道区域划分为多个检测点区域;
将所述检测点区域中的三维物体的贴图材质替换为单颜色材质,每个三维物体对应的单颜色材质的颜色标识不同;
在所述检测点区域上确定出离散的多个平面检测点;
对于所述多个平面检测点中的每个平面检测点,通过物理模型射线检测对所述平面检测点进行检测,获得所述平面检测点处的路面高度;
根据所述路面高度与第一高度相加后的第一和值,确定出所述平面检测点对应的低区检测点;
根据所述路面高度与第二高度相加后的第二和值,确定出所述平面检测点对应的高区检测点;
渲染出至少一个检测点对应的立方体贴图,确定所述立方体贴图上出现的目标颜色标识,所述至少一个检测点包括所述低区检测点和所述高区检测点;
将所述目标颜色标识对应的赛道物体添加至所述检测点区域的赛道潜在可视集合PVS中。
11.一种潜在可视集合的确定装置,其特征在于,所述装置包括:
第一划分模块,用于将地图区域划分为多个检测点区域;
第一替换模块,用于将所述检测点区域中的三维物体的贴图材质替换为单颜色材质,每个三维物体对应的单颜色材质的颜色标识不同;
第一确定模块,用于在所述检测点区域上确定出离散的多个平面检测点;
对于所述多个平面检测点中的每个平面检测点,通过物理模型射线检测对所述平面检测点进行检测,获得所述平面检测点处的路面高度;
根据所述路面高度与第一高度相加后的第一和值,确定出所述平面检测点对应的低区检测点;
根据所述路面高度与第二高度相加后的第二和值,确定出所述平面检测点对应的高区检测点;
第一渲染模块,用于渲染出至少一个检测点对应的立方体贴图,确定所述立方体贴图上出现的目标颜色标识,所述至少一个检测点包括所述低区检测点和所述高区检测点;
第一添加模块,用于将所述目标颜色标识对应的三维物体添加至所述检测点区域的潜在可视集合PVS中。
12.一种三维场景的渲染装置,其特征在于,应用于存储有检测点区域和潜在可视集合PVS的终端中,所述PVS是采用如上权利要求1至7任一所述的方法生成的,所述装置包括:
检测模块,用于检测摄像机模型在当前帧所在的检测点区域与上一帧所在的检测点区域是否相同;
读取模块,用于当所述摄像机模型在所述当前帧所在的检测点区域与所述上一帧所在的检测点区域不相同时,读取所述当前帧所在的检测点区域的PVS;
第二渲染模块,用于根据所述当前帧所在的检测点区域的PVS,渲染得到所述摄像机模型的镜头画面。
13.一种潜在可视集合的确定装置,其特征在于,所述装置应用于3D竞速游戏中,所述3D竞速游戏包括位于虚拟环境中的赛道区域,所述装置包括:
第二划分模块,用于将赛道区域划分为多个检测点区域;
第二替换模块,用于将所述检测点区域中的三维物体的贴图材质替换为单颜色材质,每个三维物体对应的单颜色材质的颜色标识不同;
第二确定模块,用于在所述检测点区域上确定出离散的多个平面检测点;
对于所述多个平面检测点中的每个平面检测点,通过物理模型射线检测对所述平面检测点进行检测,获得所述平面检测点处的路面高度;
根据所述路面高度与第一高度相加后的第一和值,确定出所述平面检测点对应的低区检测点;
根据所述路面高度与第二高度相加后的第二和值,确定出所述平面检测点对应的高区检测点;
第三渲染模块,用于渲染出至少一个检测点对应的立方体贴图,确定所述立方体贴图上出现的目标颜色标识,所述至少一个检测点包括所述低区检测点和所述高区检测点;
第二添加模块,用于将所述目标颜色标识对应的赛道物体添加至所述检测点区域的赛道潜在可视集合PVS中。
14.一种终端,其特征在于,所述终端包括处理器和存储器,所述存储器中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由所述处理器加载并执行以实现如权利要求1至7任一所述的潜在可视集合的确定方法,或,如权利要求10所述的潜在可视集合的确定方法。
15.一种终端,其特征在于,所述终端包括处理器和存储器,所述存储器中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由所述处理器加载并执行以实现如权利要求8至9任一所述的三维场景的渲染方法。
16.一种计算机可读存储介质,其特征在于,所述存储介质中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由处理器加载并执行以实现如权利要求1至7任一所述的潜在可视集合的确定方法,或,如权利要求10所述的潜在可视集合的确定方法。
17.一种计算机可读存储介质,其特征在于,所述存储介质中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由处理器加载并执行以实现如权利要求8至9任一所述的三维场景的渲染方法。
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811493375.0A CN109615686B (zh) | 2018-12-07 | 2018-12-07 | 潜在可视集合的确定方法、装置、设备及存储介质 |
EP19893835.9A EP3832605B1 (en) | 2018-12-07 | 2019-11-26 | Method and device for determining potentially visible set, apparatus, and storage medium |
PCT/CN2019/120864 WO2020114274A1 (zh) | 2018-12-07 | 2019-11-26 | 潜在可视集合的确定方法、装置、设备及存储介质 |
US17/185,328 US11798223B2 (en) | 2018-12-07 | 2021-02-25 | Potentially visible set determining method and apparatus, device, and storage medium |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811493375.0A CN109615686B (zh) | 2018-12-07 | 2018-12-07 | 潜在可视集合的确定方法、装置、设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109615686A CN109615686A (zh) | 2019-04-12 |
CN109615686B true CN109615686B (zh) | 2022-11-29 |
Family
ID=66007752
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811493375.0A Active CN109615686B (zh) | 2018-12-07 | 2018-12-07 | 潜在可视集合的确定方法、装置、设备及存储介质 |
Country Status (4)
Country | Link |
---|---|
US (1) | US11798223B2 (zh) |
EP (1) | EP3832605B1 (zh) |
CN (1) | CN109615686B (zh) |
WO (1) | WO2020114274A1 (zh) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109615686B (zh) * | 2018-12-07 | 2022-11-29 | 腾讯科技(深圳)有限公司 | 潜在可视集合的确定方法、装置、设备及存储介质 |
CN110223589A (zh) * | 2019-05-17 | 2019-09-10 | 上海蜂雀网络科技有限公司 | 一种基于3d绘画协议的汽车模型展示方法 |
CN113298918B (zh) * | 2020-02-24 | 2022-12-27 | 广东博智林机器人有限公司 | 一种重叠区域的异色显示方法及装置 |
CN111583398B (zh) * | 2020-05-15 | 2023-06-13 | 网易(杭州)网络有限公司 | 图像显示的方法、装置、电子设备及计算机可读存储介质 |
CN112927365B (zh) * | 2021-04-13 | 2023-05-26 | 网易(杭州)网络有限公司 | 在应用程序的三维虚拟场景中渲染山体的方法及装置 |
CN113763545A (zh) * | 2021-09-22 | 2021-12-07 | 拉扎斯网络科技(上海)有限公司 | 图像确定方法、装置、电子设备和计算机可读存储介质 |
CN114522420A (zh) * | 2022-02-16 | 2022-05-24 | 网易(杭州)网络有限公司 | 游戏数据处理方法、装置、计算机设备及存储介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106683155A (zh) * | 2015-11-04 | 2017-05-17 | 闫烁 | 一种三维模型综合动态调度方法 |
CN106780693A (zh) * | 2016-11-15 | 2017-05-31 | 广州视源电子科技股份有限公司 | 一种通过绘制方式选择三维场景中物体的方法及系统 |
CN107886552A (zh) * | 2016-09-29 | 2018-04-06 | 网易(杭州)网络有限公司 | 贴图处理方法和装置 |
CN108257103A (zh) * | 2018-01-25 | 2018-07-06 | 网易(杭州)网络有限公司 | 游戏场景的遮挡剔除方法、装置、处理器及终端 |
CN108810538A (zh) * | 2018-06-08 | 2018-11-13 | 腾讯科技(深圳)有限公司 | 视频编码方法、装置、终端及存储介质 |
CN108876931A (zh) * | 2017-05-12 | 2018-11-23 | 腾讯科技(深圳)有限公司 | 三维物体颜色调整方法、装置、计算机设备及计算机可读存储介质 |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0591325B1 (en) * | 1991-06-28 | 2007-12-05 | LIM, Hong Lip | Improvements in visibility calculations for 3d computer graphics |
GB0027133D0 (en) * | 2000-11-07 | 2000-12-20 | Secr Defence | Improved method of producing a computer generated hologram |
JP3764070B2 (ja) * | 2001-06-07 | 2006-04-05 | 富士通株式会社 | オブジェクト表示プログラムおよびオブジェクト表示装置 |
US6862025B2 (en) * | 2002-02-28 | 2005-03-01 | David B. Buehler | Recursive ray casting method and apparatus |
US8619078B2 (en) * | 2010-05-21 | 2013-12-31 | International Business Machines Corporation | Parallelized ray tracing |
US8692825B2 (en) * | 2010-06-24 | 2014-04-08 | International Business Machines Corporation | Parallelized streaming accelerated data structure generation |
US10109103B2 (en) * | 2010-06-30 | 2018-10-23 | Barry L. Jenkins | Method of determining occluded ingress and egress routes using nav-cell to nav-cell visibility pre-computation |
US8847965B2 (en) * | 2010-12-03 | 2014-09-30 | The University Of North Carolina At Chapel Hill | Methods, systems, and computer readable media for fast geometric sound propagation using visibility computations |
US10157495B2 (en) * | 2011-03-04 | 2018-12-18 | General Electric Company | Method and device for displaying a two-dimensional image of a viewed object simultaneously with an image depicting the three-dimensional geometry of the viewed object |
US12008707B2 (en) * | 2013-02-14 | 2024-06-11 | David Todd Kaplan | Highly scalable cluster engine for hosting simulations of objects interacting within a space |
CN108888954A (zh) * | 2018-06-20 | 2018-11-27 | 苏州玩友时代科技股份有限公司 | 一种拾取坐标的方法、装置、设备及存储介质 |
CN109615686B (zh) * | 2018-12-07 | 2022-11-29 | 腾讯科技(深圳)有限公司 | 潜在可视集合的确定方法、装置、设备及存储介质 |
-
2018
- 2018-12-07 CN CN201811493375.0A patent/CN109615686B/zh active Active
-
2019
- 2019-11-26 WO PCT/CN2019/120864 patent/WO2020114274A1/zh unknown
- 2019-11-26 EP EP19893835.9A patent/EP3832605B1/en active Active
-
2021
- 2021-02-25 US US17/185,328 patent/US11798223B2/en active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106683155A (zh) * | 2015-11-04 | 2017-05-17 | 闫烁 | 一种三维模型综合动态调度方法 |
CN107886552A (zh) * | 2016-09-29 | 2018-04-06 | 网易(杭州)网络有限公司 | 贴图处理方法和装置 |
CN106780693A (zh) * | 2016-11-15 | 2017-05-31 | 广州视源电子科技股份有限公司 | 一种通过绘制方式选择三维场景中物体的方法及系统 |
CN108876931A (zh) * | 2017-05-12 | 2018-11-23 | 腾讯科技(深圳)有限公司 | 三维物体颜色调整方法、装置、计算机设备及计算机可读存储介质 |
CN108257103A (zh) * | 2018-01-25 | 2018-07-06 | 网易(杭州)网络有限公司 | 游戏场景的遮挡剔除方法、装置、处理器及终端 |
CN108810538A (zh) * | 2018-06-08 | 2018-11-13 | 腾讯科技(深圳)有限公司 | 视频编码方法、装置、终端及存储介质 |
Non-Patent Citations (1)
Title |
---|
天空盒(SkyBox)的实现原理与细节;syddf_shadow;《URL:https://blog.csdn.net/yjr3426619/article/details/81224101》;20180726;1-7 * |
Also Published As
Publication number | Publication date |
---|---|
US11798223B2 (en) | 2023-10-24 |
US20210183137A1 (en) | 2021-06-17 |
EP3832605A1 (en) | 2021-06-09 |
WO2020114274A1 (zh) | 2020-06-11 |
EP3832605A4 (en) | 2021-10-20 |
CN109615686A (zh) | 2019-04-12 |
EP3832605B1 (en) | 2024-04-17 |
EP3832605C0 (en) | 2024-04-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109615686B (zh) | 潜在可视集合的确定方法、装置、设备及存储介质 | |
CN108245893B (zh) | 三维虚拟环境中虚拟对象的姿态确定方法、装置及介质 | |
CN109754454B (zh) | 物体模型的渲染方法、装置、存储介质及设备 | |
CN111701238A (zh) | 虚拟画卷的显示方法、装置、设备及存储介质 | |
CN110917616B (zh) | 虚拟场景中的方位提示方法、装置、设备及存储介质 | |
CN112933599B (zh) | 三维模型渲染方法、装置、设备及存储介质 | |
CN110064200B (zh) | 基于虚拟环境的物体构建方法、装置及可读存储介质 | |
WO2022052620A1 (zh) | 图像生成方法及电子设备 | |
CN110335224B (zh) | 图像处理方法、装置、计算机设备及存储介质 | |
CN112245926A (zh) | 虚拟地形的渲染方法、装置、设备及介质 | |
CN112150560A (zh) | 确定消失点的方法、装置及计算机存储介质 | |
CN111273780A (zh) | 基于虚拟环境的动画播放方法、装置、设备及存储介质 | |
CN112308103B (zh) | 生成训练样本的方法和装置 | |
CN109939442B (zh) | 应用角色位置异常识别方法、装置、电子设备及存储介质 | |
CN112699208B (zh) | 地图寻路方法、装置、设备及介质 | |
CN112306332B (zh) | 确定选中目标的方法、装置、设备及存储介质 | |
CN116402880B (zh) | 含油面积确定方法、装置、设备及存储介质 | |
CN112950753A (zh) | 虚拟植物显示方法、装置、设备及存储介质 | |
CN113018865B (zh) | 攀爬线生成方法、装置、计算机设备及存储介质 | |
CN113144595B (zh) | 虚拟道路的生成方法、装置、终端及存储介质 | |
CN112755533B (zh) | 虚拟载具涂装方法、装置、设备及存储介质 | |
CN113209610B (zh) | 虚拟场景画面展示方法、装置、计算机设备及存储介质 | |
CN112717393B (zh) | 虚拟场景中的虚拟物件显示方法、装置、设备及存储介质 | |
CN116258810A (zh) | 路面要素的渲染方法、装置、设备及存储介质 | |
CN113058266B (zh) | 虚拟环境中场景字体的显示方法、装置、设备及介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |