CN110517346B - 虚拟环境界面的展示方法、装置、计算机设备及存储介质 - Google Patents
虚拟环境界面的展示方法、装置、计算机设备及存储介质 Download PDFInfo
- Publication number
- CN110517346B CN110517346B CN201910813258.6A CN201910813258A CN110517346B CN 110517346 B CN110517346 B CN 110517346B CN 201910813258 A CN201910813258 A CN 201910813258A CN 110517346 B CN110517346 B CN 110517346B
- Authority
- CN
- China
- Prior art keywords
- editable
- type
- editable object
- virtual environment
- shadow map
- 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/50—Lighting effects
- G06T15/60—Shadow generation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/50—Lighting effects
- G06T15/80—Shading
Landscapes
- Engineering & Computer Science (AREA)
- Computer Graphics (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Processing Or Creating Images (AREA)
Abstract
本申请是关于一种虚拟环境界面的展示方法、装置、计算机设备及存储介质,涉及虚拟环境技术领域。该方法包括:获取三维虚拟环境中的可编辑对象的可编辑类型,所述可编辑类型包括外形固定类型或者外形非固定类型;根据所述可编辑类型获取所述可编辑对象的第一阴影贴图;根据所述第一阴影贴图,展示包含所述可编辑对象的虚拟环境界面;在本方案中,终端在展示三维虚拟环境时,对于虚拟环境中的可编辑对象,根据可编辑对象的不同类型,获取按照不同方式生成的阴影贴图,不需要对所有的可编辑对象进行实时光照渲染,从而降低了对三维虚拟环境的界面进行展示过程中的缓存资源和运算资源的消耗,提高了展示三维虚拟环境时的终端性能。
Description
技术领域
本申请涉及虚拟环境技术领域,特别涉及一种虚拟环境界面的展示方法、装置、计算机设备及存储介质。
背景技术
在很多构建三维虚拟环境的应用程序中,虚拟对象的阴影展示是提高三维虚拟环境的展示效果的重要手段。
在相关技术中,在虚拟对象可由用户自行编辑的三维虚拟环境,比如基于社交网络服务游戏(Social Networking Service game,SNS)玩法的三维虚拟环境中,由于虚拟对象并不是固定不变的,因此,在展示虚拟环境界面时,通过应用程序自带的实时光照阴影功能,在每一帧中对可编辑的虚拟对象进行实时光照效果的渲染,获得对应的阴影效果。
上述相关技术中,由于需要在每一帧中对可编辑的虚拟对象进行实时光照效果的渲染,该过程需要消耗终端中较多的缓存和运算资源,对终端的性能会造成不利的影响。
发明内容
本申请实施例提供了一种虚拟环境界面的展示方法、装置、计算机设备及存储介质,可以提高展示三维虚拟环境时的终端性能,技术方案如下:
一方面,提供了一种虚拟环境界面的展示方法,所述方法由终端执行,所述方法包括:
虚拟环境界面的展示方法,其特征在于,所述方法由终端执行,所述方法包括:
获取三维虚拟环境中的可编辑对象的可编辑类型,所述可编辑对象是在所述三维虚拟环境中可编辑的虚拟对象,所述可编辑类型包括外形固定类型或者外形非固定类型;
根据所述可编辑类型获取所述可编辑对象的第一阴影贴图;当所述可编辑类型为外形固定类型时,所述第一阴影贴图是对所述可编辑对象进行静态烘焙获得的阴影贴图;当所述可编辑类型为外形非固定类型时,所述第一阴影贴图是所述可编辑对象的实时阴影的贴图;
根据所述第一阴影贴图,展示包含所述可编辑对象的虚拟环境界面。
一方面,提供了一种虚拟环境界面的展示装置,用于终端中,该装置包括:
类型获取模块,用于获取三维虚拟环境中的可编辑对象的可编辑类型,所述可编辑对象是在所述三维虚拟环境中可编辑的虚拟对象,所述可编辑类型包括外形固定类型或者外形非固定类型;
第一贴图获取模块,用于根据所述可编辑类型获取所述可编辑对象的第一阴影贴图;当所述可编辑类型为外形固定类型时,所述第一阴影贴图是对所述可编辑对象进行静态烘焙获得的阴影贴图,当所述可编辑类型为外形非固定类型时,所述第一阴影贴图是所述可编辑对象的实时阴影的贴图;
第一展示模块,用于根据所述第一阴影贴图,展示包含所述可编辑对象的虚拟环境界面。
在一种可能的实现方式中,当所述可编辑类型为外形固定类型时,所述第一贴图获取模块,用于,
获取所述可编辑对象的第一编辑状态,所述第一编辑状态是所述可编辑对象对应的至少两个编辑状态中的一个;
从所述可编辑对象的数据文件中获取与所述第一编辑状态相对应的所述第一阴影贴图。
在一种可能的实现方式中,所述可编辑对象对应的至少两个编辑状态包括所述可编辑对象的至少两个朝向,所述第一编辑状态包括所述可编辑对象的当前朝向;所述可编辑对象的数据文件中包含至少两个阴影贴图,所述至少两个阴影贴图是所述可编辑对象分别处于所述至少两个朝向时,对所述可编辑对象进行静态烘焙获得的阴影贴图;
在从所述可编辑对象的数据文件中获取与所述第一编辑状态相对应的所述第一阴影贴图时,所述第一贴图获取模块,用于将所述可编辑对象的数据文件中包含的,所述当前朝向对应的阴影贴图获取为所述第一阴影贴图。
在一种可能的实现方式中,所述至少两个朝向各自对应的阴影贴图存储于所述可编辑对象的UV1信息中。
在一种可能的实现方式中,所述可编辑对象的数据文件中不包含所述可编辑对象的UV2信息。
在一种可能的实现方式中,当所述可编辑类型为外形非固定类型时,所述第一贴图获取模块,用于根据所述可编辑对象的结构实时生成所述第一阴影贴图。
在一种可能的实现方式中,所述第一贴图获取模块,用于,
生成所述可编辑对象的三维结构模型;
模拟所述三维结构模型投射在底面上的投影;
根据所述三维结构模型投射在底面上的投影生成所述第二阴影贴图。
在一种可能的实现方式中,所述装置还包括:
第二贴图获取模块,用于当所述可编辑对象的可编辑类型为外形非固定类型时,在所述第一贴图获取模块根据所述可编辑对象的结构实时生成所述第一阴影贴图之前,获取所述可编辑对象的第二阴影贴图,所述第二阴影贴图是在所述可编辑对象保持不变的时长达到时长阈值后,对所述可编辑对象进行静态烘焙获得的阴影贴图;
所述第一贴图获取模块,用于若获取所述第二阴影贴图失败,则执行所述根据所述可编辑对象的结构实时生成所述第一阴影贴图的步骤。
在一种可能的实现方式中,所述第一贴图获取模块,还用于若成功获取到所述第二阴影贴图,则将所述第二阴影贴图获取为所述可编辑对象的所述第一阴影贴图。
在一种可能的实现方式中,所述类型获取模块,用于在成功执行对所述三维虚拟环境中的任意可编辑对象的编辑操作时,获取所述可编辑对象的所述可编辑类型。
在一种可能的实现方式中,所述类型获取模块,用于从所述可编辑对象的数据文件中获取所述可编辑对象的类型标签,所述类型标签指示所述可编辑类型。
在一种可能的实现方式中,所述类型标签是所述可编辑对象在所述三维虚拟环境中的层级信息。
一方面,提供了一种计算机设备,该计算机设备包含处理器和存储器,存储器中存储由至少一条指令、至少一段程序、代码集或指令集,至少一条指令、至少一段程序、代码集或指令集由处理器加载并执行以实现上述虚拟环境界面的展示方法。
一方面,提供了一种计算机可读存储介质,该存储介质中存储有至少一条指令、至少一段程序、代码集或指令集,至少一条指令、至少一段程序、代码集或指令集由处理器加载并执行以实现上述虚拟环境界面的展示方法。
本申请提供的技术方案可以包括以下有益效果:
通过在展示三维虚拟环境时,对于虚拟环境中的可编辑对象,根据可编辑对象的不同类型,获取按照不同方式生成的阴影贴图,不需要对所有的可编辑对象进行实时光照渲染,从而降低了对三维虚拟环境的界面进行展示过程中的缓存资源和运算资源的消耗,提高了展示三维虚拟环境时的终端性能。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本申请。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本申请的实施例,并与说明书一起用于解释本申请的原理。
图1是本申请一个示例性的实施例提供的终端的结构示意图;
图2是本申请一个示例性的实施例提供的虚拟环境界面的展示方法的流程示意图;
图3是本申请一个示例性的实施例提供的虚拟环境界面的展示方法的流程示意图;
图4是图3所示实施例涉及的一种可编辑对象的编辑示意图;
图5是图3所示实施例涉及的另一种可编辑对象的编辑示意图;
图6是本申请一个示例性的实施例提供的三维虚拟环境中的阴影效果展示的实现流程框架图;
图7是图6所示实施例涉及的可编辑地形阴影展示示意图;
图8是根据一示例性实施例示出的虚拟环境界面的展示装置的结构方框图;
图9是根据一示例性实施例示出的终端的结构框图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。
应当理解的是,在本文中提及的“若干个”是指一个或者多个,“多个”是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。
本申请提供一种虚拟环境界面的展示方法,可以在保证三维虚拟环境中的可编辑对象的阴影效果的情况下,提高终端在展示虚拟环境界面时的性能。为了便于理解,下面对本申请涉及的几个名词进行解释。
1)社交网络服务游戏
SNS是一种在线游戏玩法,通常使用多人与异步游戏性机制。比如,在一种SNS玩法中,每个用户具有自己专属的三维虚拟环境,该专属的三维虚拟环境可以表现为虚拟农场、虚拟家园、虚拟城市、虚拟小岛等等,并且,用户可以通过游戏程序提供的虚拟对象对自己的三维虚拟环境进行装饰或升级。用户还可以访问其他用户(比如好友用户)的专属的三维虚拟环境,相应的,用户专属的三维虚拟环境也可以被其他用户访问。
2)三维虚拟环境
三维虚拟环境是应用程序在终端上运行时显示(或提供)的虚拟的三维场景。该虚拟环境可以是对真实世界的仿真环境场景,也可以是半仿真半虚构的三维环境场景,还可以是纯虚构的三维环境场景。可选地,该三维虚拟环境还可用于SNS玩法。
3)虚拟对象
虚拟对象是指在三维虚拟环境中的对象。该虚拟对象可以是虚拟建筑、虚拟植物、虚拟地形、虚拟人物、虚拟家具、虚拟载具以及虚拟动物/宠物中的至少一种。
三维虚拟环境通常由终端等计算机设备中的应用程序生成基于终端中的硬件(比如屏幕)进行展示。该终端可以是智能手机、平板电脑或者电子书阅读器等移动终端;或者,该终端也可以是笔记本电脑或者固定式计算机的个人计算机设备。
请参考图1,其示出了本申请一个示例性的实施例提供的终端的结构示意图。如图1所示,该终端包括主板110、外部输出/输入设备120、存储器130、外部接口140、触控系统150以及电源160。
其中,主板110中集成有处理器和控制器等处理元件。
外部输出/输入设备120可以包括显示组件(比如显示屏)、声音播放组件(比如扬声器)、声音采集组件(比如麦克风)以及各类按键等。
存储器130中存储有程序代码和数据。
外部接口140可以包括耳机接口、充电接口以及数据接口等。
触控系统150可以集成在外部输出/输入设备120的显示组件或者按键中,触控系统150用于检测用户在显示组件或者按键上执行的触控操作。
电源160用于对终端中的其它各个部件进行供电。
在本申请实施例中,主板110中的处理器可以通过执行或者调用存储器中存储的程序代码和数据生成三维虚拟环境,并将生成的三维虚拟环境通过外部输出/输入设备120进行展示。在展示三维虚拟环境的过程中,可以通过电容触控系统150检测用户与三维虚拟环境进行交互时执行的触控操作。
请参考图2,其示出了本申请一个示例性的实施例提供的虚拟环境界面的展示方法的流程示意图。该虚拟环境界面的展示方法可以由终端执行,也可以由终端和服务器交互执行。其中,上述终端可以是上述图1所示的终端。如图2所示,该虚拟环境界面的展示方法可以包括以下步骤:
步骤210,获取三维虚拟环境中的可编辑对象的可编辑类型,该可编辑对象是在该三维虚拟环境中可编辑的虚拟对象,该可编辑类型包括外形固定类型或者外形非固定类型。
在本申请实施例中,三维虚拟环境中的虚拟对象按照是否可以被用户编辑,可以划分为可编辑对象和非可编辑对象。比如,可编辑对象可以是三维虚拟环境中间位置的虚拟围墙、虚拟建筑、虚拟土地以及虚拟家具等等;用户可以通过编辑操作对可编辑对象进行编辑。而不可编辑对象可以是三维虚拟环境周围的虚拟山坡、虚拟河流等等,通常情况下,不可编辑对象无法给用户自行编辑。
在本申请中,上述可编辑对象还可以进一步划分为外形固定类型的可编辑对象,以及外形非固定类型的可编辑对象。
其中,外形固定类型的可编辑对象是指外形属性不可由用户操作改变的可编辑对象,也就是该可编辑对象的可编辑属性不包括外形属性;比如,对于三维虚拟环境中的虚拟建筑或者虚拟家具,用户可以通过编辑操作改变其朝向和位置,但不可以改变其外形,此类虚拟对象可以称为外形固定类型的可编辑对象。
而外形非固定类型的可编辑对象是指外形属性可以由用户操作来改变的可编辑对象,也就是该可编辑对象的可编辑属性包括外形属性。比如,对于三维虚拟环境中的虚拟围墙、虚拟土地等,用户不仅可以通过编辑操作改变其朝向和位置,还可以通过编辑操作改变其外形,比如,改变虚拟围墙的长度、高度以及开口位置,或者,改变虚拟土地的面积和形状,此类虚拟对象可以称为外形非固定类型的可编辑对象。
步骤220,根据该可编辑类型获取该可编辑对象的第一阴影贴图;当该可编辑类型为外形固定类型时,该第一阴影贴图是对该可编辑对象进行静态烘焙获得的阴影贴图;当该可编辑类型为外形非固定类型时,该第一阴影贴图是该可编辑对象的实时阴影的贴图。
步骤230,根据该第一阴影贴图,展示包含该可编辑对象的虚拟环境界面。
综上所述,在本申请实施例所示的方案中,终端在展示三维虚拟环境时,对于虚拟环境中的可编辑对象,根据可编辑对象的不同类型,获取按照不同方式生成的阴影贴图,不需要对所有的可编辑对象进行实时光照渲染,从而降低了对三维虚拟环境的界面进行展示过程中的缓存资源和运算资源的消耗,提高了展示三维虚拟环境时的终端性能。
请参考图3,其示出了本申请一个示例性的实施例提供的虚拟环境界面的展示方法的流程示意图。该虚拟环境界面的展示方法可以由终端执行,也可以由终端和服务器交互执行。其中,上述终端可以是上述图1所示的终端。如图3所示,该虚拟环境界面的展示方法可以包括以下步骤:
步骤301,获取三维虚拟环境中的可编辑对象的可编辑类型,该可编辑类型包括外形固定类型或者外形非固定类型。
其中,该可编辑对象是在三维虚拟环境中可编辑的虚拟对象。
在一种可能的实现方案中,终端可以在成功执行对该三维虚拟环境中的任意可编辑对象的编辑操作时,获取该三维虚拟环境中的各个可编辑对象的可编辑类型。
比如,三维虚拟环境中包含多个可编辑对象,用户可以对该三维虚拟环境中的一个或者多个可编辑对象进行编辑,比如,调整可编辑对象的朝向、外形、尺寸等,或者,也可以是增加新的可编辑对象或者删除原有的可编辑对象等等。终端接收到对三维虚拟环境中的可编辑对象的编辑操作,并成功执行该编辑操作后,确定三维虚拟环境中被编辑后任然存在于三维虚拟环境中的一个或多个可编辑对象(即被编辑且未被删除的可编辑对象),并获取该一个或多个可编辑对象的可编辑类型。
例如,请参考图4,其示出了本申请实施例涉及的一种可编辑对象的编辑示意图。如图4所示,在三维虚拟环境40中包含若干个可编辑对象,这若干个可编辑对象中包含虚拟建筑41,用户可以通过编辑操作来调整该虚拟建筑41的朝向。例如,如图4中的(a)部分所示,虚拟建筑41的朝向为初始的朝向,如图4中的(b)部分、(c)部分和(d)部分所示,用户可以通过虚拟按钮或者菜单调整虚拟建筑41的朝向,并且可以多次调整,终端每次接受到用户调整虚拟建筑41的朝向的操作后,将虚拟建筑41在三维虚拟环境中的朝向调整90°。在本申请实施例中,终端每次根据用户操作调整虚拟建筑41的朝向之后,可以获取三维虚拟环境40中,包括虚拟建筑41在内的各个可编辑对象的可编辑类型。
再例如,请参考图5,其示出了本申请实施例涉及的另一种可编辑对象的编辑示意图。如图5所示,在三维虚拟环境50中包含若干个可编辑对象,这若干个可编辑对象中包含虚拟地块51,用户可以通过编辑操作来调整该虚拟地块51的外形和尺寸,比如,该虚拟地块51上包含有虚拟植物,用户可以通过虚拟按钮或者菜单缩放虚拟植物的尺寸,或者,修改虚拟植物的品种(比如将棕榈树修改为椰子树);再比如,虚拟地块51的尺寸是单位尺寸(比如60×60)的整数倍,每个单位尺寸的地块称为一个地块单元,用户可以通过虚拟按钮或者菜单增加或者缩小虚拟地块51包含的地块单元的数量,比如,从两个地块单元缩小为一个地块单元等等;再比如,用户也可以通过虚拟按钮或者菜单增加新的虚拟地块,或者,删除已有的虚拟地块。在本申请实施例中,终端每次根据用户操作调整虚拟地块51的外形或者尺寸之后,即可以获取三维虚拟环境50中,包括虚拟地块51在内的各个可编辑对象的可编辑类型。
可选的,在获取三维虚拟环境中的可编辑对象的可编辑类型时,终端可以从该可编辑对象的数据文件中获取该可编辑对象的类型标签,该类型标签指示该可编辑类型。
在一种可能的实现方式中,开发人员开发上述可编辑对象时,可以在可编辑对象的数据文件中设置该可编辑对象的类型标签,以指示该可编辑对象的可编辑类型是外形固定类型还是外形非固定类型。
例如,开发人员开发上述图4所示的虚拟建筑时,可以在虚拟建筑的数据文件中设置该虚拟建筑的类型标签,以指示该虚拟建筑的可编辑类型是外形固定类型。开发人员在开发上述图5所示的虚拟地块时,可以在虚拟地块的数据文件中设置该虚拟地块的类型标签,以指示该虚拟地块的可编辑类型是外形非固定类型。
在一个示例性的方案中,开发人员在开发上述可编辑对象时,可以在可编辑对象的数据文件中设置一个专用的数据位,该数据位用于携带可编辑对象的类型标签;相应的,终端在获取可编辑对象的可编辑类型时,可以读取可编辑对象的数据文件中的专用数据位,获取其中携带的类型标签。
其中,该类型标签可以是一个或多个比特的字符串。例如,以该类型标签占用4个比特为例,当类型标签为“0000”时,该类型标签表示对应的可编辑对象的可编辑类型是外形固定类型;当类型标签为“1111”时,该类型标签表示对应的可编辑对象的可编辑类型是外形非固定类型。
在另一个示例性的方案中,开发人员在开发上述可编辑对象时,可以在可编辑对象的数据文件中的某个空闲的数据位上设置可编辑对象的类型标签。例如,可编辑对象的数据文件中包含若干个数据位,其中有一些数据位属于预留的空闲数据位,为了简化数据文件的结构复杂度,在本申请实施例中,开发人员在开发上述可编辑对象时,可以将该可编辑对象的类型标签设置在某个指定的空闲数据位上;相应的,终端在获取可编辑对象的可编辑类型时,可以读取可编辑对象的数据文件中的指定的空闲数据位,获取其中携带的类型标签。
在上述两种示例性的方案中,都需要在可编辑对象的数据文件中添加专门用于指示可编辑类型的类型标签,而这些专用的类型标签都需要额外占据一定的数据位。在本申请实施例中,为了进一步减少类型标签对数据文件中的数据位的占用,避免增加数据文件的数据量,可以通过数据文件中已有的信息来额外指示对应的可编辑对象的可编辑类型。
比如,在一个示例性的方案中,可编辑对象的标签类型可以是该可编辑对象在三维虚拟环境中的层级信息。
其中,三维虚拟环境中的每个可编辑对象都具有各自的层级信息,该层级信息指示对应的可编辑对象在三维虚拟环境中的层级。在本申请实施例中,可以设置三维虚拟环境中的第一层级是外形固定类型的可编辑对象所在的层级,并设置三维虚拟环境中的第二层级是外形非固定类型的可编辑对象所在的层级。其中,上述第一层级或者第二层级可以只包含单个层级,也可以包含多个层级,并且,上述第一层级和第二层级之间不存在交集。
开发人员在开发可编辑对象的过程中,对于外形固定类型的可编辑对象,将其层级设置为第一层级,而对于外形非固定类型的可编辑对象,将其层级设置为第二层级。例如,以上述图4和图5为例,开发人员在开发图4中的虚拟建筑时,可以将虚拟建筑的层级设置为第一层级,在开发图5中的虚拟地块时,可以将虚拟地块的层级设置为第二层级。
相应的,终端在展示三维虚拟环境的虚拟环境界面时,可以获取三维虚拟环境中的可编辑对象的层级信息,并根据层级信息所指示的层级,确定可编辑对象的可编辑类型,例如,当可编辑对象的层级信息指示该可编辑对象的层级属于第一层级时,终端获取该可编辑对象的可编辑类型为外形固定类型;当可编辑对象的层级信息指示该可编辑对象的层级属于第二层级时,终端获取该可编辑对象的可编辑类型为外形非固定类型。
步骤302,当该可编辑类型为外形固定类型时,获取该可编辑对象的第一编辑状态,该第一编辑状态是该可编辑对象对应的至少两个编辑状态中的一个。
可选的,当该可编辑类型为外形固定类型时,该可编辑对象对应的至少两个编辑状态包括该可编辑对象的至少两个朝向,该第一编辑状态包括该可编辑对象的当前朝向。
此外,当该可编辑类型为外形固定类型时,该可编辑对象的数据文件中包含至少两个阴影贴图,该至少两个阴影贴图是该可编辑对象分别处于该至少两个朝向时,对该可编辑对象进行静态烘焙获得的阴影贴图。
对于外形固定的可编辑对象,由于其外形是固定的,其阴影贴图与其朝向有关,而当其朝向的数量有限时,有条件对该可编辑对象在每个朝向时的阴影贴图进行静态烘焙并存储,以便在展示包含该可编辑对象的三维虚拟环境时直接调用,而不必在展示三维虚拟环境时实时渲染该可编辑对象的阴影贴图获得,从而能够在终端侧节约对外形固定的可编辑对象进行实时阴影效果渲染而导致的缓存占用以及运算资源占用。
例如,以图4所示的三维虚拟环境为例,其中虚拟建筑41属于外形固定类型的可编辑对象,并且,该虚拟建筑41的朝向可以在固定的4个朝向之间的进行调整。因此,上述虚拟建筑41在开发时,开发人员在完整该虚拟建筑41的模型构建时,可以静态烘焙该虚拟建筑41的4个朝向分别对应的阴影贴图,并存储在该虚拟建筑41的数据文件中,以便终端展示上述三维虚拟环境40时直接调用,不需要终端再对该虚拟建筑41进行实时的光照效果渲染。
其中,上述至少两个朝向各自对应的阴影贴图存储于该可编辑对象的UV1信息中。
在一种可能的实现方式中,当上述三维虚拟环境是基于Unity开发工具开发时,可编辑对象的数据文件中会包含可编辑对象的UV1信息(比如UV1.zw信息),其中,该UV1信息是用于指示该可编辑对象的模型中的各个像素点上的颜色和材质等数据的信息。在本申请实施例中,对于基于Unity开发工具开发的可编辑对象,该可编辑对象的至少两个朝向各自对应的阴影贴图可以存在可编辑对象的UV1信息中。比如,以图4所示的三维虚拟环境为例,虚拟建筑41的四个方向的阴影贴图可以分别以灰色单通道方式存贮在虚拟建筑41的UV1信息的R、G、B、A四个通道中,每个通道对应个朝向。
可选的,该可编辑对象的数据文件中不包含该可编辑对象的UV2信息。
在相关技术中,Unity开发工具自带的烘焙系统烘焙虚拟对象的阴影贴图时,着色程序(shader)代码会采样该虚拟对象的模型的UV2信息,该UV2信息就是用于展示虚拟对象的阴影贴图的信息,其中UV2信息是保存在Mesh网格中,由3D模型工具导出FBX文件(其中,FBX是一种二进制的文件格式)获得,例如,以Unity5.0版本为例,Unity官方提供的烘焙功能对应的光照贴图代码如下:
half4 lm=tex2D(_LightMap,IN.uv2_LightMap);
而在本申请实施例中,由于可编辑对象的阴影贴图是存在UV1信息中,在三维虚拟环境展示过程中并不需要上述UV2信息,因此,在相关技术中涉及的虚拟对象的数据文件中,UV2信息(即上述代码中的“IN.uv2”)是可以省略的。而本申请实施例所示的方案中,可编辑对象的数据文件中可以不包含UV2信息,从而减少了数据文件的数据量。
例如,以通过Unity开发工具开发的虚拟对象为例,相关技术中,该虚拟对象的数据文件的各项信息如下述表1所示。
对象名称 | ID | 通道名称 | 尺寸(KB) |
house_sm_fz6x8 | Poly | -none- | 310kb |
house_sm_fz6x8 | Vsel | -none- | 10kb |
house_sm_fz6x8 | -2:Alpha | -none- | 0kb |
house_sm_fz6x8 | -1:Illum | -none- | 0kb |
house_sm_fz6x8 | 0:vc | -none- | 0kb |
house_sm_fz6x8 | 1:map | -none- | 82kb |
house_sm_fz6x8 | 2:map | -none- | 82kb |
表1
其中,表1所示的“1:map”就是虚拟对象的UV2信息,“Size(KB)”统计了UV2在数据文件占据了82kb的大小,本申请实施例所示的方案中,可编辑对象的数据文件中可以不包含UV2信息,从而能够节省一定的终端内存占用。
步骤303,从该可编辑对象的数据文件中获取与该第一编辑状态相对应的第一阴影贴图。
可选的,当上述第一编辑状态包括可编辑对象的当前朝向时,终端可以将该可编辑对象的数据文件中包含的,该当前朝向对应的阴影贴图获取为该第一阴影贴图。
例如,以上述至少两个阴影贴图存储在可编辑对象的UV1信息中为例,终端根据当前朝向确定对应的存储通道(即R、G、B、A四个通道中的一个),并从对应的通道中提取出第一阴影贴图。
步骤304,当该可编辑类型为外形非固定类型时,根据该可编辑对象的结构实时生成该第一阴影贴图。
其中,该第一阴影贴图是该可编辑对象的实时阴影的贴图。
对于外形非固定的可编辑对象,由于其外形并不是固定的,而可编辑对象的阴影贴图又与可编辑对象的外形紧密相关,因此,在本本申请实施例中,对于外形非固定的可编辑对象,由终端在展示三维虚拟环境时,根据可编辑对象的结构生成其阴影贴图。
其中,终端根据该可编辑对象的结构实时生成该第一阴影贴图的过程可以如下:
S304a,生成该可编辑对象的三维结构模型。
在展示三维虚拟环境时,终端中安装运行的应用程序中的SendShadow Script可以抓取特定Unity的某一层级Layer(比如上述第二层级)的建筑体(即外形非固定的可编辑对象),并渲染一张RenderTexture。其代码可以如下:
shadowrender=newRender Textur(shadowmapResolution,shadowmapResolution,16,RenderTextureFormat.R8,RenderTextureReadWrite.Default);
S304b,模拟该三维结构模型投射在底面上的投影。
终端中运行的应用程序可以采集Render Texture的轮廓去模拟该建筑体投在底形上的阴影。
S304c,根据该三维结构模型投射在底面上的投影生成该第二阴影贴图。
应用程序中的shader采样摄像机可以抓取上述投影构成的阴影,读取渲染的方向,并混合阴影的色彩倾向,完成地形动态编辑中实时的阴影表现,获得上述第二阴影贴图。其代码可以如下:
half4 shadowColor=lerp(float4(0,0,0,1),_ShadowCol,1);
half4 atten=lerp(shadowColor,float4(1,1,1,1),Attenuation(i.worldPos));
atten=(dot(i.worldNormal,_DirectionalLightDir.xyz)>1)?float4(0,0,0,0):atten;
可选的,终端根据该可编辑对象的结构实时生成该第一阴影贴图之前,当该可编辑对象的可编辑类型为外形非固定类型时,还可以获取该可编辑对象的第二阴影贴图,该第二阴影贴图是在该可编辑对象保持不变的时长达到时长阈值后,对该可编辑对象进行静态烘焙获得的阴影贴图;若获取该第二阴影贴图失败,则执行上述根据该可编辑对象的结构实时生成该第一阴影贴图的步骤。
其中,上述时长阈值可以由开发人员预先设置在服务器中。
对于三维虚拟环境中的外形非固定类型的可编辑对象,若用户不对其进行编辑,其外形也是不会发生变化的,因此,在本申请实施例中,为了进一步减少终端获取可编辑对象的阴影贴图时所需要执行的计算步骤,若三维虚拟环境中某个外形非固定的可编辑对象在上一次被编辑之后的一段时间(即上述时长阈值,比如24小时)内未再被编辑,也就会说长时间不发生变化。在本申请实施例中,服务器可以维护三维虚拟环境中各个外形非固定类型的可编辑对象的最近编辑时间,相应的,用户在终端侧对三维虚拟环境中某个外形非固定类型的可编辑对象(比如图5中的虚拟地块51)进行编辑后,终端将会向服务器同步该编辑步骤,服务器更新该可编辑对象的最近更新时间。当服务器确定某个外形非固定类型的可编辑对象的最近编辑时间距离当时时刻的时长达到上述时长阈值时,服务器可以确定用户可能在之后的很长时间内不会对该三维虚拟对象进行编辑,将会在后台对该外形非固定类型的可编辑对象进行静态烘焙,获得该可编辑对象的第二阴影贴图并进行存储。当用户下一次在终端侧对该可编辑对象进行编辑后,服务器接收到终端的同步信息后,可以删除该第二阴影贴图。
相应的,终端在展示三维虚拟环境时,当某一可编辑对象属于外形非固定类型的可编辑对象,且该可编辑对象本次未被编辑,则终端可以向服务器获取该可编辑对象的第二阴影贴图,若该可编辑对象在当前时刻之间的一段时长(即上述时长阈值)内被用户编辑过,则服务器端将不会向终端返回该可编辑对象的第二阴影贴图,则终端认为获取该第二阴影贴图失败,此时,可以按照上述步骤304,在终端本次生成第一阴影贴图。
可选的,如果终端成功获取到上述第二阴影贴图,则终端不需要执行上述步骤304,可以直接将该第二阴影贴图获取为可编辑对象的第一阴影贴图。
步骤305,根据该第一阴影贴图,展示包含该可编辑对象的虚拟环境界面。
在本申请实施例中,终端在获取到三维虚拟环境中的各个可编辑对象各自的第一阴影贴图之后,可以将各个可编辑对象的第一阴影意贴图与各个可编辑对象进行同步,生成完整的三维虚拟环境的图像,并在终端屏幕显示的虚拟环境界面中展示该完整图像。
基于本申请实施例所示的方案,在基于SNS玩法的三维虚拟环境中,若用户没有对三维虚拟环境中的可编辑对象进行调整操作,则三维虚拟环境中的各个虚拟对象会一直保持不变,相应的,各个虚拟对象的阴影贴图也会保持不变。因此,在本申请所示的方案中,终端在成功执行对该可编辑对象的编辑操作时获取可编辑对象的可编辑类型,以便根据可编辑类型获取可编辑对象的阴影贴图,并根据阴影贴图展示三维虚拟环境,而在未执行对该可编辑对象的编辑操作的情况下,终端可以使用前一次成功执行对某个可编辑对象的编辑操作后生成的阴影贴图或者完整的界面图像进行展示,也就是说,终端展示三维虚拟环境的界面时,只需要在三维虚拟环境中的可编辑对象被编辑后展示的第一帧,获取三维虚拟环境中的各个可编辑对象的阴影贴图并生成三维虚拟环境的完整图像,后续在三维虚拟环境中的可编辑对象未被编辑的各帧中,直接使用在先的图像进行展示即可,不需要每一帧都进行实时光照渲染,从而有效的减少了阴影效果渲染的缓存占用量以及运算资源占用量。
综上所述,在本申请实施例所示的方案中,终端在展示三维虚拟环境时,对于虚拟环境中的可编辑对象,根据可编辑对象的不同类型,获取按照不同方式生成的阴影贴图,不需要对所有的可编辑对象进行实时光照渲染,从而降低了对三维虚拟环境的界面进行展示过程中的缓存资源和运算资源的消耗,提高了展示三维虚拟环境时的终端性能。
此外,本申请实施例所示的方案中,对于三维虚拟环境中外形非固定类型的可编辑对象,若该可编辑对象在一定时长内未被编辑过,则终端可以从服务器直接获取到该可编辑对象的静态烘焙的阴影贴图,不需要终端实时生成,从而减少终端获取外形非固定类型的可编辑对象的阴影贴图时所需要执行的计算步骤,进一步提高展示三维虚拟环境时的终端性能。
以上述图2或图3所示的方案应用于某个基于SNS玩法的游戏应用为例,该游戏应用中每个用户拥有一个专属的三维虚拟环境,用户可以通过游戏应用中的商城或者其它渠道获取可编辑对象来装饰或者升级自己专属的三维虚拟环境。其中,该三维虚拟环境中的可编辑对象分为基础交互建筑(提供给用户在商城购买,并随玩家自由旋转挪动摆放的装饰模型,对应上述外形固定类型的可编辑对象)以及可编辑地形(可以通过购买扩大的环境地块,用户对应的虚拟角色可以自由在环境地块上行走,也可以自由摆放在商城购买的装饰建筑,对应上述外形非固定类型的可编辑对象)。请参考图6,其示出了本申请一个示例性的实施例提供的三维虚拟环境中的阴影效果展示的实现流程框架图。
对于三维虚拟环境中的各个基础交互建筑,如图6所示,开发人员在开发该基础交互建筑时,通过三维模型开发工具开发出该基础交互建筑的网格(Meshes)文件(S61)。比如,在图6中,开发人员首先开发出基础交互建筑的三维基础模型网络(S61a);进一步的,还可以修改该三维基础模型网络中的UV信息,即删除其中的UV2信息(S61b),然后,通过Unity开发工具输出FBX格式的模型文件(S61c)。
在输出上述FBX格式的模型文件之后,开发人员还通过三维模型开发工具静态烘焙获得阴影贴图的贴图纹理Textures(S62)。比如,在图6中,开发人员通过三维模型开发工具对基础交互建筑进行静态烘焙,获得基础交互建筑的四个朝向分别对应的阴影贴图(S62a),然后将四个朝向分别对应的阴影贴图合并(S62b),再输出阴影贴图(S62c)。
其中,上述S61和S62的过程可以由开发人员通过离线3D制作工具(3DSMAX或MAYA等)实现。
对于上述基础交互建筑,终端在展示包含该基础交互建筑的三维虚拟环境时,通过shader代码获取静态烘焙的阴影贴图并渲染三维虚拟环境的完整图像(S63)。例如,在图6中,终端通过着色程序shader代码启动基础着色功能(S63a),通过基础交互建筑的当前朝向,获取对应的阴影贴图(S63b),然后根据获取到的阴影贴图渲染三维虚拟环境的完整图像(S63c)。
对于三维虚拟环境中的各个可编辑地形,如图6所示,终端在展示包含该可编辑地形的三维虚拟环境时,可以启动相应的Script脚本(S64),比如,启动游戏脚本中的实时光照功能Send Shadow脚本(S64a)。然后通过Send Shadow脚本生成该可编辑地形的一张三维结构模型RenderTexture(S65);然后在通过着色程序获取阴影贴图(S66),例如,通过着色程序采集Render Texture轮廓去模拟可编辑地形投在底形上的阴影(S66a)。最后,着色程序根据抓取到的阴影,读取渲染的方向,并混合阴影的色彩倾向,完成地形动态编辑中实时的阴影表现。
请参考图7,其示出了本申请实施例涉及的可编辑地形阴影展示示意图。如图7所示,模型图案71是上述步骤S65生成的RenderTexture,阴影贴图72是上述步骤S66中通过着色程序模拟获得的可编辑地形投在底形上的阴影,图像73是通过阴影贴图72,混合阴影的色彩倾向最终生成的三维虚拟环境的图像。
通过上述图6所示的方案,可以实现正在SNS玩法中实时编辑光影的优化表现,支持高中低端硬件机型的流畅运行,实时编辑状态下阴影表现效果较好,从而使得基于SNS玩法的三维虚拟环境能够兼容中低配机型,提升了更多用户对基于SNS玩法的三维虚拟环境的视觉体验。
图8是根据一示例性实施例示出的一种虚拟环境界面的展示装置的结构方框图。该虚拟环境界面的展示装置可以由计算机设备(比如图1所示的终端)执行,以执行图2或图3对应实施例所示的方法的全部或部分步骤。该虚拟环境界面的展示装置可以包括:
类型获取模块801,用于获取三维虚拟环境中的可编辑对象的可编辑类型,所述可编辑对象是在所述三维虚拟环境中可编辑的虚拟对象,所述可编辑类型包括外形固定类型或者外形非固定类型;
第一贴图获取模块802,用于根据所述可编辑类型获取所述可编辑对象的第一阴影贴图;当所述可编辑类型为外形固定类型时,所述第一阴影贴图是对所述可编辑对象进行静态烘焙获得的阴影贴图,当所述可编辑类型为外形非固定类型时,所述第一阴影贴图是所述可编辑对象的实时阴影的贴图;
第一展示模块803,用于根据所述第一阴影贴图,展示包含所述可编辑对象的虚拟环境界面。
在一种可能的实现方式中,当所述可编辑类型为外形固定类型时,所述第一贴图获取模块802,用于,
获取所述可编辑对象的第一编辑状态,所述第一编辑状态是所述可编辑对象对应的至少两个编辑状态中的一个;
从所述可编辑对象的数据文件中获取与所述第一编辑状态相对应的所述第一阴影贴图。
在一种可能的实现方式中,所述可编辑对象对应的至少两个编辑状态包括所述可编辑对象的至少两个朝向,所述第一编辑状态包括所述可编辑对象的当前朝向;所述可编辑对象的数据文件中包含至少两个阴影贴图,所述至少两个阴影贴图是所述可编辑对象分别处于所述至少两个朝向时,对所述可编辑对象进行静态烘焙获得的阴影贴图;
在从所述可编辑对象的数据文件中获取与所述第一编辑状态相对应的所述第一阴影贴图时,所述第一贴图获取模块802,用于将所述可编辑对象的数据文件中包含的,所述当前朝向对应的阴影贴图获取为所述第一阴影贴图。
在一种可能的实现方式中,所述至少两个朝向各自对应的阴影贴图存储于所述可编辑对象的UV1信息中。
在一种可能的实现方式中,所述可编辑对象的数据文件中不包含所述可编辑对象的UV2信息。
在一种可能的实现方式中,当所述可编辑类型为外形非固定类型时,所述第一贴图获取模块802,用于根据所述可编辑对象的结构实时生成所述第一阴影贴图。
在一种可能的实现方式中,所述第一贴图获取模块802,用于,
生成所述可编辑对象的三维结构模型;
模拟所述三维结构模型投射在底面上的投影;
根据所述三维结构模型投射在底面上的投影生成所述第二阴影贴图。
在一种可能的实现方式中,所述装置还包括:
第二贴图获取模块,用于当所述可编辑对象的可编辑类型为外形非固定类型时,在所述第一贴图获取模块802根据所述可编辑对象的结构实时生成所述第一阴影贴图之前,获取所述可编辑对象的第二阴影贴图,所述第二阴影贴图是在所述可编辑对象保持不变的时长达到时长阈值后,对所述可编辑对象进行静态烘焙获得的阴影贴图;
所述第一贴图获取模块802,用于若获取所述第二阴影贴图失败,则执行所述根据所述可编辑对象的结构实时生成所述第一阴影贴图的步骤。
在一种可能的实现方式中,所述第一贴图获取模块802,还用于若成功获取到所述第二阴影贴图,则将所述第二阴影贴图获取为所述可编辑对象的所述第一阴影贴图。
在一种可能的实现方式中,所述类型获取模块801,用于在成功执行对所述三维虚拟环境中的任意可编辑对象的编辑操作时,获取所述可编辑对象的所述可编辑类型。
在一种可能的实现方式中,所述类型获取模块801,用于从所述可编辑对象的数据文件中获取所述可编辑对象的类型标签,所述类型标签指示所述可编辑类型。
在一种可能的实现方式中,所述类型标签是所述可编辑对象在所述三维虚拟环境中的层级信息。
综上所述,在本申请实施例所示的方案中,终端在展示三维虚拟环境时,对于虚拟环境中的可编辑对象,根据可编辑对象的不同类型,获取按照不同方式生成的阴影贴图,不需要对所有的可编辑对象进行实时光照渲染,从而降低了对三维虚拟环境的界面进行展示过程中的缓存资源和运算资源的消耗,提高了展示三维虚拟环境时的终端性能。
此外,本申请实施例所示的方案中,对于三维虚拟环境中外形非固定类型的可编辑对象,若该可编辑对象在一定时长内未被编辑过,则终端可以从服务器直接获取到该可编辑对象的静态烘焙的阴影贴图,不需要终端实时生成,从而减少终端获取外形非固定类型的可编辑对象的阴影贴图时所需要执行的计算步骤,进一步提高展示三维虚拟环境时的终端性能。
图9示出了本申请一个示例性实施例提供的终端900的结构框图。该终端900可以是:智能手机、平板电脑、MP3播放器(Moving Picture Experts Group Audio Layer III,动态影像专家压缩标准音频层面3)、MP4(Moving Picture Experts Group Audio LayerIV,动态影像专家压缩标准音频层面4)播放器、笔记本电脑或台式电脑。终端900还可能被称为用户设备、便携式终端、膝上型终端、台式终端等其他名称。
通常,终端900包括有:处理器901和存储器902。
处理器901可以包括一个或多个处理核心,比如4核心处理器、8核心处理器等。处理器901可以采用DSP(Digital Signal Processing,数字信号处理)、FPGA(Field-Programmable Gate Array,现场可编程门阵列)、PLA(Programmable Logic Array,可编程逻辑阵列)中的至少一种硬件形式来实现。处理器901也可以包括主处理器和协处理器,主处理器是用于对在唤醒状态下的数据进行处理的处理器,也称CPU(Central ProcessingUnit,中央处理器);协处理器是用于对在待机状态下的数据进行处理的低功耗处理器。在一些实施例中,处理器901可以在集成有GPU(Graphics Processing Unit,图像处理器),GPU用于负责显示屏所需要显示的内容的渲染和绘制。一些实施例中,处理器901还可以包括AI(Artificial Intelligence,人工智能)处理器,该AI处理器用于处理有关机器学习的计算操作。
存储器902可以包括一个或多个计算机可读存储介质,该计算机可读存储介质可以是非暂态的。存储器902还可包括高速随机存取存储器,以及非易失性存储器,比如一个或多个磁盘存储设备、闪存存储设备。在一些实施例中,存储器902中的非暂态的计算机可读存储介质用于存储至少一个指令,该至少一个指令用于被处理器901所执行以实现本申请中方法实施例提供的虚拟环境界面的展示方法。
在一些实施例中,终端900还可选包括有:外围设备接口903和至少一个外围设备。处理器901、存储器902和外围设备接口903之间可以通过总线或信号线相连。各个外围设备可以通过总线、信号线或电路板与外围设备接口903相连。具体地,外围设备包括:射频电路904、触摸显示屏905、摄像头906、音频电路907、定位组件908和电源909中的至少一种。
外围设备接口903可被用于将I/O(Input/Output,输入/输出)相关的至少一个外围设备连接到处理器901和存储器902。在一些实施例中,处理器901、存储器902和外围设备接口903被集成在同一芯片或电路板上;在一些其他实施例中,处理器901、存储器902和外围设备接口903中的任意一个或两个可以在单独的芯片或电路板上实现,本实施例对此不加以限定。
射频电路904用于接收和发射RF(Radio Frequency,射频)信号,也称电磁信号。射频电路904通过电磁信号与通信网络以及其他通信设备进行通信。射频电路904将电信号转换为电磁信号进行发送,或者,将接收到的电磁信号转换为电信号。可选地,射频电路904包括:天线系统、RF收发器、一个或多个放大器、调谐器、振荡器、数字信号处理器、编解码芯片组、用户身份模块卡等等。射频电路904可以通过至少一种无线通信协议来与其它终端进行通信。该无线通信协议包括但不限于:万维网、城域网、内联网、各代移动通信网络(2G、3G、4G及5G)、无线局域网和/或WiFi(Wireless Fidelity,无线保真)网络。在一些实施例中,射频电路904还可以包括NFC(Near Field Communication,近距离无线通信)有关的电路,本申请对此不加以限定。
显示屏905用于显示UI(UserInterface,用户界面)。该UI可以包括图形、文本、图标、视频及其它们的任意组合。当显示屏905是触摸显示屏时,显示屏905还具有采集在显示屏905的表面或表面上方的触摸信号的能力。该触摸信号可以作为控制信号输入至处理器901进行处理。此时,显示屏905还可以用于提供虚拟按钮和/或虚拟键盘,也称软按钮和/或软键盘。在一些实施例中,显示屏905可以为一个,设置终端900的前面板;在另一些实施例中,显示屏905可以为至少两个,分别设置在终端900的不同表面或呈折叠设计;在再一些实施例中,显示屏905可以是柔性显示屏,设置在终端900的弯曲表面上或折叠面上。甚至,显示屏905还可以设置成非矩形的不规则图形,也即异形屏。显示屏905可以采用LCD(LiquidCrystal Display,液晶显示屏)、OLED(Organic Light-Emitting Diode,有机发光二极管)等材质制备。
摄像头组件906用于采集图像或视频。可选地,摄像头组件906包括前置摄像头和后置摄像头。通常,前置摄像头设置在终端的前面板,后置摄像头设置在终端的背面。在一些实施例中,后置摄像头为至少两个,分别为主摄像头、景深摄像头、广角摄像头、长焦摄像头中的任意一种,以实现主摄像头和景深摄像头融合实现背景虚化功能、主摄像头和广角摄像头融合实现全景拍摄以及VR(Virtual Reality,虚拟现实)拍摄功能或者其它融合拍摄功能。在一些实施例中,摄像头组件906还可以包括闪光灯。闪光灯可以是单色温闪光灯,也可以是双色温闪光灯。双色温闪光灯是指暖光闪光灯和冷光闪光灯的组合,可以用于不同色温下的光线补偿。
音频电路907可以包括麦克风和扬声器。麦克风用于采集用户及环境的声波,并将声波转换为电信号输入至处理器901进行处理,或者输入至射频电路904以实现语音通信。出于立体声采集或降噪的目的,麦克风可以为多个,分别设置在终端900的不同部位。麦克风还可以是阵列麦克风或全向采集型麦克风。扬声器则用于将来自处理器901或射频电路904的电信号转换为声波。扬声器可以是传统的薄膜扬声器,也可以是压电陶瓷扬声器。当扬声器是压电陶瓷扬声器时,不仅可以将电信号转换为人类可听见的声波,也可以将电信号转换为人类听不见的声波以进行测距等用途。在一些实施例中,音频电路907还可以包括耳机插孔。
定位组件908用于定位终端900的当前地理位置,以实现导航或LBS(LocationBased Service,基于位置的服务)。定位组件908可以是基于美国的GPS(GlobalPositioning System,全球定位系统)、中国的北斗系统或俄罗斯的伽利略系统的定位组件。
电源909用于为终端900中的各个组件进行供电。电源909可以是交流电、直流电、一次性电池或可充电电池。当电源909包括可充电电池时,该可充电电池可以是有线充电电池或无线充电电池。有线充电电池是通过有线线路充电的电池,无线充电电池是通过无线线圈充电的电池。该可充电电池还可以用于支持快充技术。
在一些实施例中,终端900还包括有一个或多个传感器910。该一个或多个传感器910包括但不限于:加速度传感器911、陀螺仪传感器912、压力传感器913、指纹传感器914、光学传感器915以及接近传感器916。
加速度传感器911可以检测以终端900建立的坐标系的三个坐标轴上的加速度大小。比如,加速度传感器911可以用于检测重力加速度在三个坐标轴上的分量。处理器901可以根据加速度传感器911采集的重力加速度信号,控制触摸显示屏905以横向视图或纵向视图进行用户界面的显示。加速度传感器911还可以用于游戏或者用户的运动数据的采集。
陀螺仪传感器912可以检测终端900的机体方向及转动角度,陀螺仪传感器912可以与加速度传感器911协同采集用户对终端900的3D动作。处理器901根据陀螺仪传感器912采集的数据,可以实现如下功能:动作感应(比如根据用户的倾斜操作来改变UI)、拍摄时的图像稳定、游戏控制以及惯性导航。
压力传感器913可以设置在终端900的侧边框和/或触摸显示屏905的下层。当压力传感器913设置在终端900的侧边框时,可以检测用户对终端900的握持信号,由处理器901根据压力传感器913采集的握持信号进行左右手识别或快捷操作。当压力传感器913设置在触摸显示屏905的下层时,由处理器901根据用户对触摸显示屏905的压力操作,实现对UI界面上的可操作性控件进行控制。可操作性控件包括按钮控件、滚动条控件、图标控件、菜单控件中的至少一种。
指纹传感器914用于采集用户的指纹,由处理器901根据指纹传感器99采集到的指纹识别用户的身份,或者,由指纹传感器914根据采集到的指纹识别用户的身份。在识别出用户的身份为可信身份时,由处理器901授权该用户执行相关的敏感操作,该敏感操作包括解锁屏幕、查看加密信息、下载软件、支付及更改设置等。指纹传感器914可以被设置终端900的正面、背面或侧面。当终端900上设置有物理按键或厂商Logo时,指纹传感器914可以与物理按键或厂商Logo集成在一起。
光学传感器915用于采集环境光强度。在一个实施例中,处理器901可以根据光学传感器915采集的环境光强度,控制触摸显示屏905的显示亮度。具体地,当环境光强度较高时,调高触摸显示屏905的显示亮度;当环境光强度较低时,调低触摸显示屏905的显示亮度。在另一个实施例中,处理器901还可以根据光学传感器915采集的环境光强度,动态调整摄像头组件906的拍摄参数。
接近传感器916,也称距离传感器,通常设置在终端900的前面板。接近传感器916用于采集用户与终端900的正面之间的距离。在一个实施例中,当接近传感器916检测到用户与终端900的正面之间的距离逐渐变小时,由处理器901控制触摸显示屏905从亮屏状态切换为息屏状态;当接近传感器916检测到用户与终端900的正面之间的距离逐渐变大时,由处理器901控制触摸显示屏905从息屏状态切换为亮屏状态。
本领域技术人员可以理解,图9中示出的结构并不构成对终端900的限定,可以包括比图示更多或更少的组件,或者组合某些组件,或者采用不同的组件布置。
本申请实施例还提供一种计算机设备,该计算机设备包括存储器和处理器,存储器中存储有至少一条指令、至少一段程序、代码集或指令集,至少一条指令、至少一段程序、代码集或指令集由处理器加载并实现上述如图2或图3所述的虚拟环境界面的展示方法。
本申请实施例还提供一种计算机可读存储介质,该可读存储介质中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由所述处理器加载并执行以实现如图2或图3所述的虚拟环境界面的展示方法。
本申请还提供了一种计算机程序产品,当计算机程序产品在计算机上运行时,使得计算机执行上述各个方法实施例提供的虚拟环境界面的展示方法。
本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,该计算机可读存储介质可以是上述实施例中的存储器中所包含的计算机可读存储介质;也可以是单独存在,未装配入终端中的计算机可读存储介质。该计算机可读存储介质中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由所述处理器加载并执行以实现如图2或图3所述的虚拟环境界面的展示方法。
可选地,该计算机可读存储介质可以包括:只读存储器(ROM,Read Only Memory)、随机存取记忆体(RAM,Random Access Memory)、固态硬盘(SSD,Solid State Drives)或光盘等。其中,随机存取记忆体可以包括电阻式随机存取记忆体(ReRAM,Resistance RandomAccess Memory)和动态随机存取存储器(DRAM,Dynamic Random Access Memory)。上述本申请实施例序号仅仅为了描述,不代表实施例的优劣。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上所述仅为本申请的较佳实施例,并不用以限制本申请,凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
Claims (13)
1.一种虚拟环境界面的展示方法,其特征在于,所述方法由终端执行,所述方法包括:
获取三维虚拟环境中的可编辑对象的可编辑类型,所述可编辑对象是在所述三维虚拟环境中可编辑的虚拟对象,所述可编辑类型包括外形固定类型或者外形非固定类型,所述外形固定类型用于指示外形属性不因操作改变的可编辑对象,所述外形非固定类型用于指示所述外形属性因操作改变的可编辑对象;
根据所述可编辑类型获取所述可编辑对象的第一阴影贴图;当所述可编辑类型为外形固定类型时,获取所述可编辑对象的第一编辑状态,所述第一编辑状态是所述可编辑对象对应的至少两个编辑状态中的一个,所述可编辑对象对应的至少两个编辑状态包括所述可编辑对象的至少两个朝向,所述第一编辑状态包括所述可编辑对象的当前朝向;所述可编辑对象的数据文件中包含至少两个阴影贴图,所述至少两个阴影贴图是所述可编辑对象分别处于所述至少两个朝向时,对所述可编辑对象进行静态烘焙获得的阴影贴图;将所述可编辑对象的数据文件中包含的所述当前朝向对应的阴影贴图获取为所述第一阴影贴图;当所述可编辑类型为外形非固定类型时,所述第一阴影贴图是所述可编辑对象的实时阴影的贴图;
根据所述第一阴影贴图,展示包含所述可编辑对象的虚拟环境界面。
2.根据权利要求1所述的方法,其特征在于,所述至少两个朝向各自对应的阴影贴图存储于所述可编辑对象的UV1信息中。
3.根据权利要求2所述的方法,其特征在于,所述可编辑对象的数据文件中不包含所述可编辑对象的UV2信息。
4.根据权利要求1所述的方法,其特征在于,当所述可编辑类型为外形非固定类型时,所述根据所述可编辑类型获取所述可编辑对象的第一阴影贴图,包括:
根据所述可编辑对象的结构实时生成所述第一阴影贴图。
5.根据权利要求4所述的方法,其特征在于,所述根据所述可编辑对象的结构实时生成所述第一阴影贴图,包括:
生成所述可编辑对象的三维结构模型;
模拟所述三维结构模型投射在底面上的投影;
根据所述三维结构模型投射在底面上的投影生成第二阴影贴图。
6.根据权利要求4所述的方法,其特征在于,所述根据所述可编辑对象的结构实时生成所述第一阴影贴图之前,还包括:
当所述可编辑对象的可编辑类型为外形非固定类型时,获取所述可编辑对象的第二阴影贴图,所述第二阴影贴图是在所述可编辑对象保持不变的时长达到时长阈值后,对所述可编辑对象进行静态烘焙获得的阴影贴图;
所述根据所述可编辑对象的结构实时生成所述第一阴影贴图,包括:
若获取所述第二阴影贴图失败,则执行所述根据所述可编辑对象的结构实时生成所述第一阴影贴图的步骤。
7.根据权利要求6所述的方法,其特征在于,所述方法还包括:
若成功获取到所述第二阴影贴图,则将所述第二阴影贴图获取为所述可编辑对象的所述第一阴影贴图。
8.根据权利要求1至7任一所述的方法,其特征在于,所述获取三维虚拟环境中的可编辑对象的可编辑类型,包括:
在成功执行对所述三维虚拟环境中的任意可编辑对象的编辑操作时,获取所述可编辑对象的所述可编辑类型。
9.根据权利要求1至7任一所述的方法,其特征在于,所述获取三维虚拟环境中的可编辑对象的可编辑类型,包括:
从所述可编辑对象的数据文件中获取所述可编辑对象的类型标签,所述类型标签指示所述可编辑类型。
10.根据权利要求9所述的方法,其特征在于,所述类型标签是所述可编辑对象在所述三维虚拟环境中的层级信息。
11.一种虚拟环境界面的展示装置,其特征在于,所述装置用于终端中,所述装置包括:
类型获取模块,用于获取三维虚拟环境中的可编辑对象的可编辑类型,所述可编辑对象是在所述三维虚拟环境中可编辑的虚拟对象,所述可编辑类型包括外形固定类型或者外形非固定类型,所述外形固定类型用于指示外形属性不因操作改变的可编辑对象,所述外形非固定类型用于指示所述外形属性因操作改变的可编辑对象;
第一贴图获取模块,用于根据所述可编辑类型获取所述可编辑对象的第一阴影贴图;当所述可编辑类型为外形固定类型时,获取所述可编辑对象的第一编辑状态,所述第一编辑状态是所述可编辑对象对应的至少两个编辑状态中的一个,所述可编辑对象对应的至少两个编辑状态包括所述可编辑对象的至少两个朝向,所述第一编辑状态包括所述可编辑对象的当前朝向;所述可编辑对象的数据文件中包含至少两个阴影贴图,所述至少两个阴影贴图是所述可编辑对象分别处于所述至少两个朝向时,对所述可编辑对象进行静态烘焙获得的阴影贴图;将所述可编辑对象的数据文件中包含的所述当前朝向对应的阴影贴图获取为所述第一阴影贴图;当所述可编辑类型为外形非固定类型时,所述第一阴影贴图是所述可编辑对象的实时阴影的贴图;
第一展示模块,用于根据所述第一阴影贴图,展示包含所述可编辑对象的虚拟环境界面。
12.一种计算机设备,其特征在于,计算机设备包含处理器和存储器,所述存储器中存储由至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由所述处理器加载并执行以实现如权利要求1至10任一所述的虚拟环境界面的展示方法。
13.一种计算机可读存储介质,其特征在于,所述存储介质中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由处理器加载并执行以实现如权利要求1至10任一所述的虚拟环境界面的展示方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910813258.6A CN110517346B (zh) | 2019-08-30 | 2019-08-30 | 虚拟环境界面的展示方法、装置、计算机设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910813258.6A CN110517346B (zh) | 2019-08-30 | 2019-08-30 | 虚拟环境界面的展示方法、装置、计算机设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110517346A CN110517346A (zh) | 2019-11-29 |
CN110517346B true CN110517346B (zh) | 2021-06-18 |
Family
ID=68629483
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910813258.6A Active CN110517346B (zh) | 2019-08-30 | 2019-08-30 | 虚拟环境界面的展示方法、装置、计算机设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110517346B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112256367A (zh) * | 2020-10-19 | 2021-01-22 | 北京字节跳动网络技术有限公司 | 图形用户界面的显示方法、装置、终端和存储介质 |
CN113012280B (zh) * | 2021-03-23 | 2023-03-21 | 建信金融科技有限责任公司 | 一种vr虚拟展厅构建方法和装置 |
CN114494384B (zh) * | 2021-12-27 | 2023-01-13 | 北京吉威空间信息股份有限公司 | 建筑物阴影分析方法、装置、设备及存储介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104077802A (zh) * | 2014-07-16 | 2014-10-01 | 四川蜜蜂科技有限公司 | 增强虚拟场景实时仿真图像显示的方法 |
CN104574496A (zh) * | 2014-12-30 | 2015-04-29 | 北京像素软件科技股份有限公司 | 一种计算光照图的静态阴影和动态阴影融合的方法及装置 |
CN106485776A (zh) * | 2016-11-23 | 2017-03-08 | 北京三体高创科技有限公司 | 一种3d游戏实时渲染大规模场景的方法及系统 |
CN107274469A (zh) * | 2017-06-06 | 2017-10-20 | 清华大学 | 面向虚拟现实的协同渲染方法 |
US10290142B2 (en) * | 2016-07-08 | 2019-05-14 | Wargaming.Net Limited | Water surface rendering in virtual environment |
CN109993823A (zh) * | 2019-04-11 | 2019-07-09 | 腾讯科技(深圳)有限公司 | 阴影渲染方法、装置、终端及存储介质 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109377542B (zh) * | 2018-09-28 | 2023-07-18 | 国网辽宁省电力有限公司锦州供电公司 | 三维模型渲染方法、装置及电子设备 |
CN109410300A (zh) * | 2018-10-10 | 2019-03-01 | 苏州好玩友网络科技有限公司 | 一种游戏场景中的阴影处理方法及装置及终端设备 |
CN109639933B (zh) * | 2018-12-07 | 2021-12-24 | 北京美吉克科技发展有限公司 | 一种虚拟演播室360度全景节目制作的方法及系统 |
CN109978979A (zh) * | 2019-03-08 | 2019-07-05 | 广联达科技股份有限公司 | 提高实时渲染交互流畅性的方法、装置及电子设备 |
CN109949401A (zh) * | 2019-03-14 | 2019-06-28 | 成都风际网络科技股份有限公司 | 一种移动平台的非静态物体非实时阴影渲染的方法 |
CN110045827B (zh) * | 2019-04-11 | 2021-08-17 | 腾讯科技(深圳)有限公司 | 虚拟环境中虚拟物品的观察方法、装置及可读存储介质 |
-
2019
- 2019-08-30 CN CN201910813258.6A patent/CN110517346B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104077802A (zh) * | 2014-07-16 | 2014-10-01 | 四川蜜蜂科技有限公司 | 增强虚拟场景实时仿真图像显示的方法 |
CN104574496A (zh) * | 2014-12-30 | 2015-04-29 | 北京像素软件科技股份有限公司 | 一种计算光照图的静态阴影和动态阴影融合的方法及装置 |
US10290142B2 (en) * | 2016-07-08 | 2019-05-14 | Wargaming.Net Limited | Water surface rendering in virtual environment |
CN106485776A (zh) * | 2016-11-23 | 2017-03-08 | 北京三体高创科技有限公司 | 一种3d游戏实时渲染大规模场景的方法及系统 |
CN107274469A (zh) * | 2017-06-06 | 2017-10-20 | 清华大学 | 面向虚拟现实的协同渲染方法 |
CN109993823A (zh) * | 2019-04-11 | 2019-07-09 | 腾讯科技(深圳)有限公司 | 阴影渲染方法、装置、终端及存储介质 |
Non-Patent Citations (2)
Title |
---|
一种改进的阴影映射算法;曹家乐;《吉林大学学报(理学版)》;20180131;89-94 * |
实时阴影渲染算法的研究;曹家乐;《中国优秀硕士学位论文全文数据库_信息科技辑》;20190115;I138-4039 * |
Also Published As
Publication number | Publication date |
---|---|
CN110517346A (zh) | 2019-11-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109993823B (zh) | 阴影渲染方法、装置、终端及存储介质 | |
US11498003B2 (en) | Image rendering method, device, and storage medium | |
CN110147231B (zh) | 组合特效生成方法、装置及存储介质 | |
US11393154B2 (en) | Hair rendering method, device, electronic apparatus, and storage medium | |
CN109754454B (zh) | 物体模型的渲染方法、装置、存储介质及设备 | |
CN108694073B (zh) | 虚拟场景的控制方法、装置、设备及存储介质 | |
WO2016173427A1 (zh) | 一种残影效果的实现方法,装置以及计算机可读介质 | |
CN110427110B (zh) | 一种直播方法、装置以及直播服务器 | |
CN112156464B (zh) | 虚拟对象的二维形象展示方法、装置、设备及存储介质 | |
CN111701238A (zh) | 虚拟画卷的显示方法、装置、设备及存储介质 | |
CN110141857A (zh) | 虚拟角色的面部显示方法、装置、设备及存储介质 | |
CN112492097B (zh) | 音频播放方法、装置、终端及计算机可读存储介质 | |
CN111324250B (zh) | 三维形象的调整方法、装置、设备及可读存储介质 | |
CN110033503B (zh) | 动画显示方法、装置、计算机设备及存储介质 | |
CN110517346B (zh) | 虚拟环境界面的展示方法、装置、计算机设备及存储介质 | |
CN110321126B (zh) | 生成页面代码的方法和装置 | |
JP7186901B2 (ja) | ホットスポットマップの表示方法、装置、コンピュータ機器および読み取り可能な記憶媒体 | |
WO2020233403A1 (zh) | 三维角色的个性化脸部显示方法、装置、设备及存储介质 | |
CN111399736B (zh) | 进度条控制方法、装置、设备及可读存储介质 | |
CN111539795A (zh) | 图像处理方法、装置、电子设备及计算机可读存储介质 | |
CN111028566A (zh) | 直播教学的方法、装置、终端和存储介质 | |
CN111083526A (zh) | 视频转场方法、装置、计算机设备及存储介质 | |
CN110837300B (zh) | 虚拟交互的方法、装置、电子设备及存储介质 | |
CN113409427A (zh) | 动画播放方法、装置、电子设备及计算机可读存储介质 | |
CN109771950B (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 |