CN114730349A - 双模式后处理 - Google Patents
双模式后处理 Download PDFInfo
- Publication number
- CN114730349A CN114730349A CN202080079892.2A CN202080079892A CN114730349A CN 114730349 A CN114730349 A CN 114730349A CN 202080079892 A CN202080079892 A CN 202080079892A CN 114730349 A CN114730349 A CN 114730349A
- Authority
- CN
- China
- Prior art keywords
- client
- computer
- proxy object
- server
- voxel
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/20—Design optimisation, verification or simulation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2111/00—Details relating to CAD techniques
- G06F2111/02—CAD in a network environment, e.g. collaborative CAD or distributed simulation
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Evolutionary Computation (AREA)
- Geometry (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Processing Or Creating Images (AREA)
- Information Transfer Between Computers (AREA)
Abstract
一种方法、设备和系统提供了在计算机辅助设计(CAD)应用程序中进行动态模拟的能力。在服务器上获取CAD模型。在所述服务器上,为所述CAD模型创建代理对象。所述代理对象是所述CAD模型的基于体素的表示并完全地包含所述CAD模型的模拟网格。向客户端传输所述代理对象。所述传输的代理对象包括:所述基于体素的表示的体素域在三(3)个方向上的范围;在所述三个方向中的每一者上的最小坐标和最大坐标;以及在所述三个方向上的体素分割次数。在所述客户端上处理所述代理对象,并且使得能够进行动态交互式渲染操作。在所述服务器上处理所述模拟网格,并且用来自所述模拟网格的真实多边形渲染替换所述客户端上的所述代理对象。
Description
相关申请的交叉引用
本申请要求以下共同未决且共同转让的专利申请的优先权,所述申请以引用方式并入本文:
由Justin Nicholas Hallet、Nandakumar Santhanam和Jerran Sch midt于2019年11月18日提交的名称为“DUAL MODE POST PRO CESSING”的美国专利申请号16/687,379,代理人案号30566.0554US01。
发明背景
1.技术领域
本发明总体上涉及工程模拟,并且特别地,涉及一种用于以双模式(在客户端上和在基于服务器的云系统上)动态地执行工程模拟的系统、方法、设备和制品。
2.相关技术的描述。
网络/云计算基础设施的发展已经使得工程处理能够移动到云。例如,工程模拟、三维(3D)计算机辅助设计(CAD)处理、计算机辅助建模(CAM)处理和计算机辅助工程(CAE)处理可由多个计算机在云上执行。一旦处理完成,结果通常就被下载到本地客户端机器以供显示。然而,处理/模拟可能产生大量数据(例如,吉字节),并且下载这种数据(可能是渲染所需的)是低效的,并且可能在下载/传输期间造成瓶颈。因此,需要的是能够在云上执行模拟/处理,同时还将模拟/处理结果动态地可视化而无需传送结果。为了更好地理解这些问题,现有技术模拟/处理的描述可能是有用的。
用于云计算基础设施和服务的建模和模拟的各种框架已经发展起来(例如,CLOUDSIM框架)。由于实际上在云上部署建模模拟系统的成本可能昂贵,因此云计算模拟工具使得能够在引起实际成本之前先根据变化的负荷和定价分布对云基础设施和资源进行评估。已经出现的云计算模拟评估系统(以及云计算模拟系统本身)包括基于“零客户端”的技术。零客户端(也称为超瘦客户端)是基于服务器的计算模型,其中最终用户的计算装置没有本地存储设备。零客户端可与瘦客户端形成对比,瘦客户端将操作系统以及每个装置的特定配置设置保留在快闪存储器中。这种基于零客户端的系统通常执行两个任务:(1)在云上解算并生成结果文件;以及(2)执行将结果提供到客户端以供显示/查看的后处理。
对于第一任务,在云上可对模拟进行解算并且可生成结果文件。在第二任务期间,某个种类的后处理服务位于云上。后处理服务的工作是取得模拟结果,处理所述模拟结果,并且将所述模拟结果作为多边形(或三角形)流提供到客户端,所述多边形流在客户端侧显示(例如,使用WebGL[Web图形库],即,用于在任何兼容的web浏览器内渲染交互式3D和2D图形而无需使用插件的应用程序编程接口)。这种操作的一个示例是服务器取得体积数据,响应于用户请求(来自客户端侧浏览器)而创建切片平面,生成所需的多边形和属性信息,并且将该多边形和属性信息提供到客户端侧来进行渲染(例如,经由使用图形处理单元[GPU]的WebGL)。
基于两个任务的方法的问题是往返操作的客户端->服务器->客户端延时在动态操作中产生了很多摩擦。再次,一个示例是动态地移动切片平面。每个移动都要求具有相关联延时的客户端-服务器往返。延时使操作相当令人不快,即使带宽很高也是如此。特别地,在切片平面操作中,如果在模型中(在服务器侧上)有体积数据,则传统方法会要求将体积数据转换为多边形数据并然后传输到客户端。因此,如果客户端期望动态地移动切片平面,则从客户端向服务器发送“移动”消息,服务器处理体积数据,将切片平面移动到新位置,确定体积数据的交点,提取多边形切片,并且然后将多边形数据发送到渲染该多边形数据的客户端。因此,此类动作包括在处理期间的往返操作和延时。
鉴于以上内容,需要的是在基于云的模拟/实现方式中在客户端上动态地处理并查看建模操作而没有延时延迟的能力。
发明内容
本发明的实施方案创建一种“双模式”系统,所述“双模式”系统在动态操作开始时从服务器向客户端发送非常紧凑的基于体素的“代理”模型。然后,使用该代理体素模型在客户端侧本身上执行动态操作。处理在将真实数据发送到代理的服务器上继续,其中所述真实数据无缝地替换代理数据。
附图说明
现在参考附图,其中相似的附图标记在整个附图中代表对应的部分:
图1是用于实现本发明的一个或多个实施方案的示例性硬件和软件环境;
图2示意性地示出了根据本发明的一个或多个实施方案的使用网络来将客户端计算机连接到服务器计算机的典型的分布式/基于云的计算机系统;
图3A和图3B是根据本发明的一个或多个实施方案的基于代理体素数据的2D表示图;
图4A和图4B示出了根据本发明的一个或多个实施方案的体积切片的使用;并且
图5示出了根据本发明的一个或多个实施方案的用于在计算机辅助设计(CAD)中进行动态模拟的逻辑流程。
具体实施方式
在以下描述中,参考形成本发明的一部分并以说明的方式示出本发明的若干实施方案的附图。应当理解,在不脱离本发明的范围的情况下,可利用其他实施方案并且可作出结构变化。
硬件环境
图1是用于实现本发明的一个或多个实施方案的示例性硬件和软件环境100(称为计算机实现的系统和/或计算机实现的方法)。硬件和软件环境包括计算机102并且可包括外围设备。计算机102可以是用户/客户端计算机、服务器计算机,或者可以是数据库计算机。计算机102包括硬件处理器104A和/或专用硬件处理器104B(以下替代地统称为处理器104)和存储器106,诸如随机存取存储器(RAM)。计算机102可耦合到其他装置和/或与其他装置集成,所述其他装置包括输入/输出(I/O)装置,诸如键盘114、光标控制装置116(例如,鼠标、定点装置、笔和平板电脑、触摸屏、多点触控装置等)和打印机128。在一个或多个实施方案中,计算机102可耦合到或可包括便携式或媒体查看/收听装置132(例如,MP3播放器、IPOD、NOOK、便携式数字视频播放器、蜂窝装置、个人数字助理等)。在又一个实施方案中,计算机102可包括多点触控装置、移动电话、游戏系统、支持互联网的电视机、电视机顶盒或在各种平台和操作系统上执行的其他支持互联网的装置。
在一个实施方案中,计算机102通过硬件处理器104A在操作系统108的控制下执行由计算机程序110(例如,计算机辅助设计[CAD]应用程序)定义的指令来操作。计算机程序110和/或操作系统108可存储在存储器106中,并且可与用户和/或其他装置介接以接受输入和命令并基于此类输入和命令以及由计算机程序110和操作系统108定义的指令来提供输出和结果。
输出/结果可呈现在显示器122上或提供到另一个装置以供呈现或进行进一步处理或动作。在一个实施方案中,显示器122包括具有多个可单独地寻址的液晶的液晶显示器(LCD)。替代地,显示器122可包括具有一起被驱动以形成全彩色像素的红色、绿色和蓝色二极管组的发光二极管(LED)显示器。响应于由处理器104从将计算机程序110和/或操作系统108的指令应用到输入和命令生成的数据或信息,显示器122的每个液晶或像素改变为不透明或半透明状态以在显示器上形成图像的一部分。图像可通过图形用户界面(GUI)模块118提供。尽管GUI模块118被描绘为单独模块,但是执行GUI功能的指令可驻留或分布在操作系统108、计算机程序110中,或者用专用存储器和处理器来实现。
在一个或多个实施方案中,显示器122与计算机102集成/集成到该计算机中,并且包括具有触摸感测表面(例如,轨迹板或触摸屏)的多点触控装置,该触摸感测表面具有辨识与表面的两个或更多个接触点的存在的能力。多点触控装置的示例包括移动装置(例如,IPHONE、NEXUS S、DROID装置等)、平板计算机(例如,IPAD、HP TOUCHPAD、SURFACE装置等)、便携式/手持式游戏/音乐/视频播放器/控制台装置(例如,IPOD TOUCH、MP3播放器、NINTENDO SWITCH、PLAYSTATION PORTABLE等)、触控桌和触控墙(例如,其中穿过丙烯酸和/或玻璃投影图像,并且然后用LED背光照亮图像)。
由计算机102根据计算机程序110指令执行的操作中的一些或全部可在专用处理器104B中实现。在该实施方案中,计算机程序110指令中的一些或全部可经由存储在专用处理器104B内的只读存储器(ROM)、可编程只读存储器(PROM)或快闪存储器中或在存储器106中的固件指令实现。专用处理器104B也可通过电路设计硬连线以执行操作中的一些或全部来实现本发明。另外,专用处理器104B可以是混合处理器,该混合处理器包括用于执行功能的子集的专用电路和用于执行更通用的功能(诸如对计算机程序110指令做出响应)的其他电路。在一个实施方案中,专用处理器104B是专用集成电路(ASIC)。在一个或多个实施方案中,专用处理器104B可以是图形处理单元(GPU),其是被设计来快速地操纵和更改存储器106以加速在帧缓冲器中的创建意图输出到显示装置122的图像的专用电子电路。
计算机102还可实现编译器112,该编译器允许以编程语言(诸如C、C++、汇编语言、SQL、PYTHON、PROLOG、MATLAB、RUBY、RAILS、HASKELL或其他语言)编写的应用程序或计算机程序110被翻译成处理器104可读代码。替代地,编译器112可以是直接地执行指令/源代码、将源代码翻译成被执行的中间表示或执行存储的预编译代码的解释器。这种源代码可用多种编程语言(诸如JAVA、JAVASCRIPT、PERL、BASIC等)编写。在完成之后,应用程序或计算机程序110使用利用编译器112生成的关系和逻辑来访问和操纵从I/O装置接受并存储在计算机102的存储器106中的数据。
计算机102还可选地包括外部通信装置,诸如调制解调器、卫星链路、以太网卡或用于接受来自其他计算机102的输入并向其他计算机提供输出的其他装置。
在一个实施方案中,实现操作系统108、计算机程序110和编译器112的指令有形地体现在非暂时性计算机可读介质(例如,数据存储装置120)中,所述非暂时性计算机可读介质可包括一个或多个固定或可移动数据存储装置,诸如zip驱动器、软盘驱动器124、硬盘驱动器、CD-ROM驱动器、磁带驱动器等。另外,操作系统108和计算机程序110由计算机程序110指令组成,所述指令在由计算机102访问、读取和执行时致使计算机102执行实现和/或使用本发明所必需的步骤,或者将指令的程序加载到存储器106中,由此创建专用数据结构,从而致使计算机102作为执行本文描述的方法步骤的专门编程的计算机操作。计算机程序110和/或操作指令也可有形地体现在存储器106和/或数据通信装置130中,由此制造根据本发明的计算机程序产品或制品。因此,如本文所使用的术语“制品”、“程序存储装置”和“计算机程序产品”旨在涵盖可从任何计算机可读装置或介质访问的计算机程序。
当然,本领域技术人员将认识到,以上部件的任何组合或者任何数量的不同部件、外围设备和其他装置都可与计算机102一起使用。
图2示意性地示出了使用网络204将客户端计算机202连接到服务器计算机206的典型分布式/基于云的计算机系统200。资源的典型组合可包括网络204(包括互联网、LAN(局域网)、WAN(广域网)、SNA(系统网络架构)网络等)、作为个人计算机或工作站的客户端202(如在图1中阐明),以及作为个人计算机、工作站、小型计算机或大型计算机(如在图1中阐明)的服务器206。然而,可注意,根据本发明的实施方案,不同的网络(诸如蜂窝网络(例如,GSM[全球移动通信系统]等)、基于卫星的网络或任何其他类型的网络)可用于连接客户端202和服务器206。
网络204(诸如互联网)将客户端202连接到服务器计算机206。网络204可利用以太网、同轴电缆、无线通信、射频(RF)等来连接客户端202和服务器206并且提供它们之间的通信。另外,在基于云的计算系统中,客户端202和服务器计算机206中的资源(例如,存储设备、处理器、应用程序、存储器、基础设施等)可由客户端202、服务器计算机206和用户跨一个或多个网络共享。资源可由多个用户共享,并且可按照需求动态地重新分配。在这点上,云计算可称为使得能够访问可配置计算资源的共享池的模型。
客户端202可执行客户端应用程序或web浏览器并与执行web服务器210的服务器计算机206通信。这种web浏览器典型地是程序,诸如MICROSOFT INTERNET EXPLORER/EDGE、MOZILLA FIREFOX、OPERA、APPLE SAFARI、GOOGLE CHROME等。另外,在客户端202上执行的软件可从服务器计算机206下载到客户端计算机202并作为web浏览器的插件或ACTIVEX控件安装。因此,客户端202可利用ACTIVEX部件/部件对象模型(COM)或分布式COM(DCOM)部件来在客户端202的显示器上提供用户界面。web服务器210典型地是程序,诸如MICROSOFT’SINTERNET INFORMATION SERVER。
Web服务器210可托管可执行脚本的活动服务器页面(ASP)或互联网服务器应用程序编程接口(ISAPI)应用程序212。脚本调用执行业务逻辑的对象(称为业务对象)。然后,业务对象通过数据库管理系统(DBMS)214来操纵数据库216中的数据。替代地,数据库216可以是客户端202的一部分或直接地连接到该客户端,而不是跨网络204从数据库216传达/获得信息。当开发人员将业务功能封装到对象中时,系统可被称为部件对象模型(COM)系统。因此,在web服务器210(和/或应用程序212)上执行的脚本调用实现业务逻辑的COM对象。另外,服务器206可利用MICROSOFT’S TRANSACTION SERVER(MTS)来经由接口(诸如ADO(活动数据对象)、OLE DB(对象链接和嵌入数据库)或ODBC(开放数据库连接))访问存储在数据库216中的所需数据。
一般来讲,这些部件200至216都包括嵌入在装置、介质、信号或载体(例如,数据存储装置、数据通信装置、远程计算机或经由网络或经由另一个数据通信装置耦合到计算机的装置等)中/或可从中检索的逻辑和/或数据。此外,该逻辑和/或数据在被读取、执行和/或解释时造成实现和/或使用本发明所必需的步骤被执行。
尽管本文提到了术语“用户计算机”、“客户端计算机”和/或“服务器计算机”,但是应当理解,此类计算机202和206可以是可互换的并且可进一步包括具有有限或完整处理能力的瘦客户端装置(或零客户端装置)、便携式装置(诸如手机、笔记本计算机、袖珍式计算机、多点触控装置)和/或具有合适的处理、通信和输入/输出能力的任何其他装置。
当然,本领域技术人员将认识到,以上部件的任何组合或者任何数量的不同部件、外围设备和其他装置都可与计算机202和206一起使用。本发明的实施方案被实现为在客户端202或服务器计算机206上的软件/CAD应用程序。另外,如上所述,客户端202或服务器计算机206可包括瘦客户端装置或具有基于多点触控的显示器的便携式装置。
软件实施方案概述
本发明的实施方案被实现为在客户端202或服务器计算机206上的软件应用程序。另外,如上所述,客户端202或服务器计算机206可包括瘦客户端装置、零客户端装置或具有基于多点触控的显示器的便携式装置。
如上所述,本发明的实施方案提供一种“双模式”系统,所述“双模式”系统在动态操作开始时从服务器206向客户端202发送非常紧凑的基于体素的“代理”模型。然后,使用该代理体素模型在客户端侧本身上执行动态操作。这种系统允许以接近零的延时且还以独立于模型大小的方式(体素代理实现这一点)执行操作。因此,代理模型以最小延时生成结果数据的动态预览。当从服务器侧206接收到真实数据时,客户端202无缝地替换预览数据。这允许本发明的实施方案支持以最小延时对与动态预览相关的结果进行高保真后处理。
在客户端侧202上,当从代理模型提取视觉元素时,通过使用GPU 104B来加速操作。这种提取对于确保将JAVASCRIPT语言/脚本用于用户界面实现方式的“零客户端”后处理系统的平稳性能是重要的。
客户端-服务器延时是CAE供应商在它们从其传统的胖/瘦客户端实现方式过渡并移动到云时需要克服的关键问题。因此,本发明的实施方案的解决方案涵盖了在向云和零客户端CAE/模拟转移时对交互式应用程序性能关键的重要基础。
软件实施方案细节
对于CAD/CAE模型,经常使用模拟来确定模型在某些条件下将如何反应。可使用各种方程(例如,偏微分方程)对物理和解决方案进行建模。此类方程可使用被称为元素的多面体(例如,片段[1D]、多边形[2D]、多面体[3D]等)中的模型空间的网格来确定。在这点上,可由计算工程师生成网格以获得对复杂几何形状的预测。
为了准备网格,可对模型进行预处理以确定加载什么特征/如何加载特征以及可能影响模拟的输入。例如,几何形状源(例如,来自模型)可用于为模拟准备几何形状,包括分割修复(指定边界表示的细节以正确地确定区域/体积的内部和外部)、去特征化(即,移除模拟无需的过多细节)等。选择元素大小和类型,并且使用网格划分方法来创建可能由模型几何形状的多面体近似组成的网格。此类网格划分方法可镶嵌准备好的几何形状。然后,可进一步细化网格。网格生成的示例可包括自适应网格划分(以产生非均匀大小/形状的网格,诸如通过各向同性网格划分和/或各向异性网格划分)、Delaunay镶嵌(以产生每个三角形的内部不含有任何点的三角形)、边界表示镶嵌(其从边界开始逐层地生成三角形并在区域/体积的内部部分中结束)、上覆栅格网格划分(其用输入边界表示切割自适应笛卡尔网格)等。
模拟的网格划分和求解过程还包括后处理/可视化,其中网格以各种不同的形式可视化。该后处理可视化是许多用户的主要关注点,它是处理器和时间密集的。例如,网格划分/求解过程可在用户晚上下班之前初始化,使得它可在夜晚期间完成。另外,如上所述,这种网格划分/求解可在云中执行,但是造成显著的延时问题。
为了克服现有技术的问题,本发明的实施方案在客户端侧202上利用基于体素的代理模型。基于体素的代理模型是服务器侧数据的极其简化的表示,其使得能够执行动态客户端操作而无需往返操作。另外,也可在服务器侧206上进行后处理,使得在客户端202和服务器206两者上执行后处理,即,双模式后处理系统。如本文所使用,后处理旨在描述从计算/模拟产生的物理数据(例如,温度或应力)的视觉表示,其中意图是在3D/CAD模型上将这种视觉表示可视化。这种可视化可以是模型的表面视图(例如,用于确定各种部分的表面温度的模型的等值面视图)。替代地,可视化可以是模型的内部视图(例如,用于查看内部属性的模型的切片[例如,切片平面])(例如,液体移动通过模型(诸如水通过龙头)的速度轮廓)。
鉴于以上内容,虽然现有技术可在体积服务器上利用大且昂贵的网格(其中每个元素具有四(4)个顶点/节点,并且使用/操纵切片/切片平面),但是本发明的实施方案利用作为模型本身的更紧凑和不同的表示的体素数据。在这点上,本发明的实施方案不是在具有高密度数据的客户端上开始,而是用可使用GPU(而不是服务器侧渲染)最佳地处理的可控制分辨率元素开始。以下将详细地描述实现这种双模式系统的各种技术支持方面。
代理对象创建
为了支持以最小延时进行动态操作,在服务器侧206上创建代理对象。该代理对象不使用来自模拟网格/解算器堆栈中的原始网格。相反,代理是特殊的基于体素的表示,其非常紧凑地从客户端传送到服务器并且还使得能够在客户端侧上进行非常高效的处理。创建体素域以完全地包含模拟网格。此后,将来自模拟的结果映射到体素网格上以根据正在可视化的量来确定顶点值。
更具体地,代理对象是模拟网格的作为均匀或非均匀栅格的表示。代理对象中的每个元素都含有模拟网格中的每个结果集的值(标量或向量)。对于给定结果集,通过建立元素的中心相对于模拟网格中的其内含有该元素的图元(三角形、四面体、六面体)的空间权重来确定代理对象中的给定元素的值。这些权重用于在模拟网格图元的顶点处内插值并针对该给定结果集导出代理对象元素的单个值。对于非均匀栅格,使用八叉树方法来将均匀栅格彼此嵌套,使得对于在栅格中的给定元素,它含有结果值或对另一个栅格的引用。可组合结果集,使得代理对象中的每个元素都含有多个值,或者每个结果集都可存在代理对象。
代理数据传送到客户端
代理体素数据以非常高效的方式传输到客户端侧。由于它是体素对象,因此只通过指定体素域在三(3)个方向上的范围和在每个方向上的(最小,最大)坐标以及在三个方向上的体素分割次数就可传送网格的“几何形状”。结果值是使用(可选的)量化非常高效地压缩的单个阵列。代理体素数据针对每个代理对象发送一次,并且不需要针对由代理对象表示的每个结果集发送。表A示出了根据本发明的一个或多个实施方案利用6次体素分割的示例性表/阵列。
表A
x | Y | z | |
最小 | 10.0 | 0.0 | 5.0 |
最大 | 20.0 | 10.0 | 15.0 |
体素分割次数 | 6 | 6 | 6 |
表B示出了根据本发明的一个或多个实施方案利用12次体素分割的示例性表/阵列。
表A
图3A和图3B是分别基于表A和表B的代理体素数据的2D表示图。在图3A和图3B两者中,左下角302代表最小(x,y,z)坐标,并且右上角304代表最大坐标。在图3A与图3B之间的差异是如在表A和表B中所反映的每一对象的体素分割次数(图3A中的6次体素分割和图3B中的12次体素分割)。
代理体素数据的处理
在客户端侧上,使用GPU API(应用程序编程接口)以非常高效的方式处理代理体素数据。例如,客户端可以是使用WEBGL或WEBGPU的浏览器并加以利用。替代地,客户端可以是使用DIRECTX、OPENGL、VULKAN和/或METAL的本机应用程序。可使用专门方法,该专门方法使得能够使用GPU API操作来高效地处理代理体素网格,以为动态操作提供显示的结果(例如,将切片平面移动通过模型,动态地改变等值面轮廓范围等)。使用专门方法对于避免与使用解释语言(例如,JAVASCRIPT语言)相关联的性能降级是必不可少的。预览渲染在交互式操作(比如将切片平面移动经过体积)期间提供动态且流畅的行为。所得的渲染足以通过交互式改变来获取对数据变化的准确感觉。
除了以上内容之外,在客户端上,本发明的实施方案可使用GPU API的3D纹理的定义来存储均匀栅格。针对空间中的给定点执行(GPU的)顶点着色器,并且使用表A中的数据,可将其变换到纹理空间中以执行对纹理的查找并获取对应于正在处理的顶点的值。该值可以是代表点/字形大小/颜色的标量值或代表字形取向/大小/颜色的向量值。向量值还可用于生成几何形状,诸如用于流体模拟的流线。
一旦预览渲染完成,在来自服务器侧的真实多边形渲染变得可用时,就用该真实多边形渲染替换预览(术语“双模式”后处理源自这种形式)。双模式操作包括在客户端上使用代理数据作为源对模型执行操作(例如,编辑或修改),其中显示结果以向用户提供即时反馈。同时地,向服务器发出请求以对模拟网格执行相同操作,然后,向用户显示对该请求的响应,并且丢弃对代理数据执行的操作的结果。结果就是用户经由较低分辨率代理网格(例如,更加像素化的网格)获取即时反馈,同时服务器计算对模拟网格的操作。
除了以上内容之外,一旦模拟网格已经完成其操作,它就可立即被传送到客户端,或者可能有延时。例如,本发明的实施方案可在开始传送之前等待用户停止移动/调整CAD模型(例如,一旦用户停止移动,传送就开始)。在一个或多个实施方案中,目标是将最终状态而不是中间切片从服务器传输到客户端。在这点上,只要在用户的运动中略有停顿,模型的受影响区域的切片就可能被传送,但是如果用户再次开始移动,则该切片可能被扔掉/丢弃。
另外,可执行用于使用GPU而不是CPU来进行预览渲染的新颖方法。例如,对于动态等值面,当用户将等值面动态地扫掠过体积(例如,通过改变当前绘制的等值)时,可通过渲染“填充”体素体积的N个平行矩形来绘制每个等值表面(N可以是大约256至1024)。然后,可使用自定义片段着色器,该自定义片段着色器基于向体素栅格的内插来简单地查找“片段处的值”。这允许每个矩形显示单个等值轮廓。当组合足够数量的轮廓时,给出的结果大致相当于使用移动立方体/四面体类型方法的高保真等值面渲染。
图4A和图4B示出了根据本发明的一个或多个实施方案的体积切片的使用。继续以上对GPU的示例性新颖使用,可渲染与体积402相交的一系列矩形(对于用户指定的等值)。在GPU中,从连续图元创建离散片段。如本文所使用,栅格上的点也可称为片段,并且每个片段对应于帧缓冲器中的一个像素,并且这对应于显示屏的一个像素。由GPU生成的每个片段被变换为纹理坐标,并且可使用该纹理坐标对体积402进行采样。将采样值与给定的等值进行比较,以确定是否丢弃该片段。如图4B所示,从后向前绘制矩形“切片”404并且将其彼此混合以将实体体积的外观作为即时反馈提供给用户。同时地,向服务器发出请求以使用提供的等值和模拟网格来生成等值面。当接收到来自服务器的等值面响应时,显示等值面响应并丢弃切片404。
逻辑流程
图5示出了根据本发明的一个或多个实施方案的用于在计算机辅助设计(CAD)中进行动态模拟的逻辑流程。
在步骤502处,在服务器上获取CAD模型。
在步骤504处,在服务器上为CAD模型创建代理对象。代理对象是CAD模型的基于体素的表示,并且代理对象完全地包含CAD模型的模拟网格。代理对象的分辨率与模拟网格的分辨率相比更低。
在步骤506处,向客户端传输代理对象。所传输的代理对象由以下项组成:(a)基于体素的表示的体素域在三(3)个方向上的范围;(b)在三个方向中的每一者上的最小坐标和最大坐标;以及(c)在三个方向上的体素分割次数。
在步骤508处,在客户端上处理代理对象。该处理使得能够进行CAD模型的动态交互式渲染操作。在一个或多个实施方案中,在客户端上使用图形处理单元(GPU)来处理代理对象。动态交互式渲染操作可包括将等值面扫掠过代理对象。在这点上,处理步骤508(在客户端上)可包括通过渲染填充代理对象的基于体素的表示的体素的体积的平行矩形来绘制每个等值面。此后,可基于向基于体素的表示的栅格中内插来查找在片段处的值(经由GPU的片段着色器)。基于体素的表示的每个矩形显示单个等值轮廓。另外,可组合多个单个等值轮廓。
在步骤510处,在服务器上处理模拟网格。
在步骤512处,在完成模拟网格的处理后,用来自模拟网格的真实多边形渲染替换客户端上的代理对象。
除了以上内容之外,步骤502还可提供代理对象是模拟网格的表示。在这点上,代理对象中的每个元素含有模拟网格中的每个结果集的值,并且对于模拟网格中的给定结果集,通过以下操作来确定代理对象中的给定元素的值:(a)建立给定元素的中心相对于模拟网格中的其内含有给定元素的一个或多个图元的一个或多个空间权重;(b)在模拟网格中使用一个或多个空间权重在一个或多个图元的顶点处内插一个或多个顶点值;以及(c)针对模拟网格中的给定结果集导出代理对象中的给定元素的单个值(单个值是基于一个或多个顶点值)。
步骤508至512还可包括与对CAD模型执行(动态)操作有关的各种附加步骤。具体地,在客户端上使用代理对象作为源对CAD模型执行操作。此后,在客户端上,以动态反馈(即,基于代理对象)动态地渲染和显示操作的结果。与在客户端上执行操作同时地,向服务器发送请求以对模拟网格执行相同操作。在客户端上从服务器接收响应(对请求的响应)。然后,在客户端上渲染和显示响应,而不是代理对象操作结果(即,而不是基于代理对象在客户端上执行的操作)。
结论
本发明的优选实施方案的描述到此结束。以下描述了用于完成本发明的一些替代性实施方案。例如,任何类型的计算机(诸如大型计算机、小型计算机或个人计算机)或计算机配置(诸如分时大型计算机、局域网或独立个人计算机)都可与本发明一起使用。
鉴于以上内容,本发明实施方案提供了一种用于CAE/Sim零客户端的双模式后处理系统。另外,实施方案使用基于体素栅格的“代理”或“替身”模型来近似全物理模型。该体素模型使得能够进行非常高效的服务器-客户端信息传递。另外,本发明的实施方案使用独特的基于GPU的渲染技术来为动态操作构建快速预览。
本发明的优选实施方案的前述描述已经出于说明和描述的目的而呈现。前述描述不旨在是详尽的或将本发明限制于所公开的精确形式。鉴于以上教导,本发明的许多修改和变化是可能的。本发明的范围不旨在受限于该详细描述,而是受限于所附权利要求书。
Claims (12)
1.一种用于在计算机辅助设计(CAD)应用程序中进行动态模拟的计算机实现的方法,所述计算机实现的方法包括:
(a)在服务器上获取CAD模型;
(b)在所述服务器上为所述CAD模型创建代理对象,其中所述代理对象包括所述CAD模型的基于体素的表示,并且其中所述代理对象完全地包含所述CAD模型的模拟网格;
(c)向客户端传输所述代理对象,其中被传输的所述代理对象包括:
(i)所述基于体素的表示的体素域在三(3)个方向上的范围;
(ii)在所述三个方向中的每一者上的最小坐标和最大坐标;以及
(iii)在所述三个方向上的体素分割次数;
(d)在所述客户端上处理所述代理对象,其中所述处理使得能够进行所述CAD模型的动态交互式渲染操作;
(e)在所述服务器上处理所述模拟网格;以及
(f)在完成所述模拟网格的所述处理后,用来自所述模拟网格的真实多边形渲染替换所述客户端上的所述代理对象。
2.如权利要求1所述的计算机实现的方法,其中:
所述代理对象包括所述模拟网格的表示;
所述代理对象中的每个元素含有所述模拟网格中的每个结果集的值;
对于所述模拟网格中的给定结果集,通过以下操作来确定所述代理对象中的给定元素的所述值:
建立所述给定元素的中心相对于所述模拟网格中的其内含有所述给定元素的一个或多个图元的一个或多个空间权重;
在所述模拟网格中使用所述一个或多个空间权重在所述一个或多个图元的顶点处内插一个或多个顶点值;以及
针对所述模拟网格中的给定结果集导出所述代理对象中的所述给定元素的单个值,其中所述单个值是基于所述一个或多个顶点值。
3.如权利要求1所述的计算机实现的方法,其中在所述客户端上处理、在所述服务器上处理所述模拟网格和替换所述代理对象包括:
在所述客户端上使用所述代理对象作为源对所述CAD模型执行操作;
基于所述代理对象在所述客户端上以动态反馈动态地渲染和显示所述操作的结果;
与在所述客户端上执行所述操作同时地,请求所述服务器对所述模拟网格执行相同操作;
在所述客户端上接收来自所述服务器的响应;
在所述客户端上显示和渲染所述响应,而不是基于所述代理对象在所述客户端上执行的所述操作的所述结果。
4.如权利要求1所述的计算机实现的方法,其中所述代理对象的分辨率与所述模拟网格的分辨率相比更低。
5.如权利要求1所述的计算机实现的方法,其中在所述客户端上使用图形处理单元(GPU)来处理所述代理对象。
6.如权利要求5所述的计算机实现的方法,其中:
所述动态交互式渲染操作包括将等值面扫掠过所述代理对象;
在所述客户端上处理包括通过渲染填充所述代理对象的所述基于体素的表示的体素的体积的平行矩形来绘制所述等值面;
基于向所述基于体素的表示的栅格中的内插来经由所述GPU的片段着色器查找片段处的值;
所述基于体素的表示的每个矩形显示单个等值轮廓;以及
组合多个单个等值轮廓。
7.一种用于在计算机辅助设计(CAD)应用程序中进行动态模拟的计算机实现的系统,所述计算机实现的系统包括:
(a)客户端计算机,所述客户端计算机具有客户端存储器;
(b)服务器计算机,所述服务器计算机具有服务器存储器;
(c)客户端处理器,所述客户端处理器在所述客户端计算机上执行;
(d)服务器处理器,所述服务器处理器在所述服务器计算机上执行;
(e)所述服务器存储器,所述服务器存储器存储服务器指令集,其中所述服务器指令集在由所述服务器处理器执行时致使所述服务器处理器执行操作,所述操作包括:
(i)在所述服务器计算机上获取CAD模型;
(ii)在所述服务器计算机上为所述CAD模型创建代理计算对象,其中所述代理对象包括所述CAD模型的基于体素的表示,并且其中所述代理对象完全地包含所述CAD模型的模拟网格;
(iii)向所述客户端计算机传输所述代理对象,其中被传输的所述代理对象包括:
(1)所述基于体素的表示的体素域在三(3)个方向上的范围;
(2)在所述三个方向中的每一者上的最小坐标和最大坐标;以及
(3)在所述三个方向上的体素分割次数;
(f)所述客户端存储器,所述客户端存储器存储客户端指令集,其中所述客户端指令集在由所述客户端处理器执行时致使所述客户端处理器执行操作,所述操作包括:
(i)在所述客户端计算机上处理所述代理对象,其中所述处理使得能够进行所述CAD模型的动态交互式渲染操作;
(ii)请求在所述服务器计算机上处理所述模拟网格;以及
(iii)在完成在所述服务器计算机上处理所述模拟网格后,用来自所述模拟网格的真实多边形渲染替换所述客户端计算机上的所述代理对象。
8.如权利要求7所述的计算机实现的系统,其中:
所述代理对象包括所述模拟网格的表示;
所述代理对象中的每个元素含有所述模拟网格中的每个结果集的值;
对于所述模拟网格中的给定结果集,通过以下操作来确定所述代理对象中的给定元素的所述值:
建立所述给定元素的中心相对于所述模拟网格中的其内含有所述给定元素的一个或多个图元的一个或多个空间权重;
在所述模拟网格中使用所述一个或多个空间权重在所述一个或多个图元的顶点处内插一个或多个顶点值;以及
针对所述模拟网格中的给定结果集导出所述代理对象中的所述给定元素的单个值,其中所述单个值是基于所述一个或多个顶点值。
9.如权利要求7所述的计算机实现的系统,其中在所述客户端计算机上处理、在所述服务器计算机上处理所述模拟网格和替换所述代理对象包括:
在所述客户端计算机上使用所述代理对象作为源对所述CAD模型执行操作;
基于所述代理对象在所述客户端计算机上以动态反馈动态地渲染和显示所述操作的结果;
与在所述客户端计算机上执行所述操作同时地,请求所述服务器计算机对所述模拟网格执行相同操作;
在所述客户端计算机上接收来自所述服务器计算机的响应;
在所述客户端计算机上显示和渲染所述响应,而不是基于所述代理对象在所述客户端计算机上执行的所述操作的所述结果。
10.权利要求7所述的计算机实现的系统,其中所述代理对象的分辨率与所述模拟网格的分辨率相比更低。
11.如权利要求7所述的计算机实现的系统,其中在所述客户端计算机上使用图形处理单元(GPU)来处理所述代理对象。
12.如权利要求11所述的计算机实现的系统,其中:
所述动态交互式渲染操作包括将等值面扫掠过所述代理对象;
在所述客户端计算机上处理包括通过渲染填充所述代理对象的所述基于体素的表示的体素的体积的平行矩形来绘制所述等值面;
基于向所述基于体素的表示的栅格中的内插来经由所述GPU的片段着色器查找片段处的值;
所述基于体素的表示的每个矩形显示单个等值轮廓;以及
组合多个单个等值轮廓。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/687,379 US11803674B2 (en) | 2019-11-18 | 2019-11-18 | Dual mode post processing |
US16/687,379 | 2019-11-18 | ||
PCT/US2020/058737 WO2021101703A1 (en) | 2019-11-18 | 2020-11-03 | Dual mode post processing |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114730349A true CN114730349A (zh) | 2022-07-08 |
Family
ID=75909535
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202080079892.2A Pending CN114730349A (zh) | 2019-11-18 | 2020-11-03 | 双模式后处理 |
Country Status (4)
Country | Link |
---|---|
US (1) | US11803674B2 (zh) |
EP (1) | EP4062310A4 (zh) |
CN (1) | CN114730349A (zh) |
WO (1) | WO2021101703A1 (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11217016B1 (en) * | 2020-11-24 | 2022-01-04 | Electronic Arts Inc. | Systems and methods for generating a proxy mesh for an artist-authored mesh using conformed smoothing |
CN116168131B (zh) * | 2022-12-09 | 2023-11-21 | 北京百度网讯科技有限公司 | 布料的渲染处理方法、装置、电子设备及存储介质 |
CN116090313A (zh) * | 2023-03-07 | 2023-05-09 | 浙江大学 | 一种基于拓展体素的保持设计特征的cad模型仿真方法 |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6831642B2 (en) * | 2002-07-19 | 2004-12-14 | Silicon Graphics, Inc. | Method and system for forming an object proxy |
JP4337987B2 (ja) * | 2004-08-02 | 2009-09-30 | 国立大学法人京都大学 | 情報処理装置およびプログラム |
US9002946B2 (en) * | 2010-08-25 | 2015-04-07 | Autodesk, Inc. | Dual modeling environment in which commands are executed concurrently and independently on both a light weight version of a proxy module on a client and a precise version of the proxy module on a server |
US8838419B2 (en) | 2011-06-24 | 2014-09-16 | Mitsubishi Electric Research Laboratories, Inc. | System and method for simulating machining objects |
US9152740B1 (en) | 2012-01-18 | 2015-10-06 | Msc.Software Corporation | Interactive simulation and solver for mechanical, fluid, and electro-mechanical systems |
EP2750105A1 (en) * | 2012-12-31 | 2014-07-02 | Dassault Systèmes | Streaming a simulated three-dimensional modeled object from a server to a remote client |
CA2842975C (en) * | 2013-02-14 | 2021-10-19 | TeamUp Technologies, Inc. | Collaborative, multi-user system for viewing, rendering, and editing 3d assets |
WO2016142787A1 (en) * | 2015-03-12 | 2016-09-15 | Happy L-Lord AB | System, method and device for three-dimensional voxel-based modeling |
EP3185214A1 (en) * | 2015-12-22 | 2017-06-28 | Dassault Systèmes | Streaming of hybrid geometry and image based 3d objects |
WO2018186758A1 (en) * | 2017-04-07 | 2018-10-11 | Auckland Uniservices Limited | System for transmitting and viewing a series of images |
WO2020097343A1 (en) * | 2018-11-08 | 2020-05-14 | Immersive Visualization, Inc. | Interactive system and method providing real-time virtual reality visualization of simulation data |
-
2019
- 2019-11-18 US US16/687,379 patent/US11803674B2/en active Active
-
2020
- 2020-11-03 CN CN202080079892.2A patent/CN114730349A/zh active Pending
- 2020-11-03 WO PCT/US2020/058737 patent/WO2021101703A1/en unknown
- 2020-11-03 EP EP20890822.8A patent/EP4062310A4/en active Pending
Also Published As
Publication number | Publication date |
---|---|
EP4062310A4 (en) | 2023-01-04 |
US11803674B2 (en) | 2023-10-31 |
EP4062310A1 (en) | 2022-09-28 |
WO2021101703A1 (en) | 2021-05-27 |
US20210150000A1 (en) | 2021-05-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Wheeler et al. | Virtual interaction and visualisation of 3D medical imaging data with VTK and Unity | |
US10290144B2 (en) | Three-dimensional modelling with improved virtual reality experience | |
US11436800B2 (en) | Interactive system and method providing real-time virtual reality visualization of simulation data | |
US9704055B2 (en) | Occlusion render mechanism for point clouds | |
US8154544B1 (en) | User specified contact deformations for computer graphics | |
CN114730349A (zh) | 双模式后处理 | |
US11210865B2 (en) | Visually interacting with three dimensional data in augmented or virtual reality | |
EP3211601B1 (en) | Rendering the global illumination of a 3d scene | |
CN113034656A (zh) | 游戏场景中光照信息的渲染方法、装置及设备 | |
US20230022985A1 (en) | Methods and apparatus to facilitate 3d object visualization and manipulation across multiple devices | |
CN115803782A (zh) | 具有实时深度图的感受几何结构的增强现实效果 | |
KR20190048507A (ko) | 3차원 메쉬 데이터 간소화 방법 및 장치 | |
US6831642B2 (en) | Method and system for forming an object proxy | |
EP4287134A1 (en) | Method and system for generating polygon meshes approximating surfaces using root-finding and iteration for mesh vertex positions | |
KR101467735B1 (ko) | 볼륨데이터를 위한 4차원 실시간 렌더링 방법 및 장치 | |
Zhang | Medical Data and Mathematically Modeled Implicit Surface Real-Rime Visualization in Web Browsers | |
CN114020390A (zh) | Bim模型显示方法、装置、计算机设备和存储介质 | |
US11954802B2 (en) | Method and system for generating polygon meshes approximating surfaces using iteration for mesh vertex positions | |
US20230394767A1 (en) | Method and system for generating polygon meshes approximating surfaces using root-finding and iteration for mesh vertex positions | |
US11875445B2 (en) | Seamless image processing of a tiled image region | |
WO2022135050A1 (zh) | 渲染方法、设备以及系统 | |
Wang et al. | 3D Reconstruction of Images Based on Embedded Processors | |
TW202341062A (zh) | 計算機圖形處理方法以及系統 | |
CN116894897A (zh) | 计算机图形处理方法以及系统 | |
Pethrus Engström | Volumetric Terrain Genereation on the GPU: A modern GPGPU approach to Marching Cubes |
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 | ||
CB02 | Change of applicant information |
Address after: California, USA Applicant after: AUTODESK, Inc. Address before: California, USA Applicant before: AUTODESK, Inc. |
|
CB02 | Change of applicant information |