CN112950753B - 虚拟植物显示方法、装置、设备及存储介质 - Google Patents

虚拟植物显示方法、装置、设备及存储介质 Download PDF

Info

Publication number
CN112950753B
CN112950753B CN201911268098.8A CN201911268098A CN112950753B CN 112950753 B CN112950753 B CN 112950753B CN 201911268098 A CN201911268098 A CN 201911268098A CN 112950753 B CN112950753 B CN 112950753B
Authority
CN
China
Prior art keywords
virtual
plant model
blades
vertex
blade
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
CN201911268098.8A
Other languages
English (en)
Other versions
CN112950753A (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.)
Tencent Technology Shenzhen Co Ltd
Original Assignee
Tencent Technology Shenzhen 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 Tencent Technology Shenzhen Co Ltd filed Critical Tencent Technology Shenzhen Co Ltd
Priority to CN201911268098.8A priority Critical patent/CN112950753B/zh
Publication of CN112950753A publication Critical patent/CN112950753A/zh
Application granted granted Critical
Publication of CN112950753B publication Critical patent/CN112950753B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T11/002D [Two Dimensional] image generation

Abstract

本申请公开了一种虚拟植物显示方法、装置、设备及存储介质,属于计算机技术领域。本申请实施例中提供的虚拟植物模型包括虚拟树干和多个虚拟叶片,对于虚拟叶片,通过根据虚拟植物模型中的虚拟叶片之间的交线,确定出一个包含有该多个虚拟叶片的虚拟空间区域,获取该虚拟空间区域的法线来代替该每个虚拟叶片的面片法线,也即是将多个虚拟叶片作为一个整体,用整体的法线来代替单个虚拟叶片的法线,这样渲染后显示出的虚拟植物各个虚拟叶片能够体现该多个虚拟叶片的整体体积感,也不会出现黑一块亮一块的情况,因而,显示效果好。

Description

