CN112370783B - 虚拟对象渲染方法、装置、计算机设备和存储介质 - Google Patents

虚拟对象渲染方法、装置、计算机设备和存储介质 Download PDF

Info

Publication number
CN112370783B
CN112370783B CN202011391503.8A CN202011391503A CN112370783B CN 112370783 B CN112370783 B CN 112370783B CN 202011391503 A CN202011391503 A CN 202011391503A CN 112370783 B CN112370783 B CN 112370783B
Authority
CN
China
Prior art keywords
virtual object
model
level
preset
lod
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
Application number
CN202011391503.8A
Other languages
English (en)
Other versions
CN112370783A (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.)
Netease Hangzhou Network Co Ltd
Original Assignee
Netease Hangzhou Network Co Ltd
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 Netease Hangzhou Network Co Ltd filed Critical Netease Hangzhou Network Co Ltd
Priority to CN202011391503.8A priority Critical patent/CN112370783B/zh
Publication of CN112370783A publication Critical patent/CN112370783A/zh
Application granted granted Critical
Publication of CN112370783B publication Critical patent/CN112370783B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/50Controlling the output signals based on the game progress
    • A63F13/52Controlling the output signals based on the game progress involving aspects of the displayed game scene
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/60Generating or modifying game content before or while executing the game program, e.g. authoring tools specially adapted for game development or game-integrated level editor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/02Non-photorealistic rendering
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/04Texture mapping
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F2300/00Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game
    • A63F2300/60Methods for processing data by generating or executing the game program
    • A63F2300/66Methods for processing data by generating or executing the game program for rendering three dimensional images

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Computer Graphics (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Processing Or Creating Images (AREA)

Abstract

本申请公开了一种虚拟对象渲染方法、装置、计算机设备和存储介质,通过获取虚拟对象的属性,之后根据属性计算虚拟对象相对于屏幕的像素占比,接着确定与像素占比对应的LOD模型,并通过该LOD模型对虚拟对象进行渲染,克服了现有技术需要针对每个模型设置切换距离来进行LOD模型切换的缺点,且不会受模型布置到场景中的缩放值的影响,保证了渲染效果以及场景的画面表现效果。

Description

虚拟对象渲染方法、装置、计算机设备和存储介质
技术领域
本申请涉及计算机图形技术领域,具体涉及一种虚拟对象渲染方法、装置、计算机设备和存储介质。
背景技术
LOD(LevelsofDetail,细节层次)是在不影响画面视觉效果的条件下,通过逐次简化景物的表面细节来减少场景的几何复杂性,从而提高绘制效率的一种技术,该技术通常对每一原始模型建立几个不同精度的LOD模型,与原始模型相比,不同精度的LOD模型均保留了一定层次的细节,在后续绘制时,可以根据不同的标准选择适当层次的模型来表示物体。其中,LOD模型广泛应用于游戏领域,例如游戏场景的绘制。
现有技术中,是通过手动设置每级LOD模型的选择距离区间,之后根据原始模型与主相机的距离,实时判断该距离满足那个选择距离区间,来选择相应级别的LOD模型进行显示的,且被选择的所有LOD模型均由开发人员手动制作。然而,由于选择距离区间通常是针对无缩放的原始模型设置的,而布置在场景中的原始模型存在不同的缩放值,固定设置的选择距离区间,会使得该原始模型实际选择LOD模型的效果达不到预期,例如,可能会造成渲染出的LOD模型面数不够多,而导致影响渲染效果,也有可能造成LOD级别选择不正确,减弱场景的画面表现效果,且开发人员手动制作LOD模型的过程繁琐,效率低下,若后期需要更新场景以及模型,更会产生巨大的工作量。因此,现有技术存在缺陷。
发明内容
本申请实施例提供一种虚拟对象渲染方法、装置、计算机设备和存储介质,可以合理选择相应等级的LOD模型进行渲染,以保证渲染效果和场景的画面表现效果。
本申请实施例提供一种虚拟对象渲染方法,该虚拟对象渲染方法包括:
获取虚拟对象的属性;
根据所述属性计算所述虚拟对象相对于屏幕的像素占比;
确定与所述像素占比对应的LOD模型;
通过所述LOD模型对所述虚拟对象进行渲染。
可选的,所述属性包括所述虚拟对象的顶点数据,以及所述虚拟对象的世界变化矩阵,所述根据所述属性计算所述虚拟对象相对于屏幕的像素占比,包括:
根据所述顶点数据计算出所述虚拟对象在模型空间下的第一包围盒;
根据所述第一包围盒和所述世界变换矩阵,将所述第一包围盒转换为世界空间下的第二包围盒;
根据所述第二包围盒和预设屏幕变换矩阵,将所述第二包围盒转换为屏幕空间下的第三包围盒;
根据所述第三包围盒计算所述虚拟对象相对于屏幕的像素占比。
可选的,所述根据所述第三包围盒计算所述虚拟对象相对于屏幕的像素占比,包括:
计算所述第三包围盒与预设屏幕矩形相交的第一面积;
将所述第三包围盒沿所述第三包围盒中心至虚拟相机的方向移动至预设基准距离,以得到第四包围盒;
计算所述第四包围盒与所述预设屏幕矩形相交的第二面积;
根据所述第一面积和所述第二面积计算相对于所述虚拟对象相当于屏幕的像素占比。
可选的,所述确定与所述像素占比对应的LOD模型,包括:
根据所述像素占比和多个预设的像素占比区间,从LOD模型组中选择与所述像素占比对应的LOD模型。
可选的,所述预设LOD模型组中包括多等级LOD模型,所述多个预设的相对屏幕像素占比区间与所述多等级LOD模型一一对应,所述根据所述像素占比和多个预设的像素占比区间,从LOD模型组中选择与所述像素占比对应的LOD模型,包括:
若所述像素占比在所述多个预设的像素占比区间中的一个像素占比区间内,则选择多等级LOD模型中所述像素占比所在的像素占比区间对应的LOD模型。
可选的,在所述选择多等级LOD模型中所述像素占比所在的像素占比区间对应的LOD模型之后,还包括:
当检测所述像素占比变化时,判断变化后的所述像素占比是否溢出变化前的所述像素占比所在的像素占比区间;
若变化后的所述像素占比溢出变化前的所述像素占比所在的像素占比区间,则判断溢出值是否小于预设容忍值;
若所述溢出值小于预设容忍值,则继续选择与变化前的所述相对屏幕像素占比所在的预设相对屏幕像素占比区间对应的LOD模型;
若所述溢出值不小于预设值,则选择与变化后的所述相对屏幕像素占比所在的预设相对屏幕像素占比区间对应的LOD模型。
可选的,所述虚拟对象渲染方法还包括:
针对位于预设安全范围内的虚拟对象,选择预设LOD模型组中预设等级的LOD模型进行渲染。
可选的,所述LOD模型为多等级LOD模型,在所述获取虚拟对象的属性之前,所述方法还包括,根据虚拟对象的原始材质构建所述多等级LOD模型。
可选的,所述根据虚拟对象的原始材质构建所述多等级LOD模型,包括:
获取至少一个虚拟对象,所述虚拟对象包括与其对应的原始网格和原始材质,所述原始网格包括至少一个子网格;
根据所述原始材质,为所述虚拟对象生成对应的低配材质;
根据所述虚拟对象的至少一个子网格、所述原始材质以及所述对应的低配材质,为所述虚拟对象生成多等级LOD模型。
可选的,所述获取至少一个虚拟对象,包括:
解析预设场景文件以及预设动态对象策划表格,以得到对象路径列表;
根据所述对象路径列表获取至少一个虚拟对象。
可选的,在得到所述对象路径列表之后,还包括:对所述对象路径列表进行去重复操作;
所述根据所述对象路径列表获取至少一个虚拟对象,包括:根据去重复操作后的所述对象路径列表获取至少一个虚拟对象。
可选的,所述原始材质包括至少一层材质,所述至少一层材质包括法线贴图层、散射贴图层、混合贴图层、以及原始光照模型,所述根据所述原始材质,为所述虚拟对象生成对应的低配材质,包括:
按照预设策略,将所述至少一层材质中的所述散射贴图层和所述混合贴图层合并;
将所述法线贴图层舍弃;
将所述原始光照模型替换为预设光照模型,以得到低配材质。
可选的,所述多等级LOD模型包括第一等级LOD模型和第二等级LOD模型,所述根据所述虚拟对象的至少一个子网格、所述原始材质以及所述对应的低配材质,为所述虚拟对象生成多等级LOD模型,包括:
根据所述虚拟对象的至少一个子网格和原始材质生成所述至少一个第一等级LOD模型;
根据所述虚拟对象的至少一个子网格和所述对应的低配材质生成所述至少一个第二等级LOD模型。
可选的,所述根据所述虚拟对象的至少一个子网格和原始材质生成所述至少一个第一等级LOD模型,包括:
根据所述虚拟对象的至少一个子网格和各第一等级对应的预设面数比例生成对应于所述各第一等级的简化模型;
根据所述虚拟对象的原始材质和所述各第一等级的简化模型生成所述至少一个低等级LOD模型。
可选的,所述根据所述虚拟对象的至少一个子网格和所述对应的低配材质生成所述至少一个第二等级LOD模型,包括:
根据所述虚拟对象的至少一个子网格和各第二等级对应的预设面数比例生成对应于所述各第二等级的简化模型;
将所述各第二等级的简化模型合并;
根据所述合并后的各第二等级的简化模型和所述对应的低配材质生成所述至少一个第二等级LOD模型。
可选的,在所述将所述散射贴图层和所述混合贴图层按照预设策略合并之后,还包括:生成贴图合并信息,并根据所述贴图合并信息生成修正矩阵;
在所述将所述各第二等级的简化模型合并后,所述方法还包括:根据所述修正矩阵修正所述合并后的各第二等级的简化模型。
可选的,在所述生成对应于各第一等级的简化模型或在所述生成对应于各第二等级的简化模型之后,还包括:
判断所述简化模型的面数是否小于预设面数;
若所述简化模型的面数小于预设面数,则使用预设值来修正所述简化模型对应等级的预设面数比例;
按照修正后的面数比例更新所述简化模型。
可选的,在所述根据所述虚拟对象的至少一个子网格、所述原始材质以及所述对应的低配材质,为所述虚拟对象生成多等级LOD模型之后,还包括:
将所述虚拟对象的多等级LOD模型合并为LOD模型组。
可选的,在所述将所述虚拟对象的多等级LOD模型合并为LOD模型组之后,还包括:
克隆原始场景;
将克隆后的原始场景中的静态虚拟对象,替换为所述静态虚拟对象的LOD模型组。
可选的,在所述将所述虚拟对象的多等级LOD模型合并为LOD模型组之后,还包括:
生成针对所述虚拟对象中,动态虚拟对象的模型路径及所述动态虚拟对象的LOD模型组的模型组路径之间的映射数据;
根据所述映射数据应用所述动态虚拟对象的所述LOD模型组。
本申请实施例还提供了一种虚拟对象渲染装置,包括:
获取模块,用于获取虚拟对象的属性;
计算模块,用于根据所述属性计算所述虚拟对象相对于屏幕的像素占比;
确定模块,用于确定与所述像素占比对应的LOD模型;
渲染模块,用于通过所述LOD模型对所述虚拟对象进行渲染。
本申请实施例还提供了一种计算机设备,包括存储器,处理器及存储在存储器上并可在处理器上运行的计算机程序,其中,处理器执行计算机程序时实现如上述方法的步骤。
本申请实施例还提供了一种存储介质,其上存储有计算机程序,其中,计算机程序被处理器执行时实现如上述方法的步骤。
本申请实施例提供了一种虚拟对象渲染方法、装置、计算机设备和存储介质,相比现有技术中通过手动设置LOD模型的选择距离区间,之后根据原始模型与主相机的距离,实时判断该距离满足那个选择距离区间,来选择相应级别的LOD模型进行显示,本申请的技术方案基于计算虚拟对象相对于屏幕的像素占比来选择LOD模型的方法,无需针对每个模型均设置切换距离,且不会受模型布置到场景中的缩放值影响,保证了渲染效果以及场景的画面表现效果。与此同时,本申请中被选择的LOD模型为自动化生成,与现有手动制作LOD模型的方式相比,节省了人力并提升了LOD模型的生成效率。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例提供的虚拟对象渲染方法的流程示意图;
图2是本申请实施例提供的虚拟对象渲染方法中步骤102的流程示意图;
图3是本申请实施例提供的虚拟对象渲染方法的另一流程示意图;
图4是本申请实施例提供的第三包围盒的移动示意图;
图5是本申请实施例提供的屏幕空间的结构示意图;
图6是本申请实施例提供的虚拟对象渲染装置的结构示意图;
图7是本申请实施例提供的一种计算机设备的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本申请实施例提供一种虚拟对象渲染方法、装置、计算机设备和存储介质。具体地,本实施例提供适用于信息处理装置的虚拟对象渲染方法,该信息处理装置可以集成在计算机设备中。
该计算机设备可以为终端等设备,例如可以为手机、平板电脑、笔记本电脑、台式电脑等。
该计算机设备还可以为服务器等设备,该服务器可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式***,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、CDN、以及大数据和人工智能平台等基础云计算服务的云服务器,但并不局限于此。
本实施例的虚拟对象可以是虚拟场景中的待渲染对象,本实施例的虚拟场景包括但不限于游戏场景。
本实施例中,虚拟场景所属游戏开发完成后,该游戏可以部署到对应的游戏服务器上,用户可以通过终端与该游戏服务器进行交互。其中,终端中可以集成有游戏客户端,用户可以通过终端上的游戏客户端与游戏服务器进行交互,或者用户可以通过终端登录游戏服务器提供的网页,通过网页实现与游戏服务器的交互。
终端与服务器之间通过网络连接,比如,通过有线或无线网络连接等。
在一个示例中,当游戏部署到游戏服务器上后,游戏场景的相关信息可以存储在游戏服务器中,也可以由服务器发送给终端,由终端保存在本地并在需要的时候使用。
请参阅图1,图1为本申请实施例提供的虚拟对象渲染方法的流程示意图,该方法主要可以包括步骤101至步骤104,该方法所包含的各个步骤的执行主体可以相同也可以不同,该执行主体包括终端、服务器等,针对各个步骤的说明如下:
步骤101:获取虚拟对象的属性。
其中,该虚拟对象为虚拟场景中的待渲染对象,以游戏场景为例,待渲染对象可以为虚拟物品,比如游戏场景中的树木、房屋等,也可以为虚拟角色,比如由用户操控的玩家角色、推动游戏情节发展的非玩家角色等。容易理解的是,在虚拟场景初始化时,可以获取该虚拟对象的属性。具体地,虚拟对象的属性为虚拟对象在创建时,由创建者设置一些默认数据。
步骤102:根据属性计算虚拟对象相对于屏幕的像素占比。
具体地,该属性包括虚拟对象的顶点数据,以及虚拟对象的世界变换矩阵,其中,世界变换矩阵是由虚拟对象的创建者定义的,世界变换矩阵定义了将虚拟对象从模型空间转换到世界空间时,其在世界空间下的变换信息(平移、旋转、缩放)。其中,请参阅图2,步骤102主要可以包括步骤1021至步骤1024,说明如下:
步骤1021:根据顶点数据计算出虚拟对象在模型空间下的第一包围盒。
具体地,虚拟对象在创建时,创建者都会确定好其在模型空间的原点和坐标轴,顶点数据即虚拟对象各个顶点在模型空间下个顶点坐标,这些坐标都是相对于模型空间中的原点定义的。
具体地,包围盒是一种求解离散点集最优包围空间的算法,基本思想是用体积稍大且特性简单的几何体(称为包围盒)来近似地代替复杂的几何对象。容易理解的,包围盒一般由两个坐标构成,即虚拟对象所有顶点在三个维度上的最小值与最大值。由此可知,第一包围盒主要根据虚拟对象在模型空间坐标系中的顶点坐标决定,即第一包围盒为由每个顶点在模型空间坐标系中的最大值和最小值构成的几何体。
步骤1022:根据第一包围盒和世界变换矩阵,将第一包围盒转换为世界空间下的第二包围盒。
具体地,世界空间是用来放置3D模型的,每个3D模型在世界空间中都有它们自己独一无二的世界变化矩阵。世界空间就是虚拟场景中的3D模型的位置,尺寸以及旋转,所有3D模型都以世界空间的位置(0,0,0)为中心放置。
在本实施例中,可以将第一包围盒每个顶点乘以世界变换矩阵,从而将第一包围盒转换为世界空间的第二包围盒。
步骤1023:根据第二包围盒和预设屏幕变换矩阵,将第二包围盒转换为屏幕空间下的第三包围盒。
具体地,屏幕空间是一个二维空间,即屏幕坐标系,屏幕坐标是以像素来定义的,通常以屏幕左下角为原点。
具体地,预设屏幕变换矩阵是由相机的位置朝向等属性决定的。其中,通过将预设屏幕变化矩阵可以求出第二包围盒顶点在屏幕空间中的顶点,从而能求出第二包围盒顶点在屏幕空间中的顶点在屏幕空间下的第三包围盒。该第三包围盒为矩形。
步骤1024:根据第三包围盒计算相对屏幕像素占比。
其中,步骤1024主要可以包括:计算第三包围盒与预设屏幕矩形相交的第一面积;将第三包围盒沿第三包围盒中心至虚拟相机的方向移动至预设基准距离,以得到第四包围盒;计算第四包围盒与预设屏幕矩形相交的第二面积;根据第一面积和第二面积计算相对屏幕像素占比。
容易理解的,距离虚拟相机越近的包围盒,与预设屏幕矩形相交的面积越大,因此,该预设基准距离可以设定为距离主相机方向较近的距离,作为计算相对屏幕像素占比的相对面积基准。
譬如,请参阅图4和图5,图4为本申请实施例提供的第三包围盒的移动示意图,图5为本申请实施例提供的屏幕空间的结构示意图,该屏幕空间包括预设屏幕矩形P、第三包围盒B和第四包围盒B’,其中B’是由B沿着B中心至虚拟相机的方向,即(BB')的方向移动至预设基准距离下的第四包围盒。其中,B与P相交的面积为a、b、c、d围成的面积,B’与P相交的面积为a’、b’、c’、d’围成的面积,用Sabcd除以Sa’b’c’d’可以得到相对屏幕像素占比。
步骤103:确定与像素占比对应的LOD模型。
其中,LOD模型是指具有不同细节的一组模型,供绘制时使用。具体地,步骤103主要可以包括:根据像素占比和多个预设的像素占比区间,从LOD模型组中选择与像素占比对应的LOD模型。
其中,预设LOD模型组中包括多等级LOD模型,且多个预设的像素占比区间与多等级LOD模型一一对应,步骤“根据像素占比和多个预设的像素占比区间,从LOD模型组中选择与像素占比对应的LOD模型”主要包括:若像素占比在所述多个预设的像素占比区间中的一个像素占比区间内,则选择多等级LOD模型中像素占比所在的像素占比区间对应的LOD模型。
例如,该预设LOD模型组中包括LOD0、LOD1、LOD2和LOD3,预设相对屏幕像素占比区间包括区间1、区间2、区间3和区间4,其中,区间1与LOD0相对应,区间2与LOD1相对应,区间3与LOD2相对应,区间4与LOD3相对应,若相对屏幕像素占比落在区间3,则选择LOD2进行渲染。
值得注意的是,步骤103是基于像素占比和多个LOD模型之间的映射关系实现的,例如上述举例中通过设置区间的方式实现,此外,还可以通过设置像素占比与多个LOD模型之间的一一对应关系,直接选择该像素占比对应的LOD模型来实现,本申请对像素占比与多个LOD模型之间的映射关系不作限制,基于此原理的其他方式均落在本申请的保护范围内。
在一些实施例中,在步骤103之后,还可以包括:当检测到像素占比变化时,判断变化后的像素占比是否溢出变化前的像素占比所在的像素占比区间;若变化后的像素占比溢出变化前的像素占比所在的像素占比区间,则判断溢出值是否小于预设容忍值;若溢出值小于预设容忍值,则继续渲染与变化前的像素占比所在的像素占比区间对应的LOD模型;若溢出值不小于预设值,则渲染与变化后的像素占比所在的像素占比区间对应的LOD模型。
具体地,以游戏场景为例,当用户操作游戏场景中的角色进行移动时,游戏场景中的模型相对主相机的视角、距离等均会发生改变,此时,虚拟对象的像素占比也会发生改变,但是,若用户操作角色进行反复移动时,若刚好像素占比的变化位于两个像素占比区间的临界值附近,则会导致这两个预设的像素占比区间对应的两个LOD模型来回切换,增加计算机设备的功耗,因此,可以设置一个容忍值,即若像素占比在容忍值范围内进行切换,则可以不进行LOD模型的切换,从而避免两个LOD模型来回切换,增加计算机设备的功耗情况的发生。
在一些实施例中,该虚拟对象渲染方法还可以包括:针对位于预设安全范围内的虚拟对象,选择预设LOD模型组中预设等级的LOD模型进行渲染。
具体地,预设安全范围,即先预设一个安全距离,构成一个以相机位置为球心,安全距离为半径的球形范围空间,位于该球形范围区间内的模型,选择选择预设LOD模型组中预设等级的LOD模型进行渲染,其中,预设等级可以由开发者进行设定,通常,可以设置为不高于LOD模型最高等级的二分之一等级,譬如,若最高等级的LOD模型为第五级,则可以将预设等级设置为第二级,从而保证用户角色身边的LOD模型等级不会过高,以保证用户角色身边的LOD模型精度不会过低。此外,用户也可以自定义,例如,用户追求渲染速度以及游戏运行效率,则可以自定义为较高等级的LOD模型,从而降低模型渲染的精度,提升渲染的速度以及游戏运行的效率。
步骤104:通过LOD模型对虚拟对象进行渲染。。
在一些实施例中,LOD模型为多等级LOD模型,在步骤101之前,还可以包括:根据虚拟对象的原始材质构建多等级LOD模型。
具体地,请参阅图3,步骤“根据虚拟对象的原始材质构建多等级LOD模型”主要可以包括步骤105至步骤107,说明如下:
步骤105:获取至少一个虚拟对象,该虚拟对象包括与其对应的原始网格和原始材质,原始网格包括至少一个子网格。
在一些实施例中,步骤“获取至少一个虚拟对象”主要可以包括:解析预设场景文件以及预设动态对象策划表格,以得到对象路径列表;根据对象路径列表获取至少一个虚拟对象。
具体地,根据对象路径列表可以获取到所有对象文件,获取对象文件中所有的原始网格以及原始材质,以供后续步骤使用。
可选的,在步骤“得到对象路径列表”之后,还可以包括:对对象路径列表进行去重复操作;
步骤“根据对象路径列表获取至少一个虚拟对象”,具体可以包括:根据去重复操作后的对象路径列表获取至少一个虚拟对象。
容易理解的是,预设场景文件以及预设动态对象策划表格中,可能存在引用同一对象路径的多个对象文件,为了不重复处理同一对象文件,需要对对象路径列表进行去重操作,即对象列表中的对象路径是两两不同关系。之后,根据去重复操作后的对象路径列表获取至少一个虚拟对象,可以保证获取到的虚拟是两两不同的。
具体的,每个对象文件对应一个原始网格以及一个原始材质,其中,原始网格表示的是虚拟对象的形状,原始材质则用于渲染虚拟对象,以得到具体的表现。容易理解的是,不同的虚拟对象可能会引用相同的原始网格和原始材质,因此,可以对原始网格和原始材质也进行去重复操作,以提高后续处理原始网格和原始材质的效率,进而提高整个多等级LOD模型生成方法的效率。
容易理解的是,在游戏应用的发展过程中,可能会出现对游戏功能、游戏场景或3D模型进行更新的情况。当游戏更新时,可能会发来对3D模型进行重新生成的指令,在根据预设场景文件以及预设动态对象策划表格获取到对象文件后,可以记录下每个对象文件的MD5(Message-Digestalgorithmversion5,信息摘要算法第5版)值,MD5值等同于文件的ID,它的值是唯一的,如果文件已被修改,其MD5值将发生变化,因此,在重新生成时可以判断每个对象文件的MD5值是否改变,若未改变,则无需对该对象文件的LOD模型进行重新生成。
步骤106:根据原始材质,为虚拟对象生成对应的低配材质。
具体地,原始材质可以包括至少一层材质,至少一层材质包括法线贴图层、散射贴图层、混合贴图层、以及原始光照模型,步骤106具体可以包括:按照预设策略,将虚拟对象对应的至少一层材质中的散射贴图层和混合贴图层合并;将法线贴图层舍弃;将原始光照模型替换为预设光照模型,以得到低配材质。
容易理解的是,材质为一个数据集,主要的功能就是给渲染器提供数据和光照算法,贴图和光照模型均是材质的重要部分。具体地,散射贴图层用于提供虚拟对象某些区域应该接收的非直接光照的数量信息,其中非直接光照来自环境光和反射光,譬如,对象的高陡度凹陷部分,例如裂缝或褶皱,不会接收太多的非直接光照。法线贴图层就是在虚拟对象的凹凸表面的每个点上均作法线,通过RGB颜色通道来标记法线的方向而构成一个图层(可以将法线贴图层理解成与原凹凸表面平行的另一个不同的表面,但实际上它又只是一个光滑的平面)。对于视觉效果而言,它的效率比原有的凹凸表面更高,若在特定位置上应用光源,可以让细节程度较低的表面生成高细节程度的精确光照方向和反射效果。其中,预设光照模型为简化的原始光照模型,相比原始光照模型舍弃了一些光照细节。
具体地,低配材质具体用于在后续步骤中生成高等级LOD模型,其中,LOD模型的等级越高,则精度越低,也即表现出来的细节越少,因此,可以将法线贴图层舍弃,并采用预设光照模型来减少材质渲染出的细节,进而降低高等级LOD模型的精度。
容易理解的是,针对每个原始材质生成低配材质的过程为互不相干的,因此,可以使用多线程来进行低配材质的生成,从而加速低配材质的生成速度和效率。
步骤107:根据虚拟对象的至少一个子网格、原始材质以及对应的低配材质,为虚拟对象生成多等级LOD模型。
具体地,多等级LOD模型包括第一等级LOD模型和第二等级LOD模型,步骤107主要可以包括:根据虚拟对象的至少一个子网格和原始材质生成至少一个第一等级模型;根据虚拟对象的至少一个子网格和对应的低配材质生成至少一个第二等级模型。
具体地,多等级LOD模型即不断减少虚拟对象的顶点数,得到不同等级的LOD模型,随着顶点数不断减少,LOD模型的等级逐渐升高,也即低等级LOD模型(第一等级LOD模型)比高等级LOD模型(第二等级LOD模型)具备更多的细节。
由上述步骤106可知,低配材质舍弃了虚拟对象的更多渲染细节,因此,可以采用原始材质和子网格生成第一等级LOD模型,采用低配材质和子网格生成第二等级LOD模型,以保证第一等级LOD模型具备更多的细节,第二等级LOD模型舍弃更多的细节。
在一些实施例中,步骤“根据虚拟对象的至少一个子网格和原始材质生成至少一个第一等级模型”具体可以包括:根据虚拟对象的至少一个子网格和各第一等级对应的预设面数比例,为虚拟对象生成对应于各第一等级的简化模型;根据虚拟对象的原始材质和各第一等级的简化模型,为虚拟对象生成至少一个第一等级模型。
具体地,第一等级模型和第二等级模型的数量可以由用户指定,例如,若针对虚拟对象生成3个低等级模型,分别用LOD0(0级)、LOD1(1级)和LOD2(2级)表示,其中LOD0对应的预设面数比例为百分之百,LOD1对应的预设面数比例为百分之五十,LOD2对应的预设面数比例则为百分之二十五,则每个子网格按照百分之五十的预设面数比例生成1级简化模型,每个子网格按照百分之二十五的预设面数比例生成2级简化模型,容易理解的是,LOD0保留了虚拟对象的全部细节。
容易理解的是,各第一等级模型由每个子网格和原始材质决定,即每个虚拟对象对应了多少个子网格,则各第一等级LOD模型就包含几个简化模型,也即子网格。
在一些实施例中,步骤“根据虚拟对象的至少一个子网格和对应的低配材质生成至少一个第二等级模型”具体可以包括:根据每个虚拟对象的至少一个子网格和各高等级对应的预设面数比例,为虚拟对象生成对应于各第二等级的简化模型,将各第二等级的简化模型合并;根据合并后的各第二等级的简化模型和对应的低配材质,为虚拟对象生成各第二等级的第二等级模型。
容易理解的是,等级越高的LOD模型越粗糙,因此,针对高等级的LOD模型,采用低配材质,并将简化模型合并为一个。具体地,等级越高的LOD模型对应的预设面数比例也就越低。
在一些实施例中,在步骤“将散射贴图层和混合贴图层按照预设策略合并”之后,还包括:生成贴图合并信息,并根据贴图合并信息生成修正矩阵;
在将虚拟对象对应的各第二等级的简化模型合并后,该虚拟对象渲染方法还包括:根据修正矩阵修正合并后的各第二等级的简化模型。
具体地,贴图合并信息就是由一个二维的偏移值offset=[offsetu,offsetv]以及二维的缩放值scale=[scaleu,scalev],该偏移值和缩放值过程的修正矩阵为其中,使用该修正矩阵对合并后的各第二等级的简化模型进行修正的方法就是使用简化模型的UV坐标矩阵乘以该修正矩阵,从而对简化模型的UV坐标进行修正。使用该修正矩阵对简化模型的UV坐标,能够保证LOD模型在渲染时合并后的贴图的正常绘制。
在一些实施例中,在步骤“生成各第一等级的简化模型”或在步骤“生成各第二等级的简化模型”之后,还包括:判断简化模型的面数是否小于预设面数;若简化模型的面数小于预设面数,则使用预设值来修正简化模型对应等级的预设面数比例;按照修正后的面数比例更新简化模型。
具体地,在上述步骤中,按照预设面数比例生成简化模型后,可能存在,生成的简化模型面数过低的情况,若简化模型的面数过低,则会导致该LOD模型的质量过低,可能会影响显示,因此,可以使用预设值提高预设面数比例,并重新根据提高后的面数比例生成并更新该简化模型,以提高该简化模型的面数,进而提升该LOD模型的质量。
容易理解的是,针对每个虚拟对象生成各自的多等级LOD模型的过程为互不相干的,因此,可以使用多线程来加速多等级LOD模型的生成。
在一些实施例中,在步骤“为虚拟对象生成多等级LOD模型”之后,还可以包括:将虚拟对象的多等级LOD模型合并为对应的LOD模型组。
具体地,步骤“将虚拟对象的多等级LOD模型合并为对应的LOD模型组”具体可以包括:将虚拟对象的多等级LOD模型按照等级由低到高的顺序组合起来,以便当该LOD模型组应用在场景中时,进行多等级LOD模型的选择渲染。譬如,根据虚拟对象生成了五级LOD模型,即LOD0、LOD1、LOD2、LOD3、LOD4和LOD5,则以第0级LOD模型开始,按照各等级的升序,即面数比例的降序将这五个等级的LOD模型组合起来。
可选的,在步骤“将虚拟对象的多等级LOD模型合并为对应的LOD模型组”之后,还可以包括:克隆原始场景;将克隆后的原始场景中的静态虚拟对象,替换为静态虚拟对象对应的LOD模型组。
可选的,在步骤“将虚拟对象的多等级LOD模型合并为对应的LOD模型组”之后,还可以包括:生成针对虚拟对象中,动态虚拟对象的对象路径及动态虚拟对象对应的LOD模型组的模型组路径之间的映射数据;根据映射数据应用动态虚拟对象对应的LOD模型组。
具体地,静态虚拟对象为美术策划直接布置在游戏场景中的虚拟对象,即保存在预设场景文件中。而动态虚拟对象则不是直接布置在游戏场景中,而是在预设动态对象策划表格中记载相应的对象路径,在进行游戏场景渲染时,按照具体的逻辑,动态加载指定模型。因此,在LOD模型的具体应用中,针对静态虚拟对象,在生成静态虚拟对象的LOD模型组后,克隆原始场景得到一个新场景后,进行LOD模型组的替换,在保证LOD模型组的应用的同时,保证了原始场景中的其他元素不改变,且不影响美术的场景编辑;而针对动态虚拟对象,则需要将预设动态对象策划表格中记载的对象路径替换为动态虚拟对象的对象路径及动态虚拟对象对应的LOD模型组的模型组路径之间的映射数据,在游戏场景渲染时,可以按照该映射数据找到该虚拟对象对应的LOD模型组,进行动态加载。
本申请实施例提供的虚拟对象渲染方法,通过获取虚拟对象的属性,并根据属性极端虚拟对象相对于屏幕的像素占比,之后确定与像素占比对应的LOD模型,再通过该LOD模型对虚拟对象进行渲染,克服了现有技术需要针对每个模型设置切换距离来进行LOD模型切换的缺点,且不会受模型布置到场景中的缩放值的影响,保证了渲染效果以及场景的画面表现效果。
为便于更好的实施本申请实施例的虚拟对象渲染方法,本申请实施例还提供一种虚拟对象渲染装置。请参阅6,图6为本申请实施例提供的虚拟对象渲染装置的结构示意图。该虚拟对象渲染装置10可以包括获取模块11,计算模块12,确定模块13以及渲染模块14。
其中,获取模块11,用于获取虚拟对象的属性。
计算模块12,用于根据属性计算虚拟对象相对于屏幕的像素占比。
确定模块13,用于确定与像素占比对应的LOD模型。
渲染模块14,用于通过LOD模型对虚拟对象进行渲染。
可选的,属性包括虚拟对象的顶点数据,以及虚拟对象的世界变化矩阵,计算模块12主要可以用于:根据顶点数据计算出虚拟对象在模型空间下的第一包围盒;根据第一包围盒和世界变换矩阵,将第一包围盒转换为世界空间下的第二包围盒;根据第二包围盒和预设屏幕变换矩阵,将第二包围盒转换为屏幕空间下的第三包围盒;根据第三包围盒计算虚拟对象相对于屏幕的像素占比。
进一步地,计算模块12具体可以用于:计算第三包围盒与预设屏幕矩形相交的第一面积;将第三包围盒沿第三包围盒中心至虚拟相机的方向移动至预设基准距离,以得到第四包围盒;计算第四包围盒与预设屏幕矩形相交的第二面积;根据第一面积和第二面积计算相对于虚拟对象相当于屏幕的像素占比。
具体地,确定模块13主要可以用于:根据像素占比和多个预设的像素占比区间,从LOD模型组中选择与像素占比对应的LOD模型。
进一步地,预设LOD模型组中包括多等级LOD模型,多个预设的像素占比区间与多等级LOD模型一一对应,确定模块13主要可以用于:若像素占比在多个预设的像素占比区间中的一个像素占比区间内,则选择多等级LOD模型中像素占比所在的像素占比区间对应的LOD模型。
在一些实施例中,虚拟对象渲染装置10还包括检测模块,用于在确定模块13选择多等级LOD模型中像素占比所在的像素占比区间对应的LOD模型之后,当检测像素占比变化时,判断变化后的像素占比是否溢出变化前的像素占比所在的像素占比区间;若变化后的像素占比溢出变化前的像素占比所在的像素占比区间,则判断溢出值是否小于预设容忍值;若溢出值小于预设容忍值,则继续选择与变化前的相对屏幕像素占比所在的预设相对屏幕像素占比区间对应的LOD模型;若溢出值不小于预设值,则选择与变化后的相对屏幕像素占比所在的预设相对屏幕像素占比区间对应的LOD模型。
在一些实施例中,渲染模块14还可以用于:针对位于预设安全范围内的虚拟对象,选择预设LOD模型组中预设等级的LOD模型进行渲染。
在一些实施例中,LOD模型为多等级LOD模型,虚拟对象渲染装置10还包括构建模块,用于在获取虚拟对象的属性之前,根据虚拟对象的原始材质构建多等级LOD模型。
进一步地,构建模块主要可以用于:获取至少一个虚拟对象,虚拟对象包括与其对应的原始网格和原始材质,原始网格包括至少一个子网格;根据原始材质,为虚拟对象生成对应的低配材质;根据虚拟对象的至少一个子网格、原始材质以及对应的低配材质,为虚拟对象生成多等级LOD模型。
进一步地,构建模块可以用于:解析预设场景文件以及预设动态对象策划表格,以得到对象路径列表;根据对象路径列表获取至少一个虚拟对象。
进一步地,在得到对象路径列表之后,构建模块还可以用于对对象路径列表进行去重复操作;根据去重复操作后的对象路径列表获取至少一个虚拟对象。
在一些实施例中,原始材质包括至少一层材质,至少一层材质包括法线贴图层、散射贴图层、混合贴图层、以及原始光照模型,构建模块主要可以用于:按照预设策略,将至少一层材质中的散射贴图层和混合贴图层合并;将法线贴图层舍弃;将原始光照模型替换为预设光照模型,以得到低配材质。
在一些实施例中,多等级LOD模型包括第一等级LOD模型和第二等级LOD模型,构建模块主要可以用于:根据虚拟对象的至少一个子网格和原始材质生成至少一个第一等级LOD模型;根据虚拟对象的至少一个子网格和对应的低配材质生成至少一个第二等级LOD模型。
进一步地,构建模块具体可以用于:根据虚拟对象的至少一个子网格和各第一等级对应的预设面数比例生成对应于各第一等级的简化模型;根据虚拟对象的原始材质和各第一等级的简化模型生成至少一个低等级LOD模型。
进一步地,构建模块具体可以用于:根据虚拟对象的至少一个子网格和各第二等级对应的预设面数比例生成对应于各第二等级的简化模型;将各第二等级的简化模型合并;根据合并后的各第二等级的简化模型和对应的低配材质生成至少一个第二等级LOD模型。
在一些实施例中,构建模块还可以用于:在将散射贴图层和混合贴图层按照预设策略合并之后,生成贴图合并信息,并根据贴图合并信息生成修正矩阵;在将各第二等级的简化模型合并后,根据修正矩阵修正合并后的各第二等级的简化模型。
在一些实施例中,构建模块还可以用于:在生成对应于各第一等级的简化模型或在生成对应于各第二等级的简化模型之后,判断简化模型的面数是否小于预设面数;若简化模型的面数小于预设面数,则使用预设值来修正简化模型对应等级的预设面数比例;按照修正后的面数比例更新简化模型。
在一些实施例中,构建模块还可以用于:在根据虚拟对象的至少一个子网格、原始材质以及对应的低配材质,为虚拟对象生成多等级LOD模型之后,将虚拟对象的多等级LOD模型合并为LOD模型组。
在一些实施例中,在将虚拟对象的多等级LOD模型合并为LOD模型组之后,构建模块还可以用于:克隆原始场景;将克隆后的原始场景中的静态虚拟对象,替换为静态虚拟对象的LOD模型组。
在一些实施例中,构建模块还可以用于:在将虚拟对象的多等级LOD模型合并为LOD模型组之后,构建模块还可以用于:生成针对虚拟对象中,动态虚拟对象的模型路径及动态虚拟对象的LOD模型组的模型组路径之间的映射数据;根据映射数据应用动态虚拟对象的LOD模型组。
本申请实施例提供的虚拟对象渲染装置10,通过获取模块11获取虚拟对象的属性,之后计算模块12根据属性计算虚拟对象相对于屏幕的像素占比,接着确定模块13确定与像素占比对应的LOD模型,之后渲染模块通过LOD模型对虚拟对象进行渲染,克服了现有技术需要针对每个模型设置切换距离来进行LOD模型切换的缺点,且不会受模型布置到场景中的缩放值的影响,保证了渲染效果以及场景的画面表现效果。
此外,本申请实施例还提供一种计算机设备,该计算机设备可以为终端,该终端可以为智能手机、平板电脑、笔记本电脑、触控屏幕、游戏机、个人计算机(PC,PersonalComputer)、个人数字助理(PersonalDigitalAssistant,PDA)等终端设备。如图7所示,图7为本申请实施例提供的计算机设备的结构示意图。该计算机设备1000包括有一个或者一个以上处理核心的处理器701、有一个或一个以上计算机可读存储介质的存储器702及存储在存储器702上并可在处理器上运行的计算机程序。其中,处理器701与存储器702电性连接。本领域技术人员可以理解,图中示出的计算机设备结构并不构成对计算机设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
处理器701是计算机设备1000的控制中心,利用各种接口和线路连接整个计算机设备1000的各个部分,通过运行或加载存储在存储器702内的软件程序和/或模块,以及调用存储在存储器702内的数据,执行计算机设备1000的各种功能和处理数据,从而对计算机设备1000进行整体监控。
在本申请实施例中,计算机设备1000中的处理器701会按照如下的步骤,将一个或一个以上的应用程序的进程对应的指令加载到存储器702中,并由处理器701来运行存储在存储器702中的应用程序,从而实现各种功能:
获取虚拟对象的属性;
根据属性计算虚拟对象相对于屏幕的像素占比;
确定与像素占比对应的LOD模型;
通过LOD模型对虚拟对象进行渲染。
以上各个操作的具体实施可参见前面的实施例,在此不再赘述。
可选的,如图7所示,计算机设备1000还包括:触控显示屏703、射频电路704、音频电路705、输入单元706以及电源707。其中,处理器701分别与触控显示屏703、射频电路704、音频电路705、输入单元706以及电源707电性连接。本领域技术人员可以理解,图7中示出的计算机设备结构并不构成对计算机设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
触控显示屏703可用于显示图形用户界面以及接收用户作用于图形用户界面产生的操作指令。触控显示屏703可以包括显示面板和触控面板。其中,显示面板可用于显示由用户输入的信息或提供给用户的信息以及计算机设备的各种图形用户接口,这些图形用户接口可以由图形、文本、图标、视频和其任意组合来构成。可选的,可以采用液晶显示器(LCD,LiquidCrystalDisplay)、有机发光二极管(OLED,OrganicLight-EmittingDiode)等形式来配置显示面板。触控面板可用于收集用户在其上或附近的触摸操作(比如用户使用手指、触笔等任何适合的物体或附件在触控面板上或在触控面板附近的操作),并生成相应的操作指令,且操作指令执行对应程序。可选的,触控面板可包括触摸检测装置和触摸控制器两个部分。其中,触摸检测装置检测用户的触摸方位,并检测触摸操作带来的信号,将信号传送给触摸控制器;触摸控制器从触摸检测装置上接收触摸信息,并将它转换成触点坐标,再送给处理器701,并能接收处理器701发来的命令并加以执行。触控面板可覆盖显示面板,当触控面板检测到在其上或附近的触摸操作后,传送给处理器701以确定触摸事件的类型,随后处理器701根据触摸事件的类型在显示面板上提供相应的视觉输出。在本申请实施例中,可以将触控面板与显示面板集成到触控显示屏703而实现输入和输出功能。但是在某些实施例中,触控面板与触控面板可以作为两个独立的部件来实现输入和输出功能。即触控显示屏703也可以作为输入单元706的一部分实现输入功能。
在本申请实施例中,通过处理器701执行游戏应用程序在触控显示屏703上生成图形用户界面,图形用户界面上的虚拟场景中包括3D模型。
射频电路704可用于收发射频信号,以通过无线通信与网络设备或其他计算机设备建立无线通讯,与网络设备或其他计算机设备之间收发信号。
音频电路705可以用于通过扬声器、传声器提供用户与计算机设备之间的音频接口。音频电路705可将接收到的音频数据转换后的电信号,传输到扬声器,由扬声器转换为声音信号输出;另一方面,传声器将收集的声音信号转换为电信号,由音频电路705接收后转换为音频数据,再将音频数据输出处理器701处理后,经射频电路704以发送给比如另一计算机设备,或者将音频数据输出至存储器702以便进一步处理。音频电路705还可能包括耳塞插孔,以提供外设耳机与计算机设备的通信。
输入单元706可用于接收输入的数字、字符信息或用户特征信息(例如指纹、虹膜、面部信息等),以及产生与用户设置以及功能控制有关的键盘、鼠标、操作杆、光学或者轨迹球信号输入。
电源707用于给计算机设备1000的各个部件供电。可选的,电源707可以通过电源管理***与处理器701逻辑相连,从而通过电源管理***实现管理充电、放电、以及功耗管理等功能。电源707还可以包括一个或一个以上的直流或交流电源、再充电***、电源故障检测电路、电源转换器或者逆变器、电源状态指示器等任意组件。
尽管图7中未示出,计算机设备1000还可以包括摄像头、传感器、无线保真模块、蓝牙模块等,在此不再赘述。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
由上可知,本实施例提供的计算机设备,获取至少一个原始模型,每个原始模型包括原始网格和原始材质球,原始网格包括至少一个子网格,之后根据每个原始模型的原始材质球,为每个原始模型生成对应的低配材质球,并根据每个原始模型的至少一个子网格、原始材质球以及对应的低配材质球,为每个原始模型生成多等级LOD模型,从而实现自动化生成LOD模型,解决了以往LOD模型都需要美术策划手动生成的问题,同时,在生成高等级LOD模型时,使用了低配材质,并将多个子网格的简化模型合并为一个,从而在一定程度上减少了模型绘制的批次,节省渲染时的贴图消耗,进而提升渲染的效率。或者,
本实施例提供的计算机设备,通过获取虚拟对象的属性,之后根据属性计算虚拟对象相对于屏幕的像素占比,接着确定与像素占比对应的LOD模型,并通过该LOD模型对虚拟对象进行渲染,克服了现有技术需要针对每个模型设置切换距离来进行LOD模型切换的缺点,且不会受模型布置到场景中的缩放值的影响,保证了渲染效果以及场景的画面表现效果。
本领域普通技术人员可以理解,上述实施例的各种方法中的全部或部分步骤可以通过指令来完成,或通过指令控制相关的硬件来完成,该指令可以存储于一计算机可读存储介质中,并由处理器进行加载和执行。
为此,本申请实施例提供一种计算机可读存储介质,其中存储有多条计算机程序,该计算机程序能够被处理器进行加载,以执行本申请实施例所提供的任一种虚拟对象渲染方法中的步骤。例如,该计算机程序可以执行如下步骤:获取虚拟对象的属性;根据属性计算虚拟对象相对于屏幕的像素占比;确定与像素占比对应的LOD模型;通过LOD模型对虚拟对象进行渲染。
以上各个操作的具体实施可参见前面的实施例,在此不再赘述。
其中,该存储介质可以包括:只读存储器(ROM,ReadOnlyMemory)、随机存取记忆体(RAM,RandomAccessMemory)、磁盘或光盘等。
由于该存储介质中所存储的计算机程序,可以执行本申请实施例所提供的任一种虚拟对象渲染方法中的步骤,因此,可以实现本申请实施例所提供的任一种虚拟对象渲染方法所能实现的有益效果,详见前面的实施例,在此不再赘述。
以上对本申请实施例所提供的一种虚拟对象渲染方法、装置、存储介质及计算机设备进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。

Claims (22)

1.一种虚拟对象渲染方法,其特征在于,包括:
获取虚拟对象的属性,所述属性包括所述虚拟对象的顶点数据,以及所述虚拟对象的世界变化矩阵;
根据所述顶点数据计算出所述虚拟对象在模型空间下的第一包围盒;
根据所述第一包围盒和所述世界变换矩阵,将所述第一包围盒转换为世界空间下的第二包围盒;
根据所述第二包围盒和预设屏幕变换矩阵,将所述第二包围盒转换为屏幕空间下的第三包围盒;
根据所述第三包围盒计算所述虚拟对象相对于屏幕的像素占比;
确定与所述像素占比对应的LOD模型;
通过所述LOD模型对所述虚拟对象进行渲染。
2.根据权利要求1所述的虚拟对象渲染方法,其特征在于,所述根据所述第三包围盒计算所述虚拟对象相对于屏幕的像素占比,包括:
计算所述第三包围盒与预设屏幕矩形相交的第一面积;
将所述第三包围盒沿所述第三包围盒中心至虚拟相机的方向移动至预设基准距离,以得到第四包围盒;
计算所述第四包围盒与所述预设屏幕矩形相交的第二面积;
根据所述第一面积和所述第二面积计算相对于所述虚拟对象相当于屏幕的像素占比。
3.根据权利要求1所述的虚拟对象渲染方法,其特征在于,所述确定与所述像素占比对应的LOD模型,包括:
根据所述像素占比和多个预设的像素占比区间,从LOD模型组中选择与所述像素占比对应的LOD模型。
4.根据权利要求3所述的虚拟对象渲染方法,其特征在于,预设LOD模型组中包括多等级LOD模型,所述多个预设的像素占比区间与所述多等级LOD模型一一对应,所述根据所述像素占比和多个预设的像素占比区间,从LOD模型组中选择与所述像素占比对应的LOD模型,包括:
若所述像素占比在所述多个预设的像素占比区间中的一个像素占比区间内,则选择多等级LOD模型中所述像素占比所在的像素占比区间对应的LOD模型。
5.根据权利要求4所述的虚拟对象渲染方法,其特征在于,在所述选择多等级LOD模型中所述像素占比所在的像素占比区间对应的LOD模型之后,还包括:
当检测所述像素占比变化时,判断变化后的所述像素占比是否溢出变化前的所述像素占比所在的像素占比区间;
若变化后的所述像素占比溢出变化前的所述像素占比所在的像素占比区间,则判断溢出值是否小于预设容忍值;
若所述溢出值小于预设容忍值,则继续选择与变化前的所述相对屏幕像素占比所在的预设相对屏幕像素占比区间对应的LOD模型;
若所述溢出值不小于预设值,则选择与变化后的所述相对屏幕像素占比所在的预设相对屏幕像素占比区间对应的LOD模型。
6.根据权利要求1-5任一项所述的虚拟对象渲染方法,其特征在于,所述虚拟对象渲染方法还包括:
针对位于预设安全范围内的虚拟对象,选择预设LOD模型组中预设等级的LOD模型进行渲染。
7.根据权利要求1-5任一项所述的虚拟对象渲染方法,其特征在于,所述LOD模型为多等级LOD模型,在所述获取虚拟对象的属性之前,所述方法还包括:根据虚拟对象的原始材质构建所述多等级LOD模型。
8.根据权利要求7所述的虚拟对象渲染方法,其特征在于,所述根据虚拟对象的原始材质构建所述多等级LOD模型,包括:
获取至少一个虚拟对象,所述虚拟对象包括与其对应的原始网格和原始材质,所述原始网格包括至少一个子网格;
根据所述原始材质,为所述虚拟对象生成对应的低配材质;
根据所述虚拟对象的至少一个子网格、所述原始材质以及所述对应的低配材质,为所述虚拟对象生成多等级LOD模型。
9.根据权利要求8所述的虚拟对象渲染方法,其特征在于,所述获取至少一个虚拟对象,包括:
解析预设场景文件以及预设动态对象策划表格,以得到对象路径列表;
根据所述对象路径列表获取至少一个虚拟对象。
10.根据权利要求9所述的虚拟对象渲染方法,其特征在于,在得到所述对象路径列表之后,还包括:对所述对象路径列表进行去重复操作;
所述根据所述对象路径列表获取至少一个虚拟对象,包括:根据去重复操作后的所述对象路径列表获取至少一个虚拟对象。
11.根据权利要求8所述的虚拟对象渲染方法,其特征在于,所述原始材质包括至少一层材质,所述至少一层材质包括法线贴图层、散射贴图层、混合贴图层、以及原始光照模型,所述根据所述原始材质,为所述虚拟对象生成对应的低配材质,包括:
按照预设策略,将所述至少一层材质中的所述散射贴图层和所述混合贴图层合并;
将所述法线贴图层舍弃;
将所述原始光照模型替换为预设光照模型,以得到低配材质。
12.根据权利要求11所述的虚拟对象渲染方法,其特征在于,所述多等级LOD模型包括第一等级LOD模型和第二等级LOD模型,所述根据所述虚拟对象的至少一个子网格、所述原始材质以及所述对应的低配材质,为所述虚拟对象生成多等级LOD模型,包括:
根据所述虚拟对象的至少一个子网格和原始材质生成所述至少一个第一等级LOD模型;
根据所述虚拟对象的至少一个子网格和所述对应的低配材质生成所述至少一个第二等级LOD模型。
13.根据权利要求12所述的虚拟对象渲染方法,其特征在于,所述根据所述虚拟对象的至少一个子网格和原始材质生成所述至少一个第一等级LOD模型,包括:
根据所述虚拟对象的至少一个子网格和各第一等级对应的预设面数比例生成对应于所述各第一等级的简化模型;
根据所述虚拟对象的原始材质和所述各第一等级的简化模型生成所述至少一个低等级LOD模型。
14.根据权利要求12所述的虚拟对象渲染方法,其特征在于,所述根据所述虚拟对象的至少一个子网格和所述对应的低配材质生成所述至少一个第二等级LOD模型,包括:
根据所述虚拟对象的至少一个子网格和各第二等级对应的预设面数比例生成对应于所述各第二等级的简化模型;
将所述各第二等级的简化模型合并;
根据所述合并后的各第二等级的简化模型和所述对应的低配材质生成所述至少一个第二等级LOD模型。
15.根据权利要求14所述的虚拟对象渲染方法,其特征在于,在所述将所述散射贴图层和所述混合贴图层按照预设策略合并之后,还包括:生成贴图合并信息,并根据所述贴图合并信息生成修正矩阵;
在所述将所述各第二等级的简化模型合并后,所述方法还包括:根据所述修正矩阵修正所述合并后的各第二等级的简化模型。
16.根据权利要求13或14所述的虚拟对象渲染方法,其特征在于,在所述生成对应于各第一等级的简化模型或在所述生成对应于各第二等级的简化模型之后,还包括:
判断所述简化模型的面数是否小于预设面数;
若所述简化模型的面数小于预设面数,则使用预设值来修正所述简化模型对应等级的预设面数比例;
按照修正后的面数比例更新所述简化模型。
17.根据权利要求8所述的虚拟对象渲染方法,其特征在于,在所述根据所述虚拟对象的至少一个子网格、所述原始材质以及所述对应的低配材质,为所述虚拟对象生成多等级LOD模型之后,还包括:
将所述虚拟对象的多等级LOD模型合并为LOD模型组。
18.根据权利要求17所述的虚拟对象渲染方法,其特征在于,在所述将所述虚拟对象的多等级LOD模型合并为LOD模型组之后,还包括:
克隆原始场景;
将克隆后的原始场景中的静态虚拟对象,替换为所述静态虚拟对象的LOD模型组。
19.根据权利要求17所述的虚拟对象渲染方法,其特征在于,在所述将所述虚拟对象的多等级LOD模型合并为LOD模型组之后,还包括:
生成针对所述虚拟对象中,动态虚拟对象的模型路径及所述动态虚拟对象的LOD模型组的模型组路径之间的映射数据;
根据所述映射数据应用所述动态虚拟对象的所述LOD模型组。
20.一种虚拟对象渲染装置,其特征在于,包括:
获取模块,用于获取虚拟对象的属性,所述属性包括所述虚拟对象的顶点数据,以及所述虚拟对象的世界变化矩阵;
计算模块,用于根据所述顶点数据计算出所述虚拟对象在模型空间下的第一包围盒;
还用于根据所述第一包围盒和所述世界变换矩阵,将所述第一包围盒转换为世界空间下的第二包围盒;
还用于根据所述第二包围盒和预设屏幕变换矩阵,将所述第二包围盒转换为屏幕空间下的第三包围盒;
还用于根据所述第三包围盒计算所述虚拟对象相对于屏幕的像素占比;
确定模块,用于确定与所述像素占比对应的LOD模型;
渲染模块,用于通过所述LOD模型对所述虚拟对象进行渲染。
21.一种计算机设备,包括存储器,处理器及存储在存储器上并可在处理器上运行的计算机程序,其中,所述处理器执行所述计算机程序时实现如权利要求1至19任一项所述方法的步骤。
22.一种存储介质,其上存储有计算机程序,其中,所述计算机程序被处理器执行时实现如权利要求1至19任一项所述方法的步骤。
CN202011391503.8A 2020-12-02 2020-12-02 虚拟对象渲染方法、装置、计算机设备和存储介质 Active CN112370783B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011391503.8A CN112370783B (zh) 2020-12-02 2020-12-02 虚拟对象渲染方法、装置、计算机设备和存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011391503.8A CN112370783B (zh) 2020-12-02 2020-12-02 虚拟对象渲染方法、装置、计算机设备和存储介质

Publications (2)

Publication Number Publication Date
CN112370783A CN112370783A (zh) 2021-02-19
CN112370783B true CN112370783B (zh) 2024-06-11

Family

ID=74589657

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011391503.8A Active CN112370783B (zh) 2020-12-02 2020-12-02 虚拟对象渲染方法、装置、计算机设备和存储介质

Country Status (1)

Country Link
CN (1) CN112370783B (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113140028A (zh) * 2021-04-08 2021-07-20 广州三七互娱科技有限公司 虚拟物体渲染方法、装置及电子设备
CN113181641B (zh) * 2021-04-29 2023-11-21 广州三七极耀网络科技有限公司 虚拟场景中游戏角色的渲染方法、装置及电子设备
CN113362435B (zh) * 2021-06-16 2023-08-08 网易(杭州)网络有限公司 虚拟对象模型的虚拟部件变化方法、装置、设备及介质
CN113902881A (zh) * 2021-10-18 2022-01-07 腾讯科技(深圳)有限公司 虚拟场景的适配显示方法、装置、设备、介质及程序产品

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA2568975A1 (en) * 2005-11-21 2007-05-21 Yaron Mayer System and method for improving the efficiency, comfort, and/or reliability in operating systems, such as for example windows
CN109685869A (zh) * 2018-12-25 2019-04-26 网易(杭州)网络有限公司 虚拟模型渲染方法与装置、存储介质、电子设备
CN109993823A (zh) * 2019-04-11 2019-07-09 腾讯科技(深圳)有限公司 阴影渲染方法、装置、终端及存储介质
CN110838166A (zh) * 2019-10-21 2020-02-25 腾讯科技(深圳)有限公司 特效数据检测方法、装置、设备及存储介质
CN111105491A (zh) * 2019-11-25 2020-05-05 腾讯科技(深圳)有限公司 场景渲染方法、装置、计算机可读存储介质和计算机设备
CN111598986A (zh) * 2020-05-13 2020-08-28 网易(杭州)网络有限公司 虚拟流体表面的渲染方法、装置、设备及存储介质

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4467267B2 (ja) * 2002-09-06 2010-05-26 株式会社ソニー・コンピュータエンタテインメント 画像処理方法、画像処理装置、および画像処理システム
US9710881B2 (en) * 2014-04-05 2017-07-18 Sony Interactive Entertainment America Llc Varying effective resolution by screen location by altering rasterization parameters

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA2568975A1 (en) * 2005-11-21 2007-05-21 Yaron Mayer System and method for improving the efficiency, comfort, and/or reliability in operating systems, such as for example windows
CN109685869A (zh) * 2018-12-25 2019-04-26 网易(杭州)网络有限公司 虚拟模型渲染方法与装置、存储介质、电子设备
CN109993823A (zh) * 2019-04-11 2019-07-09 腾讯科技(深圳)有限公司 阴影渲染方法、装置、终端及存储介质
CN110838166A (zh) * 2019-10-21 2020-02-25 腾讯科技(深圳)有限公司 特效数据检测方法、装置、设备及存储介质
CN111105491A (zh) * 2019-11-25 2020-05-05 腾讯科技(深圳)有限公司 场景渲染方法、装置、计算机可读存储介质和计算机设备
CN111598986A (zh) * 2020-05-13 2020-08-28 网易(杭州)网络有限公司 虚拟流体表面的渲染方法、装置、设备及存储介质

Also Published As

Publication number Publication date
CN112370783A (zh) 2021-02-19

Similar Documents

Publication Publication Date Title
CN112370783B (zh) 虚拟对象渲染方法、装置、计算机设备和存储介质
CN113052947B (zh) 一种渲染方法、装置、电子设备和存储介质
CN112489179B (zh) 目标模型的处理方法、装置、存储介质及计算机设备
CN112465945B (zh) 一种模型生成方法、装置、存储介质及计算机设备
CN112053423A (zh) 模型渲染方法、装置、存储介质及计算机设备
WO2023213037A1 (zh) 毛发虚拟模型的渲染方法、装置、计算机设备及存储介质
CN113658339B (zh) 一种基于等高线的三维实体生成方法及装置
CN113546411B (zh) 游戏模型的渲染方法、装置、终端和存储介质
CN113350792B (zh) 虚拟模型的轮廓处理方法、装置、计算机设备及存储介质
CN115761091A (zh) 游戏画面渲染方法、装置、电子设备和存储介质
CN114266849A (zh) 模型自动生成方法、装置、计算机设备及存储介质
CN114797109A (zh) 对象编辑方法、装置、电子设备和存储介质
CN117435110B (zh) 一种图片处理方法、装置、电子设备和存储介质
CN115731339A (zh) 虚拟模型渲染方法、装置、计算机设备及存储介质
CN113362348B (zh) 图像处理方法、装置、电子设备及存储介质
CN116531750A (zh) 网状结构生成方法、装置、电子设备和可读存储介质
CN116889724A (zh) 场景模型处理方法、装置、电子设备和存储介质
CN115272432A (zh) 模型信息处理方法、装置、存储介质及计算机设备
CN117899468A (zh) 场景内容生成方法、装置和计算机可读存储介质
CN117899490A (zh) 虚拟模型的处理方法、装置、计算机设备及存储介质
CN117197307A (zh) 虚拟模型的处理方法、装置、计算机设备及存储介质
CN117274474A (zh) 环境光遮罩的生成方法、装置、电子设备和存储介质
CN115564880A (zh) 着色方法、装置、计算机设备及存储介质
CN115861519A (zh) 毛发模型的渲染方法、装置、计算机设备及存储介质
CN116310038A (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