CN109887069B - 在屏幕上显示3d场景图的方法 - Google Patents

在屏幕上显示3d场景图的方法 Download PDF

Info

Publication number
CN109887069B
CN109887069B CN201811493017.XA CN201811493017A CN109887069B CN 109887069 B CN109887069 B CN 109887069B CN 201811493017 A CN201811493017 A CN 201811493017A CN 109887069 B CN109887069 B CN 109887069B
Authority
CN
China
Prior art keywords
application
display server
nodes
scene
operating system
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
CN201811493017.XA
Other languages
English (en)
Other versions
CN109887069A (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.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies 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 Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Publication of CN109887069A publication Critical patent/CN109887069A/zh
Application granted granted Critical
Publication of CN109887069B publication Critical patent/CN109887069B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N13/00Stereoscopic video systems; Multi-view video systems; Details thereof
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T17/00Three dimensional [3D] modelling, e.g. data description of 3D objects
    • G06T17/05Geographic models
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/451Execution arrangements for user interfaces
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T17/00Three dimensional [3D] modelling, e.g. data description of 3D objects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2210/00Indexing scheme for image generation or computer graphics
    • G06T2210/61Scene description

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Geometry (AREA)
  • Computer Graphics (AREA)
  • Remote Sensing (AREA)
  • Human Computer Interaction (AREA)
  • General Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Processing Or Creating Images (AREA)
  • User Interface Of Digital Computer (AREA)
  • Image Generation (AREA)

Abstract

一种在屏幕上显示3D场景图的方法。此方法包括下列步骤:把3D资源附加到一组应用场景节点上;透过把应用场景节点的第一子集连接到第一进程并把应用场景节点的第二子集连接到第二进程来将运行在计算器系统的操作系统上的第一应用上下文中的第一进程与运行在该操作系统上的第二应用上下文中的第二进程分隔;把第一进程和第二进程加载到计算器系统的3D显示服务器中;基于第一进程和第二进程构造3D场景图;以及在屏幕上显示所述3D场景图。

Description

在屏幕上显示3D场景图的方法
技术领域
本发明是有关于一种在屏幕上显示3D场景图的方法以及一种3D计算器系统的操作系统,尤其有关于这种操作系统中的图形堆栈(graphic stack),特别是在窗口管理区域和用于应用可视化的进程分隔接口中。
现有技术
桌面隐喻最初是由施乐帕洛阿尔托研究中心的艾伦·凯在1970年提出的。施乐之星率先使用了堆栈桌面隐喻来支持窗口堆栈。施乐之星允许交迭对话框。组成桌面环境的两个组件通常是窗口管理器和为应用和桌面环境提供统一的外观和感觉的工具集。窗口管理可以同时向终端用户展示多个程序形象。在当前窗口管理器中,窗口管理器和应用进程之间的接口通常是一个矩形位图。窗口管理器和应用进程之间的数据以多种方式传输。例如,透过绘制每帧来传输整个位图,从而从应用位图中传输变化的区域或传输单个绘制指令。进程分隔提高了操作系统级别的稳定性和强健性(Robustness)。进程之间透过明确的接口进行完全的相互隔离。默认情况下,一个进程不能访问其他进程的资源。
一些窗口管理器把进程分隔的2D应用界面嵌入到3D场景中。2D应用界面能放置在桌面环境中的多个位置,例如3D立方体的侧面,虚拟世界里的墙上,等等。《PeuhkurinenA.、Mikkonen T.和Terho M.:使用RDF数据作为移动设备中3D窗口管理器的基础,MobiWIS-2011,加拿大尼亚加拉瀑布市,2011年9月》中记载了过去几年中在这个领域之研究工作的总结。
为了创建一个3D桌面环境,其中应用进程能够不使用2D表面而直接使用3D对象将自己展示到相同的场景图中,现有技术的窗口管理器和工具集需要重新设计。因此,人们希望在如窗口管理器等显示服务器和应用进程之间定义一个新的的可视化接口。
此外,为了使用3D对象来直接显示应用,所述显示服务器必须能够快速渲染分隔的进程以及图形相关的数据。因为,人们希望找出一个最佳方案来处理以及传递资料中的更改并加载和卸除显示服务器与应用进程之间的数据。
发明内容
本发明的目标是在3D视讯系统中提供显示服务器与应用进程之间的一个改进的可视化接口。
此目标可以透过独立专利申请范围中的特征来实现。进一步实施形式在从属专利申请范围、具体说明和附图中显而易见。
本发明基于以下发现:可透过将新部件应用到图形堆栈来创建3D视讯系统中的显示服务器与应用进程之间的一个改进的可视化接口。图形堆栈使得具有3D场景图的显示服务器分隔应用中的进程。此外,这些新部件在显示服务器中实现了一个3D应用接口,而非常用的、基于应用接口的2D表面。所以,进程分隔的应用可视化能够透过3D而不是常用的2D表面来实现。
为了详细描述本发明,将使用以下术语、缩写和符号:
3D:三维。
2D:二维。
3D计算器图形:3D计算器图形是使用储存在计算器中的几何数据的三维展示来达到计算和图像渲染的目的。可保存这些图像供日后查看或被实时显示。
3D渲染:在计算器上自动将3D线框模型,即一个三维或物理对象的视觉展示,转换成具有3D拟真效果或非拟真渲染的2D图像的3D计算器图形进程。
3D计算器图形软件:是指用来创建3D计算器生成图像的程序。3D建模支持用户透过他们的3D网格创建并修改模型。使用者可以根据自己的意愿来增加、减少、伸展或修改网格。通常情况下,可以同时从多个角度观看模型。可以旋转模型并且可以放大或缩小视图。
UI:用户接口。用户接口是进行人机交互的空间。交互的目的是在使用者端对机器进行有效的操作和控制以及获得来自机器的回馈,这样可以协助运营商制定运营决策。
EGL:EGL是Khronos渲染API(例如OpenGL ES或OpenVG)和底层本地平台窗口系统之间的一个接口。EGL处理图形上下文管理、表面/缓存绑定和渲染同步,并使用其它Khronos API来启用高性能的、加速的以及混合模式的2D和3D渲染。Khronos是一个行业协会,致力于创造和加速对多种平台和设备的并行计算、图形、动态媒体、计算器视觉和传感器处理的开放标准。
GLES:(开放的)嵌入式系统的GL(OpenGL ES)是为如手机、PDA以及视讯游戏机等嵌入式系统设计的OpenGL 3D图形应用程序接口(API)的子集。
API:应用程序接口;应用程序接口是一种由软件体组件用作相互交流的接口的协议。一个API就是一个包含程序规范、数据结构、对象类以及变量的库。
内核:在计算器技术中,内核是大部分计算器操作系统的主要部件,是应用与硬件级别的实际数据处理之间的桥接。内核的职责包含管理系统资源(软硬件组件之间的沟通)。通常情况下,作为操作系统的基础组件,内核能够为应用软件必须控制以执行其功能的资源(尤其是处理器和I/O设备)提供最低级别的抽象层。这通常使得应用进程能够透过进程间通信机制以及系统呼叫来使用这些工具。
应用:软件应用或应用软件是为了说明用户执行特定任务而设计的计算器软件,可以是为手机、PDA以及视讯游戏机等嵌入式系统设计的。
中间件:给软件应用提供服务的计算器软件,中间件可以运行在手机、PDA以及视讯游戏机上。
操作系统内核:用于操作和控制计算器硬件并提供运行应用软件的平台的计算器软件,操作系统可以被设计在手机、PDA以及视讯游戏机等嵌入式系统上实施。
进程:正在执行的一个计算器程序的实例,进程可以运行在手机、PDA以及视讯游戏机等嵌入式系统上。
窗口管理器:窗口管理器是在一个图形用户界面中的窗口系统内控制窗口的位置和外形的系统软件。大部分窗口管理器是用来帮助提供桌面环境的。它们结合提供所需功能——支持图形硬件、指针设备和键盘的底层图形系统来工作,并通常透过工具集来写入和创建。窗口管理器用来合并不同进程的可视化以及控制输入串流。这样,窗口管理器能够让用户以单个系统来体验所有的可视化和进程。
显示服务器:显示服务器也称为窗口管理器。当应用把图形渲染到它们的缓存区时,窗口管理器成为显示服务器来组合这些缓存区以形成应用窗口的屏幕显示。显示服务器负责与应用和视讯硬件通信并促使它们与使用其它库的输入硬件通信。
3D工具集:3D工具集用于创建用户接口。用户接口工具集是透过创建软件对象的数据库并透过标准程序设计语言内的实例化和专业化来定制和设计的。操作3D小工具来模拟小工具的构造以及几何部件被仿射联系的应用对象。初级的3D小工具能够透过一个被称为连接(linking)的进程与其它基本的3D小工具合并来建立它们之间的一个或多个约束关系。
根据第一方面,本发明涉及一种在屏幕上显示3D场景图的方法,包含:把3D资源附加到一组应用场景节点上;透过把应用场景节点的第一子集连接到第一进程并把应用场景节点的第二子集连接到第二进程来将运行在计算器系统的操作系统上的第一应用上下文(application context)中的第一进程与运行在该操作系统上的第二应用上下文中的第二进程分隔;把第一进程和第二进程加载到计算器系统的3D显示服务器中;基于第一进程和第二进程构造3D场景图;以及在屏幕上显示所述3D场景图。
所述方法允许在支持进程分隔的情况下,即将运行在第一应用上下文中的第一进程与运行在第二应用上下文中的第二进程分隔,在同一场景中运行基于应用可视化的3D对象。这样,整个系统中的安全性和可稳定性得到提升。3D进程分隔使一些自然的第三方应用以安全稳定的方式嵌入到将要构造的3D应用中,例如增强现实应用。
在根据本发明的第一方面的方法的第一可能实施形式中,3D资源代表基本的3D对象,特别是纹理、明暗度和网格。
因此复杂的场景图能够在基本对象中解析以容许灵活实现场景图。
在根据第一方面的方法的第二可能实施形式中,或根据第一方面的第一实施形式的第二可能实施形式中,加载所述第一进程和第二进程的方法步骤进一步包含:使用一个进程分隔接口来分别加载第一进程和第二进程。
所述进程分隔接口允许分隔不同程序,相对于不使用程序分隔的常规方法,提高了方法的稳定性和强健性。
在基于第一方面的第二实施形式的方法的第三可能实施形式中,所述方法包含分别处理第一进程和第二进程以避免第一进程和第二进程接入同一应用场景节点时冲突。
透过避免所述第一进程和第二进程接入同一应用场景节点时冲突,整体的系统稳定性得到了提高。
在基于第一方面的第二或第三实施形式的方法的第四可能实施形式中,所述方法包含所述第一进程和第二进程控制分享应用场景节点。
透过以控制的方式由所述第一进程和第二进程管理应用场景节点的分享,一个进程不能访问其他进程的资源。进程不会危及整个系统的稳定性。
3D UI元素使场景里的每个应用UI元素可能被单独处理,不需要释放程序分隔。作为UI元素的3D对象为这些元素启用了自然的物理过程的使用。
在根据第一方面的第二到第四实施形式中的任一者的方法的第五可能实施形式中,所述方法包含把运行在3D应用上下文中的第一进程和运行在2D应用上下文中的第二进程加载到3D显示服务器上。
透过把运行在不同应用上下文中的进程加载到3D显示服务器上,不同进程可以由普通的3D显示服务器显示。
在根据第一方面的第二到第五实施形式中的任一者的方法的第六可能实施形式中,所述方法包含把3D显示服务器同时连接至多个应用连接。
在根据第一方面的方法的第七可能实施形式中,或根据第一方面的前述实施形式中任一者的方法的第七可能实施形式中,所述方法包含:加载进程到进程连接已修改的3D显示服务器,而不加载进程到进程连接未修改的3D显示服务器。
透过仅加载已修改的进程到3D显示服务器,显示速度能够得到提高,并且由于不需要处理未修改的进程连接,所述方法的计算复杂性降低。
在根据第一方面的方法的第八可能实施形式中,或根据第一方面的前述实施形式中任一者的方法的第八可能实施形式中,连接应用场景节点的所述第一子集到所述第一进程和连接应用场景节点的所述第二子集到所述第二进程包含:把另外的应用场景节点作为子节点连接到应用场景节点的第一子集或第二子集的元素,这些节点代表父节点。
透过连接子节点到父节点,所述方法支持灵活连接新节点到图形而不影响已有节点的连接,从而提高了稳定性和灵活性。
在根据第一方面的第八实施形式的方法的第九可能实施形式中,所述另外的应用场景节点包括相对于这些节点的父节点的位置和旋转差异信息。
所述另外的应用场景节点能够由它们与已有节点的关系来定义。仅需要处理所述差异信息而不是完整的图形信息。
在根据第一方面的第九实施形式的方法的第十可能实施形式中,所述位置和旋转信息包含一个矩阵,尤其是一个4x4矩阵。
透过使用矩阵,基本的矩阵操作可以用来处理新节点。
在根据第一方面的方法的第十一可能实施形式中,或根据第一方面的前述实施形式中任一者的方法的第十一可能实施形式中,构造3D场景图包含计算3D资源相对于其他3D资源的反射、折射、阴影、明暗度和/或重迭。
3D应用能够轻松地从彼此反射或折射是因为它们是在相同的3D场景中渲染的。3D应用能够具有逼真的阴影和明暗度,因为应用是在相同的3D场景中渲染的并能分享光源。这样观看3D场景图的效果得到了提升。
在根据第一方面的方法的第十二可能实施形式中,或根据第一方面的前述实施形式中任一者的方法的第十二可能实施形式中,3D显示服务器布置在一个应用进程的内部。
在根据第一方面的第二到第十一实施形式中任一者的方法的第十三可能实施形式中,3D显示服务器布置在第三应用进程的内部,并且应用进程透过进程分隔接口与3D显示服务器连接。
在根据第一方面的第十三实施形式的方法的第十四可能实施形式中,所述方法包含:形成整个3D场景图中的从根到叶的节点链包含多个进程分隔接口的树状结构。
根据第二方面,本发明涉及用于3D计算器系统的操作系统,所述操作系统包含:用于附加3D资源到应用场景节点集以及用于透过把所述应用场景节点的第一子集连接到所述第一进程并把所述应用场景节点的第二子集连接到所述第二进程来将运行在应用软件的第一应用上下文中的第一进程与运行在所述应用软件的第二应用上下文中的第二进程分隔的应用软件;用于根据所述应用场景节点的3D资源在屏幕上构造3D场景图和用于在屏幕上显示3D场景图的3D显示服务器;和所述应用软件与所述3D显示服务器之间的进程分隔接口,所述进程分隔接口用来分别加载所述第一进程和第二进程到所述3D显示服务器。
透过附加3D资源到应用场景节点,与2D表面相比,在看上去仍然完全自然并拥有进程分隔的情况下,即将运行在所述第一应用上下文中的所述第一进程与运行在所述第二应用上下文中的所述第二进程分隔,3D应用能够透过新的方式重迭,例如互相捆绑,因而带来了稳定和安全。
在根据第二方面的操作系统的第一可能实施形式中,所述进程分隔接口用来连接不同的应用,尤其是3D应用和2D应用到所述3D显示服务器。
3D进程分隔使自然的第三方应用以安全稳定的方式嵌入到3D应用,例如增强现实应用。第三方应用也能够嵌入到2D应用。所述操作系统支持现有的2D应用和新的3D应用。
在根据第二方面的操作系统的第二可能实施形式中,或根据第二方面的第一可能实施形式的操作系统的第二可能实施形式中,所述操作系统包含:为3D应用的创建提供用户接口组件以及为应用软件提供3D资源的3D工具集;和3D显示服务器与用来控制操作系统所运行的计算器硬件的操作系统内核之间的平台图形接口。
3D应用可以使用现有的拥有普通用户接口元素例如按钮、文本框、菜单、布局等的工具集来制作,这些元素拥有3D资产,或透过制作客户UI元素并为它们提供图形资产,例如纹理和网格,来制作。
在根据第二方面的操作系统的第三可能实施形式中,或根据第二方面的前述实施形式中任一者的操作系统的第三可能实施形式中,3D显示服务器布置到一个应用进程的内部。
应用进程表示运行在所述应用软件的应用上下文中的进程。
在根据第二方面的方法的第四可能实施形式中,或根据第二方面的前述实施形式中任一者的方法的第四可能实施形式中,3D显示服务器布置在第三应用进程的内部,并且应用进程透过进程分隔接口与3D显示服务器连接。
在根据第二方面的第四实施形式的操作系统的第五可能实施形式中,所述3D显示服务器用来形成整个3D场景图中的从根到叶的节点链包含多个进程分隔接口的树状结构。
根据第三方面,本发明涉及获取单个3D场景图中的进程分隔的方法和结构。
根据第四方面,本发明涉及为显示服务器提供3D应用接口的方法和结构。显示服务器也叫做窗口管理器。
根据第五方面,本发明涉及在同一3D场景中创建进程分隔的3D应用可视化的方法和结构。
根据第六方面,本发明涉及在显示服务器和应用进程间启用场景图变化和3D资源的传输和交流的方法和结构。
本文描述的方法、系统和设备可实施为数字信号处理器(DSP)、微控制器或任何其他边处理器中的软件或实施为专用集成电路(ASIC)内的硬件电路。
本发明可以实施在数字电子电路、计算器硬件、韧体、软件或它们的结合中,例如在常规移动设备的可用硬件中或在专门用来处理本文描述的方法的新硬件中。
为让本发明的上述特征和优点能更明显易懂,下文特举实施例,并配合所附图式作详细说明如下。
附图说明
本发明的进一步实施例将参照以下附图进行描述,附图中:
图1为根据一种实施形式的在屏幕上显示3D场景图的方法100的示意图。
图2为根据一种实施形式的展示3D显示服务器内容的设备屏幕200的示意图。
图3为根据一种实施形式的进程分隔300的结构的示意图。
图4为根据一种实施形式的示范场景图400的示意图。
图5为根据一种实施形式的图4中描述的所述场景图400的渲染结果500的示意图。
图6为根据一种实施形式的用于3D计算器系统的操作系统600的体系结构的示意图。
具体实施方式
图1为根据一种实施形式的在屏幕上显示3D场景图的方法100的示意图。
所述方法100包含附加(101)3D资源到应用场景节点集。
所述方法100包含透过把所述应用场景节点的第一子集连接到所述第一进程并把所述应用场景节点的第二子集连接到所述第二进程来将运行在计算器系统的操作系统的第一应用上下文中的第一进程与运行在所述操作系统的第二应用上下文中的第二进程分隔(103)。所述方法100包含把所述第一进程和第二进程加载(105)到所述计算器系统的3D显示服务器中。所述3D显示服务器用来基于所述应用场景节点的3D资源构造3D场景图并在屏幕上显示所述3D场景图。
在所述方法100的一个实施形式中,所述3D资源代表基本的3D对象,特别是纹理、明暗度和网格。这样,复杂的场景图能够在基本对象中解析以容许灵活实施场景图。
在所述方法100的一个实施形式中,加载所述第一进程和第二进程包含:使用一个进程分隔接口来分别加载第一进程和第二进程。在所述方法100的一个实施形式中,进程分隔接口用来避免所述第一进程和第二进程接入同一应用场景节点时冲突。在所述方法100的一个实施形式中,进程分隔接口用来透过控制的方式由所述第一进程和第二进程来管理应用场景节点的分享。
所述进程分隔接口允许分隔不同进程,相对于不使用进程分隔的常规方法,提高了方法的稳定性和强健性。透过避免所述第一进程和第二进程接入同一应用场景节点时冲突,整体的系统稳定性得到了提高。透过以控制的方式由所述第一进程和第二进程管理应用场景节点的分享,一个进程不能访问其他进程的资源。进程不会危及整个系统的稳定性。3D UI元素使场景里的每个应用UI元素可能被单独处理,不需要释放进程分隔。作为UI元素的3D对象为这些元素启用了自然的物理过程的使用。
在所述方法100的一个实施形式中,进程分隔接口用于加载运行在不同应用上下文中的进程到3D显示服务器。在所述方法100的一个实施形式中,进程分隔接口用于把3D显示服务器同时连接至多个应用连接。在一种实施形式中,所述方法100包括:加载进程到进程连接已修改的3D显示服务器,而不加载进程到进程连接未修改的3D显示服务器。在所述方法100的一个实施形式中,连接应用场景节点的所述第一子集到所述第一进程和连接应用场景节点的所述第二子集到所述第二进程包含:把进一步应用场景节点作为子节点连接到应用场景节点的第一子集或第二子集的元素,这些节点代表父节点。在所述方法100的一个实施形式中,所述进一步应用场景节点包括相对于这些节点的父节点的位置和旋转差异信息。在所述方法100的一个实施形式中,所述位置和旋转信息包含一个矩阵。在所述方法100的一个实施形式中,所述位置和旋转信息包含一个4x4矩阵。在所述方法100的一个实施形式中,构造3D场景图包含计算3D资源相对于其他3D资源的反射、折射、阴影、明暗度和/或重迭。
图2为根据一种实施形式的展示3D显示服务器内容的设备屏幕200的示意图。设备屏幕6显示3D显示服务器的内容。两个简单的3D应用,可以看到是第一应用1和第二应用2,都有一个作为用户接口(UI)元素的立方体,例如3D网格。透过应用参照图1所描述的上述方法100,分隔的进程的可视化能够透过新的方式交迭。例如,可视化能够互相捆绑。
所述方法100包含附加3D资源例如第一3D立方体1和第3D立方体2。所述方法100进一步包含将处理所述第一3D立方体1的第一进程与处理所述第3D立方体2的第二进程分隔。所述方法100进一步包含加载处理所述第一3D立方体1的第一进程和处理所述第二3D立方体2的第二进程到显示服务器。显示服务器在屏幕上显示包含第二3D应用2的反射5的立方体1和2,如图2所示。
构造显示服务器的场景图可描述如下:首先,需要启动显示服务器进程以给应用进程提供服务。通常情况下,在显示服务器下面的操作系统运行时,显示服务器就运行以在物理屏幕上制作可能的应用进程可视化。当显示服务器在运行时,应用进程能注册到显示服务器。显示服务器接受新应用进程的注册并给它们提供进程间连接。
此外,在使用显示服务器的应用进程的时间内,显示服务器必须一直可用以便于合成进程可视化。连接使应用进程可能发送场景图以及场景图里的改动到显示服务器。改动可以包含比如图形节点和资源标识符的位置、旋转和缩放信息。应用可以透过修改、增加或移除它们的内部场景图来修改内部形象。应用正在对它们的内部场景图进行的修改被传输到显示服务器。显示服务器随后能够合成整个场景图。显示服务器控制资源的加载以控制硬件资源比如内容、CPU和GPU的使用。显示服务器也给应用进程提供系统级修改、用户接口输入和包围体修改。
分隔的进程可视化之间的重迭区4可参见图2。由于UI元素中3D表面的性质,阴影、明暗度、折射和反射等效果看起来更自然。图2表明应用均有基于同一光源的明暗度。此外,屏幕6的区域底部3反射了已显现的3D应用的第二应用2。第二3D应用2的反射5是可见的。将要展示在物理显示屏,比如图2所示的显示屏,的最后一个图像是在显示服务器进程内部创建的。显示服务器进程渲染原本从应用进程场景图中合并的整体场景图。
进程分隔接口可以在操作系统内核级内部或顶部实施。因为具有更易控制的硬件管理,实施中的第一选项能够提升系统性能。后续选项在思索可移植性时提升了灵活性。显示服务器数据结构由互斥锁保护,因而平行改变不会破坏显示服务器的场景图数据。对于应用进程,显示服务器的服务提供了应用进程无需关注的锁闭等的异步API来保持整体场景图有效。
图3为根据一种实施形式的进程分隔300的结构的示意图。进程分隔是将第一进程与参照图1所描述的上述第二进程分隔(103)。
图3展示了从进程中分隔的结构。显示服务器21包含一个应用接口。透过使用所述应用接口,应用23能够透过进程分隔22与所述显示服务器21相连。3D资源和所述应用23的场景和数据改动,即句柄或数据本身,透过所述进程分隔22传输。所述显示服务器21可以同时包含多个应用23连接。
图4为根据一种实施形式的示范场景图400的示意图。所述场景图400适用于连接到显示服务器11的进程分隔12和13。场景图节点连接用虚线表示。进程P1和P2透过对应于参照图3所描述的进程分隔22的进程分隔接口19附加到所述显示服务器11。所述显示服务器11可以对应于参照图3所描述的上述显示服务器21。
连接表示汽车14的3D对象到第一进程P1。连接表示树18的3D对象到第二进程P2。连接表示由地下室15和屋顶16组成的房屋15、16的另一3D对象到第二进程P2。屋顶16作为一个子节点被应用到作为父节点连接到进程P2的地下室15。
在一个实施方式中,显示服务器被嵌入到一个应用进程内部或在应用进程内部起作用,其它应用透过进程分隔链接到显示服务器。这样可以形成整个3D场景图中的从根到叶的节点链包含多个进程分隔的树状结构。
图5为根据一种实施形式的图4中描述的所述场景图400的渲染结果500的示意图。所述场景图400包含图4中所描述的节点,也就是拥有地下室15和屋顶16的房屋、汽车14和树18。
图4中所描述进程分隔的场景图被合并到渲染结果500。在图5中,第一进程P1 13仅包含一个以图形表示汽车14的连接节点。第二进程P2 12包含以图形表示树18和以图形表示房屋的地下室15的两个子节点。进程P2 12还包含以图形代表房屋的屋顶16的子节点。也就是第一进程13以图形表示汽车14,第二进程12以图形表示树18和房屋15、16。房屋拥有节点15和16的内部结构。
如图5中描述的场景节点可以拥有如纹理、阴影和网格之类的3D资源。这些3D资源可以来自3D工具集或被定制。每一个场景节点包含节点的父节点相关的位置和旋转差异信息,例如以4x4矩阵的形式。为了限制应用冲突,也就是进入对方“内部”,应用有一个包围体。这个包围体可以是一个简单的矩形框、球体或者一些复杂的容积比如定制的3D网格。
当3D资源附加到应用场景节点,这些3D资源就被显示服务器进程以集中的方式加载。这减少了透过进程分隔的交流,因为一些3D资源能在分隔的进程之间再次使用。只有应用子图形内部的改变需要被转化到显示服务器11。此最小数据化传输使在同一可视3D场景中且进程分隔启用的情况下运行多个复杂的3D应用成为可能。
图6为根据一种实施形式的用于3D计算器系统的操作系统600的体系结构的示意图。
应用601、中介软件603和操作系统内核605从它们各自的行中分隔。本发明实施例中描述的为3D系统新建的组件,这些组件以虚线为界。这些新设计的组件有3D引擎库619、3D显示服务器617、3D工具集615和3D应用607。3D引擎库619包含3D引擎和基本核心功能。3D显示服务器617使3D应用界面611能够代替现有的“窗口管理器”。在一个实施方式中,平台图形接口621和623使用GLES/EGL。在一个实施方式中,平台图形接口621、623使用DirectXAPI。3D显示服务器617还包含创建从应用到物理屏幕的最终结果的渲染器。3D工具集615为3D应用的创建提供现成的UI组件。3D应用607是基于3D工具集的新应用。2D表面应用609仍然被操作系统600支持。在全屏模式下,尤其是平台图形接口621、623能够被更直接的使用以提升性能。
原先设计的操作系统可以作为操作系统600的图形堆栈的基础。新操作系统600适用于应用上下文内部的进程分隔,比如投射到增强现实应用中的3D数据的第三方3D广告。
透过阅读以上内容,所属领域的技术人员将清楚地了解,可提供多种方法、系统、记录媒体上的计算器进程及其类似者。
本发明还支持包含计算器可执行代码或计算器可执行指令的计算器程序产品,这些计算器可执行代码或计算器可执行指令在执行时使得至少一台计算器执行本文所述的执行及计算步骤。
透过以上启示,所属领域的技术人员将易于想到许多其他的替代产品、修改及变体。显然,所属领域的技术人员易于斯及,除了本文所述的应用之外,还存在本发明的众多其他应用。虽然已参考一个或多个特定实施例描述了本发明,但是所属领域的技术人员将体认到,在不偏离本发明的范畴的前提下,仍可对本发明作出许多改变。因此,应理解,只要是在所附权利要求及其等效文句的范围内,那么也可以用不同于本文具体描述的方式来实践本发明。
【符号说明】
100:在屏幕上显示3D场景图的方法
101:附加3D资源
103:分隔第一进程及第二进程
105:加载第一和第二进程到显示服务器
200:设备屏幕
1:第一应用/第一3D立方体
2:第二应用/第二3D立方体
3:屏幕6的区域底部
4:进程可视化之间的重迭区
5:第二3D应用的反射
6:设备屏幕
300、12、13、22:进程分隔
21、11:显示服务器
22:进程分隔
23:应用
400:示范场景图
19:进程分隔接口
14:3D物件/汽车
15、16:3D物件/房屋
18:3D物件/树
500:场景图400的渲染结果
600:用于3D计算器系统的操作系统
601:应用
603:中介软件
605:操作系统内核
607:3D应用
609:2D表面应用
611:进程分隔接口/3D应用接口
613:进程分隔接口
615:3D工具集
617:3D显示服务器
619:3D引擎库
621、623:平台图形接口

Claims (15)

1.一种在屏幕(200)上显示3D场景图(500)的方法(100),包括:
附加(101)3D资源到应用场景节点集;
透过把应用场景节点的第一子集(14)连接到第一进程(13)并把所述应用场景节点的第二子集(18、15、16)连接到第二进程(12)来将运行在计算器系统的操作系统的第一应用上下文中的第一进程(13)与运行在所述操作系统的第二应用上下文中的第二进程(12)分隔(103);
使用进程分隔接口(19、22)来分别加载(105)所述第一进程(13)和所述第二进程(12)到所述计算器系统的3D显示服务器(11);
基于所述第一进程(13)和所述第二进程(12)构造3D场景图(500);其中,构造所述3D场景图(500)包含计算3D资源相对于其他3D资源的反射、折射、阴影、明暗度和/或重迭;以及
在屏幕(200)上显示所述3D场景图。
2.如权利要求第1项所述的方法(100),其中所述3D资源代表基本的3D对象,具体是纹理、明暗度和网格。
3.如权利要求第1或2项所述的方法(100),进一步包括:
分别处理所述第一进程(13)和所述第二进程(12)以避免所述第一进程(13)和所述第二进程(12)接入同一应用场景节点时冲突。
4.如权利要求第1或2项所述的方法(100),进一步包括:
所述第一进程(13)和所述第二进程(12)控制应用场景节点的分享。
5.如权利要求第1或2项所述的方法(100),进一步包括:
将运行在3D应用上下文中的所述第一进程(13)和运行在2D应用上下文中的所述第二进程(12)加载到所述3D显示服务器(11)上。
6.如权利要求第1或2项所述的方法(100),进一步包括:把所述3D显示服务器(11)同时连接至多个应用连接。
7.如权利要求第1或2项所述的方法(100),包括:
加载进程(13、12)到进程连接已修改的所述3D显示服务器(11),而不加载进程(13、12)到进程连接未修改的所述3D显示服务器(11)。
8.如权利要求第1项到第7项中任一项所述的方法(100),其中连接应用场景节点的所述第一子集到所述第一进程(13)和连接应用场景节点的所述第二子集到所述第二进程(12),包括:
把另外的应用场景节点作为子节点(16)连接到应用场景节点的第一子集或第二子集的元素,这些元素代表父节点(15)。
9.如权利要求第8项所述的方法(100),其中所述另外的应用场景节点(16)包括相对于所述节点的父节点(15)的位置和旋转差异信息。
10.如权利要求第9项所述的方法(100),其中所述位置和旋转信息包含一个矩阵,具体是一个4x4矩阵。
11.一种用于3D计算器系统的操作系统(600),包括:
用于附加3D资源到应用场景节点集以及用于透过把应用场景节点的第一子集连接到第一进程并把应用场景节点的第二子集连接到第二进程来将运行在应用软件的第一应用上下文中的第一进程与运行在所述应用软件(601)的第二应用上下文中的第二进程分隔的应用软件(601);
用于根据所述应用场景节点的3D资源构造3D场景图和用于在屏幕上显示所述3D场景图的3D显示服务器(617),其中,构造所述3D场景图(500)包含计算3D资源相对于其他3D资源的反射、折射、阴影、明暗度和/或重迭;和
所述应用软件(601)与所述3D显示服务器(617)之间的进程分隔接口(611、613),所述进程分隔接口(611、613)用来分别加载所述第一进程和所述第二进程到所述3D显示服务器(617)。
12.如权利要求第11项所述的操作系统(600),其中所述进程分隔接口(611、613)用来连接不同的应用,具体是3D应用(607)和2D应用(609)到所述3D显示服务器(617)。
13.如权利要求第11项或第12项所述的操作系统(600),还包括:
用于为3D应用的创建提供用户接口组件以及为所述应用软件(601)提供3D资源的3D工具集(615);和
所述3D显示服务器(617)与用来控制所述操作系统(600)所运行的计算器硬件的操作系统(600)内核(605)之间的平台图形接口(621、623)。
14.一种计算机,其特征在于,包括处理器,所述处理器用于执行软件程序并实现如权利要求1-10任意一项所述的方法。
15.一种计算机可读存储介质,其特征在于,包含软件程序,所述软件程序在被处理器执行时实现如权利要求1-10任意一项所述的方法。
CN201811493017.XA 2013-04-19 2013-09-27 在屏幕上显示3d场景图的方法 Active CN109887069B (zh)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
FI13164409.8 2013-04-19
EP13164409.8A EP2793127B1 (en) 2013-04-19 2013-04-19 Method for displaying a 3D scene graph on a screen
PCT/CN2013/084439 WO2014169580A1 (en) 2013-04-19 2013-09-27 Method for displaying a 3d scene graph on a screen
CN201380077556.4A CN105637563B (zh) 2013-04-19 2013-09-27 在屏幕上显示3d场景图的方法

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
CN201380077556.4A Division CN105637563B (zh) 2013-04-19 2013-09-27 在屏幕上显示3d场景图的方法

Publications (2)

Publication Number Publication Date
CN109887069A CN109887069A (zh) 2019-06-14
CN109887069B true CN109887069B (zh) 2023-07-07

Family

ID=48128194

Family Applications (2)

Application Number Title Priority Date Filing Date
CN201380077556.4A Active CN105637563B (zh) 2013-04-19 2013-09-27 在屏幕上显示3d场景图的方法
CN201811493017.XA Active CN109887069B (zh) 2013-04-19 2013-09-27 在屏幕上显示3d场景图的方法

Family Applications Before (1)

Application Number Title Priority Date Filing Date
CN201380077556.4A Active CN105637563B (zh) 2013-04-19 2013-09-27 在屏幕上显示3d场景图的方法

Country Status (7)

Country Link
US (1) US11113876B2 (zh)
EP (2) EP3995952A1 (zh)
JP (2) JP5959729B2 (zh)
KR (1) KR101528215B1 (zh)
CN (2) CN105637563B (zh)
TW (1) TWI603286B (zh)
WO (1) WO2014169580A1 (zh)

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106254409A (zh) * 2015-11-20 2016-12-21 深圳超多维科技有限公司 应用于移动终端的立体应用启动方法、装置及系统
CN106408642A (zh) * 2016-09-23 2017-02-15 江西洪都航空工业集团有限责任公司 一种实现服务机器人三维仿真的方法
EP3561667B1 (en) 2017-01-26 2022-02-23 Huawei Technologies Co., Ltd. Method for displaying 2d application in vr device, and terminal
US10977858B2 (en) 2017-03-30 2021-04-13 Magic Leap, Inc. Centralized rendering
AU2018243460B2 (en) * 2017-03-30 2023-01-05 Magic Leap, Inc. Centralized rendering
WO2019067476A2 (en) * 2017-09-29 2019-04-04 Apple Inc. PLATFORM OF REALITY GENERATED BY COMPUTER
US11049312B2 (en) * 2018-05-25 2021-06-29 Google Llc Multi-process compositor
JP6423566B1 (ja) * 2018-06-21 2018-11-14 株式会社 ディー・エヌ・エー 画像処理装置、画像処理プログラム、及び、画像処理方法
US11733824B2 (en) * 2018-06-22 2023-08-22 Apple Inc. User interaction interpreter
US11157739B1 (en) 2018-08-31 2021-10-26 Apple Inc. Multi-user computer generated reality platform
CN112102498A (zh) 2019-06-18 2020-12-18 明日基金知识产权控股有限公司 用于将应用虚拟地附接到动态对象并实现与动态对象的交互的系统和方法
US11341727B2 (en) 2019-06-18 2022-05-24 The Calany Holding S. À R.L. Location-based platform for multiple 3D engines for delivering location-based 3D content to a user
US11546721B2 (en) 2019-06-18 2023-01-03 The Calany Holding S.À.R.L. Location-based application activation
US11516296B2 (en) 2019-06-18 2022-11-29 THE CALANY Holding S.ÀR.L Location-based application stream activation
CN112102497A (zh) 2019-06-18 2020-12-18 明日基金知识产权控股有限公司 用于将应用和交互附接到静态对象的系统和方法
CN113262469A (zh) * 2021-06-08 2021-08-17 网易(杭州)网络有限公司 一种资源模板的生成、游戏中场景元素的渲染方法及装置
KR102658404B1 (ko) * 2023-12-21 2024-04-17 주식회사 직스테크놀로지 고속 처리를 위한 도면 관리 방법

Family Cites Families (44)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1997000474A1 (fr) * 1995-06-16 1997-01-03 Sony Corporation Processeur d'informations et procede de visualisation de l'information
US5764241A (en) * 1995-11-30 1998-06-09 Microsoft Corporation Method and system for modeling and presenting integrated media with a declarative modeling language for representing reactive behavior
WO1998033146A1 (fr) * 1997-01-24 1998-07-30 Sony Corporation Generateur de donnees de formes, procede de generation de donnees de formes et moyens associes
GB9711001D0 (en) * 1997-05-29 1997-07-23 Philips Electronics Nv Virtual environment data browser
US6684255B1 (en) * 1999-10-26 2004-01-27 International Business Machines Corporation Methods and apparatus for transmission and rendering of complex 3D models over networks using mixed representations
JP2001273520A (ja) * 2000-03-23 2001-10-05 Famotik Ltd マルチメディアドキュメント統合表示システム
AU2001288811A1 (en) * 2000-09-07 2002-03-22 Neochi Llc Method and system for simultaneously creating and using multiple virtual realityprograms
AU2002245076A1 (en) * 2000-12-06 2002-07-16 Sun Microsystems, Inc. Using ancillary geometry for visibility determination
JP4688316B2 (ja) * 2001-02-28 2011-05-25 独立行政法人産業技術総合研究所 シミュレーション装置とシミュレーション方法、及び映像生成装置と映像生成方法
US6980935B2 (en) * 2001-07-31 2005-12-27 Schlumberger Technology Corp. Method, apparatus and system for constructing and maintaining scenegraphs for interactive feature-based geoscience geometric modeling
US7619633B2 (en) 2002-06-27 2009-11-17 Microsoft Corporation Intelligent caching data structure for immediate mode graphics
US7064766B2 (en) 2001-10-18 2006-06-20 Microsoft Corporation Intelligent caching data structure for immediate mode graphics
KR100503789B1 (ko) * 2002-03-11 2005-07-26 삼성전자주식회사 렌더링시스템, 렌더링방법 및 그 기록매체
JP4144864B2 (ja) * 2003-02-28 2008-09-03 キヤノン株式会社 情報処理方法及び装置
GB2400287A (en) * 2003-04-02 2004-10-06 Autodesk Canada Inc Three-Dimensional Image Compositing
US7432925B2 (en) * 2003-11-21 2008-10-07 International Business Machines Corporation Techniques for representing 3D scenes using fixed point data
US7290216B1 (en) * 2004-01-22 2007-10-30 Sun Microsystems, Inc. Method and apparatus for implementing a scene-graph-aware user interface manager
US7800614B2 (en) * 2004-02-17 2010-09-21 Oracle America, Inc. Efficient communication in a client-server scene graph system
US7487463B2 (en) * 2004-02-17 2009-02-03 Sun Microsystems, Inc. Multiprocess input redirection in a 3D window system
US7583269B2 (en) * 2004-02-17 2009-09-01 Sun Microsystems, Inc. Window system 2D graphics redirection using direct texture rendering
US7145562B2 (en) * 2004-05-03 2006-12-05 Microsoft Corporation Integration of three dimensional scene hierarchy into two dimensional compositing system
US7734119B2 (en) * 2004-09-21 2010-06-08 General Electric Company Method and system for progressive multi-resolution three-dimensional image reconstruction using region of interest information
US8035636B1 (en) * 2005-09-08 2011-10-11 Oracle America, Inc. Software system for efficient data transport across a distributed system for interactive viewing
US8400444B2 (en) * 2005-12-08 2013-03-19 Agency 9AB Method to render a root-less scene graph with a user controlled order of rendering
US7703045B1 (en) * 2006-09-05 2010-04-20 Oracle America, Inc. Method and apparatus for interacting with objects in a user interface
US8207972B2 (en) * 2006-12-22 2012-06-26 Qualcomm Incorporated Quick pixel rendering processing
US7940261B2 (en) * 2007-01-10 2011-05-10 Qualcomm Incorporated Automatic load balancing of a 3D graphics pipeline
CN100583141C (zh) * 2008-08-04 2010-01-20 北京理工大学 一种多通道的分布式绘制系统与方法
US20110178854A1 (en) * 2008-09-04 2011-07-21 Somertech Ltd. Method and system for enhancing and/or monitoring visual content and method and/or system for adding a dynamic layer to visual content
US8441496B1 (en) * 2008-09-30 2013-05-14 Adobe Systems Incorporated Method and system for modifying and rendering scenes via display lists
US20100289804A1 (en) * 2009-05-13 2010-11-18 International Business Machines Corporation System, mechanism, and apparatus for a customizable and extensible distributed rendering api
US20110205229A1 (en) * 2010-02-23 2011-08-25 Google Inc. Portable Globe Creation for a Geographical Information System
CN102169598B (zh) * 2010-02-26 2015-06-17 新奥特(北京)视频技术有限公司 一种应用多线程创建三维云图的方法和装置
US8878845B2 (en) * 2010-10-12 2014-11-04 Autodesk, Inc. Expandable graphical affordances
FR2974474B1 (fr) * 2011-04-19 2017-11-17 Prologue Procedes et appareils de production et de traitement de representations de scenes multimedias
CN102736947A (zh) * 2011-05-06 2012-10-17 新奥特(北京)视频技术有限公司 一种图形渲染中光栅化阶段的多线程实现方法
US9317961B2 (en) * 2011-09-14 2016-04-19 Google Inc. Prioritizing node requests based on tile distance to reduce perceptual scene time
US9105116B2 (en) * 2011-09-22 2015-08-11 Xerox Corporation System and method employing variable size binding elements in virtual rendering of a print production piece
CN102508989B (zh) * 2011-09-27 2015-04-29 福建省电力有限公司 一种基于虚拟现实的电网全景动态展示系统
US8984448B2 (en) * 2011-10-18 2015-03-17 Blackberry Limited Method of rendering a user interface
EP2605129B1 (en) * 2011-12-16 2019-03-13 BlackBerry Limited Method of rendering a user interface
US20130219303A1 (en) * 2012-02-21 2013-08-22 Research In Motion Tat Ab Method, apparatus, and system for providing a shared user interface
US20140258968A1 (en) * 2013-03-05 2014-09-11 Research In Motion Limited Visual Representation Of Edits For Collaborative Application Development
US9219922B2 (en) * 2013-06-06 2015-12-22 Activevideo Networks, Inc. System and method for exploiting scene graph information in construction of an encoded video sequence

Also Published As

Publication number Publication date
JP2015519661A (ja) 2015-07-09
EP2793127B1 (en) 2021-11-17
CN105637563B (zh) 2019-01-08
TW201441970A (zh) 2014-11-01
JP2016189211A (ja) 2016-11-04
EP2793127A1 (en) 2014-10-22
JP5959729B2 (ja) 2016-08-02
TWI603286B (zh) 2017-10-21
EP3995952A1 (en) 2022-05-11
US20140313197A1 (en) 2014-10-23
US11113876B2 (en) 2021-09-07
JP6229017B2 (ja) 2017-11-08
KR101528215B1 (ko) 2015-06-11
CN105637563A (zh) 2016-06-01
CN109887069A (zh) 2019-06-14
WO2014169580A1 (en) 2014-10-23
KR20140136367A (ko) 2014-11-28

Similar Documents

Publication Publication Date Title
CN109887069B (zh) 在屏幕上显示3d场景图的方法
US11673469B2 (en) Three-dimensional cluster simulation on GPU-less systems
Cozzi et al. OpenGL insights
Tang et al. A platform independent game technology model for model driven serious games development
KR20090024178A (ko) 자원 결합 방법 및 그를 위한 컴퓨터 판독가능 매체 및 애플리케이션 프로그래밍 인터페이스와, 종속성 트리 재구성 방법
US20200242726A1 (en) Task Execution on a Graphics Processor Using Indirect Argument Buffers
CN113168312A (zh) 用于生成c/c++库与解释语言之间的绑定的方法,并且执行所述方法以转换三维(3d)模型
US20130127849A1 (en) Common Rendering Framework and Common Event Model for Video, 2D, and 3D Content
US20190370927A1 (en) Graphics Processing Unit Resource Dependency Viewer
US9052924B2 (en) Light-weight managed composite control hosting
US10896373B1 (en) Determining comprehensibility of a graphical model in a graphical modeling environment
US20150269781A1 (en) Rapid Virtual Reality Enablement of Structured Data Assets
Peuhkurinen et al. Embedding web apps in mixed reality
CN114791986A (zh) 三维信息模型的处理方法和装置
EP4258218A1 (en) Rendering method, device, and system
Berinstein et al. Game development tool essentials
Yan et al. 3D visual design for mobile search result on 3G mobile phone
Álvarez et al. EZ3. js: A robust and flexible WebGL-based 3D engine
Banyasad et al. Generating sample looks for geometric objects in a visual design language
Karydakis Simplification & Visualization of BIM models through Hololens
CN117274551A (zh) 三维综合集成展示系统、方法、计算机设备
CN107515753A (zh) 一种3d场景儿童益智平板电脑
Albaladejo RAGE: A programmable shader-based OpenGL renderer and scene graph
Kasik Syllabus

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