虚拟植物显示方法、装置、设备及存储介质
技术领域
本申请涉及计算机技术领域,特别涉及一种虚拟植物显示方法、装置、设备及存储介质。
背景技术
随着计算机技术的发展,模拟技术在各个领域应用越来越广,尤其是电子游戏领域,也越发向写实方向发展。然而,对于虚拟植物来说,想要使得显示的虚拟植物更真实,则需要增加虚拟植物模型的面数,但受电子设备的计算性能压力,虚拟植物模型的面数受到限制,无法过大。
目前,虚拟植物显示方法中,对于每个虚拟叶片,获取垂直于所述虚拟叶片所在面的法线,渲染时,根据该虚拟叶片的法线对其进行渲染。
上述显示方法中植物渲染时叶片的方向和本身想要表达的方向不太一致,会导致显示出来的虚拟植物的黑亮情况会使得虚拟植物失真,有的地方黑一块,有的地方亮一块,从而看不出一个树冠的整体体积感,例如,如图1所中树木所示,因而,上述方法的显示效果不差。
发明内容
本申请实施例提供了一种虚拟植物显示方法、装置、设备及存储介质,可以解决相关技术中显示效果差的问题。所述技术方案如下:
一方面,提供了一种虚拟植物显示方法,所述方法包括:
获取待处理的虚拟植物模型,所述虚拟植物模型包括虚拟树干和多个虚拟叶片;
根据所述虚拟植物模型中各个虚拟叶片之间的交线,确定所述虚拟植物模型对应的虚拟叶片集合体,所述虚拟叶片集合体用于指示包含有所述多个虚拟叶片的虚拟空间区域;
获取所述虚拟叶片集合体的法线,将所述法线作为所述虚拟植物模型中所述多个虚拟叶片的顶点法线;
在虚拟场景中,根据所述虚拟植物模型中所述多个虚拟叶片的顶点法线,对所述虚拟植物模型进行渲染。
一方面,提供了一种虚拟植物显示装置,所述装置包括:
获取模块,用于获取待处理的虚拟植物模型,所述虚拟植物模型包括虚拟树干和多个虚拟叶片;
确定模块,用于根据所述虚拟植物模型中各个虚拟叶片之间的交线,确定所述虚拟植物模型对应的虚拟叶片集合体,所述虚拟叶片集合体用于指示包含有所述多个虚拟叶片的虚拟空间区域;
获取模块,还用于获取所述虚拟叶片集合体的法线,将所述法线作为所述虚拟植物模型中所述多个虚拟叶片的顶点法线;
渲染模块,用于在虚拟场景中,根据所述虚拟植物模型中所述多个虚拟叶片的顶点法线,对所述虚拟植物模型进行渲染。
一方面,提供了一种电子设备,所述电子设备包括一个或多个处理器和一个或多个存储器,所述一个或多个存储器中存储有至少一条程序代码,所述程序代码由所述一个或多个处理器加载并执行以实现所述虚拟植物显示方法所执行的操作。
一方面,提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有至少一条程序代码,所述程序代码由处理器加载并执行以实现所述虚拟植物显示方法所执行的操作。
本申请实施例通过根据虚拟植物模型中的虚拟叶片之间的交线,确定出一个包含有该多个虚拟叶片的虚拟空间区域,获取该虚拟空间区域的法线来代替该每个虚拟叶片的面片法线,也即是将多个虚拟叶片作为一个整体,用整体的法线来代替单个虚拟叶片的法线,这样渲染后显示出的虚拟植物各个虚拟叶片能够体现该多个虚拟叶片的整体体积感,也不会出现黑一块亮一块的情况,因而,显示效果好。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是相关技术中的一种虚拟植物显示效果的示意图;
图2是本申请实施例提供的一种虚拟植物显示方法的实施环境的示意图;
图3是本申请实施例提供的一种虚拟植物显示方法的流程图;
图4是本申请实施例提供的一种烘培法线的流程图;
图5是本申请实施例提供的一种Houdini节点图;
图6是本申请实施例提供的一种Houdini节点图;
图7是本申请实施例提供的一种Houdini节点图中的部分节点图;
图8是本申请实施例提供的一种Houdini节点图中的部分节点图;
图9是本申请实施例提供的一种Houdini节点图中的部分节点图;
图10是本申请实施例提供的一种Houdini节点图中的部分节点图;
图11是本申请实施例提供的一种Houdini节点图中的部分节点图;
图12是本申请实施例提供的一种Houdini节点图中的部分节点图;
图13是本申请实施例提供的一种Houdini节点图中的部分节点图;
图14是本申请实施例提供的一种基于三种法线进行渲染的显示效果图;
图15是本申请实施例提供的一种垂直面裁剪前后的显示效果图;
图16是本申请实施例提供的一种两种转换到世界空间方式的显示效果图;
图17是本申请实施例提供的一种烘培法线的流程图;
图18是本申请实施例提供的一种虚拟场景显示效果图;
图19是本申请实施例提供的一种虚拟场景显示效果图;
图20是本申请实施例提供的一种虚拟植物显示装置的结构示意图;
图21是本申请实施例提供的一种终端的结构示意图;
图22是本申请实施例提供的一种服务器的结构示意图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。
以下,对本申请涉及的术语进行解释。
虚拟场景:是应用程序在终端上运行时显示(或提供)的虚拟场景。其中,该虚拟场景可以是对真实世界的仿真环境,也可以是半仿真半虚构的虚拟环境,还可以是纯虚构的虚拟环境。虚拟场景可以是二维虚拟场景、2.5维虚拟场景或者三维虚拟场景中的任意一种,本申请实施例对虚拟场景的维度不加以限定。例如,虚拟场景可以包括天空、陆地、海洋等,该陆地可以包括沙漠、城市等环境元素,该虚拟场景中可以包括虚拟植物、虚拟建筑等,当然,该虚拟场景中还可以包括虚拟对象或用户控制对象,该虚拟对象可以基于配置信息,显示于虚拟场景中,或在虚拟场景中移动等,用户也可以控制用户控制对象在该虚拟场景中进行移动。
以下,示例性介绍本申请的系统架构。
图2是本申请实施例提供的一种虚拟植物显示方法的实施环境的示意图。该实施环境包括:第一终端220、服务器240和第二终端260。第一终端220以及第二终端260通过无线网络或有线网络与服务器240相连。
第一终端220安装和运行有支持虚拟场景的应用程序。第一终端220可以是第一用户使用的终端,第一用户使用第一终端220操作虚拟场景中的第一用户控制对象进行活动,第二终端260也可以安装和运行有支持虚拟场景的应用程序。第二用户使用第二终端260操作虚拟场景中的第二用户控制对象进行活动。
可选地,第一终端220控制的第一用户控制对象和第二终端260控制的第二用户控制对象处于同一虚拟场景中,第一用户控制对象可以在虚拟场景中与第二用户控制对象进行互动。在一些实施例中,第一用户控制对象以及第二用户控制对象可以为敌对关系。例如,该虚拟场景可以为角色扮演的场景,比如,该虚拟场景可以为一个武侠世界,该武侠世界可以包括具有不同地域特色的地图,例如,江南、襄州、开封等。该武侠世界中包括多个门派的角色,用户可以选择一个门派来创建符合该门派形象的用户控制对象,用户可以通过操作,来控制用户控制对象与其他用户控制对象自行或组队完成任务,也可以控制用户控制对象与其他用户控制对象进行战斗(切磋或决斗)。也即是,用户可以控制用户控制对象在该虚拟场景中模拟武侠世界中的人的日常生活。
当然,两个终端控制的用户控制对象进行互动仅是一个举例,第一终端220控制的第一用户控制对象或者第二终端260控制的第二用户控制对象也可以和计算机生成的虚拟对象进行互动,该虚拟对象也即是非玩家角色(Non-Player Character,NPC),或者两个终端控制对应的用户控制对象加入同一个群组,与其他用户控制对象进行互动。在另一些实施例中,第一用户控制对象以及第二用户控制对象可以为队友关系,例如,第一用户控制对象和第二用户控制对象可以属于同一个队伍、同一个组织、具有好友关系或具有临时性的通讯权限。
服务器240可以包括一台服务器、多台服务器、云计算平台或者虚拟化中心中的至少一种。服务器240用于为支持虚拟场景的应用程序提供后台服务。可选地,服务器240可以承担主要计算工作,第一终端220和第二终端260可以承担次要计算工作;或者,服务器240承担次要计算工作,第一终端220和第二终端260承担主要计算工作;或者,服务器240、第一终端220和第二终端260三者之间采用分布式计算架构进行协同计算。
可选地,第一终端220和第二终端260上安装的应用程序是相同的,或两个终端上安装的应用程序是不同操作系统平台的同一类型应用程序。第一终端220可以泛指多个终端中的一个,第二终端260可以泛指多个终端中的一个,本实施例仅以第一终端220和第二终端260来举例说明。第一终端220和第二终端260的设备类型相同或不同,该设备类型包括:智能手机、平板电脑、电子书阅读器、MP3(Moving Picture Experts Group AudioLayer III,动态影像专家压缩标准音频层面3)播放器、MP4(Moving Picture ExpertsGroup Audio Layer IV,动态影像专家压缩标准音频层面4)播放器、膝上型便携计算机和台式计算机中的至少一种。例如,第一终端220和第二终端260可以是智能手机,或者其他手持便携式游戏设备。本领域技术人员可以知晓,上述终端的数量可以更多或更少。比如上述终端可以仅为一个,或者上述终端为几十个或几百个,或者更多数量。本申请实施例对终端的数量和设备类型不加以限定。
图3是本申请实施例提供的一种虚拟植物显示方法的流程图,参见图3,该申请实施例的执行主体为电子设备,该方法可以包括:
301、电子设备获取待处理的虚拟植物模型,该虚拟植物模型包括虚拟树干和多个虚拟叶片。
在本申请实施例提供的虚拟植物显示方法中,电子设备可以获取虚拟植物模型,对其进行处理,根据本申请实施例提供的法线确定方式,重新确定该虚拟植物模型中的虚拟叶片的法线,根据重新确定的法线来进行渲染时,能够有效提高该多个虚拟叶片所组成的树冠的显示效果。
其中,该虚拟植物模型可以包括虚拟树干和多个虚拟叶片,可以理解地,该虚拟树干的显示并不会影响太多显示效果,而虚拟叶片的面数如果大,则虚拟植物的显示效果则好,如果小,则显示效果可能会出现不好的情况。因而,申请实施例中对虚拟叶片进行了处理,对资源进行处理,在满足电子设备的计算性能的同时,来提高渲染效果。
该虚拟植物模型可以由该电子设备在需要显示虚拟植物时创建,也可以为该电子设备中已存储的配置文件中提取,本申请实施例对具体采用哪种实现方式不作限定。
在一种可能实现方式中,该虚拟植物模型在该电子设备中的存在形式为文件形式。文件中可以包括虚拟植物模型的模型数据,例如,该模型数据可以包括虚拟树干和虚拟叶片的形状、位置、材质等,当然,还可以包括其他信息,例如,颜色信息、光照信息等,本申请实施例在此不一一列举。具体地,该文件可以为萨尔福德预测建模器(SalfordPredictive Modeler,SPM)文件,SPM软件是高度准确的超快平台,可用于开发预测性、描述性和分析模型。SPM文件为一种三维实体模型文件。该步骤301中,电子设备可以导入该待处理的虚拟植物模型对应的SPM文件,从而实现对该虚拟植物模型的获取。
302、电子设备根据该虚拟植物模型的材质信息,对该虚拟植物模型进行分割,得到该虚拟植物模型中的多个虚拟叶片。
电子设备获取到虚拟植物模型后,可以对该虚拟植物模型中的虚拟叶片进行处理。则电子设备需要先从虚拟植物模型中分割出虚拟叶片。可以理解地,虚拟叶片和虚拟树干的材质不同,该分割过程可以基于材质信息实现。
该步骤302中,电子设备可以获取该虚拟植物模型的材质信息,根据虚拟叶片和虚拟树干的材质差异,对模型进行分割。在一个具体的可能实施例中,电子设备可以从上述步骤301所示的导入的SPM文件中提取该材质信息。
该步骤302中仅示出了分割得到多个虚拟叶片,以该多个虚拟叶片作为后续处理的数据基础。在一种可能实现方式中,分割过程还可以得到该虚拟植物模型中的虚拟树干,也即是,该分割过程可以对虚拟植物模型进行拆分,得到虚拟树干和多个虚拟叶片。
303、电子设备获取该多个虚拟叶片之间的交线。
电子设备分割出多个虚拟叶片后,为了后续对虚拟植物的虚拟叶片所组成的树冠进行显示时具有整体体积感,可以将该多个虚拟叶片整合到一起进行分析,得到整体的法线来替代单个虚拟叶片的面片法线。
在该整合过程中,电子设备则需要先获取多个虚拟叶片之间的交线,以交线为基础,来确定如何对多个虚拟叶片进行整合。在一种可能实现方式中,该多个虚拟叶片之间的交线则可以体现为相交折线。
304、电子设备根据该多个虚拟叶片之间的交线,确定该虚拟植物模型对应的虚拟叶片集合体。
其中,该虚拟叶片集合体用于指示包含有该多个虚拟叶片的虚拟空间区域,该虚拟叶片集合体可以理解为该虚拟叶片所组成的包裹体,该包裹体则将多个虚拟叶片看做一个整体。电子设备获取到该多个虚拟叶片之间的交线后,两个虚拟叶片之间建立起关联关系,通过该交线,则可以解析出虚拟叶片组成的包裹体。可以理解地,存在该交线的区域,则说明该虚拟植物模型可能与该区域有交集,没有交线的部分,则与该虚拟植物模型无关。
在一种可能实现方式中,电子设备可以先根据交线粗略地确定出一个候选虚拟叶片集合体,再对该候选虚拟叶片集合体进行进一步处理,使得该虚拟叶片集合体更能体现一个整体,进而基于该整体的法线,渲染的效果也更有整体体积感。具体地,电子设备可以根据交线确定虚拟叶片集合体的过程可以通过下述步骤一和步骤二实现:
步骤一、电子设备根据该多个虚拟叶片之间的交线,确定该多个虚拟叶片所在的虚拟空间区域,得到候选虚拟叶片集合体。
该步骤一中,电子设备可以根据该交线,将交线所在区域的综合体作为该虚拟叶片合成后的整体,也即可以作为包含多个虚拟叶片的虚拟空间区域。具体地,电子设备可以对于该多个虚拟叶片,以任两个虚拟叶片之间的交线为直径,创建球体,得到多个球体。为了更好的体现凹凸感和增加虚拟叶片的显示效果,可以将球体转化为多面体,电子设备可以根据目标面数,将该多个球体转换为多面体,将该多个多面体所在的虚拟空间区域确定为该候选虚拟叶片集合体。
上述过程仅以电子设备先创建球体再进行面数转换为例,该过程中,电子设备还可以根据目标面数,以任两个虚拟叶片之间的交线为直径,创建多面体,将多个多面体所在的虚拟空间区域确定为该候选虚拟叶片集合体,本申请实施例对具体采用哪种实现方式不作限定。
其中,目标面数可以由相关技术人员根据需求和电子设备的计算能力设置,本申请实施例对此不作限定。
步骤二、电子设备对该候选虚拟叶片集合体进行体素化处理和平滑处理,得到该虚拟叶片集合体。
该步骤二中,对于候选虚拟叶片集合体,电子设备可以对其进行两步处理,电子设备可以对该候选虚拟叶片集合体进行体素化处理,对体素化后的候选虚拟叶片集合体进行平滑处理,得到该虚拟叶片集合体。
其中,该体素化处理的过程可以为:电子设备可以获取该候选虚拟叶片集合体的包围盒,根据空间分辨率,对该包围盒进行网格划分,得到多个空间网格,将该多个空间网格中被该候选虚拟叶片集合体覆盖的空间网格所在的空间区域作为体素化后的候选虚拟叶片集合体。
该空间分辨率可以由相关技术人员根据需求进行设置,也可以基于获取到的画质配置信息确定,例如,空间分辨率可以与画质正相关,画质越好,该空间分辨率越大,画质越差,该空间分辨率越小。该画质配置信息可以为默认的画质配置信息,也可以为用户自行设置的画质配置信息,本申请实施例对此不做限定。
电子设备将候选虚拟叶片集合体体素化后,还可以对其进行平滑处理,从而平滑处理后得到的虚拟叶片集合体更像是一个整体,根据该整体的法线来作为虚拟叶片的法线进行渲染时,渲染出来的树冠更具有整体体积感。
对于平滑处理的过程,该平滑处理过程可以根据目标平滑参数实现,该目标平滑参数可以由用户在引擎内设置,也可以由相关技术人员根据需求进行设置,本申请实施例对此不作限定。具体地,该平滑处理的过程可以为:电子设备获取目标平滑参数,根据该目标平滑参数,对该体素化后的候选虚拟叶片集合体进行平滑处理,得到该虚拟叶片集合体。
该步骤302至304为根据该虚拟植物模型中各个虚拟叶片之间的交线,确定该虚拟植物模型对应的虚拟叶片集合体的过程,上述过程对虚拟植物模型的分割过程、交线获取过程以及根据交线确定虚拟叶片集合体的过程进行了详细说明,如图4所示,该过程以及下述步骤可以称为烘培法线的过程,电子设备可以导入SPM文件,得到虚拟植物模型,由于虚拟树干不需要烘培法线,因而,可以根据材质信息,对该虚拟植物模型进行分割,得到多个虚拟叶片,对该多个虚拟叶片,电子设备可以提取相交法线,生成球体,将球体转为多面体,并进行体素化,需要说明的是,该体素化过程中,电子设备还可以清理内部可能存在的体素化面片残留。进而,体素化后,电子设备可以对其进行平滑,得到包裹体(也即是虚拟叶片集合体)。
在一种可能实现方式中,电子设备还可以不进行分割,直接对该虚拟植物模型提取交线,对交线进行筛选,得到虚拟叶片之间的交线,从而确定虚拟叶片集合体,本申请实施例对此不作限定。
305、电子设备获取该虚拟叶片集合体的法线,将该法线作为该虚拟植物模型中该多个虚拟叶片的顶点法线。
电子设备得到虚拟叶片集合体后,可以获取该虚拟叶片集合体的法线作为多个虚拟叶片的顶点法线,来代替单个虚拟叶片的面片法线,这样无需基于每个虚拟叶片的面片法线进行后续的渲染步骤,从而显示出来的虚拟植物也不会有黑一块或亮一块的情况出现,而是更具有整体体积感,更像一个树冠,模拟效果逼真写实,显示效果更好。
具体地,可以理解地,该虚拟叶片集合体为包括很多面的集合体,可以获取到多个法线,将该集合体的法线烘培到虚拟植物模型上,作为虚拟植物模型的多个虚拟叶片的顶点法线,实现替换过程。该过程可以采用最近临近法实现。具体地,该步骤305中,电子设备可以获取该虚拟叶片集合体的多个法线,对于每个法线,电子设备可以根据该法线所在位置,确定该虚拟植物模型中与该法线所在位置之间的距离最小的顶点,将该法线作为该顶点的顶点法线。
通过上述该步骤305,该虚拟植物模型中虚拟叶片的顶点数据得到了更新,更新后的数据是将多个虚拟叶片作为一个整体来考虑的,根据该更新后的顶点数据进行渲染,显示出来的多个虚拟叶片也就更能体现整体体积感。
在一种可能实现方式中,上述步骤301至305所示的烘培法线的过程可以基于目标应用实现,例如,该目标应用可以为Houdini应用,Houdini是一种三维计算机图形软件。如图5和图6所示,提供了一种Houdini节点图,该节点图中即示出了对该虚拟植物模型的处理过程。需要说明的是,该图5和图6中示出的处理过程仅为一种示例,其中的处理步骤并不对本申请造成限定。由于图5和图6中图中内容太多,文字内容无法清晰体现,下面通过图7至图13,对该节点图中7个部分分别进行展示。下面对图5-图13中出现的名词进行说明,file为文件的意思,tempExport为临时调出、临时输出的意思,FBX为一种三维文件格式,normal为常态的意思,Python是一种跨平台的计算机程序设计语言,normalize为标准化的意思,Mesh为匹配的意思,fuse为结合的意思,uv为纹理坐标,attrib用于添加或修改文件的属性,create为创建的意思,用户定义的文件,Connectivity为连接的意思,getMateria为获取材质的意思,split为拆分的意思,intersectionanalysis为交叉点分析的意思,BlockBegin为开始块的意思,foreach语句为数组或对象集合中的每个元素重复一个嵌入语句组,begin为开始的意思,Piece为片、块、段的意思,bound为形成...的边界的意思,measure为测量、度量的意思,Block End为结束块的意思,End为结束的意思,Gather为集合,聚集的意思,Convert为转化的意思,sop为Standard Operation Procedure,为标准作业程序的意思,voxel为体素的意思,peak为顶峰、尖端的意思,avoid为回避、躲避的意思,self为自己的意思,collision为碰撞的意思,point为点或朝向的意思,ray为射线的意思,group为组、类的意思,tooClose为最邻近的意思,delete为去除、删除的意思,clean为清理的意思,Remove为去除、排除的意思,Inside为在...内,face为面的意思,polyfill用来为旧浏览器提供它没有原生支持的较新的功能,divide为分割的意思,smooth为平滑的意思,normal为常态的意思,transfer为转移、变换的意思,attribute为属性的意思,Merge为结合、合并的意思,leafinput为叶子输入的意思,Wrangle为争吵、冲突的意思,add为增加的意思,charts为图表、记录的意思,expression为表示、表达的意思,If是条件函数,Flip是C语言中的一种反置函数,switch为转换的意思,is为是的意思,Leaf为叶子的意思,unNormalize非标准化的意思,面向返回的编程(Return-oriented Programming,ROP)是一种新型的基于代码复用技术的攻击,output为输出的意思。
在一种可能实现方式中,该步骤305之后,电子设备还可以获取该虚拟植物模型中虚拟树干的顶点法线,将该虚拟树干和该多个虚拟叶片的顶点法线进行合并,得到该虚拟植物模型的顶点法线。对于合并后的顶点法线,电子设备可以对该合并后的顶点法线按照目标格式进行转化,得到目标格式的文件。
该SPM文件中包括该虚拟植物模型的动画数据;该目标格式的文件与该SPM文件的通道数量不同。该合并过程可以为:电子设备创建目标格式的文件,将该动画数据,按照最邻近的顶点,复制到该目标格式的文件中,作为各个顶点的数据。
对应上述步骤301中的SPM文件导入步骤,步骤305之后,电子设备还可以将处理结果导入。以该目标格式为Unity内置的格式为例,其中,Unity为一家Unity公司推出的利用交互的图形化开发环境为首要方式的引擎。导入的数据为以Unity内置的格式保存的数据。例如,该SPM文件中可以为Speedtree的数据,Speedtree为一个建模软件。由于Speedtree的数据在UV上是4个通道,其中,UV为纹理坐标,而FBX最多只能保存三个通道,其中,FBX为一种三维文件格式,所以最终动画数据还要根据最邻近顶点的数据,复制到新生成的资源(Asset)文件中以Unity内置的格式保存,以保证该模型的数据的正常处理和使用。
306、电子设备在虚拟场景中,根据该虚拟植物模型中该多个虚拟叶片的顶点法线,对该虚拟植物模型进行渲染。
电子设备得到了该虚拟植物模型中的多个虚拟叶片的顶点法线后,该多个虚拟叶片的顶点法线和虚拟树干的顶点法线则可以作为该虚拟植物模型的顶点法线,进而可以根据该顶点法线,对该虚拟植物模型进行渲染显示。
通过上述烘培法线的方法,得到的虚拟叶片的顶点法线为将多个虚拟叶片看做为一个整体重新计算得到的法线,渲染效果能够较好的体现树冠的整体体积感,例如,如图14所示,提供了基于三种法线进行渲染的显示效果图,基于半球法线渲染后,整体显示效果过于平均,规律性太强,很不真实。基于面片法线渲染后,显示出来的叶片效果很杂乱,从视觉上无法体现树冠的整体体积感。很明显地,基于烘培法线渲染得到的光影效果很扎实,明暗具有规律,不会失真,也不会杂乱,更符合树木的自然光照显示效果。
另外,通过该烘培法线的方法,对于虚拟场景中的远景植物,在Imposter(又称为Billboard,公告板技术)贴图烘焙时,利用烘焙的法线,也可以计算得到更好的Imposter使用的法线贴图,具有原始植被的法线特性,得到更好的体感。
在一种可能实现方式中,如果虚拟叶片的法线方向与视角方向垂直,由于虚拟叶片均以面片形状表征,该虚拟叶片显示出来的效果则会成为一条细线,这样显示出来的效果则比较失真,从而还可以设置有一种裁切方法。对于可能会显示失真的上述虚拟叶片,电子设备可以去除掉这部分虚拟叶片,不显示这部分虚拟叶片则不会出现上述失真情况。也即是,对于植物叶片,当其垂直于视线时,会变成一条细线状,通过我们在烘焙过程中单独保存的面片法线数据,我们可以计算出与视线的垂直关系,然后裁切掉垂直于视线一定阈值范围的像素,这样可以给模型带来更真实的感觉,减轻玩家的“出戏”感。
具体地,对于每个虚拟叶片,电子设备获取该虚拟叶片的面片法线与视角方向之间的夹角,当该夹角大于夹角阈值时,电子设备去除该虚拟叶片,根据处理后的虚拟植物模型中各个虚拟叶片的顶点法线,对该虚拟植物模型进行渲染。其中,该夹角阈值可以由相关技术人员根据需求进行设置,也可以由用户根据需求进行调整,本申请实施例对此不作限定。例如,如图15所示,左边的图片并未经过该垂直面裁剪的过程,因而,能看到一些叶片显示为一条线的情况,不符合真实叶片的显示效果,而右边的图片经过了上述垂直面裁剪的过程,显示出来的效果则去除了上述失真效果,能够真实模拟叶片形态,不会使得用户出现“出戏”的感觉。
在上述烘培法线的过程中,电子设备还可以提取处理前的多个虚拟叶片的面片法线,以该面片法线作为判断虚拟叶片与视角方向的关系的数据基础。也即是,上述虚拟叶片既存在生成的集合体的法线,又保留了面片法线以做夹角分析使用。上述过程通过计算面片交线生成球体然后体素化得到一个大致的树冠的体积,然后用这个体积的法线烘焙到原始面片,同时保存一份原始法线面片的数据到UV中,用于计算和视线向量的夹角。
在一种可能实现方式中,该渲染的具体过程可以为:电子设备获取该虚拟植物模型中虚拟树干的顶点法线,根据该虚拟植物模型中虚拟树干和虚拟叶片的顶点法线,生成对应的法线贴图,根据该法线贴图,对该虚拟植物模型进行渲染。电子设备获取到模型的顶点法线后,可以对顶点法线进行计算,生成对应的法线贴图,从而对法线贴图进行渲染显示,以实现对该虚拟植物的显示。
在一种可能实现方式中,该虚拟植物模型中虚拟树干和虚拟叶片的顶点法线为视角空间中的顶点法线,电子设备在生成法线贴图时还可以将视角空间的顶点法线转换到虚拟场景的世界空间中,在转换过程中,电子设备可以直接将其转化到世界空间中,也可以对顶点法线进行取绝对值处理后再转换。
在一种可能实现方式中,电子设备可以对该视角空间中的顶点法线进行取绝对值处理,将取绝对值处理后的顶点法线转换到虚拟场景的世界空间中,得到世界法线,根据该世界法线,生成对应的法线贴图。
例如,在视线空间中将法线方向与视线方向背离的顶点法线,做一个取绝对值操作,这样玩家在看到植物叶片的法线方向永远是朝着视线的。对于顶点法线Z轴取绝对值处理后,即使虚拟植物的虚拟叶片的面片数目较少,也可以表现出成簇的树叶一团一团的感觉。如图16所示,相较于左边的直接转换的方式,右边经过取绝对值操作后进行转换后渲染出来的植物的饱满度更高,受光效果更好。
下面提供一个具体示例,该方法可以应用于移动终端中,例如,手机。在一种具体应用场景中,该方法可以应用于手机游戏中。本申请所公开的虚拟植物显示方法的具体流程可以如图17所示,导入SPM文件,从文件中提取材质信息,根据材质信息拆分叶片和树干,从而对于叶片,计算图片交线,根据交线生成球体,再进行体素化,清理模型以及平滑等处理,该过程即为确定虚拟叶片集合体的过程,然后重新计算法线,烘焙法线到原始模型中,对叶片处理后,可以将叶片和树干合并,将图片的法线存储到UV中。另外,该过程中还可以对处理前的叶片提取面片法线,根据叶片法线还原图片,该部分用于对垂直面进行裁剪。该处理过程即为法线烘培过程。处理结果后,可以将结果导入Unity,将结果保存在新生成的Asset文件中,另外,对于模型中的动画数据也可以保存在该新生成的Asset文件中。后续即可对其进行渲染显示。
渲染显示效果可以如图18和图19所示,本方案并不是试图突破电子设备的物理限制,而是试图在现有的限制下,通过资源数据处理以及渲染思路的创新,提高面数限制下植物的渲染效果。对于法线处理,我们通过Houdini进行一系列的计算,把植物转换为一个大的包裹体,然后将包裹体的法线烘焙到临近的定点上,以替代本身面片的法线。我们会通过烘焙法线,让植物具有一个较为整体,但局部又有一些体积变化的法线。在渲染逻辑上,我们将视线空间里植物的法线Z轴绝对值化,可以让较少的面的法线永远与摄像方向保持一致,这样即使面数很少,也可以表现出成簇的树叶一团一团的感觉。另外,同时用剔除垂直面的方式,来消除面片感和过强的规律性,在同样的受限的情况下模拟一个更为真实的植被感觉。也即是在渲染过程中,我们会把法线烘焙过程中得到的面片法线与视线方向进行矩阵点乘,得到夹角关系,通过剔除与视线垂直的面片来减弱垂直面片的线状感,更好地表现植物叶片自然的生长关系。总的来说,这些以较少的代价提供了更写实的植物渲染效果,使整个场景显得生机勃勃,光照统一。与图1所示的传统植物渲染方式对比,植物既具有整体的团状光影感觉,也有小的明暗,整个场景比较协调统一又不失变化,植物也不会有很明显的片状感。
本申请实施例通过根据虚拟植物模型中的虚拟叶片之间的交线,确定出一个包含有该多个虚拟叶片的虚拟空间区域,获取该虚拟空间区域的法线来代替该每个虚拟叶片的面片法线,也即是将多个虚拟叶片作为一个整体,用整体的法线来代替单个虚拟叶片的法线,这样渲染后显示出的虚拟植物各个虚拟叶片能够体现该多个虚拟叶片的整体体积感,也不会出现黑一块亮一块的情况,因而,显示效果好。
上述所有可选技术方案,可以采用任意结合形成本申请的可选实施例,在此不再一一赘述。
图20是本申请实施例提供的一种虚拟植物显示装置的结构示意图,参见图20,该装置包括:
获取模块2001,用于获取待处理的虚拟植物模型,该虚拟植物模型包括虚拟树干和多个虚拟叶片;
确定模块2002,用于根据该虚拟植物模型中各个虚拟叶片之间的交线,确定该虚拟植物模型对应的虚拟叶片集合体,该虚拟叶片集合体用于指示包含有该多个虚拟叶片的虚拟空间区域;
获取模块2001,还用于获取该虚拟叶片集合体的法线,将该法线作为该虚拟植物模型中该多个虚拟叶片的顶点法线;
渲染模块2003,用于在虚拟场景中,根据该虚拟植物模型中该多个虚拟叶片的顶点法线,对该虚拟植物模型进行渲染。
在一种可能实现方式中,该确定模块2002,用于:
根据该虚拟植物模型的材质信息,对该虚拟植物模型进行分割,得到该虚拟植物模型中的多个虚拟叶片;
获取该多个虚拟叶片之间的交线;
根据该多个虚拟叶片之间的交线,确定该虚拟植物模型对应的虚拟叶片集合体。
在一种可能实现方式中,该确定模块2002,用于:
根据该多个虚拟叶片之间的交线,确定该多个虚拟叶片所在的虚拟空间区域,得到候选虚拟叶片集合体;
对该候选虚拟叶片集合体进行体素化处理和平滑处理,得到该虚拟叶片集合体。
在一种可能实现方式中,该根确定模块2002,用于:
对于该多个虚拟叶片,以任两个虚拟叶片之间的交线为直径,创建球体,得到多个球体;
根据目标面数,将该多个球体转换为多面体,将该多个多面体所在的虚拟空间区域确定为该候选虚拟叶片集合体。
在一种可能实现方式中,该确定模块2002,用于:
获取该候选虚拟叶片集合体的包围盒;
根据空间分辨率,对该包围盒进行网格划分,得到多个空间网格;
将该多个空间网格中被该候选虚拟叶片集合体覆盖的空间网格所在的空间区域作为体素化后的候选虚拟叶片集合体。
在一种可能实现方式中,该确定模块2002,用于:
获取目标平滑参数;
根据该目标平滑参数,对该体素化后的候选虚拟叶片集合体进行平滑处理,得到该虚拟叶片集合体。
在一种可能实现方式中,该获取模块2001,用于:
获取该虚拟叶片集合体的多个法线;
对于每个法线,根据该法线所在位置,确定该虚拟植物模型中与该法线所在位置之间的距离最小的顶点;
将该法线作为该顶点的顶点法线。
在一种可能实现方式中,该渲染模块2003,用于:
对于每个虚拟叶片,获取该虚拟叶片的面片法线与视角方向之间的夹角;
当该夹角大于夹角阈值时,去除该虚拟叶片;
根据处理后的虚拟植物模型中各个虚拟叶片的顶点法线,对该虚拟植物模型进行渲染。
在一种可能实现方式中,该渲染模块2003,用于:
获取该虚拟植物模型中虚拟树干的顶点法线;
根据该虚拟植物模型中虚拟树干和虚拟叶片的顶点法线,生成对应的法线贴图;
根据该法线贴图,对该虚拟植物模型进行渲染。
在一种可能实现方式中,该虚拟植物模型中虚拟树干和虚拟叶片的顶点法线为视角空间中的顶点法线;
该渲染模块2003,用于:
对该视角空间中的顶点法线进行取绝对值处理;
将取绝对值处理后的顶点法线转换到虚拟场景的世界空间中,得到世界法线;
根据该世界法线,生成对应的法线贴图。
在一种可能实现方式中,该获取模块2001,用于:导入该待处理的虚拟植物模型对应的萨尔福德预测建模器SPM文件;
该装置还包括转化模块,该转化模块用于:
获取该虚拟植物模型中虚拟树干的顶点法线;
将该虚拟树干和该多个虚拟叶片的顶点法线进行合并,得到该虚拟植物模型的顶点法线;
对该合并后的顶点法线按照目标格式进行转化,得到目标格式的文件。
在一种可能实现方式中,该SPM文件中包括该虚拟植物模型的动画数据;该目标格式的文件与该SPM文件的通道数量不同;
该转化模块用于:
创建目标格式的文件;
将该动画数据,按照最邻近的顶点,复制到该目标格式的文件中,作为各个顶点的数据。
本申请实施例提供的装置,通过根据虚拟植物模型中的虚拟叶片之间的交线,确定出一个包含有该多个虚拟叶片的虚拟空间区域,获取该虚拟空间区域的法线来代替该每个虚拟叶片的面片法线,也即是将多个虚拟叶片作为一个整体,用整体的法线来代替单个虚拟叶片的法线,这样渲染后显示出的虚拟植物各个虚拟叶片能够体现该多个虚拟叶片的整体体积感,也不会出现黑一块亮一块的情况,因而,显示效果好。
需要说明的是:上述实施例提供的虚拟植物显示装置在显示虚拟植物时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将电子设备的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的虚拟植物显示装置与虚拟植物显示方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
上述电子设备可以被提供为下述图21所示的终端,也可以被提供为下述图22所示的服务器,本申请实施例对此不作限定。
图21是本申请实施例提供的一种终端的结构示意图。该终端2100可以是:智能手机、平板电脑、MP3(Moving Picture Experts Group Audio Layer III,动态影像专家压缩标准音频层面3)播放器、MP4(Moving Picture Experts Group Audio Layer IV,动态影像专家压缩标准音频层面4)播放器、笔记本电脑或台式电脑。终端2100还可能被称为用户设备、便携式终端、膝上型终端、台式终端等其他名称。
通常,终端2100包括有:一个或多个处理器2101和一个或多个存储器2102。
处理器2101可以包括一个或多个处理核心,比如4核心处理器、8核心处理器等。处理器2101可以采用DSP(Digital Signal Processing,数字信号处理)、FPGA(Field-Programmable Gate Array,现场可编程门阵列)、PLA(Programmable Logic Array,可编程逻辑阵列)中的至少一种硬件形式来实现。处理器2101也可以包括主处理器和协处理器,主处理器是用于对在唤醒状态下的数据进行处理的处理器,也称CPU(Central ProcessingUnit,中央处理器);协处理器是用于对在待机状态下的数据进行处理的低功耗处理器。在一些实施例中,处理器2101可以在集成有GPU(Graphics Processing Unit,图像处理器),GPU用于负责显示屏所需要显示的内容的渲染和绘制。一些实施例中,处理器2101还可以包括AI(Artificial Intelligence,人工智能)处理器,该AI处理器用于处理有关机器学习的计算操作。
存储器2102可以包括一个或多个计算机可读存储介质,该计算机可读存储介质可以是非暂态的。存储器2102还可包括高速随机存取存储器,以及非易失性存储器,比如一个或多个磁盘存储设备、闪存存储设备。在一些实施例中,存储器2102中的非暂态的计算机可读存储介质用于存储至少一个程序代码,该至少一个程序代码用于被处理器2101所执行以实现本申请中方法实施例提供的虚拟植物显示方法。
在一些实施例中,终端2100还可选包括有:外围设备接口2103和至少一个外围设备。处理器2101、存储器2102和外围设备接口2103之间可以通过总线或信号线相连。各个外围设备可以通过总线、信号线或电路板与外围设备接口2103相连。具体地,外围设备包括:射频电路2104、显示屏2105、摄像头组件2106、音频电路2107和电源2108中的至少一种。
外围设备接口2103可被用于将I/O(Input/Output,输入/输出)相关的至少一个外围设备连接到处理器2101和存储器2102。在一些实施例中,处理器2101、存储器2102和外围设备接口2103被集成在同一芯片或电路板上;在一些其他实施例中,处理器2101、存储器2102和外围设备接口2103中的任意一个或两个可以在单独的芯片或电路板上实现,本实施例对此不加以限定。
射频电路2104用于接收和发射RF(Radio Frequency,射频)信号,也称电磁信号。射频电路2104通过电磁信号与通信网络以及其他通信设备进行通信。射频电路2104将电信号转换为电磁信号进行发送,或者,将接收到的电磁信号转换为电信号。可选地,射频电路2104包括:天线系统、RF收发器、一个或多个放大器、调谐器、振荡器、数字信号处理器、编解码芯片组、用户身份模块卡等等。射频电路2104可以通过至少一种无线通信协议来与其它终端进行通信。该无线通信协议包括但不限于:城域网、各代移动通信网络(2G、3G、4G及5G)、无线局域网和/或WiFi(Wireless Fidelity,无线保真)网络。在一些实施例中,射频电路2104还可以包括NFC(Near Field Communication,近距离无线通信)有关的电路,本申请对此不加以限定。
显示屏2105用于显示UI(User Interface,用户界面)。该UI可以包括图形、文本、图标、视频及其它们的任意组合。当显示屏2105是触摸显示屏时,显示屏2105还具有采集在显示屏2105的表面或表面上方的触摸信号的能力。该触摸信号可以作为控制信号输入至处理器2101进行处理。此时,显示屏2105还可以用于提供虚拟按钮和/或虚拟键盘,也称软按钮和/或软键盘。在一些实施例中,显示屏2105可以为一个,设置终端2100的前面板;在另一些实施例中,显示屏2105可以为至少两个,分别设置在终端2100的不同表面或呈折叠设计;在再一些实施例中,显示屏2105可以是柔性显示屏,设置在终端2100的弯曲表面上或折叠面上。甚至,显示屏2105还可以设置成非矩形的不规则图形,也即异形屏。显示屏2105可以采用LCD(Liquid Crystal Display,液晶显示屏)、OLED(Organic Light-Emitting Diode,有机发光二极管)等材质制备。
摄像头组件2106用于采集图像或视频。可选地,摄像头组件2106包括前置摄像头和后置摄像头。通常,前置摄像头设置在终端的前面板,后置摄像头设置在终端的背面。在一些实施例中,后置摄像头为至少两个,分别为主摄像头、景深摄像头、广角摄像头、长焦摄像头中的任意一种,以实现主摄像头和景深摄像头融合实现背景虚化功能、主摄像头和广角摄像头融合实现全景拍摄以及VR(Virtual Reality,虚拟现实)拍摄功能或者其它融合拍摄功能。在一些实施例中,摄像头组件2106还可以包括闪光灯。闪光灯可以是单色温闪光灯,也可以是双色温闪光灯。双色温闪光灯是指暖光闪光灯和冷光闪光灯的组合,可以用于不同色温下的光线补偿。
音频电路2107可以包括麦克风和扬声器。麦克风用于采集用户及环境的声波,并将声波转换为电信号输入至处理器2101进行处理,或者输入至射频电路2104以实现语音通信。出于立体声采集或降噪的目的,麦克风可以为多个,分别设置在终端2100的不同部位。麦克风还可以是阵列麦克风或全向采集型麦克风。扬声器则用于将来自处理器2101或射频电路2104的电信号转换为声波。扬声器可以是传统的薄膜扬声器,也可以是压电陶瓷扬声器。当扬声器是压电陶瓷扬声器时,不仅可以将电信号转换为人类可听见的声波,也可以将电信号转换为人类听不见的声波以进行测距等用途。在一些实施例中,音频电路2107还可以包括耳机插孔。
电源2108用于为终端2100中的各个组件进行供电。电源2108可以是交流电、直流电、一次性电池或可充电电池。当电源2108包括可充电电池时,该可充电电池可以支持有线充电或无线充电。该可充电电池还可以用于支持快充技术。
在一些实施例中,终端2100还包括有一个或多个传感器2109。该一个或多个传感器2109包括但不限于:加速度传感器2110、陀螺仪传感器2111、压力传感器2112、光学传感器2113以及接近传感器2114。
加速度传感器2110可以检测以终端2100建立的坐标系的三个坐标轴上的加速度大小。比如,加速度传感器2110可以用于检测重力加速度在三个坐标轴上的分量。处理器2101可以根据加速度传感器2110采集的重力加速度信号,控制显示屏2105以横向视图或纵向视图进行用户界面的显示。加速度传感器2110还可以用于游戏或者用户的运动数据的采集。
陀螺仪传感器2111可以检测终端2100的机体方向及转动角度,陀螺仪传感器2111可以与加速度传感器2110协同采集用户对终端2100的3D动作。处理器2101根据陀螺仪传感器2111采集的数据,可以实现如下功能:动作感应(比如根据用户的倾斜操作来改变UI)、拍摄时的图像稳定、游戏控制以及惯性导航。
压力传感器2112可以设置在终端2100的侧边框和/或显示屏2105的下层。当压力传感器2112设置在终端2100的侧边框时,可以检测用户对终端2100的握持信号,由处理器2101根据压力传感器2112采集的握持信号进行左右手识别或快捷操作。当压力传感器2112设置在显示屏2105的下层时,由处理器2101根据用户对显示屏2105的压力操作,实现对UI界面上的可操作性控件进行控制。可操作性控件包括按钮控件、滚动条控件、图标控件、菜单控件中的至少一种。
光学传感器2113用于采集环境光强度。在一个实施例中,处理器2101可以根据光学传感器2113采集的环境光强度,控制显示屏2105的显示亮度。具体地,当环境光强度较高时,调高显示屏2105的显示亮度;当环境光强度较低时,调低显示屏2105的显示亮度。在另一个实施例中,处理器2101还可以根据光学传感器2113采集的环境光强度,动态调整摄像头组件2106的拍摄参数。
接近传感器2114,也称距离传感器,通常设置在终端2100的前面板。接近传感器2114用于采集用户与终端2100的正面之间的距离。在一个实施例中,当接近传感器2114检测到用户与终端2100的正面之间的距离逐渐变小时,由处理器2101控制显示屏2105从亮屏状态切换为息屏状态;当接近传感器2114检测到用户与终端2100的正面之间的距离逐渐变大时,由处理器2101控制显示屏2105从息屏状态切换为亮屏状态。
本领域技术人员可以理解,图21中示出的结构并不构成对终端2100的限定,可以包括比图示更多或更少的组件,或者组合某些组件,或者采用不同的组件布置。
图22是本申请实施例提供的一种服务器的结构示意图,该服务器2200可因配置或性能不同而产生比较大的差异,可以包括一个或多个处理器(Central Processing Units,CPU)2201和一个或多个的存储器2202,其中,所述一个或多个存储器2202中存储有至少一条程序代码,所述至少一条程序代码由所述一个或多个处理器2201加载并执行以实现上述各个方法实施例提供的虚拟植物显示方法。当然,该服务器2200还可以具有有线或无线网络接口、键盘以及输入输出接口等部件,以便进行输入输出,该服务器2200还可以包括其他用于实现设备功能的部件,在此不做赘述。
在示例性实施例中,还提供了一种计算机可读存储介质,例如包括程序代码的存储器,上述程序代码可由处理器执行以完成上述实施例中的虚拟植物显示方法。例如,该计算机可读存储介质可以是只读存储器(Read-Only Memory,ROM)、随机存取存储器(RandomAccess Memory,RAM)、只读光盘(Compact Disc Read-Only Memory,CD-ROM)、磁带、软盘和光数据存储设备等。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,该程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
上述仅为本申请的可选实施例,并不用以限制本申请,凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。

