CN113761609B - 一种基于服务器端的云架构cad平台实时渲染系统及方法 - Google Patents

一种基于服务器端的云架构cad平台实时渲染系统及方法 Download PDF

Info

Publication number
CN113761609B
CN113761609B CN202110925531.1A CN202110925531A CN113761609B CN 113761609 B CN113761609 B CN 113761609B CN 202110925531 A CN202110925531 A CN 202110925531A CN 113761609 B CN113761609 B CN 113761609B
Authority
CN
China
Prior art keywords
rendering
modeling
server
instruction
task
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
CN202110925531.1A
Other languages
English (en)
Other versions
CN113761609A (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.)
Shandong Huayun 3d Technology Co ltd
Original Assignee
Shandong Huayun 3d Technology 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 Shandong Huayun 3d Technology Co ltd filed Critical Shandong Huayun 3d Technology Co ltd
Priority to CN202110925531.1A priority Critical patent/CN113761609B/zh
Publication of CN113761609A publication Critical patent/CN113761609A/zh
Application granted granted Critical
Publication of CN113761609B publication Critical patent/CN113761609B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/10Geometric CAD
    • G06F30/12Geometric CAD characterised by design entry means specially adapted for CAD, e.g. graphical user interfaces [GUI] specially adapted for CAD
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/10Geometric effects
    • G06T15/20Perspective computation
    • G06T15/205Image-based rendering

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Geometry (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Computer Graphics (AREA)
  • Architecture (AREA)
  • Computing Systems (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Evolutionary Computation (AREA)
  • General Engineering & Computer Science (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

本发明提供了一种基于服务器端的云架构CAD平台实时渲染系统及方法,该系统传输用户编辑请求的同时,还利用与云CAD平台连接的操作采样模块实时捕获操作采样信号;通过设置的几何建模服务器实现编辑请求信号对应的几何建模;进而由渲染调度服务模块根据动态调度策略控制设置的设定数量渲染机器实现实时渲染任务的高效稳定处理。采用上述方案,能充分利用建模后图片色差明显,色块分布均匀的特点,从而简化渲染执行的处理过程,使得CPU调用更加轻松灵活,且使面向云架构的CAD系统不再受客户端内存限制,能够利用服务器的内存加载和渲染大装配模型,保障实时渲染效果稳定可靠的同时,提供高效高质量的交互性,支持高精度快速拾取几何元素。

Description

一种基于服务器端的云架构CAD平台实时渲染系统及方法
技术领域
本发明涉及多维设计数据处理及优化技术领域,尤其涉及一种基于服务器端的云架构 CAD平台实时渲染系统及方法。
背景技术
随着三维CAD设计技术的发展,各类高精尖制造业都开始向复杂精密设备、大型工业设备方向提出切实的设计需求。在精密或者大型的工业设计工程当中,往往需要大量的设计人员进行CAD图纸的设计,并且单个零件的复杂度正在呈现快速上升的复杂度。
当前基于云架构的CAD平台采用的图形渲染技术均为WebGL技术基础上进行图形渲染引擎的构建与研发,渲染环境为纯粹的浏览器环境,这样的独立浏览器对整个内部的网络应用都不得不限制其内存的使用规模,所以面对大装配环境下的CAD进程的无法拥有足够内存来存储渲染场景数据;另外的,在场景规模上升的情况下,对硬件设备的要求也更高,因为采用上述方法时,普通配置的计算机在渲染方面也会遇到瓶颈,无法达到理想的帧率,将其机器性能发挥到最优,渲染效率较差。
而上述技术背景下,若技术人员若通过多个设计人员同时在线设计及编辑,一定程度上能够提升处理效率,但是必然会提高单个设计师机器配置的成本,因为单个零件或者单个配件的结构设计复杂度也在上升,普通的机器已经无法承载复杂设计带来的渲染压力、计算压力、内存压力等。
此外,现有的具体实现图像或视频渲染的技术主要包括两类,分别是应用于渲染农场做电影动画渲染的离线渲染方法以及用于云游戏渲染的纯流媒体云渲染技术,对于前者,其无法满足可交互性和实时性,属于着重画质的渲染方式,并且做了渲染服务器的集群,但是由于数据拷贝的速度慢以及帧分片的同步问题都会造成大量的延迟。对于后者的技术,则必然会导致性能的浪费,具体的,流媒体技术主要的功能在于压缩技术,分为帧内压缩以及帧间压缩,受限于其具体的压缩策略,对于此类技术,需要进行连续渲染,并且必须进行连续渲染才能够发挥压缩威力,即每次都需要渲染连续的多帧,构建GOP(图片帧序列组),在GOP(图片帧序列组)内对每一个帧分类为I帧、P帧、B帧,此时会产生两个问题:1需要做视频流图片的缓存,无形之间就构成了图像显示的延迟,使得画面有延迟;2需要进行连续渲染,即便是静止画面也需要连续渲染,使得服务器始终处于繁忙状态,不利于大规模场景的渲染任务或多人登录的多进程渲染任务。
公开于本发明背景技术部分的信息仅仅旨在加深对本发明的一般背景技术的理解,而不应当被视为承认或以任何形式暗示该信息构成己为本领域技术人员所公知的现有技术。
发明内容
为解决上述问题,本发明提供了一种基于服务器端的云架构CAD平台实时渲染系统及方法,提出了服务器端的渲染方法,充分利用高性能机器的优势,可以让多个设计人员同时在线编辑,流畅渲染大型模型。在一个实施例中,所述系统包括:
应用服务模块,其与客户端以及建模引擎调度模块和渲染服务调度模块均通信连接,配置为对来自客户端的编辑请求信号进行分析,决策是否需要为客户端分配对应的几何建模服务器或渲染服务器,若是,根据编辑请求信号的分析结果生成建模控制指令和渲染控制指令,并结合决策结果分别传达至建模引擎调度模块或渲染调度模块;
建模引擎调度模块,其配置为响应于来自应用服务模块的建模控制指令,根据动态调度策略为当前任务分配对应的几何建模服务器执行建模任务;其中所述建模控制指令包括建模启动指令、建模运算指令以及建模释放指令;
几何建模模块,其与所述建模引擎调度模块连接,由至少一个几何建模服务器组成,配置为结合建模控制指令以及自身存储的几何形状数据进行计算以实现针对所述编辑请求信号的几何建模;
渲染服务调度模块,其配置为响应于来自应用服务器的渲染控制指令,根据动态调度策略为当前任务分配对应的渲染服务器以执行渲染任务,所述渲染控制指令包括渲染启动指令、渲染处理指令以及渲染释放指令;
渲染服务模块,其与所述渲染服务调度模块连接,由至少一个渲染服务器组成,用于根据渲染控制指令按照各渲染服务器的渲染参数设置执行渲染任务及压缩处理;
操作采样模块,其连接于客户端与渲染服务模块之间,配置为实时捕获CAD操作采样信号,并将操作采样信号直接传达至对应的渲染服务器。
进一步地,一个实施例中,所述应用服务器生成建模控制指令的过程,包括:
根据编辑请求信号的分析结果判断该编辑请求信号对应的项目任务是否存在已绑定的几何建模服务器;若不存在,根据编辑请求信号生成建模启动指令,若存在,执行下一步;
进一步判断当前的编辑请求信号是否对应项目任务结束信号,若是,生成建模释放指令,否则根据编辑请求信号生成建模运算指令。
一个具体的实施例中,所述建模引擎调度模块按照设定的频率持续获取几何建模模块中各个几何建模服务器的实时运行负载状态;
通过以下操作根据动态调度策略为当前任务分配对应的几何建模服务器:
当接收的建模控制指令为建模启动指令时,从所有几何建模服务器中寻找当前运行负载最小的几何建模服务器作为执行本次建模任务的目标建模服务器,将对应的建模启动指令发送至该建模服务器并实现项目任务绑定,并将绑定信息传至应用服务器;
当接收到的指令为建模运算指令时,将该指令转至对应项目已绑定的几何建模服务器,继续执行建模运算;
当接收到的指令为建模释放指令时,控制释放绑定的几何建模服务器。
一个可选的实施例中,根据编辑请求信号中的CAD项目唯一标识ID判断该分析结果对应的项目任务是否存在已绑定的几何建模服务器;
为了确保CAD项目的内存数据的持续可用,进行项目绑定后,在该几何建模服务器创建当前项目的建模任务实例,并建立当前CAD项目的建模记录数据库,直到当前项目关闭收到建模释放指令,销毁对应的建模任务实例,释放或备份对应的建模记录数据库。
优选地,一个实施例中,所述应用服务器生成渲染控制指令的过程,包括:
根据编辑请求信号的分析结果判断该编辑请求信号对应的项目任务是否存在已绑定的渲染服务器;若不存在,结合编辑请求信号和建模服务器的运算结果生成渲染启动指令,若存在,执行下一步;
进一步判断当前的编辑请求信号是否对应项目任务结束信号,若是,生成渲染释放指令,否则结合编辑请求信号和建模服务器的运算结果生成或渲染处理指令;
其中,根据编辑请求信号中的CAD项目唯一标识ID判断该编辑请求信号对应的项目任务是否存在已绑定的渲染服务器;
进行项目绑定后,在该渲染服务器创建当前项目的渲染任务实例,并建立当前CAD项目的渲染记录数据库,直到当前项目关闭收到渲染释放指令,销毁对应的渲染任务实例,释放或备份对应的渲染记录数据库。
进一步地,一个实施例中,所述渲染服务调度模块按照设定的频率持续获取渲染服务模块中各个渲染服务器的实时运行负载状态;
当接收的渲染控制指令为渲染启动指令时,从所有渲染服务器中寻找当前运行负载最小的渲染服务器作为执行本次渲染任务的目标渲染服务器,将对应的渲染启动指令发送至该渲染服务器并实现项目任务绑定,并将绑定信息传至应用服务器;
当接收到的指令为渲染处理指令时,将该指令转至对应项目已绑定的渲染服务器,继续执行渲染处理及压缩处理;
当接收到的指令为渲染释放指令时,控制释放绑定的渲染服务器。
具体地,一个实施例中,所述应用服务器结合编辑请求信号分析结果和几何模型计算结果生成渲染控制指令时,还生成渲染任务数据,所述渲染任务数据包括具备时序信息的任务数据以及时长估计值;
渲染调度服务模块在获取渲染服务模块中各个渲染服务器的实时运行负载状态的过程中,基于渲染任务数据以及各渲染服务器绑定的待执行和执行中任务所需时长计算精确的负载状态数据。
一个可选的实施例中,所述客户端将单帧渲染的密集操作指令按照时间进行排序,抽取单位排序内最后一次操作指令作为采样信号进行传输,以降低渲染服务器的指令压力。
具体地,一个实施例中,所述渲染服务模块的各渲染机器都基于输入的命令进行驱动,在渲染控制命令没有到来的时候,渲染机器处于休息的状态,收到渲染控制命令后根据命令对渲染机的渲染状态进行更改,并结合渲染机器自身的参数设置,采取单帧渲染或者分组帧间压缩方式进行渲染处理。
基于上述任意一个或多个实施例中所述系统的其他方面,本发明还提供一种基于服务器端的云架构CAD平台实时渲染方法,所述方法包括:
由应用服务器对来自客户端的编辑请求信号进行分析,决策是否需要为客户端分配对应的几何建模服务器或渲染服务器,若是,根据编辑请求信号的分析结果生成建模控制指令和渲染控制指令,并结合决策结果分别传达至建模引擎调度模块或渲染调度模块;
通过建模引擎调度模块响应于来自应用服务模块的建模控制指令,根据动态调度策略为当前任务分配对应的几何建模服务器执行建模任务;其中所述建模控制指令包括建模启动指令、建模运算指令以及建模释放指令;
利用几何建模模块中的至少一个几何建模服务器,结合建模控制指令以及自身存储的几何形状数据进行计算以实现针对所述编辑请求信号的几何建模;
通过渲染服务调度模块响应于来自应用服务器的渲染控制指令,根据动态调度策略为当前任务分配对应的渲染服务器以执行渲染任务,所述渲染控制指令包括渲染启动指令、渲染处理指令以及渲染释放指令;
利用渲染服务模块中的至少一个渲染服务器组成,根据渲染控制指令按照各渲染服务器的渲染参数设置执行渲染任务及压缩处理;
通过与客户端的CAD平台连接的操作采样模块实时捕获CAD操作采样信号,并直接传达至与当前项目绑定的渲染服务器实现操作渲染处理;
将渲染服务器的渲染处理结果通过应用服务器依据设定的传输协议反馈至客户端的 CAD平台。
与最接近的现有技术相比,本发明还具有如下有益效果:
本发明提供的一种基于服务器端的云架构CAD平台实时渲染系统及方法通过设置的设定数量几何建模服务器实现编辑请求信号对应的几何建模为控制进行渲染处理提供数据支持,研究人员出于CAD软件的工业设计风格考虑,充分发挥软件建模后的整个渲染图片色差明显,色块分布均匀的特点,采用事先实现几何建模运算的策略,能够有效简化渲染处理中的宏块划分以及帧间压缩过程,使得CPU调用更加轻松灵活;
另外,本发明方案通过渲染调度服务模块根据动态调度策略控制设置的设定数量渲染机器实现实时渲染任务的有序执行,保障当前CAD项目能够由负载状态最优的对象执行,相对于浏览器Web端的渲染行为,后台服务器渲染能够获得更多的内存使用,并且可以利用到相对更强的GPU支持。同时,采用动态调度策略分配渲染任务,能够使多用户多任务操作环境实现并发调度与处理,不仅能够保障渲染效果的稳定性和可靠性,也相当程度提升了执行效率和可扩展性,能够利用服务器的内存加载和渲染大装配模型,同时多用户多任务操作环境实现并发调度与处理,保障实时渲染效果稳定可靠的同时,提供良好的交互性,支持高精度快速拾取几何元素,解决浏览器客户端渲染的性能瓶颈问题。
本发明利用设置的采样模块直接将抽取的操作采样信号直传至对应的渲染服务器,在保障信号响应时效性的同时,避免过多的操作信号为通信资源及渲染服务器造成运行压力;
且采用本发明方案实现渲染处理时,可以不受客户端内存限制,加载大装配模型;服务端渲染的结果,与Web客户端展示一致,使用体验接近,绘制效果相似;具备实时性,每帧时间控制在20-80ms,渲染低延迟、连续不卡顿;具备良好交互性,可以实时拾取几何元素,并返回客户端元素信息,拾取精度和拾取规则与客户端保持一致。
本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过在说明书、权利要求书以及附图中所特别指出的结构来实现和获得。
附图说明
附图用来提供对本发明的进一步理解,并且构成说明书的一部分,与本发明的实施例共同用于解释本发明,并不构成对本发明的限制。在附图中:
图1是本发明一实施例提供的基于服务器端的云架构CAD平台实时渲染系统的结构示意图;
图2是本发明实施例提供的云架构CAD平台实时渲染系统的命令式渲染处理原理图;
图3是本发明一实施例提供的云架构CAD平台实时渲染系统的渲染YUV420结构示意图;
图4是本发明另一实施例提供的云架构CAD平台实时渲染系统的宏块分布示意图;
图5是本发明实施例提供的云架构CAD平台实时渲染系统的像素预测示意图;
图6是本发明实施例提供的云架构CAD平台实时渲染系统的运动矢量示意图;
图7是本发明又一实施例提供的基于服务器端的云架构CAD平台实时渲染方法的流程示意图。
具体实施方式
以下将结合附图及实施例来详细说明本发明的实施方式,借此本发明的实施人员可以充分理解本发明如何应用技术手段来解决技术问题,并达成技术效果的实现过程并依据上述实现过程具体实施本发明。需要说明的是,只要不构成冲突,本发明中的各个实施例以及各实施例的各个特征可以相互结合,所形成的技术方案均在本发明的保护范围之内。
虽然流程图将各项操作描述成顺序的处理,但是其中的许多操作可以被并行地、并发地或者同时实施。各项操作的顺序可以被重新安排。当其操作完成时处理可以被终止,但是还可以具有未包括在附图中的附加步骤。处理可以对应于方法、函数、规程、子例程、子程序等等。
计算机设备包括用户设备与网络设备。其中,用户设备或客户端包括但不限于电脑、智能手机、PDA等;网络设备包括但不限于单个网络服务器、多个网络服务器组成的服务器组或基于云计算的由大量计算机或网络服务器构成的云。计算机设备可单独运行来实现本发明,也可接入网络并通过与网络中的其他计算机设备的交互操作来实现本发明。计算机设备所处的网络包括但不限于互联网、广域网、城域网、局域网、VPN网络等。
这里所使用的术语仅仅是为了描述具体实施例而不意图限制示例性实施例。除非上下文明确地另有所指,否则这里所使用的单数形式“一个”、“一项”还意图包括复数。还应当理解的是,这里所使用的术语“包括”和/或“包含”规定所陈述的特征、整数、步骤、操作、单元和/或组件的存在,而不排除存在或添加一个或更多其他特征、整数、步骤、操作、单元、组件和/或其组合。
云CAD软件是打开浏览器就能够在线建模的软件,与传统CAD所不同的是,云CAD的架构采用B/S架构,数据都是存储在服务器端,计算也是在服务端完成,几何建模方面操作都是基于几何建模服务器进行计算,在浏览器内进行交互的;这些过程对于实时性要求很高。
由于社会各领域对三维CAD技术的需求越来越高,在精密或者大型的工业设计工程当中,往往需要大量的设计人员进行CAD图纸的设计,并且单个零件的复杂度正在呈现快速上升的复杂度。当前基于云架构的CAD采用的图形渲染技术均为WebGL(Web GraphicsLibrary)技术基础上进行图形渲染引擎的构建与研发,渲染环境为浏览器环境。浏览器对整个内部的Web应用都限制了内存的使用规模,所以在CAD的大装配环境下是无法拥有足够内存来存储渲染场景数据;另外在场景规模上升的情况下,普通配置的计算机在渲染方面也会遇到瓶颈,无法达到理想的帧率。在此背景下,本发明提出了服务器端的渲染方法,充分利用高性能机器的优势,可以让多个设计人员同时在线编辑,流畅渲染大型模型。
如果想要实现当前多设计人员共同在线进行CAD设计,就会提高单个设计师机器配置的成本,因为单个零件或者单个配的复杂度也在上升,普通的机器已经无法承载复杂设计带来的渲染压力、计算压力、内存压力等。
当前技术的不足:
1对于渲染农场的离线渲染方案,无法满足可交互性和实时性,属于着重画质的渲染方式,并且做了渲染服务器的集群,但是由于数据拷贝的速度慢以及帧分片的同步问题都会造成大量的延迟。
2对于纯流媒体云渲染技术,会导致性能的浪费。流媒体技术主要的功能在于压缩技术,分为帧内压缩以及帧间压缩,对于帧内压缩具有一定优势,RGB数据被换为了 YUV420编码格式;对于帧间压缩,就需要构建如下帧:关键帧I帧以及IDR帧(刷新帧); P帧,即向前参考帧,根据参考帧来生成本身的图像;B帧,即双向参考帧,参考前后的参考帧,才能够构建本身的图像。对于此类技术,需要进行连续渲染,并且必须进行连续渲染才能够发挥压缩威力,即每次都要渲染连续的多帧,构建GOP(图片帧序列组),在GOP(图片帧序列组)内对每一个帧分类为I帧、P帧、B帧,此时会产生两个问题: 1需要做视频流图片的缓存,无形之间就构成了图像显示的延迟,使得画面有延迟;2需要进行连续渲染,即便是静止画面也需要连续渲染,使得服务器始终处于繁忙状态,不利于多人登录的多进程渲染任务。
因此为了能够均摊设备成本压力,并且给设计人员提供一个更加轻量级的设计前端,就需要引入服务器端可交互实时渲染技术。服务器端渲染技术在当前的主要应用有两种:渲染农场做电影动画渲染;流媒体渲染做云游戏渲染。
为解决上述问题,本发明提供一种基于服务器端的云架构CAD平台实时渲染系统及方法,本方案是专门针对云架构的CAD工业软件处理大规模模型以及多人渲染服务过程当中,GPU渲染压力以及浏览器内存不足的问题,提出了基于命令式渲染、运动帧模糊、帧内压缩、连续帧间压缩技术的高性价比的面向云CAD架构的服务器端可交互实时渲染技术。
接下来基于附图详细描述本发明实施例的方法的详细流程,附图的流程图中示出的步骤可以在包含诸如一组计算机可执行指令的计算机系统中执行。虽然在流程图中示出了各步骤的逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
实施例一
图1示出了本发明实施例一提供的基于服务器端的云架构CAD平台实时渲染系统的结构示意图,参照图1可知,该系统包括:
客户端,采用多种不同的客户端(如浏览器、APP),与本发明系统的应用服务器通信,接收应用服务器返回的渲染处理结果,例如几何建模显示数据或图片实时渲染的三维模型,同时是用户交互的入口;客户端CAD平台的建模、渲染等编辑请求传输至应用服务器,通过应用服务器实现与几何建模模块或渲染服务模块的数据交互;
操作采样模块基于该Web客户端进行拾取用户的项目交互操作,同时作为发送旋转、拖拉等操作信号的通道。
应用服务模块,其与客户端以及建模引擎调度模块和渲染服务调度模块均通信连接,配置为对来自客户端的编辑请求信号进行分析,决策是否需要为客户端分配对应的几何建模服务器或渲染服务器,若是,根据编辑请求信号的分析结果生成建模控制指令和渲染控制指令,并结合决策结果分别传达至建模引擎调度模块或渲染调度模块;
建模引擎调度模块,其配置为响应于来自应用服务模块的建模控制指令,根据动态调度策略为当前任务分配对应的几何建模服务器执行建模任务;其中所述建模控制指令包括建模启动指令、建模运算指令以及建模释放指令;
几何建模模块,其与所述建模引擎调度模块连接,由至少一个几何建模服务器组成,配置为结合建模控制指令以及自身存储的几何形状数据进行计算以实现针对所述编辑请求信号的几何建模;
渲染服务调度模块,其响应于来自应用服务器的渲染控制指令,根据动态调度策略为当前任务分配对应的渲染服务器以执行渲染任务,所述渲染控制指令包括渲染启动指令、渲染处理指令以及渲染释放指令;
渲染服务模块,其与所述渲染服务调度模块连接,由至少一个渲染服务器组成,用于根据渲染控制指令按照各渲染服务器的渲染参数设置执行渲染任务及压缩处理;所述渲染服务器采用可独立运行的渲染机器;因此,所述渲染服务调度模块的动态调度策略是基于具体渲染机器层面的调度;
操作采样模块,其连接于客户端与渲染服务模块之间,配置为实时捕获CAD操作采样信号,并将操作采样信号直接传达至对应的渲染服务器;
以及用于为操作采样模块、渲染服务模块、几何建模模块、渲染调度服务模块、建模引擎调度服务器及应用服务器持续供电的电源模块。
实际应用时,所述建模引擎调度服务器,其与应用服务模块通信连接,依据应用服务模块输出的指令控制几何建模模块运行,几何建模模块与应用服务器连接,其中各个几何建模服务器的建模计算结果以传送至应用服务器,用于为生成渲染任务数据和渲染控制指令提供数据支持;
进一步地,所述应用服务器还与渲染服务模块的各个渲染服务器通信连接,配置为将处理完成的渲染结果数据反馈至客户端的CAD平台,即返回给用户。
具体地,关于Web端采样操作,在云CAD软件当中,鼠标操作以及键盘的操作通常都是组合相关的,分为:鼠标点击,鼠标按下,鼠标抬起,鼠标移动,鼠标组合,鼠标与键盘组合;在本地渲染模式下,每一个操作事件都会被捕捉处理,其中最高频的应该是鼠标移动事件以及点下按键后的拖动事件。
整个系统中所述渲染调度服务模块的数量可以根据实际的调度控制需求设置,通常每个经常一起工作的设计团队配置一个渲染调度服务模块,而每个渲染调度服务模块负责的渲染服务模块都会拥有多台高性能的渲染服务器,渲染调度服务模块是用来管理多台渲染服务器的调度中心,使用动态规划调度方法进行调度。其中,每个渲染服务器都是单独的渲染机器,被调度服务器分配了渲染服务任务后,会根据接收到的数据进行渲染、帧内压缩、帧间压缩、数据压缩等一系列操作。
本方案属于智能命令式渲染,所有的渲染操作都基于输入的命令进行驱动,在命令没有到来的时候,渲染服务模块处于休息的状态当中。每次收到一个命令,会根据命令对渲染机器的状态进行更改,渲染机器会根据渲染机器自身状态参数的设置,采取单帧渲染或者分组帧间压缩方式进行渲染。因此有,一个实施例中,所述渲染服务模块的各渲染机器都基于输入的命令进行驱动,在渲染控制命令没有到来的时候,渲染机器处于休息的状态,收到渲染控制命令后根据命令对渲染机的渲染状态进行更改,并结合渲染机器自身的参数设置,采取单帧渲染或者分组帧间压缩方式进行渲染处理。
进一步地,一个实施例中,所述应用服务器对接收到的编辑请求信号进行分析,生成对应的几何建模指令,具体地,所述应用服务器生成建模控制指令的过程,包括:
根据编辑请求信号的分析结果判断该编辑请求信号对应的项目任务是否存在已绑定的几何建模服务器;若不存在,根据编辑请求信号生成建模启动指令,若存在,执行下一步;
进一步判断当前的编辑请求信号是否对应项目任务结束信号,若是,生成建模释放指令,否则根据编辑请求信号生成建模运算指令定。
考虑到CAD渲染和建模都是持久的长连接,与其他系统不同,用完就释放会显著提升操作次数;因此,一个实施例中,所述建模引擎调度模块寻找到当前负载最小的目标建模服务器后,控制创建当前用户项目对应的几何建模服务实例,随后本用户项目的相关建模指令都会被此实例处理,直到本项目将关闭,销毁释放实例,回收服务器资源。客户端 CAD项目关闭时会捕捉到相应的动作体现在编辑请求信号中,一个项目的生存周期内始终用同一台。但这一台也可以供其他项目使用。
一个优选的实施例中,建模引擎调度模块按照设定的频率持续获取几何建模模块中各个几何建模服务器的实时运行负载状态;
通过以下操作根据动态调度策略为当前任务分配对应的几何建模服务器:
当接收的建模控制指令为建模启动指令时,从所有几何建模服务器中寻找当前运行负载最小的几何建模服务器作为执行本次建模任务的目标建模服务器,将对应的建模启动指令发送至该建模服务器并实现项目任务绑定,并将绑定信息传至应用服务器;
当接收到的指令为建模运算指令时,将该指令转至对应项目已绑定的几何建模服务器,继续执行建模运算;
当接收到的指令为建模释放指令时,控制释放绑定的几何建模服务器。
实际应用时,由应用服务器针对当前任务的编辑请求信号进行分析,如果目前该用户已经分配了建模实例,则继续使用,直接生成建模运算指令,控制绑定的几何建模服务器继续执行当前任务的建模运算;否则,生成新的建模启动指令,控制建模引擎调度模块基于所有的几何建模服务器为对象针对当前的项目任务寻找负载最小的几何建模服务器,进而控制所选的几何建模服务器创建对应的建模服务实例,并且与用户当前编辑绑定,以实现相应的几何建模计算,需要说明的是,对新的CAD项目任务选取新的几何建模服务器时,依然选取所有几何建模服务器中运载状态最小的,也就说,也有可能选取到已经在执行其他项目任务的几何建模服务器;直至本次CAD文档关闭后,才进行实例释放。
为了减少中间数据对渲染调度服务模块存储空间的占用率,本发明在一个可选的实施例中,所述渲染调度服务模块控制几何建模模块时还配置为:在用户退出当前编辑后即可释放当前服务实例。
进一步地,针对需要初始建模或者继续修改的任务,都要对其建模运算数据进行关联记录并存储,实际应用时,可以对应几何建模服务器的本地实例创建内核文件夹或者数据库,对于需要从零开始建模的项目,新建对应的子文件或数据库,对于已经存在建模历史的项目,则根据用户项目的标签进行调取,继续使用已有的存储空间进行数据记录和完善。实际应用时,若不想在建模服务器本地设置较大规模的数据存储区,也可以灵活地在应用服务器处构建对应的数据存储区。
实际应用时,渲染调度服务模块用于获取每一个渲染服务器的状态,评估各个渲染服务器(渲染机器)的负载大小,即渲染工作量大小,对渲染任务进行机器层面的分配。在每一个操作任务到来的时刻,调度服务器会进行分类判断本用户当前处于怎样的渲染服务状态:单帧渲染或者多帧流式渲染。在分类完毕之后,会进行任务时长估计,并且将任务构建成为一个用户的渲染任务单元数据,任务繁忙期间,本任务单元会被短暂的加入到本用户的任务队列当中,并且系统会维护对于系统队列的参数描述:任务平均时长,任务优先级,任务类型。
因此,一个具体的实施例中,所述应用服务器生成渲染控制指令的过程,包括:
根据编辑请求信号的分析结果判断该编辑请求信号对应的项目任务是否存在已绑定的渲染服务器;若不存在,结合编辑请求信号和建模服务器的运算结果生成渲染启动指令,若存在,执行下一步;
进一步判断当前的编辑请求信号是否对应项目任务结束信号,若是,生成渲染释放指令,否则结合编辑请求信号和建模服务器的运算结果生成或渲染处理指令;
其中,根据编辑请求信号中的CAD项目唯一标识ID判断该编辑请求信号对应的项目任务是否存在已绑定的渲染服务器;
进行项目绑定后,在该渲染服务器创建当前项目的渲染任务实例,并建立当前CAD项目的渲染记录数据库,直到当前项目关闭收到渲染释放指令,销毁对应的渲染任务实例,释放或备份对应的渲染记录数据库。
其中,根据编辑请求信号中的CAD项目唯一标识ID判断该分析结果对应的项目任务是否存在已绑定的渲染服务器;
进行项目绑定后,在该渲染服务器创建当前项目的渲染任务实例,并建立当前CAD项目的渲染记录数据库,直到当前项目关闭收到渲染释放指令,销毁对应的渲染任务实例,释放或备份对应的渲染记录数据库。
所述渲染服务调度模块按照设定的频率持续获取渲染服务模块中各个渲染服务器的实时运行负载状态;
一个具体的实施例中,所述渲染服务调度模块通过以下操作根据动态调度策略为当前任务分配对应的渲染服务器:
当接收的渲染控制指令为渲染启动指令时,从所有渲染服务器中寻找当前运行负载最小的渲染服务器作为执行本次渲染任务的目标渲染服务器,将对应的渲染启动指令发送至该渲染服务器并实现项目任务绑定,并将绑定信息传至应用服务器;
当接收到的指令为渲染处理指令时,将该指令转至对应项目已绑定的渲染服务器,继续执行渲染处理及压缩处理;
当接收到的指令为渲染释放指令时,控制释放绑定的渲染服务器;
实际应用时,上述操作是为了在多个渲染服务器中选取空闲或当前处理任务所需时间最短的渲染服务器对象。
进一步地,一个实施例中,所述应用服务器结合编辑请求信号分析结果和几何模型计算结果生成渲染控制指令时,还生成渲染任务数据,所述渲染任务数据包括具备时序信息的任务数据以及时长估计值;
所述渲染服务调度模块在获取渲染服务模块中各个渲染服务器的实时运行负载状态的过程中,基于渲染任务数据以及各渲染服务器绑定的待执行和执行中任务所需时长计算精确的负载状态数据。
需要说明的是,建立的几何建模记录数据库中,将属于同一项目任务的建模控制指令、几何建模计算结果一截对应的编辑请求信号关联存储,实际存储时,可以编辑请求信号中体现的唯一项目ID为标签分别建立子数据库;而渲染记录数据库中,按照相同的存储方式将渲染任务数据、渲染控制指令以及所对应的编辑请求信号关联存储在渲染调度服务模块的设定存储区。
另外的,在一个可选的实施例中,所述建模记录数据库中还存储有当前项目绑定的几何建模服务器编号和建模运算时间信息;所述渲染记录数据库中还包括当前项目绑定的渲染服务器的编号以及渲染处理的时间信息。
本发明在客户端与渲染服务模块之间设置操作采样模块,用于捕获用户在客户端CAD 平台做出的操作指令,例如拖拽、旋转等操作;基于此,利用设置的采样模块直接将抽取的操作采样信号直传至对应的渲染服务器,使渲染服务器能够第一时间接受到用户的操作采样指令并给予响应,在保障信号响应时效性的同时,避免过多的操作信号为通信资源及渲染服务器造成运行压力;
另外的,基于常规的逻辑,对于渲染服务器执行渲染处理的过程,每次收到一个指令,都会进行渲染状态的更改,尤其是单帧渲染状态时,由于每次操作信号都会做一次渲染一帧的请求,所以在这里需要对操作进行采样,将密集的操作信号指令按照时间进行排序,采样单位排序最后一次操作进行传输,从而可以降低客户端及渲染服务器方面的指令压力。因此,为了在保障数据渲染可靠度的基础上尽量提升渲染操作的时效性,一个可选的实施例中,若渲染任务数据中包含单帧渲染,所述客户端将单帧渲染的密集操作指令按照时间进行排序,采样单位排序的最后一次操作指令进行传输,以降低渲染服务器的指令压力,同时,为达到绘制的实时性,采用一系列优化手段,包括:帧间压缩,渲染指令拥塞过滤,动态模糊,多缓冲区等机制。
其中,操作采样信号往往存在于用户已经建立CAD对象之后,这种情况通常已经针对当前操作的项目对象绑定了对应的几何建模服务器及渲染服务器,实际应用时,当某一项目绑定某一几何建模服务器或者某一渲染服务器后,会立刻将所绑定的几何建模服务器或者渲染服务器的地址数据通过应用服务器反馈给客户端,这样客户端就能够清楚当前项目或任务所绑定的是哪一台渲染服务器,进而通过操作采样信号抽取操作采样指令后,直接传达至地址对应的渲染服务器。
实际应用中,不同渲染服务器的机器任务承载能力可能存在不同,即对于每台机器的渲染任务承载量也不同,因此,一个实施例中,会令渲染调度控制器在渲染任务开始之前或开始时,对所有渲染机器进行前置性承载性能评估:将渲染任务打满,如果出现超过阈值的延迟,即判定为任务负荷打满。前置测试得到的数值会被调度服务器记录下来,从而可以用做对于负载评估的数据或者繁忙状态判断的依据。
一个可选的实施例中,所述渲染调度服务模块还配置为:
根据前置性承载性能评估结果指定繁忙状态阈值,在动态调度的策略中,若检测到某渲染服务器的当前负载状态已经超过所述繁忙状态阈值,则为该渲染服务器设置一定时长的繁忙状态标签,对应时长内不作为其他项目任务的备选绑定对象。
另外的,如果根据渲染任务数据中的当前任务所需时长分析得到,执行本次项目任务的绑定启动后,某渲染服务器的负载状态值会由小于繁忙状态值升为大于等于繁忙状态值,则该渲染服务器也设置一定时长的繁忙状态标签。
基于上述技术策略,当需要创建新的渲染处理实例时,则直接以不存在繁忙状态标签的渲染服务器为对象,选取负载状态最小的渲染服务器。能够在相应的时间内节省不必要的冗余判断和运算过程。
针对渲染服务器的具体实现原理:
渲染服务器的IO安排为:如果数据发生了变化或者第一次接收数据,则接受渲染调度服务模块给到的渲染模型数据并且解析成为元数据Elment与Entity,如果是增量就会进行相关对象数据列表的刷新,并且更新构建优化数据结构。
其中,Element:代表整个CAD系统当中的元数据,描述了点(Vertex)、线(Line、Curve)、面(Face、Mesh)等逻辑数据集合,用来执行非渲染任务,如:点击选择,扫略高亮,点中拖拽等,整个组织会进行算法优化,多依据八叉树相交测试结构。Entity:代表整个CAD系统当中的绘图数据,描述了Element等绘图数据集合,其中点(Vertex) 会包装成为Sprite,始终朝向摄像机,并且动态实时调整大小,在数量大的时候会进行算法优化,如运动状态数据的渲染。
模型服务器输出数据的读取方案:本方案采用二进制流数据的传输格式。将模型数据划分为元数据与内容数据,在二进制层面进行编码。首先根据KEY-VALUE方式生成对象,在同类型对象内部,采用默认变量共享内存的方式进行,从而对默认变量就有大量的压缩。
传输方面,首先传输元数据,在元数据传输完毕之后,根据元数据对内容数据分批次加载,这样可以防止出现由于传输数据与构建数据同时存在而发生的内存峰值问题,并且可以分步骤实现模型渲染,可以从局部到整体进行模型的粉刷式渲染,给用户更好的体验感。
进一步地,渲染服务器在获取到单条渲染命令后,才会进行绘制,在没有命令的时候是不进行默认刷新服务。获取命令之后,进行如图2所示的参数分析;
根据附图2中的信息可知,输入的命令会分为如下几种:鼠标点击,鼠标按下,鼠标抬起,鼠标移动;当前的渲染机用户状态可以分为如下几种:默认,画面运动中,元素点亮中。
根据(命令,操作状态)的搭配对可以进行命令过滤,过滤方式如下:
/>
在简单点击操作下,本渲染服务进入八叉树相交测试。八叉树是一种动态增长的树状数据结构,每一个通过模型解析出来的Element数据结构的引用,都会插入到八叉树的结构中,方便查找。
八叉树相交测试结构:八叉树是根据物体对空间进行划分,本项目中使用的八叉树属于动态生长类型,Element元素密集的区域会进行更细粒度的划分,在Element元素稀疏的区域会进行大粒度的划分。在一个相交测试被服务器获取之后,会首先进行屏幕坐标系到世界坐标系的变换,从而构建一个从屏幕到三维世界的RayCaster(即射线追踪器),RayCaster会首先与八叉树的根节点进行相交测试,在完成测试后,会与其子节点进行相交测试,将测试通过的节点进行收集,继续向下递归测试。最终,会将叶子节点当中的Element元素取出,在Element元素取出之后,进入元素分类过滤的阶段。
元素过滤阶段属于八叉树相交测试的最后一个阶段,会根据点>线>面>基本面的顺序进行优先级排序,从而可以选择出最终过滤点选的元素Element。如果没有相交的元素Element则整个渲染服务回归到默认状态,忽略本次操作。
运动状态渲染,如果得到命令后,发现仍然处于运动渲染状态,则进行运动渲染的配置。本项目采用了运动帧模糊处理的手法,物体或者视角在发生运动的情况下(旋转,平移,缩放),会将当前Renderer的分辨率进行下降设置,这样画面就会变模糊,锯齿感会有所加强,但是由于运动时间才做如此处理,因此用户感受并不明显。在用户停止鼠标运动操作并且没有抬起鼠标停止鼠标运动的情况下,渲染器会调起计时器,如果到达设定时间,就会结束运动模糊。在渲染期间,会对Entity进行动态顶点合并操作,从而减少绘制调用,本项目将材质相同的点、线、面等进行归类分组,称为材质组,每个材质组内进行分小组,即单元组,每个单元组内进行顶点的合并渲染。在Entity做改变的时候,就可以寻找到最终改变的单元组们,从而改变,再次进行局部顶点合并。
在渲染完毕一帧后会进行格式转换与帧内压缩,本项目将渲染的RGB帧转换为YUV420结构,YUV结构是RGB之外的另一种像素存储结构。其中,Y为亮度,U为 Cb量(蓝色分量),V为Cr量(红色分量)。其中,YUV420通过减少UV分量来进行压缩,具体如附图3所示:
使用YUV压缩后的整体图片大小为原来的一半,从而先实现帧内图片格式转换带来的压缩。
在帧内格式转换压缩过后,要进行的是帧内宏块划分,划分的具体规则为:
(5.1)通过图片后处理,将图片当中的突变区域检测到,而后每个突变区域周围8*8 像素范围的区域即成为一个宏块
(5.2)在需要宏块的区域也需要补充宏块,最终可以得到如附图4所示的分布情况:
(5.3)在完成宏块划分后,得到了图片四所示的穿插结构,在这样穿插结构下,可以会用斜边宏块对内部宏块进行像素预测。预测的方法可以有如图5所示的方式:
如图5所示,在宏块确定后,会根据每个空白宏块本身的特征,设置分类:
1-竖向预测,使用竖向宏块的平均值进行预测填充;
2-横向预测,使用横向宏块的平均值进行预测填充;
3-双向预测,使用两个宏块,按照特征比例进行颜色调和进行预测。
在CAD软件的环境下,颜色都属于比较大的色块,颜色丰富,突变较多的纹理贴图一般情况下不会出现,所以使用宏块预测就可以实现一定的准确程度。在宏块预测的情况下,可以将图片的帧内压缩再次提高一倍的效率。
帧间压缩是在有连续运动帧的情况下进行的,当渲染客户状态处于连续变动状态下,得到了继续运动的命令,系统会取到一定的阈值(N,此数值可以设定),阈值N就是代表在持续运动状态下,最多缓存多少帧形成一个帧间压缩组。帧间压缩组进行压缩以及推流数据的时间点有三个:1缓存帧数达到阈值N;2运动结束命令到达;3计时到达最大延迟阈值。
在帧间压缩的策略中,选取关键帧与向前参考帧,这样可以得到最快的解压缩速度。
运动矢量:在划分单帧宏块之后,会生成对每个宏块的特征结构体对其进行描述。其中特征ID即为每个宏块的单独识别ID,用于索引。在生成每一个帧关键帧宏块的时刻,都会对宏块进行位置的初始化,下一个向前参考帧都会拥有相同或类似的宏块划分,类似的宏块之间会构成运动的趋势。举例:ID为2的宏块开始的位置是(100,100),在下一帧当中,首先不会改变宏块划分的穿插结构,通过对每一个有值特征宏块的特征构建,与 ID2宏块的特征进行匹配,匹配到的宏块位置为(120,150),则生成运动矢量(2,20,50),即代表将ID2的宏块向运动矢量方向进行运动偏移,如图6所示。此时在进行数据流传递的过程中,只需要传输关键帧的有值宏块数据以及无值预测元数据,并且传输向前参考帧的运动矢量数据与残差值数据即可。
(7)频域压缩,在每张图片进行帧内压缩以及应有的运动矢量压缩之后,得到单帧数据,此单帧数据属于图片时域数据。图片时域数据彼此之间相关性较小,变化穿插较大,所以压缩效率不足。程序将图片时域数据转化为图片频域数据进行压缩,在频域数据当中,相邻数据的频率都是相近或者相同的,故可以极大地提升压缩效率。
(8)整体数据压缩,在完成了帧内压缩,帧间压缩之后,会做一次整体数据包压缩,压缩方法如下:
(8.1)创建buffer用来提供存储已压缩数据的空间;使用一张Hash表来快速找到匹配位置,在逐个遍历待压缩数据时,以至少四个byte为扫描窗口查找匹配,每次移动一个byte进行扫描,并计算其哈希值,将哈希值做key,当前位置作为value,存入哈希表格;继续读取,如果读到的位置再次出现了同样的哈希值,并且两个位置读取出来的四字节相等,则认为找到匹配。
(8.2)找到匹配后将锚点到当前位置举例作为字面序列长度,在输出缓存中构造一个字节的token,并且将长度存入其高四位。
(8.3)从锚点开始,拷贝字面序列到输出缓存中,然后把锚点更新到源数据中的字面序列后。
(8.4)将当前位置与匹配位置做差,得到OffSet,并且将OffSet存入字面序列后的两个字节里。
(8.5)从匹配位置和当前位置继续往后对比,得到最长匹配序列。将匹配序列长度存入token的低四位和OffSet后的字节。
(8.6)重复进行上述(8.1)中的操作。
在完成压缩后,就可以通过网络传输向前端直连传输数据,在Web端得到数据后,对整个过程进行反序列化,最终得到RGB格式的图片帧,将图片帧进行渲染,就得到了后台的渲染结果显示。
面向用户投入应用时,通过以下操作调用本发明的渲染系统逻辑:
1、第一步,在浏览器界面UI,或URL连接,申请以“服务端渲染模式”打开某个 CAD项目文档。
2、第二步,收到打开项目指令后,云CAD平台会加载项目文档到“建模服务”(建模引擎调度模块)中,“建模服务”会序列化产生可视化数据,通过RPC通讯传输到渲染服务(渲染调度服务模块),渲染服务解析可视化数据并构建三维场景。
3、第三步,云CAD平台服务器收到“服务端渲染”命令后,在服务器端通过调度服务器,申请并启动独立的渲染服务,得到渲染服务的地址给客户端。
4、第四步,在客户端收到渲染服务地址后,通过websocket连接渲染服务。
5、第五步,渲染服务通过RPC通讯与建模服务连接,得到更新的建模数据;渲染服务器通过websocket协议与客户端连接,接收客户端渲染和交互指令,执行渲染逻辑,得到渲染帧数据给客户端。
6、第六步,在客户端通过鼠标交互,包括移动,点击,滚轮等事件,以及画布信息,得到操作信息;操作信息通过websocket传递给渲染服务,渲染服务收到后,计算相机变动并且绘制场景,得到的帧数据压缩后,返回给客户端展示。
7、第七步,在服务器端收到鼠标点击事件,会触发拾取渲染服务的拾取计算,拾取的几何元素结果会通过websocket返回客户端。
8、第八步,客户对场景进行CAD建模操作修改时,会将命令参数,包括拾取的元素信息,发送给建模服务器;建模服务器执行建模命令,通过RPC将场景更新结果返回给渲染服务,渲染服务更新场景,发送渲染帧给客户端。
9、第九步,为达到绘制的实时性,采用一系列优化手段,包括:帧间压缩,渲染指令拥塞过滤,动态模糊,多缓冲区等机制。
本发明实施例提供的基于服务器端的云架构CAD平台实时渲染系统中,各个模块或单元结构可以根据实际处理和分析需求独立运行或组合运行,以实现相应的技术效果。
采用本发明上述实施例中提供的基于服务器端的云架构CAD平台实时渲染系统,相对于应用现有技术中的云CAD数据渲染方案,本技术方案能够进一步实现如下优点和效果:
1.针对CAD软件的工业设计风格,可以充分利用CAD软件建模后的整个渲染图片色差明显,色块分布均匀的特点,从而简化宏块划分以及帧间压缩的过程,使得CPU调用更加轻松灵活。且相对于浏览器客户端的渲染行为,后台服务器渲染能够获得更多的内存使用,并且可以利用到相对更强的GPU。
2.针对不同的用户操作,采用命令式渲染模型,当用户低密度操作的时候,可以进行单帧传输;在用户高密度操作的时候,可以进行帧间压缩,转换为流式传输。本操作可以大幅度降低服务器的工作密度,使得多用户多任务操作环境更加容易并发与调度。
3.采用八叉树加射线追踪算法,加速了服务器端的拾取效率,更加适合CAD场景下大规模的单元拾取场景。
4.应用灵活,采用按照材质分类的内部结构,并且采用可配置合并单元,对需要渲染的图元进行处理,可以灵活的控制绘制命令的调用频率。
5.还采用灵活的元数据加内容数据的二进制流式传输,并且将内容数据进行分片传输,可以实现对网络带宽的友好,以及对模块峰值内存的控制。
实施例二
上述本发明公开的实施例中详细描述了系统,考虑到本发明的系统的实际应用方面,因此基于上述任意一个或多个实施例中所述系统的其他方面,本发明还提供一种基于服务器端的云架构CAD平台实时渲染方法,该方法应用于上述任意一个或多个实施例中所述的基于服务器端的云架构CAD平台实时渲染系统的使用指导。下面给出具体的实施例进行详细说明。
具体地,图7中示出了本发明实施例中提供的基于服务器端的云架构CAD平台实时渲染方法的流程示意图,如图7所示,该方法包括:
由应用服务器对来自客户端的编辑请求信号进行分析,决策是否需要为客户端分配对应的几何建模服务器或渲染服务器,若是,根据编辑请求信号的分析结果生成建模控制指令和渲染控制指令,并结合决策结果分别传达至建模引擎调度模块或渲染调度模块;
通过建模引擎调度模块响应于来自应用服务模块的建模控制指令,根据动态调度策略为当前任务分配对应的几何建模服务器执行建模任务;其中所述建模控制指令包括建模启动指令、建模运算指令以及建模释放指令;
利用几何建模模块中的至少一个几何建模服务器,结合建模控制指令以及自身存储的几何形状数据进行计算以实现针对所述编辑请求信号的几何建模;
通过渲染服务调度模块响应于来自应用服务器的渲染控制指令,根据动态调度策略为当前任务分配对应的渲染服务器以执行渲染任务,所述渲染控制指令包括渲染启动指令、渲染处理指令以及渲染释放指令;
利用渲染服务模块中的至少一个渲染服务器组成,根据渲染控制指令按照各渲染服务器的渲染参数设置执行渲染任务及压缩处理;
通过与客户端的CAD平台连接的操作采样模块实时捕获CAD操作采样信号,并直接传达至与当前项目绑定的渲染服务器实现操作渲染处理;
将渲染服务器的渲染处理结果通过应用服务器依据设定的传输协议反馈至客户端的 CAD平台。
进一步地,一个实施例中,通过所述应用服务器生成建模控制指令的过程,包括:
根据编辑请求信号的分析结果判断该编辑请求信号对应的项目任务是否存在已绑定的几何建模服务器;若不存在,根据编辑请求信号生成建模启动指令,若存在,执行下一步;
进一步判断当前的编辑请求信号是否对应项目任务结束信号,若是,生成建模释放指令,否则根据编辑请求信号生成建模运算指令。
一个优选的实施例中,由建模引擎调度模块按照设定的频率持续获取几何建模模块中各个几何建模服务器的实时运行负载状态;
所述建模引擎调度模块根据动态调度策略为当前任务分配对应的几何建模服务器的过程包括:
当接收的建模控制指令为建模启动指令时,从所有几何建模服务器中寻找当前运行负载最小的几何建模服务器作为执行本次建模任务的目标建模服务器,将对应的建模启动指令发送至该建模服务器并实现项目任务绑定,并将绑定信息传至应用服务器;
当接收到的指令为建模运算指令时,将该指令转至对应项目已绑定的几何建模服务器,继续执行建模运算;
当接收到的指令为建模释放指令时,控制释放绑定的几何建模服务器。
一个可选的实施例中,根据编辑请求信号中的CAD项目唯一标识ID判断该分析结果对应的项目任务是否存在已绑定的几何建模服务器;
为了确保CAD项目的内存数据的持续可用,进行项目绑定后,在该几何建模服务器创建当前项目的建模任务实例,并建立当前CAD项目的建模记录数据库,直到当前项目关闭收到建模释放指令,销毁对应的建模任务实例,释放或备份对应的建模记录数据库。
具体地,一个实施例中,所述应用服务器生成渲染控制指令的过程,包括:
根据编辑请求信号的分析结果判断该编辑请求信号对应的项目任务是否存在已绑定的渲染服务器;若不存在,结合编辑请求信号和建模服务器的运算结果生成渲染启动指令,若存在,执行下一步;
进一步判断当前的编辑请求信号是否对应项目任务结束信号,若是,生成渲染释放指令,否则结合编辑请求信号和建模服务器的运算结果生成或渲染处理指令;
其中,根据编辑请求信号中的CAD项目唯一标识ID判断该编辑请求信号对应的项目任务是否存在已绑定的渲染服务器;
进行项目绑定后,在该渲染服务器创建当前项目的渲染任务实例,并建立当前CAD项目的渲染记录数据库,直到当前项目关闭收到渲染释放指令,销毁对应的渲染任务实例,释放或备份对应的渲染记录数据库。
进一步地,一个实施例中,由所述渲染服务调度模块按照设定的频率持续获取渲染服务模块中各个渲染服务器的实时运行负载状态;
根据动态调度策略为当前任务分配对应的渲染服务器的过程包括:
当接收的渲染控制指令为渲染启动指令时,从所有渲染服务器中寻找当前运行负载最小的渲染服务器作为执行本次渲染任务的目标渲染服务器,将对应的渲染启动指令发送至该渲染服务器并实现项目任务绑定,并将绑定信息传至应用服务器;
当接收到的指令为渲染处理指令时,将该指令转至对应项目已绑定的渲染服务器,继续执行渲染处理及压缩处理;
当接收到的指令为渲染释放指令时,控制释放绑定的渲染服务器。
一个可选的实施例中,所述应用服务器结合编辑请求信号分析结果和几何模型计算结果生成渲染控制指令时,还生成渲染任务数据,所述渲染任务数据包括具备时序信息的任务数据以及时长估计值;
渲染调度服务模块在获取渲染服务模块中各个渲染服务器的实时运行负载状态的过程中,基于渲染任务数据以及各渲染服务器绑定的待执行和执行中任务所需时长计算精确的负载状态数据。
进一步地,一个优选的实施例中,若渲染任务数据中包含单帧渲染,所述客户端将单帧渲染的密集操作指令按照时间进行排序,抽取单位排序内最后一次操作指令进行传输,以降低渲染服务器的指令压力。
在云架构CAD中,普通渲染模型均为客户端实时渲染,本发明方法的操作与用户的操作指导结合时,用户申请以“服务端渲染模式”打开模型时,将启动服务器端实时渲染模式。
收到来自客户端的编辑请求信号表征的打开项目指令后,云CAD平台会加载项目文档到“建模服务”中,“建模服务”相关的建模引擎调度模块会控制相应的几何建模服务器序列化产生可视化数据,通过RPC通讯传输到渲染调度服务模块,渲染调度服务模块可视化数据并构建三维场景。
进一步地,渲染系统中生成编辑请求信号表征的渲染指令后,应用服务器收到“服务端渲染”命令后,在服务器端通过渲染调度服务模块,根据编辑请求信号和几何建模模块的计算结果生成渲染任务数据和渲染控制指令,并基于设定的动态调度策略将待分配渲染任务数据的渲染控制指令传输至相应的渲染服务器(渲染机器);
申请并启动独立的渲染服务,得到渲染服务的地址给客户端。
在客户端收到渲染服务地址后,通过Websocket连接渲染服务。
通过与客户端的CAD平台连接的操作采样模块实时捕获CAD操作指令,作为操作采样信号信号直接传达至地址匹配的渲染服务器,实现操作指令的渲染操处理;
渲染服务通过RPC通讯与建模服务连接,得到更新的建模数据;渲染服务器通过Websocket协议与客户端连接,接收客户端渲染任务和渲染控制指令,执行渲染逻辑及压缩处理,并将处理后的渲染帧数据给客户端。
对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。
需要指出的是,在本发明的其他实施例中,该方法还可以通过将上述实施例中的某一个或某几个进行结合来得到新的云架构CAD平台实时渲染方法,以实现高效可靠的CAD数据全自动渲染及处理。
需要说明的是,基于本发明上述任意一个或多个实施例中的方法,本发明还提供一种存储介质,该存储介质上存储有可实现如述任意一个或多个实施例中所述方法的程序代码,该代码被操作系统执行时能够实现如上所述的基于服务器端的云架构CAD平台实时渲染方法。
应该理解的是,本发明所公开的实施例不限于这里所公开的特定结构、处理步骤或材料,而应当延伸到相关领域的普通技术人员所理解的这些特征的等同替代。还应当理解的是,在此使用的术语仅用于描述特定实施例的目的,而不意味着限制。
说明书中提到的“一实施例”意指结合实施例描述的特定特征、结构或特征包括在本发明的至少一个实施例中。因此,说明书通篇各个地方出现的短语“一实施例”并不一定均指同一个实施例。
虽然本发明所揭露的实施方式如上,但所述的内容只是为了便于理解本发明而采用的实施方式,并非用以限定本发明。任何本发明所属技术领域内的技术人员,在不脱离本发明所揭露的精神和范围的前提下,可以在实施的形式上及细节上作任何的修改与变化,但本发明的专利保护范围,仍须以所附的权利要求书所界定的范围为准。

Claims (7)

1.一种基于服务器端的云架构CAD平台实时渲染系统,其特征在于,所述系统包括:
应用服务模块,其与客户端以及建模引擎调度模块和渲染服务调度模块均通信连接,配置为对来自客户端的编辑请求信号进行分析,决策是否需要为客户端分配对应的几何建模服务器或渲染服务器,若是,根据编辑请求信号的分析结果生成建模控制指令和渲染控制指令,并结合决策结果分别传达至建模引擎调度模块或渲染调度模块;
建模引擎调度模块,其配置为响应于来自应用服务模块的建模控制指令,根据动态调度策略为当前任务分配对应的几何建模服务器执行建模任务;其中所述建模控制指令包括建模启动指令、建模运算指令以及建模释放指令;
几何建模模块,其与所述建模引擎调度模块连接,由至少一个几何建模服务器组成,配置为结合建模控制指令以及自身存储的几何形状数据进行计算以实现针对所述编辑请求信号的几何建模;
渲染服务调度模块,其配置为响应于来自应用服务器的渲染控制指令,根据动态调度策略为当前任务分配对应的渲染服务器以执行渲染任务,所述渲染控制指令包括渲染启动指令、渲染处理指令以及渲染释放指令;
渲染服务模块,其与所述渲染服务调度模块连接,由至少一个渲染服务器组成,用于根据渲染控制指令按照各渲染服务器的渲染参数设置执行渲染任务及压缩处理;
操作采样模块,其连接在客户端与渲染服务模块之间,配置为实时捕获CAD编辑请求信号,并将用户的编辑请求信号直接传达至对应的渲染服务器;
所述应用服务器生成渲染控制指令的过程,包括:
根据编辑请求信号的分析结果判断该编辑请求信号对应的项目任务是否存在已绑定的渲染服务器;若不存在,结合编辑请求信号和建模服务器的运算结果生成渲染启动指令,若存在,执行下一步;
进一步判断当前的编辑请求信号是否对应项目任务结束信号,若是,生成渲染释放指令,否则结合编辑请求信号和建模服务器的运算结果生成或渲染处理指令;
其中,根据编辑请求信号中的CAD项目唯一标识ID判断该编辑请求信号对应的项目任务是否存在已绑定的渲染服务器;
进行项目绑定后,在该渲染服务器创建当前项目的渲染任务实例,并建立当前CAD项目的渲染记录数据库,直到当前项目关闭收到渲染释放指令,销毁对应的渲染任务实例,释放或备份对应的渲染记录数据库;
所述应用服务器结合编辑请求信号分析结果和几何模型计算结果生成渲染控制指令时,还生成渲染任务数据,所述渲染任务数据包括具备时序信息的任务数据以及时长估计值;
渲染调度服务模块在获取渲染服务模块中各个渲染服务器的实时运行负载状态的过程中,基于渲染任务数据以及各渲染服务器绑定的待执行和执行中任务所需时长计算精确的负载状态数据;
将用户的编辑请求信号直接传达至对应的渲染服务器时,所述客户端将单帧渲染的密集操作指令按照时间进行排序,抽取单位排序内最后一次操作信号作为采样信号进行传输,以降低渲染服务器的指令压力。
2.如权利要求1所述的系统,其特征在于,所述应用服务器生成建模控制指令的过程,包括:
根据编辑请求信号的分析结果判断该编辑请求信号对应的项目任务是否存在已绑定的几何建模服务器;若不存在,根据编辑请求信号生成建模启动指令,若存在,执行下一步;
进一步判断当前的编辑请求信号是否对应项目任务结束信号,若是,生成建模释放指令,否则根据编辑请求信号生成建模运算指令。
3.如权利要求1所述的系统,其特征在于,所述建模引擎调度模块按照设定的频率持续获取几何建模模块中各个几何建模服务器的实时运行负载状态;
通过以下操作根据动态调度策略为当前任务分配对应的几何建模服务器:
当接收的建模控制指令为建模启动指令时,从所有几何建模服务器中寻找当前运行负载最小的几何建模服务器作为执行本次建模任务的目标建模服务器,将对应的建模启动指令发送至该建模服务器并实现项目任务绑定,并将绑定信息传至应用服务器;
当接收到的指令为建模运算指令时,将该指令转至对应项目已绑定的几何建模服务器,继续执行建模运算;
当接收到的指令为建模释放指令时,控制释放绑定的几何建模服务器。
4.如权利要求2所述的系统,其特征在于,根据编辑请求信号中的CAD项目唯一标识ID判断该分析结果对应的项目任务是否存在已绑定的几何建模服务器;
为了确保CAD项目的内存数据的持续可用,进行项目绑定后,在该几何建模服务器创建当前项目的建模任务实例,并建立当前CAD项目的建模记录数据库,直到当前项目关闭收到建模释放指令,销毁对应的建模任务实例,释放或备份对应的建模记录数据库。
5.如权利要求1所述的系统,其特征在于,所述渲染服务调度模块按照设定的频率持续获取渲染服务模块中各个渲染服务器的实时运行负载状态;
通过以下操作根据动态调度策略为当前任务分配对应的渲染服务器:
当接收的渲染控制指令为渲染启动指令时,从所有渲染服务器中寻找当前运行负载最小的渲染服务器作为执行本次渲染任务的目标渲染服务器,将对应的渲染启动指令发送至该渲染服务器并实现项目任务绑定,并将绑定信息传至应用服务器;
当接收到的指令为渲染处理指令时,将该指令转至对应项目已绑定的渲染服务器,继续执行渲染处理及压缩处理;
当接收到的指令为渲染释放指令时,控制释放绑定的渲染服务器。
6.如权利要求1所述的系统,其特征在于,所述渲染服务模块的各渲染机器都基于输入的命令进行驱动,在渲染控制命令没有到来的时候,渲染机器处于休息的状态,收到渲染控制命令后根据命令对渲染机的渲染状态进行更改,并结合渲染机器自身的参数设置,采取单帧渲染或者分组帧间压缩方式进行渲染处理。
7.一种基于服务器端的云架构CAD平台实时渲染方法,其特征在于,所述方法应用于如权利要求1~6中任一项所述的基于服务器端的云架构CAD平台实时渲染系统,该方法包括:
由应用服务器对来自客户端的编辑请求信号进行分析,决策是否需要为客户端分配对应的几何建模服务器或渲染服务器,若是,根据编辑请求信号的分析结果生成建模控制指令和渲染控制指令,并结合决策结果分别传达至建模引擎调度模块或渲染调度模块;
通过建模引擎调度模块响应于来自应用服务模块的建模控制指令,根据动态调度策略为当前任务分配对应的几何建模服务器执行建模任务;其中所述建模控制指令包括建模启动指令、建模运算指令以及建模释放指令;
利用几何建模模块中的至少一个几何建模服务器,结合建模控制指令以及自身存储的几何形状数据进行计算以实现针对所述编辑请求信号的几何建模;
通过渲染服务调度模块响应于来自应用服务器的渲染控制指令,根据动态调度策略为当前任务分配对应的渲染服务器以执行渲染任务,所述渲染控制指令包括渲染启动指令、渲染处理指令以及渲染释放指令;
利用渲染服务模块中的至少一个渲染服务器组成,根据渲染控制指令按照各渲染服务器的渲染参数设置执行渲染任务及压缩处理;
通过与客户端的CAD平台连接的操作采样模块实时捕获CAD操作采样信号,并直接传达至与当前项目绑定的渲染服务器实现操作渲染处理;
将渲染服务器的渲染处理结果通过应用服务器依据设定的传输协议反馈至客户端的CAD平台。
CN202110925531.1A 2021-08-12 2021-08-12 一种基于服务器端的云架构cad平台实时渲染系统及方法 Active CN113761609B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110925531.1A CN113761609B (zh) 2021-08-12 2021-08-12 一种基于服务器端的云架构cad平台实时渲染系统及方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110925531.1A CN113761609B (zh) 2021-08-12 2021-08-12 一种基于服务器端的云架构cad平台实时渲染系统及方法

Publications (2)

Publication Number Publication Date
CN113761609A CN113761609A (zh) 2021-12-07
CN113761609B true CN113761609B (zh) 2024-04-26

Family

ID=78789132

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110925531.1A Active CN113761609B (zh) 2021-08-12 2021-08-12 一种基于服务器端的云架构cad平台实时渲染系统及方法

Country Status (1)

Country Link
CN (1) CN113761609B (zh)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113963101B (zh) * 2021-12-21 2022-03-29 北京蔚领时代科技有限公司 一种基于rpc的实时分布式集群同步渲染调度系统
CN114564195B (zh) * 2022-02-17 2024-02-27 山东华云三维科技有限公司 一种基于b/s架构的云cad平台的二次开发方法
CN115665120B (zh) * 2022-12-28 2023-03-21 浙江华东工程数字技术有限公司 一种云端cad处理方法、系统、计算机设备和存储介质
CN116415321A (zh) * 2022-12-28 2023-07-11 浙江华东工程数字技术有限公司 一种云端cad处理系统及其构建方法
CN116974671B (zh) * 2023-07-20 2024-02-23 北京爱特拉斯信息科技有限公司 一种矢量面拾取方法、装置、电子设备及存储介质

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103268253A (zh) * 2012-02-24 2013-08-28 苏州蓝海彤翔系统科技有限公司 一种智能化的多尺度并行渲染作业调度管理方法
CN103970941A (zh) * 2014-04-23 2014-08-06 昆明理工大学 一种基于网络机群的散生竹地下根茎并行模拟仿真方法
CN108023942A (zh) * 2017-11-27 2018-05-11 中车工业研究院有限公司 基于云平台的cad建模数据传输方法、服务器和客户端
CN109102561A (zh) * 2018-07-13 2018-12-28 浙江百先得服饰有限公司 一种基于服装在线的3d混合渲染方法
CN110751712A (zh) * 2019-10-22 2020-02-04 中设数字技术股份有限公司 基于云平台的在线三维渲染技术及系统
CN112882709A (zh) * 2021-03-10 2021-06-01 百度在线网络技术(北京)有限公司 基于容器引擎系统的渲染方法、装置、设备以及存储介质

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9378582B2 (en) * 2012-07-31 2016-06-28 Siemens Product Lifecycle Management Software Inc. Rendering of design data

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103268253A (zh) * 2012-02-24 2013-08-28 苏州蓝海彤翔系统科技有限公司 一种智能化的多尺度并行渲染作业调度管理方法
CN103970941A (zh) * 2014-04-23 2014-08-06 昆明理工大学 一种基于网络机群的散生竹地下根茎并行模拟仿真方法
CN108023942A (zh) * 2017-11-27 2018-05-11 中车工业研究院有限公司 基于云平台的cad建模数据传输方法、服务器和客户端
CN109102561A (zh) * 2018-07-13 2018-12-28 浙江百先得服饰有限公司 一种基于服装在线的3d混合渲染方法
CN110751712A (zh) * 2019-10-22 2020-02-04 中设数字技术股份有限公司 基于云平台的在线三维渲染技术及系统
CN112882709A (zh) * 2021-03-10 2021-06-01 百度在线网络技术(北京)有限公司 基于容器引擎系统的渲染方法、装置、设备以及存储介质

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
基于云端GPU的三维容积重建;袁戎;孙智;谢庆国;;计算机应用;20161215(第S2期);全文 *

Also Published As

Publication number Publication date
CN113761609A (zh) 2021-12-07

Similar Documents

Publication Publication Date Title
CN113761609B (zh) 一种基于服务器端的云架构cad平台实时渲染系统及方法
CN111681167B (zh) 画质调整方法和装置、存储介质及电子设备
CN105263050B (zh) 基于云平台的移动终端实时渲染系统及其方法
EP2256735A1 (en) Rendering in a multi-user video editing system
CN109237999B (zh) 一种批量三维态势目标尾迹实时绘制方法和系统
CN104394422A (zh) 一种视频分割点获取方法及装置
CN104079926B (zh) 一种远程桌面软件的视频性能测试方法
CN110958469A (zh) 视频处理方法、装置、电子设备及存储介质
US11792245B2 (en) Network resource oriented data communication
CN108389241A (zh) 游戏场景中生成贴图的方法、装置和系统
CN116980569A (zh) 一种基于云计算的安全监控系统及方法
Yoo et al. Real-time parallel remote rendering for mobile devices using graphics processing units
CN114968152B (zh) 减少virtio-gpu额外性能损耗的方法
Yamaoka et al. Visualization of high-resolution image collections on large tiled display walls
CN114567784A (zh) 一种用于飞腾显卡的vpu视频解码输出方法及系统
US20230316626A1 (en) Image rendering method and apparatus, computer device, and computer-readable storage medium
Li et al. Digital Twin and Artificial Intelligence-Empowered Panoramic Video Streaming: Reducing Transmission Latency in the Extended Reality-Assisted Vehicular Metaverse
Liu et al. A physics-based augmented reality jenga stacking game
CN103559000B (zh) 一种面向质量的海量影像数据迁移方法和系统
Matsui et al. Virtual desktop display acceleration technology: RVEC
Thai et al. A hybrid remote display scheme for interactive applications in band-limited environment
US20240054748A1 (en) Finding the semantic region of interest in images
Liu Visualized Analysis of Tourism Big Data based on Real-Time Analysis and Complexity Measurement
CN117036912A (zh) 视频ai推理的优化方法、装置、计算机设备、存储介质
CN118042181A (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