CN117009700A - 虚拟现实场景构建方法、装置、电子设备及存储介质 - Google Patents

虚拟现实场景构建方法、装置、电子设备及存储介质 Download PDF

Info

Publication number
CN117009700A
CN117009700A CN202310890157.5A CN202310890157A CN117009700A CN 117009700 A CN117009700 A CN 117009700A CN 202310890157 A CN202310890157 A CN 202310890157A CN 117009700 A CN117009700 A CN 117009700A
Authority
CN
China
Prior art keywords
entity
virtual reality
reality scene
entity object
user
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.)
Pending
Application number
CN202310890157.5A
Other languages
English (en)
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.)
China United Network Communications Group Co Ltd
Unicom Digital Technology Co Ltd
Unicom Cloud Data Co Ltd
Original Assignee
China United Network Communications Group Co Ltd
Unicom Digital Technology Co Ltd
Unicom Cloud Data 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 China United Network Communications Group Co Ltd, Unicom Digital Technology Co Ltd, Unicom Cloud Data Co Ltd filed Critical China United Network Communications Group Co Ltd
Priority to CN202310890157.5A priority Critical patent/CN117009700A/zh
Publication of CN117009700A publication Critical patent/CN117009700A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/958Organisation or management of web site content, e.g. publishing, maintaining pages or automatic linking
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T13/00Animation
    • G06T13/203D [Three Dimensional] animation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T19/00Manipulating 3D models or images for computer graphics
    • G06T19/006Mixed reality

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Computer Graphics (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Processing Or Creating Images (AREA)

Abstract

本申请提供一种虚拟现实场景构建方法、装置、电子设备及存储介质,设计虚拟现实技术领域,包括:创建用于承载虚拟现实场景基本环境的web页面;所述web页面包括:虚拟现实场景的展示区域,以及,实体对象库的展示区域;响应于用户的第一操作,在所述实体对象库中确定至少一个实体对象;获取所述实体对象的目标标签,所述目标标签用于表征所述实体对象的动作和/或属性;根据所述实体对象和所述目标标签,在所述虚拟现实场景展示区域生成含有所述实体对象的虚拟现实场景。通过基于web版的虚拟现实框架的构建平台创建虚拟现实场景,可以快速创建虚拟现实场景,无需专业的编程技能,虚拟现实场景的使用场景广泛。

Description

虚拟现实场景构建方法、装置、电子设备及存储介质
技术领域
本申请涉及虚拟现实术领域,尤其涉及一种虚拟现实场景构建方法、装置、电子设备及存储介质。
背景技术
虚拟现实(Virtual Reality,VR)是一种通过计算机生成的仿真环境,使用户可以在其中与虚拟世界进行互动,从而获得身临其境的沉浸式体验。但是随之而来产生了诸多问题,比如,VR内容不丰富、设备成本高、要专业的编程技能或复杂的软件工具,这些问题限制了VR技术的使用场景,使得VR技术难以大众化。
发明内容
针对上述VR技术的使用场景小的问题,本申请提供一种虚拟现实场景构建方法、装置、电子设备及存储介质,可以扩大VR技术的使用场景。
第一方面,本申请提供一种虚拟现实场景构建方法,所述方法应用于web版的构建平台,所述方法包括:
创建用于承载虚拟现实场景基本环境的web页面;所述web页面包括:虚拟现实场景的展示区域,以及,实体对象库的展示区域;
响应于用户的第一操作,在所述实体对象库中确定至少一个实体对象;
获取所述实体对象的目标标签,所述目标标签用于表征所述实体对象的动作和/或属性;
根据所述实体对象和所述目标标签,在所述虚拟现实场景展示区域生成含有所述实体对象的虚拟现实场景。
可选的,所述获取所述实体对象的目标标签,包括:
响应于用户对所述实体对象的默认标签的编辑操作,获取所述实体对象的动作和/或属性,所述属性包括所述实体对象的位置、颜色、大小中的至少一种;
将所述实体对象的动作和/或属性写入所述默认标签中,得到所述目标标签。
可选的,若所述实体对象为多个,所述根据所述实体对象和目标标签,在所述虚拟现实场景展示区域生成含有所述实体对象的虚拟现实场景,包括:
根据所述实体对象和所述目标标签,生成对应的目标实体;
获取具有显示变化关系的第一实体和第二实体,以及,所述第一实体和所述第二实体之间的显示过渡动画效果;
基于所述第一实体和第二实体,以及,所述第一实体和所述第二实体之间的显示过渡动画效果,生成所述第一实体和第二实体之间的动画;
基于所述第一实体、所述第二实体、所述第一实体和第二实体之间的动画,以及,第三实体,在所述虚拟现实场景展示区域生成含有所述实体对象的虚拟现实场景;所述第三实体为所述目标实体中除第一实体、所述第二实体之外的实体。
可选的,所述方法还包括:
针对所述第一实体、所述第二实体和所述第三实体中具有交互功能的实体,配置其交互属性;所述交互属性包括视觉反馈、用户输入、交互反馈、用户导航中的至少一种;
基于所述第一实体、所述第二实体、所述第一实体和第二实体之间的动画、第三实体,在所述虚拟现实场景展示区域生成含有所述实体对象的虚拟现实场景。
可选的,所述方法还包括:
获取加载所述虚拟现实场景的设备信息;
基于所述设备信息确定所述虚拟现实场景的优化方案,所述优化方案包括调整实体的复杂度、合并或拆分相似的目标实体、调整渲染效果、调整动画的复杂度,以及,调整目标实体的纹理和材质中的至少一种;
根据所述优化方案对所述虚拟现实场景进行优化。
可选的,所述创建用于承载虚拟现实场景基本环境的web页面,包括:
响应于用户的第二操作,生成超文本标记语言HTML文件;所述HTML文件中包括web版的虚拟现实框架的访问路径;
根据所述虚拟现实框架的访问路径,将所述网页虚拟现实框架导入所述HTML文件,创建用于承载虚拟现实场景基本环境的web页面。
可选的,所述响应于用户的第一操作,在所述实体对象库中确定至少一个实体对象:
响应于所述用户针对所述实体对象库的展示区域的操作,和/或,响应于所述用户在所述虚拟现实场景展示区域的编辑操作,在所述实体对象库中确定至少一个实体对象。
第二方面,本申请提供一种虚拟现实场景构建装置,所述方法应用于web版的构建平台,所述装置包括:
创建模块,用于创建用于承载虚拟现实场景基本环境的web页面;所述web页面包括:虚拟现实场景展示区域,以及,实体对象库展示区域;
响应模块,用于响应于用户的第一操作,在所述实体对象库中确定至少一个实体对象;
获取模块,用于获取所述实体对象的目标标签,所述目标标签用于表征所述实体对象的动作和/或属性;
生成模块,用于根据所述实体对象和目标标签,在所述虚拟现实场景展示区域生成含有所述实体对象的虚拟现实场景。
第三方面,本申请提供一种电子设备,包括:存储器和处理器;
存储器用于存储计算机指令;处理器用于运行存储器存储的计算机指令实现第一方面中任一项的方法。
第四方面,本申请提供一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行以实现第一方面中任一项的方法。
第五方面,本申请提供一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现第一方面中任一项的方法。
本申请提供一种虚拟现实场景构建方法、装置、电子设备及存储介质,通过创建用于承载虚拟现实场景基本环境的web页面;所述web页面包括:虚拟现实场景的展示区域,以及,实体对象库的展示区域;响应于用户的第一操作,在所述实体对象库中确定至少一个实体对象;获取所述实体对象的目标标签,所述目标标签用于表征所述实体对象的动作和/或属性;根据所述实体对象和所述目标标签,在所述虚拟现实场景展示区域生成含有所述实体对象的虚拟现实场景。通过基于web版的虚拟现实框架的构建平台创建虚拟现实场景,使用HTML语法可以轻松创建虚拟现实场景,并在支持WebVR的浏览器或虚拟现实设备上进行访问,无需用户具备专业的编程技能,以及,无需专业的硬件设备就可以体验,扩大了VR技术的使用场景。
附图说明
图1为本申请实施例提供的虚拟现实场景构建方法的流程示意图;
图2为本申请实施例提供的虚拟现实场景的web页面的界面示意图;
图3为本申请实施例提供的获取实体对象的目标标签的界面示意图;
图4为本申请实施例提供的另一虚拟现实场景构建方法的流程示意图;
图5为本申请实施例提供的虚拟现实场景构建的过程示意图;
图6为本申请实施例提供的虚拟现实场景的效果示意图;
图7为本申请实施例提供的虚拟现实场景构建装置的结构示意图;
图8为本申请实施例提供的电子设备的结构示意图。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
在本申请的实施例中,采用了“第一”、“第二”等字样对功能和作用基本相同的相同项或相似项进行区分,并不对其先后顺序进行限定。本领域技术人员可以理解“第一”、“第二”等字样并不对数量和执行次序进行限定,并且“第一”、“第二”等字样也并不限定一定不同。
需要说明的是,本申请实施例中,“示例性的”或者“例如”等词用于表示例子、例证或说明。本申请中被描述为“示例性的”或者“例如”的任何实施例或设计方案不应被解释为比其他实施例或设计方案更优选或更具优势。确切而言,使用“示例性的”或者“例如”等词旨在以具体方式呈现相关概念。
虚拟现实(Virtual Reality,简称VR)是一种通过计算机生成的仿真环境,使用户可以在其中与虚拟世界进行互动,从而获得身临其境的沉浸式体验。
当前,虚拟现实技术在游戏、娱乐、教育、培训、医疗、建筑等领域得到广泛应用。随着虚拟现实硬件设备的不断发展和普及,越来越多的开发者和企业开始关注虚拟现实场景的构建方法,以满足不同领域的需求。
在现有的虚拟现实场景构建方法中,存在一些问题。例如,一些方法需要专业的编程技能或复杂的软件工具,对非技术专业人员来说难以使用;另一些方法可能缺乏灵活性和可扩展性,限制了场景的创作和定制;一些方法可能无法充分利用Web技术的优势,如,跨平台性和可分享性。还有一些方法对硬件设备要求较高,需要依赖一定的硬件设备才能体验。上述问题均限制了VR技术的使用场景。
有鉴于此,本申请实施例提供一种虚拟现实场景构建方法、装置、电子设备及存储介质,通过基于web版的虚拟现实框架来构建虚拟现实场景,通过简单的超文本标记语言(Hyper Text Markup Language,HTML)标签和属性,就可以构建虚拟现实场景,简单易行,无需专业的编程技能,就可以实现丰富的虚拟现实体验。并且由于虚拟现实场景是基于web技术标准,可以在各种设备上运行,无需专业的硬件设备就可以体验,从而扩大VR技术的使用场景。
下面以具体地实施例对本申请的技术方案以及本申请的技术方案如何解决上述技术问题进行详细说明。下面这几个具体的实施例可以独立实现,也可以相互结合,对于相同或相似的概念或过程可能在某些实施例中不再赘述。
图1为本申请实施例提供的虚拟现实场景构建方法的流程示意图,应用于web版的构建平台,如图1所示,包括:
S101、创建用于承载虚拟现实场景基本环境的web页面;所述web页面包括:虚拟现实场景的展示区域,以及,实体对象库的展示区域。
本申请实施例中,web页面可以为万维网上的一个按照HTML格式组织起来的文件。在通过万维网进行信息查询时,以信息页面的形式出现,它可包括图形、文字、声音和视像等信息。
实体对象库中可以包括多个实体对象,每个实体对象都可以表征虚拟现实场景中的一个三维物体,例如,光源、相机、人物等。承载虚拟现实场景基本环境可以为用于支持虚拟场景显示所需的必要设置。
本申请实施例的执行主体可以为web版的构建平台的浏览器引擎。
本申请实施例中,浏览器引擎响应于用户的编辑操作,获取用户的创建代码,生成对应的html文件,解析所述html文件,创建用于承载虚拟现实场景基本环境的web页面。其中,所述html文件包括基于web版的虚拟现实框架。例如,所述虚拟现实框架可以为AFrame框架。
示例性的,如图2所示,所述web页面包括:虚拟现实场景的展示区域,以及,实体对象库的展示区域。
展示区域可以用于展示构建的虚拟现实场景,包括构建过程场景和构建完成的场景。实体对象库的展示区域用于展示所述web页面包括的可以用于构建虚拟现实场景的实体对象。
S102、响应于用户的第一操作,在所述实体对象库中确定至少一个实体对象。
本申请实施例中,第一操作可以为对所述实体对象库的展示区域的操作,和/或,响应于所述用户在所述虚拟现实场景展示区域的编辑操作。
在一种可能的实现方式中,浏览器引擎可以响应于所述用户针对所述实体对象库的展示区域的操作,在所述实体对象库中确定至少一个实体对象。
示例性的,如图2所示,如浏览器引擎获取到用户对所述实体对象库的展示区域中的实体对象的选中操作,或者,将所述实体对象库的展示区域中的实体对象拖动至所述展示区域中,确定所述至少一个实体对象。其中,选中操作可以对所述实体对象的库的展示区域中的实体对象的双击操作。应理解,本申请实施例对选择操作的方式不进行限制。
在一种可能的实现方式中,浏览器引擎可以响应于所述用户在所述虚拟现实场景展示区域的编辑操作,在所述实体对象库中确定至少一个实体对象。
示例性的,请继续参考图2,用户可以在图2下方中的输入区域输入与实体对象匹配的代码,浏览器引擎可以根据获取到的代码确定与之匹配的实体对象。
下面将对常用的创建实体对象的代码进行简单介绍:
示例性的,<a-box>:创建一个立方体实体对象。
<a-sphere>:创建一个球体实体对象。
<a-cylinder>:创建一个圆柱体实体对象。
<a-plane>:创建一个平面实体对象。
<a-sky>:创建一个天空盒实体对象,用于设置场景的背景。
<a-camera>:创建一个相机实体对象,用于设置场景中的视角。
<a-light>:创建一个光源实体对象,用于照亮场景中的对象。
<a-text>:创建一个文本实体对象,用于在场景中显示文本。
<a-image>:创建一个图片实体对象,用于在场景中显示图片。
<a-sound>:创建一个声音实体对象,用于在场景中播放音频。
<a-cursor>:创建一个光标实体对象,用于在VR场景中进行交互。
<a-gltf-model>:创建一个加载glTF模型的实体对象,用于导入外部3D模型。
<a-video>:创建一个视频实体对象,用于在场景中播放视频。
<a-link>:创建一个链接实体对象,用于在场景中添加超链接。
<a-assets>:创建一个资源实体对象,用于加载和管理场景中的外部资源,如图像、声音和模型。
<a-curve>:创建一个曲线实体对象,用于定义路径和轨迹。
<a-animation>:创建一个动画实体对象,用于在场景中添加动画效果。
<a-particles>:创建一个粒子系统实体对象,用于生成粒子效果,如烟雾、火花等。
<a-ocean>:创建一个海洋实体对象,用于在场景中生成水面效果。
<a-skeleton>:创建一个骨架实体对象,用于在场景中呈现骨骼动画。
可选的,若浏览器引擎确定实体对象库中不存在与获取到的代码匹配的实体对象时,可以输出提示信息,以使用户进行修改。
S103、获取所述实体对象的目标标签,所述目标标签用于表征所述实体对象的动作和/或属性。
本申请实施例中,浏览器引擎可以显示目标标签的输入接口,通过所述输入接口获取用户输入的实体对象的动作和/或属性,确定所述实体对象的目标标签。
其中,所述属性包括所述实体对象的位置、颜色、大小中的至少一种,所述动作包括所述实体对象进行旋转、缩放等。
在一种可能的实现方式中,在基于虚拟现实框架的所述web页面中,用户还可以通过自定义组件的方式确定实体对象的动作和/或属性。
其中,组件(Component)是用于定义实体(Entity)的动作和属性的一种方式。通过自定义组件,用户可以根据自己的需求扩展虚拟现实框架的功能,实现更高度的灵活性和可扩展性。自定义组件可以通过JavaScript编写,并通过实体的属性来配置和调用。
自定义组件通常包含以下几个重要的部分:
初始化(init):在组件被添加到实体时调用的初始化函数,用于设置组件的初始状态和属性。
更新(update):在实体的属性发生变化时调用的更新函数,用于处理属性的变化。
删除(remove):在组件从实体中移除时调用的清理函数,用于清理组件的状态和资源。
其他自定义函数:根据需求可以自定义其他的函数,用于处理实体的行为和事件。
自定义组件可以通过HTML中的component属性将其添加到实体对象的标签中,例如,以下是一个简单的自定义组件示例:
S104、根据所述实体对象和所述目标标签,在所述虚拟现实场景展示区域生成含有所述实体对象的虚拟现实场景。
本申请实施例中,确定了实体对象和对应的目标标签时,浏览器引擎可以根据目标标签对所述实体对象进行构建,生成含有所述实体对象的虚拟现实场景。
本申请实施例提供的虚拟现实场景构建方法,应用于web版的构建平台包括:创建用于承载虚拟现实场景基本环境的web页面;所述web页面包括:虚拟现实场景的展示区域,以及,实体对象库的展示区域;响应于用户的第一操作,在所述实体对象库中确定至少一个实体对象;获取所述实体对象的目标标签,所述目标标签用于表征所述实体对象的动作和/或属性;根据所述实体对象和所述目标标签,在所述虚拟现实场景展示区域生成含有所述实体对象的虚拟现实场景。通过基于web版的虚拟现实框架的构建平台创建虚拟现实场景,使用HTML语法可以轻松创建虚拟现实场景,并在支持WebVR的浏览器或虚拟现实设备上进行访问,无需用户具备专业的编程技能,以及,无需专业的硬件设备就可以体验,扩大了VR技术的使用场景。
在上述实施例的基础上,本申请实施例提供的创建用于承载虚拟现实场景基本环境的web页面,还可以根据如下所示方式实现:
示例性的,响应于用户的第二操作,生成超文本标记语言HTML文件;所述HTML文件中包括web版的虚拟现实框架的访问路径;根据所述虚拟现实框架的访问路径,将所述网页虚拟现实框架导入所述HTML文件,创建用于承载虚拟现实场景基本环境的web页面。
其中,第二操作可以为代码编辑操作,浏览器引擎可以获取用户输入的代码,生成对应的HTML文件,并获取HTML文件中的虚拟现实框架的访问路径,根据所述虚拟现实框架的访问路径,将所述网页虚拟现实框架导入所述HTML文件,创建用于承载虚拟现实场景基本环境的web页面。
示例性的,生成HTML文件的代码可以如下所示:
可选的,在一些实施例中,所述获取所述实体对象的标签,可以根据如下所示步骤执行:
示例性的,响应于用户对所述实体对象的默认标签的编辑操作,获取所述实体对象的动作和/或属性,所述属性包括所述实体对象的位置、颜色、大小中的至少一种;将所述实体对象的动作和/或属性写入所述默认标签中,得到所述目标标签。
其中,实体对象具有一个或多个默认标签,如图3所示,确定实体对象时,可以显示该实体对象具有的默认标签,每个默认标签可以用于表征所述实体对象的一个或多个动作和/或属性。
用户可以对该默认标签进行编辑,输入实体对象的动作和/或属性,例如,点击标签,显示对应的信息输入接口,通过信息输入接口进行输入。
浏览器根据用户的输入信息确定所述实体对象的动作和/或属性,将所述实体对象的动作和/或属性写入所述默认标签中,得到所述目标标签。
可选的,在一些实施例中,若所述实体对象为多个,所述根据所述实体对象和目标标签,在所述虚拟现实场景展示区域生成含有所述实体对象的虚拟现实场景,还可以根据如图4所示步骤进行:
S401、根据所述实体对象和所述目标标签,生成对应的目标实体。
其中,目标实体可以为具备目标标签中包括的属性和/或动作的实体对象。例如,实体对象为一个正方体,目标标签包括:红色、旋转,则目标实体可以为具备旋转功能的红色正方体。
S402、获取具有显示变化关系的第一实体和第二实体,以及,所述第一实体和所述第二实体之间的显示过渡动画效果。
S403、基于所述第一实体和第二实体,以及,所述第一实体和所述第二实体之间的显示过渡动画效果,生成所述第一实体和第二实体之间的动画。
S404、基于所述第一实体、所述第二实体、所述第一实体和第二实体之间的动画,以及,第三实体,在所述虚拟现实场景展示区域生成含有所述实体对象的虚拟现实场景;所述第三实体为所述目标实体中除第一实体、所述第二实体之外的实体。
本申请实施例中,在虚拟场景中包括多个实体时,部分实体会具备显示变化关系,例如,用户点击一个实体时,可以跳转至另一个实体,因此,在构建虚拟现实场景时,需要确定显示变化关系的实体。
浏览器引擎可以获取用户选择的目标实体中具有显示变化关系的第一实体和第二实体,以及,所述第一实体和所述第二实体之间的显示过渡动画效果,生成所述第一实体和第二实体之间的动画。
其中,动画(Animation)是一种用于在实体之间创建平滑过渡效果的机制,使实体可以在场景中进行动态变化。
浏览器引擎确定第一实体和第二实体之间的动画时,可以构建第一实体和第二实体之间的过渡方式,结合第三实体,生成虚拟现实场景。
在一种可能的实现方式中,动画机制基于属性(Property)的变化,浏览器引擎可以对实体的位置、旋转、缩放、颜色等属性进行动态修改,从而实现各种动画效果。以下是动画的一般流程:
定义动画:通过<a-animation>实体标签或者animation组件来定义动画的目标属性、起始值、结束值、持续时间、重复次数、缓动函数等参数。
绑定动画:将动画绑定到目标实体上,可以通过实体标签的animation属性或者自定义组件的方法进行绑定。
触发动画:通过调用动画的start()方法、设置实体的属性值或者触发事件等方式来触发动画的开始。
动画播放:动画开始后,浏览器引擎会根据定义的参数和缓动函数自动计算属性值的变化,并在动画的持续时间内逐渐过渡到目标值。
动画结束:动画完成后,浏览器引擎会自动触发动画的animationend事件,可以通过监听事件来进行相应的处理。
以下是一个简单的<a-animation>实体标签的例子,将一个实体从初始位置(0 00)移动到目标位置(0 1 0):
可选的,在一些实施例中,为提升用户使用虚拟现实场景的乐趣,在创建虚拟现实场景时,目标实体还可以包括交互功能。
示例性的,针对所述第一实体、所述第二实体和所述第三实体中具有交互功能的实体,配置其交互属性;所述交互属性包括视觉反馈、用户输入、交互反馈、用户导航中的至少一种;基于所述第一实体、所述第二实体、所述第一实体和第二实体之间的动画、第三实体,在所述虚拟现实场景展示区域生成含有所述实体对象的虚拟现实场景。
其中,具有交互功能的实体以及各实体具备的交互属性可以为基于用户的选择确定的,将交互属性配置至所述实体中,得到具有交互功能的实体。
在一种可能的实现方式中,交互属性也可以为基于标签进行配置。
下面将对常见的交互属性进行介绍。
视觉反馈:通过实体的外观和动画效果来引导用户注意和交互。例如,高亮显示可交互的实体、在用户注视实体时改变其外观、在用户触发交互操作时添加特效等。
用户输入:通过用户的输入设备(如手柄、触摸屏、手势识别等)来实现用户与场景中实体的互动。例如,监听用户输入事件(如点击、触摸、抓取等)来触发实体的动作、改变实体的状态等。
用户导航:为用户提供导航和移动的方式,使其能够在VR和AR场景中自由移动和浏览。例如,实现虚拟摇杆、头部导航、手势导航等方式来控制用户的移动和观察。
交互反馈:在用户与实体进行交互时,及时地给予反馈,以增加用户的参与感和体验。例如,通过声音、震动、光效等方式来反馈用户的交互行为,以及更新用户与实体之间的关系和状态。
用户界面:在VR和AR场景中添加用户界面元素,使用户能够与应用进行交互,例如菜单、按钮、输入框等。虚拟现实框架提供了<a-ui>组件库,用于创建用户界面元素,并支持自定义组件来定制用户界面的外观和行为。
用户体验:在设计交互时,要考虑用户体验的因素,例如简化交互操作、减少用户迷失的可能性、提供明确的引导和反馈等,以确保用户能够轻松地与应用进行互动并获得愉悦的体验。
以用户浏览虚拟现实场景为例,当用户在虚拟现实中使用头部导航来浏览场景时,可以使用虚拟现实框架中的<a-camera>组件和相应的事件监听来实现交互设计。
例如,可以在场景中添加一个<a-camera>组件,用于表示用户的视角,设置其位置、朝向等属性,然后通过监听用户的头部旋转事件(如look-controls组件提供的lookmove事件),来实现用户通过转动头部来改变视角和浏览场景。
<a-scene>
<a-camera position="0 1.6 0"look-controls>
<!--其他相机设置-->
</a-camera>
<!--场景中的其他实体-->
</a-scene>
通过监听lookmove事件,可以获取用户头部的旋转信息,并根据用户的头部旋转角度来改变场景中的实体的显示和行为。例如,可以在用户注视某个实体时,让该实体高亮显示,或者在用户注视实体并点击手柄按钮时,执行相应的交互操作。
可选的,为提升构建的虚拟现实场景的使用场景,以确保虚拟现实场景能够在各种设备上流畅运行、避免掉帧、卡顿或者加载延迟等现象,提供良好的用户体验。可以根据运行所述虚拟现实场景的设备对所述虚拟现实场景进行优化。
示例性的,获取加载所述虚拟现实场景的设备信息;基于所述设备信息确定所述虚拟现实场景的优化方案,所述优化方案包括调整实体的复杂度、合并或拆分相似的目标实体、调整渲染效果、调整动画的复杂度,以及,调整目标实体的纹理和材质中的至少一种;根据所述优化方案对所述虚拟现实场景进行优化。
其中,加载所述虚拟现实场景的设备信息可以根据用户的选择进行获取,包括但不限于处理器信息、显卡信息、内存信息等。实体的复杂度可以用于表征实体的精细程度、复杂度越高,实体的精细程度越高。
不同的设备信息可以对应不同的优化方案,设备信息与优化方案的映射关系可以为基于用户的选择确定,或者,预存设置的映射关系表确定。
下面对常用的优化方案进行介绍:
调整实体的复杂度:以降低实体的复杂度为例,使用较低多边形的三维模型,减少面数和顶点数,以降低渲染负担。可以使用优化的建模工具或者使用LOD(Level ofDetail)技术,在不同距离或屏幕尺寸下使用不同复杂度的模型。
代码示例:
<!--使用较低的segmentsWidth和segmentsHeight值的立方体-->
<a-entity geometry="primitive:box;segmentsWidth:1;segmentsHeight:1"></a-entity>
<!--使用LOD组件设置不同级别的模型-->
<a-entity geometry="primitive:box;lod:farModel:#farModel;midModel:#midModel;nearModel:#nearModel;">
</a-entity>
<a-entity id="farModel"geometry="primitive:box;segmentsWidth:1;segmentsHeight:1">
</a-entity>
<a-entity id="midModel"geometry="primitive:box;segmentsWidth:2;segmentsHeight:2">
</a-entity>
<a-entity id="nearModel"geometry="primitive:box;segmentsWidth:4;segmentsHeight:4">
</a-entity>
合并或拆分相似的目标实体:以合并相似的目标实体为例,避免创建过多的实体对象,减少渲染调用。例如,将相同材质和纹理的实体合并到一个模型中,减少draw call数量。
代码示例:
<!--使用实体组件合并多个箱子的渲染-->
<a-entity id="boxes">
<a-box position="-1 0 -1"color="red"></a-box>
<a-box position="0 0 -1"color="green"></a-box>
<a-box position="1 0 -1"color="blue"></a-box>
</a-entity>
<!--使用模型组件合并多个实体为一个模型-->
<a-entity model="obj:#myModel;mtl:#myMaterial"></a-entity>
调整目标实体纹理和材质:使用合适的纹理和材质,避免使用过大的纹理和复杂的材质,以减少GPU的负担。使用纹理压缩和材质合批技术,以减小纹理的大小和渲染负担。
代码示例:
<!--使用合适尺寸的纹理和简单材质-->
<a-box material="color:#ff0000"></a-box>
<!--使用纹理压缩和合批技术-->
<a-entity geometry="primitive:box"material="src:#myTexture"></a-entity>
<a-entity geometry="primitive:box"material="src:#myTexture"></a-entity>
<a-entity geometry="primitive:box"material="src:#myTexture"></a-entity>
调整渲染效果:以避免使用复杂的渲染效果为例,如实时阴影、反射、抗锯齿等,因为这些效果可能对性能产生较大的影响。可以根据场景需求进行选择性使用,或者在不同设备上使用不同的渲染效果。
代码示例:
<!--选择性使用渲染效果,只在关键元素上使用-->
<a-entity geometry="primitive:box"material="shader:standard;src:#myTexture"></a-entity>
<a-entity geometry="primitive:sphere"material="src:#myTexture"></a-entity>
<a-entity geometry="primitive:cylinder"material="src:#myTexture"></a-entity>
<!--根据设备性能使用不同渲染效果-->
<a-entity geometry="primitive:box"material="shader:standard"data-mobile-material="shader:basic"></a-entity>
使用性能优化的组件:AFramee社区中有许多性能优化的组件可用,例如aframe-batch-model、aframe-optimizer、aframe-lod等,这些组件可以帮助你优化场景中的模型、批处理、LOD等,从而提升性能。
使用WebXR设备的最佳实践:WebXR是AFrame中用于创建VR/AR场景的API,使用WebXR设备的最佳实践可以帮助你优化性能,例如使用WebXR的渲染管线、避免不必要的渲染操作、合理使用WebXR设备的功能等。
代码示例:
<!--使用WebXR渲染管线-->
<a-scene renderer="xr:true;"></a-scene>
<!--避免不必要的渲染操作-->
<a-box id="box1"position="0 0 -5"visible="false"></a-box>
<a-box id="box2"position="0 0 -10"></a-box>
<!--合理使用WebXR设备的功能-->
<a-camera look-controls></a-camera>
<a-entity hand-controls></a-entity>
调整动画的复杂度:在虚拟现实框架中使用动画和交互设计时,要注意合理使用,并避免创建过多的复杂动画和交互操作,因为这可能对性能产生负面影响。可以使用性能优化的动画和交互组件,例如aframe-animation、aframe-interaction等。
代码示例:
综上所述,如图5所示,使用虚拟现实框架创建各种虚拟场景,可以包括设置环境、设计场景、性能优化和效果预览等步骤,构建出如3D场景、虚拟环境、虚拟对象、虚拟展示等。图6是根据本申请实施例构建的虚拟现实场景的效果图。
通过HTML标签和虚拟现实框架的组件来定义虚拟场景的结构和外观。设置虚拟场景的属性,例如背景色、光照、相机位置等,以确保虚拟场景呈现出合适的视觉效果。也可以考虑虚拟场景的交互性,例如添加按钮、控制器、触发器等元素,以实现用户与虚拟场景的交互。
本申请实施例还提供一种虚拟现实场景构建装置。
图7为本申请实施例提供的虚拟现实场景构建装置700的结构示意图,如图7所示,包括:
创建模块701,用于创建用于承载虚拟现实场景基本环境的web页面;所述web页面包括:虚拟现实场景展示区域,以及,实体对象库展示区域;
响应模块702,用于响应于用户的第一操作,在所述实体对象库中确定至少一个实体对象;
获取模块703,用于获取所述实体对象的目标标签,所述目标标签用于表征所述实体对象的动作和/或属性;
生成模块704,用于根据所述实体对象和目标标签,在所述虚拟现实场景展示区域生成含有所述实体对象的虚拟现实场景。
可选的,获取模块703,还用于响应于用户对所述实体对象的默认标签的编辑操作,获取所述实体对象的动作和/或属性,所述属性包括所述实体对象的位置、颜色、大小中的至少一种;将所述实体对象的动作和/或属性写入所述默认标签中,得到所述目标标签。
可选的,生成模块704,还用于根据所述实体对象和所述目标标签,生成对应的目标实体;获取具有显示变化关系的第一实体和第二实体,以及,所述第一实体和所述第二实体之间的显示过渡动画效果;基于所述第一实体和第二实体,以及,所述第一实体和所述第二实体之间的显示过渡动画效果,生成所述第一实体和第二实体之间的动画;基于所述第一实体、所述第二实体、所述第一实体和第二实体之间的动画,以及,第三实体,在所述虚拟现实场景展示区域生成含有所述实体对象的虚拟现实场景;所述第三实体为所述目标实体中除第一实体、所述第二实体之外的实体。
可选的,生成模块704,还用于针对所述第一实体、所述第二实体和所述第三实体中具有交互功能的实体,配置其交互属性;所述交互属性包括视觉反馈、用户输入、交互反馈、用户导航中的至少一种;基于所述第一实体、所述第二实体、所述第一实体和第二实体之间的动画、第三实体,在所述虚拟现实场景展示区域生成含有所述实体对象的虚拟现实场景。
可选的,生成模块704,还用于获取加载所述虚拟现实场景的设备信息;基于所述设备信息确定所述虚拟现实场景的优化方案,所述优化方案包括调整实体的复杂度、合并或拆分相似的目标实体、调整渲染效果、调整动画的复杂度,以及,调整目标实体的纹理和材质中的至少一种;根据所述优化方案对所述虚拟现实场景进行优化。
可选的,创建模块701,还用于响应于用户的第二操作,生成超文本标记语言HTML文件;所述HTML文件中包括web版的虚拟现实框架的访问路径;根据所述虚拟现实框架的访问路径,将所述网页虚拟现实框架导入所述HTML文件,创建用于承载虚拟现实场景基本环境的web页面。
可选的,响应模块702,还用于响应于所述用户针对所述实体对象库的展示区域的操作,和/或,响应于所述用户在所述虚拟现实场景展示区域的编辑操作,在所述实体对象库中确定至少一个实体对象。
本申请实施例提供的虚拟现实场景构建装置可以执行上述任一实施例提供的虚拟现实场景的技术方案,其原理和技术效果类似,此处不再赘述。
图8为本申请实施例提供的电子设备80的结构示意图,如图8所示,包括:
处理器801。
存储器802,用于存储终端设备的可执行指令。
具体的,程序可以包括程序代码,程序代码包括计算机操作指令。存储器802可能包含高速RAM存储器,也可能还包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。
处理器801用于执行存储器802存储的计算机执行指令,以实现前述方法实施例所描述的虚拟现实场景构建方法实施例的技术方案。
其中,处理器801可能是一个中央处理器(Central Processing Unit,简称为CPU),或者是特定集成电路(Application Specific Integrated Circuit,简称为ASIC),或者是被配置成实施本申请实施例的一个或多个集成电路。
可选的,电子设备80在执行虚拟场景构建方法实施例的技术方案时,电子设备80还可以包括显示装置803。
显示装置803用于接收用户输入的数据以及向用户输出虚拟现实场景的构建过程和构建结果。
可选的,电子设备80还可以包括通信接口804,以通过通信接口804可以与外部设备进行通信交互,外部设备例如可以是用户终端(例如,手机、平板)。在具体实现上,如果通信接口804、存储器802和处理器801独立实现,则通信接口804、存储器802和处理器801可以通过总线相互连接并完成相互间的通信。总线可以是工业标准体系结构(IndustryStandard Architecture,简称为ISA)总线、外部设备互连(Peripheral Component,简称为PCI)总线或扩展工业标准体系结构(Extended Industry Standard Architecture,简称为EISA)总线等。总线可以分为地址总线、数据总线、控制总线等,但并不表示仅有一根总线或一种类型的总线。
可选的,在具体实现上,如果通信接口804、存储器802和处理器801集成在一块芯片上实现,则通信接口804、存储器802和处理器801可以通过内部接口完成通信。
本申请实施例中还提供一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现上述虚拟现实场景构建方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。
一种可能的实现方式中,计算机可读介质可以包括随机存取存储器(RandomAccess Memory,RAM),只读存储器(Read-Only Memory,ROM),只读光盘(compact discread-only memory,CD-ROM)或其它光盘存储器,磁盘存储器或其它磁存储设备,或目标于承载的任何其它介质或以指令或数据结构的形式存储所需的程序代码,并且可由计算机访问。而且,任何连接被适当地称为计算机可读介质。例如,如果使用同轴电缆,光纤电缆,双绞线,数字用户线(Digital Subscriber Line,DSL)或无线技术(如红外,无线电和微波)从网站,服务器或其它远程源传输软件,则同轴电缆,光纤电缆,双绞线,DSL或诸如红外,无线电和微波之类的无线技术包括在介质的定义中。如本文所使用的磁盘和光盘包括光盘,激光盘,光盘,数字通用光盘(Digital Versatile Disc,DVD),软盘和蓝光盘,其中磁盘通常以磁性方式再现数据,而光盘利用激光光学地再现数据。上述的组合也应包括在计算机可读介质的范围内。
本申请实施例中还提供一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现上述虚拟现实场景构建方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。
在上述终端设备或者服务器的具体实现中,应理解,处理器可以是中央处理单元(英文:Central Processing Unit,简称:CPU),还可以是其他通用处理器、数字信号处理器(英文:Digital Signal Processor,简称:DSP)、专用集成电路(英文:ApplicationSpecific Integrated Circuit,简称:ASIC)等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本申请实施例所公开的方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。
本领域技术人员可以理解,上述任一方法实施例的全部或部分步骤可以通过与程序指令相关的硬件来完成。前述的程序可以存储于计算机可读取存储介质中,该程序被执行时,执行上述方法实施例的全部或部分的步骤。
本申请技术方案如果以软件的形式实现并作为产品销售或使用时,可以存储在计算机可读取存储介质中。基于这样的理解,本申请的技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在存储介质中,包括计算机程序或者若干指令。该计算机软件产品使得计算机设备(可以是个人计算机、服务器、网络设备或者类似的电子设备)执行本申请实施例所述方法的全部或部分步骤。
最后应说明的是:以上各实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述各实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的范围。

Claims (10)

1.一种虚拟现实场景构建方法,其特征在于,所述方法应用于web版的构建平台,所述方法包括:
创建用于承载虚拟现实场景基本环境的web页面;所述web页面包括:虚拟现实场景的展示区域,以及,实体对象库的展示区域;
响应于用户的第一操作,在所述实体对象库中确定至少一个实体对象;
获取所述实体对象的目标标签,所述目标标签用于表征所述实体对象的动作和/或属性;
根据所述实体对象和所述目标标签,在所述虚拟现实场景展示区域生成含有所述实体对象的虚拟现实场景。
2.根据权利要求1所述的方法,其特征在于,所述获取所述实体对象的目标标签,包括:
响应于用户对所述实体对象的默认标签的编辑操作,获取所述实体对象的动作和/或属性,所述属性包括所述实体对象的位置、颜色、大小中的至少一种;
将所述实体对象的动作和/或属性写入所述默认标签中,得到所述目标标签。
3.根据权利要求2所述的方法,其特征在于,若所述实体对象为多个,所述根据所述实体对象和目标标签,在所述虚拟现实场景展示区域生成含有所述实体对象的虚拟现实场景,包括:
根据所述实体对象和所述目标标签,生成对应的目标实体;
获取具有显示变化关系的第一实体和第二实体,以及,所述第一实体和所述第二实体之间的显示过渡动画效果;
基于所述第一实体和第二实体,以及,所述第一实体和所述第二实体之间的显示过渡动画效果,生成所述第一实体和第二实体之间的动画;
基于所述第一实体、所述第二实体、所述第一实体和第二实体之间的动画,以及,第三实体,在所述虚拟现实场景展示区域生成含有所述实体对象的虚拟现实场景;所述第三实体为所述目标实体中除第一实体、所述第二实体之外的实体。
4.根据权利要求3所述的方法,其特征在于,所述方法还包括:
针对所述第一实体、所述第二实体和所述第三实体中具有交互功能的实体,配置其交互属性;所述交互属性包括视觉反馈、用户输入、交互反馈、用户导航中的至少一种;
基于所述第一实体、所述第二实体、所述第一实体和第二实体之间的动画、第三实体,在所述虚拟现实场景展示区域生成含有所述实体对象的虚拟现实场景。
5.根据权利要求3所述的方法,其特征在于,所述方法还包括:
获取加载所述虚拟现实场景的设备信息;
基于所述设备信息确定所述虚拟现实场景的优化方案,所述优化方案包括调整实体的复杂度、合并或拆分相似的目标实体、调整渲染效果、调整动画的复杂度,以及,调整目标实体的纹理和材质中的至少一种;
根据所述优化方案对所述虚拟现实场景进行优化。
6.根据权利要求1-5任一项所述的方法,其特征在于,所述创建用于承载虚拟现实场景基本环境的web页面,包括:
响应于用户的第二操作,生成超文本标记语言HTML文件;所述HTML文件中包括web版的虚拟现实框架的访问路径;
根据所述虚拟现实框架的访问路径,将所述虚拟现实框架导入所述HTML文件,创建用于承载虚拟现实场景基本环境的web页面。
7.根据权利要求1-5任一项所述的方法,其特征在于,所述响应于用户的第一操作,在所述实体对象库中确定至少一个实体对象:
响应于所述用户针对所述实体对象库的展示区域的操作,和/或,响应于所述用户在所述虚拟现实场景展示区域的编辑操作,在所述实体对象库中确定至少一个实体对象。
8.一种虚拟现实场景构建装置,其特征在于,所述装置应用于web版的构建平台,所述装置包括:
创建模块,用于创建用于承载虚拟现实场景基本环境的web页面;所述web页面包括:虚拟现实场景展示区域,以及,实体对象库展示区域;
响应模块,用于响应于用户的第一操作,在所述实体对象库中确定至少一个实体对象;
获取模块,用于获取所述实体对象的目标标签,所述目标标签用于表征所述实体对象的动作和/或属性;
生成模块,用于根据所述实体对象和目标标签,在所述虚拟现实场景展示区域生成含有所述实体对象的虚拟现实场景。
9.一种电子设备,其特征在于,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序以实现权利要求1-7中任一项所述的方法。
10.一种计算机可读存储介质,其特征在于,其上存储有计算机程序,所述计算机程序被处理器执行以实现权利要求1-7中任一项所述的方法。
CN202310890157.5A 2023-07-19 2023-07-19 虚拟现实场景构建方法、装置、电子设备及存储介质 Pending CN117009700A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310890157.5A CN117009700A (zh) 2023-07-19 2023-07-19 虚拟现实场景构建方法、装置、电子设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310890157.5A CN117009700A (zh) 2023-07-19 2023-07-19 虚拟现实场景构建方法、装置、电子设备及存储介质

Publications (1)

Publication Number Publication Date
CN117009700A true CN117009700A (zh) 2023-11-07

Family

ID=88573784

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310890157.5A Pending CN117009700A (zh) 2023-07-19 2023-07-19 虚拟现实场景构建方法、装置、电子设备及存储介质

Country Status (1)

Country Link
CN (1) CN117009700A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117523056A (zh) * 2023-11-20 2024-02-06 北京君合创想科技发展有限公司 一种基于虚拟现实技术的结构展示方法、装置和存储介质

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117523056A (zh) * 2023-11-20 2024-02-06 北京君合创想科技发展有限公司 一种基于虚拟现实技术的结构展示方法、装置和存储介质

Similar Documents

Publication Publication Date Title
US7954066B2 (en) Interface engine providing a continuous user interface
US11902377B2 (en) Methods, systems, and computer program products for implementing cross-platform mixed-reality applications with a scripting framework
CN112136101A (zh) 为用户界面和动画提供应用程序编程接口的框架
CN113411664B (zh) 基于子应用的视频处理方法、装置和计算机设备
Dibbern et al. Can WebVR further the adoption of Virtual Reality?
CN117009700A (zh) 虚拟现实场景构建方法、装置、电子设备及存储介质
Moreau-Mathis Babylon. js Essentials
Kamal et al. Designing, testing and adapting navigation techniques for the immersive web
Dessart et al. Animated transitions between user interface views
Matahari WebXR asset management in developing virtual reality learning media
Molina Massó et al. Towards virtualization of user interfaces based on UsiXML
Lee Beginning IOS 5 Application Development
CN116452786B (zh) 虚拟现实内容的生成方法、系统、计算机设备及存储介质
Walczak Beh-vr: Modeling behavior of dynamic virtual reality contents
Levkowitz et al. Cloud and mobile web-based graphics and visualization
Van der Spuy Learn Pixi. js
Tytarenko Optimizing Immersion: Analyzing Graphics and Performance Considerations in Unity3D VR Development
US8566734B1 (en) System and method for providing visual component layout input in alternate forms
Drasner SVG animations: from common UX implementations to complex responsive animation
Santos et al. A-frame experimentation and evaluation for the development of interactive VR: a virtual tour of the Conimbriga Museum
Zammetti Learn Corona SDK game development
Johnston et al. Employing WebGL to develop interactive stereoscopic 3D content for use in biomedical visualization
Odom HoloLens Beginner's Guide
Bateman et al. The Essential Guide to 3D in Flash
USRE48596E1 (en) Interface engine providing a continuous user interface

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