Claims (14)

1.一种虚拟植物显示方法,其特征在于,所述方法包括:
获取待处理的虚拟植物模型,所述虚拟植物模型包括虚拟树干和多个虚拟叶片;
根据所述虚拟植物模型中各个虚拟叶片之间的交线,确定所述虚拟植物模型对应的虚拟叶片集合体,所述虚拟叶片集合体用于指示包含有所述多个虚拟叶片的虚拟空间区域;
获取所述虚拟叶片集合体的多个法线;
对于每个法线,根据所述法线所在位置,确定所述虚拟植物模型中与所述法线所在位置之间的距离最小的顶点;
将所述法线作为所述顶点的顶点法线;
在虚拟场景中,根据所述虚拟植物模型中所述多个虚拟叶片的顶点法线,对所述虚拟植物模型进行渲染。
2.根据权利要求1所述的方法,其特征在于,所述根据所述虚拟植物模型中各个虚拟叶片之间的交线,确定所述虚拟植物模型对应的虚拟叶片集合体,包括:
根据所述虚拟植物模型的材质信息,对所述虚拟植物模型进行分割,得到所述虚拟植物模型中的多个虚拟叶片;
获取所述多个虚拟叶片之间的交线;
根据所述多个虚拟叶片之间的交线,确定所述虚拟植物模型对应的虚拟叶片集合体。
3.根据权利要求2所述的方法,其特征在于,所述根据所述多个虚拟叶片之间的交线,确定所述虚拟植物模型对应的虚拟叶片集合体,包括:
根据所述多个虚拟叶片之间的交线,确定所述多个虚拟叶片所在的虚拟空间区域,得到候选虚拟叶片集合体;
对所述候选虚拟叶片集合体进行体素化处理和平滑处理,得到所述虚拟叶片集合体。
4.根据权利要求3所述的方法,其特征在于,所述根据所述多个虚拟叶片之间的交线,确定所述多个虚拟叶片所在的虚拟空间区域,得到候选虚拟叶片集合体,包括:
对于所述多个虚拟叶片,以任两个虚拟叶片之间的交线为直径,创建球体,得到多个球体;
根据目标面数,将所述多个球体转换为多面体,将多个多面体所在的虚拟空间区域确定为所述候选虚拟叶片集合体。
5.根据权利要求3所述的方法,其特征在于,所述体素化处理的过程包括:
获取所述候选虚拟叶片集合体的包围盒;
根据空间分辨率,对所述包围盒进行网格划分,得到多个空间网格;
将所述多个空间网格中被所述候选虚拟叶片集合体覆盖的空间网格所在的空间区域作为体素化后的候选虚拟叶片集合体。
6.根据权利要求5所述的方法,其特征在于,所述平滑处理的过程包括:
获取目标平滑参数;
根据所述目标平滑参数,对所述体素化后的候选虚拟叶片集合体进行平滑处理,得到所述虚拟叶片集合体。
7.根据权利要求1所述的方法,其特征在于,所述根据所述虚拟植物模型中所述多个虚拟叶片的顶点法线,对所述虚拟植物模型进行渲染,包括:
对于每个虚拟叶片,获取所述虚拟叶片的面片法线与视角方向之间的夹角;
当所述夹角大于夹角阈值时,去除所述虚拟叶片;
根据处理后的虚拟植物模型中各个虚拟叶片的顶点法线,对所述虚拟植物模型进行渲染。
8.根据权利要求1所述的方法,其特征在于,所述根据所述虚拟植物模型中所述多个虚拟叶片的顶点法线,对所述虚拟植物模型进行渲染,包括:
获取所述虚拟植物模型中虚拟树干的顶点法线;
根据所述虚拟植物模型中虚拟树干和虚拟叶片的顶点法线,生成对应的法线贴图;
根据所述法线贴图,对所述虚拟植物模型进行渲染。
9.根据权利要求8所述的方法,其特征在于,所述虚拟植物模型中虚拟树干和虚拟叶片的顶点法线为视角空间中的顶点法线;
所述根据所述虚拟植物模型中虚拟树干和虚拟叶片的顶点法线,生成对应的法线贴图,包括:
对所述视角空间中的顶点法线进行取绝对值处理;
将取绝对值处理后的顶点法线转换到虚拟场景的世界空间中,得到世界法线;
根据所述世界法线,生成对应的法线贴图。
10.根据权利要求1所述的方法,其特征在于,所述获取待处理的虚拟植物模型,包括:导入所述待处理的虚拟植物模型对应的萨尔福德预测建模器SPM文件;
所述获取所述虚拟叶片集合体的法线,将所述法线作为所述虚拟植物模型中所述多个虚拟叶片的顶点法线之后,所述方法还包括:
获取所述虚拟植物模型中虚拟树干的顶点法线;
将所述虚拟树干和所述多个虚拟叶片的顶点法线进行合并,得到所述虚拟植物模型的顶点法线;
对所述合并后的顶点法线按照目标格式进行转化,得到目标格式的文件。
11.根据权利要求10所述的方法,其特征在于,所述SPM文件中包括所述虚拟植物模型的动画数据;所述目标格式的文件与所述SPM文件的通道数量不同;
所述对所述合并后的顶点法线按照目标格式进行转化,得到目标格式的文件,还包括:
创建目标格式的文件;
将所述动画数据,按照最邻近的顶点,复制到所述目标格式的文件中,作为各个顶点的数据。
12.一种虚拟植物显示装置,其特征在于,所述装置包括:
获取模块,用于获取待处理的虚拟植物模型,所述虚拟植物模型包括虚拟树干和多个虚拟叶片;
确定模块,用于根据所述虚拟植物模型中各个虚拟叶片之间的交线,确定所述虚拟植物模型对应的虚拟叶片集合体,所述虚拟叶片集合体用于指示包含有所述多个虚拟叶片的虚拟空间区域;
获取模块,还用于获取所述虚拟叶片集合体的多个法线;对于每个法线,根据所述法线所在位置,确定所述虚拟植物模型中与所述法线所在位置之间的距离最小的顶点;将所述法线作为所述顶点的顶点法线;
渲染模块,用于在虚拟场景中,根据所述虚拟植物模型中所述多个虚拟叶片的顶点法线,对所述虚拟植物模型进行渲染。
13.一种电子设备,其特征在于,所述电子设备包括一个或多个处理器和一个或多个存储器,所述一个或多个存储器中存储有至少一条程序代码,所述程序代码由所述一个或多个处理器加载并执行以实现如权利要求1至权利要求11任一项所述的虚拟植物显示方法所执行的操作。
14.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有至少一条程序代码,所述程序代码由处理器加载并执行以实现如权利要求1至权利要求11任一项所述的虚拟植物显示方法所执行的操作。
CN201911268098.8A 2019-12-11 2019-12-11 虚拟植物显示方法、装置、设备及存储介质 Active CN112950753B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201911268098.8A CN112950753B (zh) 2019-12-11 2019-12-11 虚拟植物显示方法、装置、设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201911268098.8A CN112950753B (zh) 2019-12-11 2019-12-11 虚拟植物显示方法、装置、设备及存储介质

Publications (2)

Publication Number Publication Date
CN112950753A CN112950753A (zh) 2021-06-11
CN112950753B true CN112950753B (zh) 2023-09-26

Family

ID=76234024

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911268098.8A Active CN112950753B (zh) 2019-12-11 2019-12-11 虚拟植物显示方法、装置、设备及存储介质

Country Status (1)

Country Link
CN (1) CN112950753B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113599818B (zh) * 2021-08-16 2023-07-21 北京字跳网络技术有限公司 植被渲染方法、装置、电子设备及可读存储介质
CN114004925B (zh) * 2021-09-16 2022-11-22 北京城市网邻信息技术有限公司 基于WebGL的模型渲染方法、电子设备及存储介质

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000182072A (ja) * 1998-12-11 2000-06-30 Hitachi Ltd データ記録媒体、データプロセッサ及び描画情報演算方法
CA2514655A1 (en) * 2001-11-27 2003-05-27 Samsung Electronics Co., Ltd. Apparatus and method for depth image-based representation of 3-dimensional object
EP1321894A2 (en) * 2001-11-27 2003-06-25 Samsung Electronics Co., Ltd. Apparatus and method for representing 3-dimensional objects unsing depth images
CN106412556A (zh) * 2016-10-21 2017-02-15 京东方科技集团股份有限公司 一种图像生成方法及装置
EP3418860A1 (en) * 2017-06-20 2018-12-26 Nokia Technologies Oy Provision of virtual reality content
CN110124318A (zh) * 2019-06-12 2019-08-16 网易(杭州)网络有限公司 虚拟植被制作的方法及装置、电子设备、存储介质

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2546286B (en) * 2016-01-13 2020-02-12 Sony Interactive Entertainment Inc Apparatus and method of image rendering

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000182072A (ja) * 1998-12-11 2000-06-30 Hitachi Ltd データ記録媒体、データプロセッサ及び描画情報演算方法
CA2514655A1 (en) * 2001-11-27 2003-05-27 Samsung Electronics Co., Ltd. Apparatus and method for depth image-based representation of 3-dimensional object
EP1321894A2 (en) * 2001-11-27 2003-06-25 Samsung Electronics Co., Ltd. Apparatus and method for representing 3-dimensional objects unsing depth images
CN106412556A (zh) * 2016-10-21 2017-02-15 京东方科技集团股份有限公司 一种图像生成方法及装置
EP3418860A1 (en) * 2017-06-20 2018-12-26 Nokia Technologies Oy Provision of virtual reality content
CN110124318A (zh) * 2019-06-12 2019-08-16 网易(杭州)网络有限公司 虚拟植被制作的方法及装置、电子设备、存储介质

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
Stochastics simplification of aggregate detail;Robert L. Cook等;ACM Transactions on Graphics;第26卷(第3期);79 *

Also Published As

Publication number Publication date
CN112950753A (zh) 2021-06-11

Similar Documents

Publication Publication Date Title
CN109978989B (zh) 三维人脸模型生成方法、装置、计算机设备及存储介质
CN110276840B (zh) 多虚拟角色的控制方法、装置、设备及存储介质
CN112870707B (zh) 虚拟场景中的虚拟物体展示方法、计算机设备及存储介质
CN112245926B (zh) 虚拟地形的渲染方法、装置、设备及介质
CN110136236B (zh) 三维角色的个性化脸部显示方法、装置、设备及存储介质
JP7186901B2 (ja) ホットスポットマップの表示方法、装置、コンピュータ機器および読み取り可能な記憶媒体
CN112884874A (zh) 在虚拟模型上贴花的方法、装置、设备及介质
CN111738914B (zh) 图像处理方法、装置、计算机设备及存储介质
CN112950753B (zh) 虚拟植物显示方法、装置、设备及存储介质
CN111680758B (zh) 图像训练样本生成方法和装置
CN112884873B (zh) 虚拟环境中虚拟物体的渲染方法、装置、设备及介质
CN111445563A (zh) 一种图像生成的方法以及相关装置
CN112206519B (zh) 实现游戏场景环境变化的方法、装置、存储介质及计算机设备
CN109697748A (zh) 模型压缩处理方法、模型贴图处理方法装置、存储介质
CN109939442B (zh) 应用角色位置异常识别方法、装置、电子设备及存储介质
CN113018865B (zh) 攀爬线生成方法、装置、计算机设备及存储介质
CN112717391A (zh) 虚拟角色的角色名称显示方法、装置、设备及介质
CN112755533B (zh) 虚拟载具涂装方法、装置、设备及存储介质
CN116385698B (zh) 网格重建模型的训练方法、网格重建方法及装置
CN113058266B (zh) 虚拟环境中场景字体的显示方法、装置、设备及介质
CN110807826B (zh) 虚拟场景中的地图显示方法、装置、设备及存储介质
CN116993946A (zh) 模型生成方法、装置、终端及存储介质
CN117132700A (zh) 虚拟植物渲染方法、装置、设备、存储介质和产品
CN117618893A (zh) 场景特效处理方法、装置、电子设备及存储介质
CN117892810A (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
REG Reference to a national code

Ref country code: HK

Ref legal event code: DE

Ref document number: 40046806

Country of ref document: HK

GR01 Patent grant
GR01 Patent grant