CN118035479A - 基于图片推流的三维可视化交互方法和系统 - Google Patents
基于图片推流的三维可视化交互方法和系统 Download PDFInfo
- Publication number
- CN118035479A CN118035479A CN202410170557.3A CN202410170557A CN118035479A CN 118035479 A CN118035479 A CN 118035479A CN 202410170557 A CN202410170557 A CN 202410170557A CN 118035479 A CN118035479 A CN 118035479A
- Authority
- CN
- China
- Prior art keywords
- dimensional model
- client
- server
- operation instruction
- picture
- 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
- 238000000034 method Methods 0.000 title claims abstract description 94
- 230000003993 interaction Effects 0.000 title claims abstract description 61
- 230000000007 visual effect Effects 0.000 title claims abstract description 48
- 238000009877 rendering Methods 0.000 claims description 56
- 238000012800 visualization Methods 0.000 claims description 21
- 230000005540 biological transmission Effects 0.000 claims description 4
- 230000002452 interceptive effect Effects 0.000 claims description 4
- 238000006243 chemical reaction Methods 0.000 claims description 3
- 230000000694 effects Effects 0.000 abstract description 37
- 230000006835 compression Effects 0.000 abstract description 7
- 238000007906 compression Methods 0.000 abstract description 7
- 230000009467 reduction Effects 0.000 abstract description 7
- 238000013079 data visualisation Methods 0.000 abstract description 2
- 230000008569 process Effects 0.000 description 24
- 238000004364 calculation method Methods 0.000 description 19
- 238000004891 communication Methods 0.000 description 11
- 238000005516 engineering process Methods 0.000 description 11
- 239000000463 material Substances 0.000 description 11
- 238000004590 computer program Methods 0.000 description 10
- 238000013499 data model Methods 0.000 description 9
- 238000004519 manufacturing process Methods 0.000 description 8
- 238000005457 optimization Methods 0.000 description 7
- 238000003860 storage Methods 0.000 description 7
- 238000010586 diagram Methods 0.000 description 5
- 230000001427 coherent effect Effects 0.000 description 4
- 230000006870 function Effects 0.000 description 4
- 238000005286 illumination Methods 0.000 description 4
- 238000007794 visualization technique Methods 0.000 description 4
- 230000008859 change Effects 0.000 description 3
- 238000010276 construction Methods 0.000 description 3
- 238000009499 grossing Methods 0.000 description 3
- 238000013507 mapping Methods 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 239000004984 smart glass Substances 0.000 description 3
- 238000013519 translation Methods 0.000 description 3
- 210000000988 bone and bone Anatomy 0.000 description 2
- 239000000872 buffer Substances 0.000 description 2
- 238000004040 coloring Methods 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 230000006872 improvement Effects 0.000 description 2
- 238000009434 installation Methods 0.000 description 2
- 238000012805 post-processing Methods 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 238000004088 simulation Methods 0.000 description 2
- 238000012549 training Methods 0.000 description 2
- 239000013598 vector Substances 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000003745 diagnosis Methods 0.000 description 1
- 239000003814 drug Substances 0.000 description 1
- 238000009776 industrial production Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 210000000056 organ Anatomy 0.000 description 1
- 230000001737 promoting effect Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/50—Information retrieval; Database structures therefor; File system structures therefor of still image data
- G06F16/54—Browsing; Visualisation therefor
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T13/00—Animation
- G06T13/20—3D [Three Dimensional] animation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/02—Non-photorealistic rendering
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/04—Texture mapping
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Graphics (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- General Engineering & Computer Science (AREA)
- Processing Or Creating Images (AREA)
Abstract
本申请公开了一种基于图片推流的三维可视化交互方法和系统,属于数据可视化技术领域。方法包括:服务器读取三维模型文件,基于三维模型文件在内存中渲染图片得到三维模型;客户端接收用户对三维模型的操作事件,将操作事件转换为操作指令,将操作指令发送至服务器;服务器根据操作指令对三维模型进行操作,将操作三维模型产生的动画进行渲染得到图片数据,将图片数据传输至客户端。本申请实施例通过利用性能相对于普通客户端高的服务器,读取和渲染三维模型,根据操作指令以图片推流的形式,将操作三维模型产生的动画传输给客户端,实现在不降噪、不简化模型,不压缩模型的情况下,仍然能够快速加载三维模型,实现清晰流畅的远程交互效果。
Description
技术领域
本申请属于数据可视化技术领域,尤其涉及一种基于图片推流的三维可视化交互方法和系统。
背景技术
在三维可视化领域中,人们面临着越来越多来自各种数字化连接源的数据,这些数据以各种格式呈现。近年来,作为理解大规模复杂数据的重要技术,三维可视化技术经常被引入各种分析预测等场景中,三维可视化作为一种强大的数据表达和交互工具,具有巨大的潜力,可以帮助人们更好地理解和分析模型,从而推动生产的创新和效率提升。
当前三维可视化技术在智能制造的应用,主要以Web3D引擎在客户端浏览器中加载3D模型并呈现。
浏览器加载工业级高精度模型遇到的第一个问题就是模型过大,浏览器限制了文件加载大小不能超过1G,超过这个量级会直接导致浏览器崩溃,然而工业高精度模型往往具备数据量大、结构复杂、精度要求高的特点,常见的CAD模型文件大小超过10个G都是常见的事情。
许多系统为了能让浏览器能够加载模型,往往采用模型降噪、简化模型、压缩模型等方式来减少模型体积(往往是降维到100M~400M左右),导致加载显示的模型只能看到外观轮廓或局部显示,降噪和简化模型又使得模型的内部细节、纹理、材质、零部件,管线与原图纸有较大差异,难以做到真实的仿真模拟满足工业领域的应用场景。
发明内容
本申请旨在至少解决现有技术中存在的技术问题之一。为此,本申请提出一种基于图片推流的三维可视化交互方法和系统,以实现清晰流畅的远程交互效果。
第一方面,本申请提供了一种基于图片推流的三维可视化交互方法,包括:
服务器读取三维模型文件,基于所述三维模型文件在内存中渲染图片得到三维模型;
客户端接收用户对所述三维模型的操作事件,将所述操作事件转换为操作指令,将所述操作指令发送至服务器;
所述服务器根据所述操作指令对所述三维模型进行操作,将操作所述三维模型产生的动画进行渲染得到图片数据,将所述图片数据传输至所述客户端。
根据本申请的基于图片推流的三维可视化交互方法,通过服务器读取三维模型文件,基于所述三维模型文件在内存中渲染图片得到三维模型;客户端接收用户对所述三维模型的操作事件,将所述操作事件转换为操作指令,将所述操作指令发送至服务器;所述服务器根据所述操作指令对所述三维模型进行操作,将操作所述三维模型产生的动画进行渲染得到图片数据,将所述图片数据传输至所述客户端。本申请实施例通过利用性能相对于普通客户端高的服务器,读取和渲染三维模型,客户端将用户在客户端侧针对三维模型的操作事件,经过逻辑计算转为服务器可识别的操作指令,服务器再根据操作指令在服务器侧对三维模型进行操作,并将操作过程中所产生的动画渲染成为图片,将这些图片以数据流的方式推送给客户端,使得用户在客户端侧操作三维模型能够得到相应的反馈,通过这种图片推流的形式,客户端无需在本地存储并运行三维模型,而是通过服务器操作三维模型产生的动画通过图片传输给客户端,从而实现在不降噪、不简化模型,不压缩模型的情况下,仍然能够快速加载三维模型,实现清晰流畅的远程交互效果。
根据本申请的一个实施例,所述方法还包括:
所述客户端接收所述图片数据,基于所述操作事件可视化展示所述图片数据。
该实施例中,客户端通过在接收到图片数据后,基于用户针对三维模型的操作事件可是化展示这些图片数据,保证了用户在操作三维模型后,快速呈现操作三维模型所带来的动画效果。
根据本申请的一个实施例,所述方法还包括:
所述服务器基于客户端可视化的流畅度需求确定每秒向所述客户端传输图片的目标数量;
所述将所述图片数据传输至所述客户端,包括:以每秒传输所述目标数量的图片的方式将所述图片数据传输至所述客户端。
该实施例中,服务器可以根据客户端侧的清晰度需求确定每秒向客户端传输图片的数量,若清晰度需求高则可以每秒传输较多数量的图片,以使得客户端在接收到图片后可视化展示的动画效果更加连贯清晰。
根据本申请的一个实施例,所述方法还包括:
在用户停止对所述三维模型进行操作的情况下,所述服务器获取用户停止对所述三维模型进行操作之前渲染得到最后一帧图片;将分辨率大于预设值的最后一帧图片传输至所述客户端。
该实施例中,服务器能够获知用户是否对三维模型停止操作,若停止操作,则可以将停止操作前的最后一帧图片的高分辨率版本传输至客户端,以使得客户端侧呈现的静止画面显示效果更加清晰。
第二方面,本申请提供了一种基于图片推流的三维可视化交互方法,应用于客户端,包括:
接收用户三维模型的操作事件;其中,所述三维模型是服务器读取三维模型文件,基于所述三维模型文件在内存中渲染图片得到;
将所述操作事件转换为操作指令;
将所述操作指令发送至服务器,以便于服务器根据所述操作指令对所述三维模型进行操作,将操作所述三维模型产生的动画进行渲染得到图片数据,将所述图片数据传输至所述客户端。
根据本申请的基于图片推流的三维可视化交互方法,通过接收用户三维模型的操作事件;其中,所述三维模型是服务器读取三维模型文件,基于所述三维模型文件在内存中渲染图片得到;将所述操作事件转换为操作指令;将所述操作指令发送至服务器,以便于服务器根据所述操作指令对所述三维模型进行操作,将操作所述三维模型产生的动画进行渲染得到图片数据,将所述图片数据传输至所述客户端。本申请实施例通过利用性能相对于普通客户端高的服务器,读取和渲染三维模型,客户端将用户在客户端侧针对三维模型的操作事件,经过逻辑计算转为服务器可识别的操作指令,服务器再根据操作指令在服务器侧对三维模型进行操作,并将操作过程中所产生的动画渲染成为图片,将这些图片以数据流的方式推送给客户端,使得用户在客户端侧操作三维模型能够得到相应的反馈,通过这种图片推流的形式,客户端无需在本地存储并运行三维模型,而是通过服务器操作三维模型产生的动画通过图片传输给客户端,从而实现在不降噪、不简化模型,不压缩模型的情况下,仍然能够快速加载三维模型,实现清晰流畅的远程交互效果。
根据本申请的一个实施例,所述方法还包括:
接收所述图片数据,基于所述操作事件可视化展示所述图片数据。
第三方面,本申请提供了一种基于图片推流的三维可视化交互方法,应用于服务器,包括:
读取三维模型文件,基于所述三维模型文件在内存中渲染图片得到三维模型;
根据操作指令对所述三维模型进行操作,将操作所述三维模型产生的动画进行渲染得到图片数据;其中,所述操作指令是客户端发送的,所述操作指令是客户端接收用户对所述三维模型的操作事件,将所述操作事件转换得到的;
将所述图片数据传输至所述客户端。
根据本申请的基于图片推流的三维可视化交互方法,通过读取三维模型文件,基于所述三维模型文件在内存中渲染图片得到三维模型;根据操作指令对所述三维模型进行操作,将操作所述三维模型产生的动画进行渲染得到图片数据;其中,所述操作指令是客户端发送的,所述操作指令是客户端接收用户对所述三维模型的操作事件,将所述操作事件转换得到的;将所述图片数据传输至所述客户端。本申请实施例通过利用性能相对于普通客户端高的服务器,读取和渲染三维模型,客户端将用户在客户端侧针对三维模型的操作事件,经过逻辑计算转为服务器可识别的操作指令,服务器再根据操作指令在服务器侧对三维模型进行操作,并将操作过程中所产生的动画渲染成为图片,将这些图片以数据流的方式推送给客户端,使得用户在客户端侧操作三维模型能够得到相应的反馈,通过这种图片推流的形式,客户端无需在本地存储并运行三维模型,而是通过服务器操作三维模型产生的动画通过图片传输给客户端,从而实现在不降噪、不简化模型,不压缩模型的情况下,仍然能够快速加载三维模型,实现清晰流畅的远程交互效果。
第四方面,本申请提供了一种客户端,包括:
接收模块,用于接收用户三维模型的操作事件;其中,所述三维模型是服务器读取三维模型文件,基于所述三维模型文件在内存中渲染图片得到;
转换模块,用于将所述操作事件转换为操作指令;
发送模块,用于将所述操作指令发送至服务器,以便于服务器根据所述操作指令对所述三维模型进行操作,将操作所述三维模型产生的动画进行渲染得到图片数据,将所述图片数据传输至所述客户端。
根据本申请的客户端,通过接收用户三维模型的操作事件;其中,所述三维模型是服务器读取三维模型文件,基于所述三维模型文件在内存中渲染图片得到;将所述操作事件转换为操作指令;将所述操作指令发送至服务器,以便于服务器根据所述操作指令对所述三维模型进行操作,将操作所述三维模型产生的动画进行渲染得到图片数据,将所述图片数据传输至所述客户端。本申请实施例通过利用性能相对于普通客户端高的服务器,读取和渲染三维模型,客户端将用户在客户端侧针对三维模型的操作事件,经过逻辑计算转为服务器可识别的操作指令,服务器再根据操作指令在服务器侧对三维模型进行操作,并将操作过程中所产生的动画渲染成为图片,将这些图片以数据流的方式推送给客户端,使得用户在客户端侧操作三维模型能够得到相应的反馈,通过这种图片推流的形式,客户端无需在本地存储并运行三维模型,而是通过服务器操作三维模型产生的动画通过图片传输给客户端,从而实现在不降噪、不简化模型,不压缩模型的情况下,仍然能够快速加载三维模型,实现清晰流畅的远程交互效果。
第五方面,本申请提供了一种服务器,包括:
读取模块,用于读取三维模型文件,基于所述三维模型文件在内存中渲染图片得到三维模型;
渲染模块,用于根据操作指令对所述三维模型进行操作,将操作所述三维模型产生的动画进行渲染得到图片数据;其中,所述操作指令是客户端发送的,所述操作指令是客户端接收用户对所述三维模型的操作事件,将所述操作事件转换得到的;
传输模块,用于将所述图片数据传输至所述客户端。
根据本申请的服务器,通过读取三维模型文件,基于所述三维模型文件在内存中渲染图片得到三维模型;根据操作指令对所述三维模型进行操作,将操作所述三维模型产生的动画进行渲染得到图片数据;其中,所述操作指令是客户端发送的,所述操作指令是客户端接收用户对所述三维模型的操作事件,将所述操作事件转换得到的;将所述图片数据传输至所述客户端。本申请实施例通过利用性能相对于普通客户端高的服务器,读取和渲染三维模型,客户端将用户在客户端侧针对三维模型的操作事件,经过逻辑计算转为服务器可识别的操作指令,服务器再根据操作指令在服务器侧对三维模型进行操作,并将操作过程中所产生的动画渲染成为图片,将这些图片以数据流的方式推送给客户端,使得用户在客户端侧操作三维模型能够得到相应的反馈,通过这种图片推流的形式,客户端无需在本地存储并运行三维模型,而是通过服务器操作三维模型产生的动画通过图片传输给客户端,从而实现在不降噪、不简化模型,不压缩模型的情况下,仍然能够快速加载三维模型,实现清晰流畅的远程交互效果。
第六方面,本申请提供了一种基于图片推流的三维可视化交互系统,包括如上述第四方面所述的客户端和如上述第五方面所述的服务器。
第七方面,本申请提供了一种电子设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如上述第二方面或第三方面所述的基于图片推流的三维可视化交互方法。
第八方面,本申请提供了一种非暂态计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如上述第二方面或第三方面所述的基于图片推流的三维可视化交互方法。
第九方面,本申请提供了一种芯片,所述芯片包括处理器和通信接口,所述通信接口和所述处理器耦合,所述处理器用于运行程序或指令,实现如上述第二方面或第三方面所述的基于图片推流的三维可视化交互方法。
第十方面,本申请提供了一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时实现如上述第二方面或第三方面所述的基于图片推流的三维可视化交互方法。
本申请实施例中的上述一个或多个技术方案,至少具有如下技术效果之一:
根据本申请的基于图片推流的三维可视化交互方法,通过服务器读取三维模型文件,基于所述三维模型文件在内存中渲染图片得到三维模型;客户端接收用户对所述三维模型的操作事件,将所述操作事件转换为操作指令,将所述操作指令发送至服务器;所述服务器根据所述操作指令对所述三维模型进行操作,将操作所述三维模型产生的动画进行渲染得到图片数据,将所述图片数据传输至所述客户端。本申请实施例通过利用性能相对于普通客户端高的服务器,读取和渲染三维模型,客户端将用户在客户端侧针对三维模型的操作事件,经过逻辑计算转为服务器可识别的操作指令,服务器再根据操作指令在服务器侧对三维模型进行操作,并将操作过程中所产生的动画渲染成为图片,将这些图片以数据流的方式推送给客户端,使得用户在客户端侧操作三维模型能够得到相应的反馈,通过这种图片推流的形式,客户端无需在本地存储并运行三维模型,而是通过服务器操作三维模型产生的动画通过图片传输给客户端,从而实现在不降噪、不简化模型,不压缩模型的情况下,仍然能够快速加载三维模型,实现清晰流畅的远程交互效果。
进一步的,在一些实施例中,客户端通过在接收到图片数据后,基于用户针对三维模型的操作事件可是化展示这些图片数据,保证了用户在操作三维模型后,快速呈现操作三维模型所带来的动画效果。
更进一步的,在一些实施例中,服务器可以根据客户端侧的清晰度需求确定每秒向客户端传输图片的数量,若清晰度需求高则可以每秒传输较多数量的图片,以使得客户端在接收到图片后可视化展示的动画效果更加连贯清晰。
更进一步的,在一些实施例中,服务器能够获知用户是否对三维模型停止操作,若停止操作,则可以将停止操作前的最后一帧图片的高分辨率版本传输至客户端,以使得客户端侧呈现的静止画面显示效果更加清晰。
本申请的附加方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本申请的实践了解到。
附图说明
本申请的上述和/或附加的方面和优点结合下面附图对实施例的描述中将变得明显和容易理解,其中:
图1是本申请实施例提供的基于图片推流的三维可视化交互系统的架构图;
图2是本申请实施例提供的基于图片推流的三维可视化交互方法的流程示意图之一;
图3是本申请实施例提供的基于图片推流的三维可视化交互方法的流程示意图之二;
图4是本申请实施例提供的基于图片推流的三维可视化交互方法的流程示意图之三;
图5是本申请实施例提供的基于图片推流的三维可视化交互装置的结构示意图之一;
图6是本申请实施例提供的基于图片推流的三维可视化交互装置的结构示意图之二;
图7是本申请实施例提供的电子设备的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员获得的所有其他实施例,都属于本申请保护的范围。
本申请的说明书和权利要求书中的术语“第一”、“第二”等是用于区别类似的对象,而不用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便本申请的实施例能够以除了在这里图示或描述的那些以外的顺序实施,且“第一”、“第二”等所区分的对象通常为一类,并不限定对象的个数,例如第一对象可以是一个,也可以是多个。此外,说明书以及权利要求中“和/或”表示所连接对象的至少其中之一,字符“/”,一般表示前后关联对象是一种“或”的关系。
三维可视化技术是一种利用计算机图形学和计算机视觉技术,包括三维建模、渲染、动画、虚拟现实等技术,将三维对象或场景以图形的形式呈现出来的技术。它可以将复杂的三维数据转化为直观的图形,使人们能够更直观地理解和分析数据。
三维可视化作为一种强大的数据表达和交互工具,具有巨大的潜力,可以帮助人们更好地理解和分析模型,从而推动生产的创新和效率提升。例如,在工业生产环节,三维可视化技术可以创建虚拟工厂环境,进行生产线的虚拟仿真和调试,通过虚拟仿真,企业可以在实际投入生产之前,评估不同方案的效果,并进行工艺优化。此外,沉浸式技术和三维可视化也被广泛应用于表示各种设备的数字结构,并模拟生产设备的内部和外部环境,从而丰富了人机通信模式,促进了专业知识与机器自动化的结合,实现更好的智能制造。三维可视化还可以用于员工培训,由计算机生成的虚拟世界中展示复杂、危险等工作场景,通过交互式的虚拟环境,提供真实的操作体验和培训内容,提高员工的技能水平和安全意识。
目前,三维可视化技术在许多领域都有广泛的应用,包括医学、工程、地理信息系统、建筑设计、游戏开发等。在医学领域,三维可视化技术可以帮助医生更清晰地观察病人的器官结构,辅助诊断和手术规划。在工程领域,三维可视化技术可以帮助工程师更直观地设计和分析产品结构。在地理信息系统领域,三维可视化技术可以帮助人们更清晰地理解地理空间数据。
当前三维可视化技术在智能制造的应用,主要依赖于三维模型的构建模拟现实的业务场景,或以Web3D引擎在客户端浏览器中加载3D模型,或以软件的形式要求客户端安装应用程序,以应用窗口的形式加载3D模型并呈现。
浏览器加载工业级高精度模型遇到的第一个问题就是模型过大,浏览器限制了文件加载大小不能超过1G,超过这个量级会直接导致浏览器崩溃,然而工业高精度模型往往具备数据量大、结构复杂、精度要求高的特点,常见的CAD模型文件大小超过10个G都是常见的事情。许多系统为了能让浏览器能够加载模型,往往采用模型降噪、简化模型、压缩模型等方式来减少模型体积(往往是降维到100M~400M左右),导致加载显示的模型只能看到外观轮廓或局部显示,降噪和简化模型又使得模型的内部细节、纹理、材质、零部件,管线与原图纸有较大差异,难以做到真实的仿真模拟满足工业领域的应用场景。此外,浏览器因性能问题,加载模型的帧率往往会低于10FPS,造成肉眼可见的卡顿,不仅效果不好,还因加载模型消耗客户端大量流量。
而以应用程序的方式将软件安装在客户端,利用客户端系统资源绘制图形,可以解决大模型加载以及性能的问题,且有不错的视觉效果。然而该方式往往对客户端的系统配置要求极高,需要配置显卡、高性能的CPU、高配置的内存等等,成本极高,在便捷性方面,客户端安装的方式难以满足使用人员对系统的便捷性要求,每个使用人员都需要安装软件,安装各种所需要的环境依赖,中途可能会遇到各种安装问题需要解决,提高了用户的学习、使用成本,不利于推广。
本申请考虑到如果能够结合工业领域的业务场景需求和使用人员情况,利用企业级服务器以图片推流呈现三维模型到终端的方式,则有望解决现有技术中采用模型降噪、简化模型、压缩模型等方式来减少模型体积导致的三维模型展示效果差的问题,实现在原图纸模型不降噪处理、不模型简化、不压缩文件的情况下,仍然能够快速加载工业级高精度超大模型,实现清晰流畅的远程交互效果。
下面结合附图,通过具体的实施例及其应用场景对本申请实施例提供的基于图片推流的三维可视化交互方法和系统进行详细地说明。
首先介绍本申请实施例提供的基于图片推流的三维可视化交互系统。如图1所示,基于图片推流的三维可视化交互系统可以包括客户端100和服务器200。
在本申请实施例中,可以基于三维模型的大小选择合适配置的服务器200。例如,对于工业级高精度模型,可以选取企业级服务器,最低配置为32G运行内存、16G的Nvidia显卡、Intel(R)Core(TM)i9-12900KF 16核处理器、10T的硬盘。模型设计人员构建级高精度设备模型(可支持像素点5700万以上,零部件4400个以上,文件大小10G以上,包含高清金材质、纹理、贴图和JSON数据),生成OBJ、FBX或STL等格式的三维模型文件,并将三维模型文件放在服务器端。
在本申请实施例中,还可以预先在服务器200中部署三维引擎,通常可以选择合适的三维引擎,比如Unity、Unreal Engine、Three.js等,然后在服务器200上安装和配置相应的引擎和相关组件。然后通过编程或可视化工具,在三维引擎中创建虚拟场景,设置摄像机的位置和视角,以及光照效果和交互器(比如鼠标和键盘控制)。
服务器200可以读取三维模型文件,然后在内存中创建对应的数据模型,并可以应用滤波器进行数据处理,比如平滑、去噪等。并配置渲染管线,包括设置材质、纹理、光照模型、阴影等参数,以达到期望的渲染效果。然后通过调用三维引擎的渲染功能,将场景渲染到内存中,并获取渲染后的三维模型,其中包含相机视角下的三维模型、纹理、贴图、材质、光照效果等。在使用OpenGL或其他图形库时,可以利用GPU或CPU进行高性能计算和图形渲染,以实现流畅的三维场景呈现。
在本申请实施例中,客户端100可以是任何可以访问网络的终端设备。该终端设备包括但不限于具有触摸敏感表面(例如,触摸屏显示器和/或触摸板)的移动电话、平板电脑、笔记本电脑等便携式通信设备。还应当理解的是,在某些实施例中,该终端设备可以不是便携式通信设备,而是具有触摸敏感表面(例如,触摸屏显示器和/或触摸板)的台式计算机。某些实施例中,该终端设备还可以是智能可穿戴设备,例如,智能手表、智能手环、智能眼镜或智能头戴设备等。
用户可以在客户端100提供的页面中对三维模型进行操作,例如用户可以在客户端100的浏览器中对三维模型进行操作,如拖拽,旋转,放大缩小,拾取等操作。客户端100在接收到用户针对三维模型的操作事件后,可以经过逻辑计算将该操作事件转换成为服务器端可识别的指令,并将该指令发送至服务器200。
服务器200在接收到该指令后,可以针对该指令对三维模型进行相应的操作。具体的,服务器200可以对该指令进行解析,根据解析得到的用户操作指令,更新三维模型的状态,对三维模型进行渲染和图像处理。服务器200将操作该三维模型过程中产生的动画进行渲染得到的图片数据编码为字节流,例如使用图片编码格式(如JPEG、PNG)对图片数据进行压缩,然后通过网络传输给客户端100。其中,每秒传输的图片数量可以根据具体的业务场景决定,例如客户端100如果对于清晰度需求高,则可以每秒传输较多数量的图片,以使得客户端100在接收到图片后可视化展示的动画效果更加连贯清晰。
客户端100接收图片数据并解码,可以使用HTML5的Canvas元素等技术在浏览器中显示图像,以响应用户在客户端100中针对三维模型的操作,实现三维可视化交互。针对服务器200每秒传输的图片数量,可以实现不同清晰程度的可视化效果,例如服务器200每秒传输24张以上的图片,则客户端100侧的视觉帧率可以保持在24FPS以上。
服务器200还可以获知用户是否对三维模型停止操作,若停止操作,则可以将停止操作前的最后一帧图片的高分辨率版本传输至客户端100,以使得客户端100侧呈现的静止画面显示效果更加清晰。
根据本申请的基于图片推流的三维可视化交互系统,通过服务器读取三维模型文件,基于三维模型文件在内存中渲染图片得到三维模型;客户端接收用户对三维模型的操作事件,将操作事件转换为操作指令,将操作指令发送至服务器;服务器根据操作指令对三维模型进行操作,将操作三维模型产生的动画进行渲染得到图片数据,将图片数据传输至客户端。本申请实施例通过利用性能相对于普通客户端高的服务器,读取和渲染三维模型,客户端将用户在客户端侧针对三维模型的操作事件,经过逻辑计算转为服务器可识别的操作指令,服务器再根据操作指令在服务器侧对三维模型进行操作,并将操作过程中所产生的动画渲染成为图片,将这些图片以数据流的方式推送给客户端,使得用户在客户端侧操作三维模型能够得到相应的反馈,通过这种图片推流的形式,客户端无需在本地存储并运行三维模型,而是通过服务器操作三维模型产生的动画通过图片传输给客户端,从而实现在不降噪、不简化模型,不压缩模型的情况下,仍然能够快速加载三维模型,实现清晰流畅的远程交互效果。
下面介绍本申请实施例提供的基于图片推流的三维可视化交互方法,如图2,该基于图片推流的三维可视化交互方法包括:步骤210、步骤220、步骤230、步骤240、和步骤250。
步骤210、服务器读取三维模型文件,基于三维模型文件在内存中渲染图片得到三维模型。
三维模型文件是指包含了三维对象的几何形状、纹理、动画和其他相关信息的文件。常见的三维模型文件格式可以包括:OBJ、FBX、STL等。该三维模型文件可以由模型设计人员预先构建得到,该三维模型可以是一种高精度设备模型,例如可支持像素点5700万以上,零部件4400个以上,文件大小10G以上,包含高清金材质、纹理、贴图和JSON数据。
服务器中可以预先部署三维引擎,通常可以选择合适的三维引擎,比如Unity、Unreal Engine、Three.js等,然后在服务器上安装和配置相应的引擎和相关组件。然后通过编程或可视化工具,在三维引擎中创建虚拟场景,设置摄像机的位置和视角,以及光照效果和交互器(比如鼠标和键盘控制)。
服务器可以通过三维引擎的文件加载模块来读取三维模型文件,在通过三维引擎的文件解析模块解析三维模型的几何信息(顶点、面片等)、材质信息、纹理信息、动画信息等,将这些信息解析成内部的数据结构,比如顶点缓冲区、纹理坐标、法线向量等。
再通过三维引擎的模型构建模块将解析得到的数据构建为内部的三维数据模型表示,例如三角网格、材质贴图、骨骼动画等。接着为了满足渲染和性能需求,还可以对三维数据模型进行优化处理,例如通过三维引擎的模型优化模块对三维数据模型进行各种优化,包括顶点合并、法线平滑、纹理压缩等优化操作。
最后,优化后的三维数据模型会被传递给渲染器进行渲染处理。具体的,可以设置渲染参数,利用GPU或CPU进行高性能计算并绘制渲染图形,包括光照计算、着色、阴影计算等,最终生成可视化的图像或图像序列得到三维模型。
步骤220、客户端接收用户对三维模型的操作事件,将操作事件转换为操作指令。
在本申请实施例中,客户端可以是任何可以访问网络的终端设备。该终端设备包括但不限于具有触摸敏感表面(例如,触摸屏显示器和/或触摸板)的移动电话、平板电脑、笔记本电脑等便携式通信设备。还应当理解的是,在某些实施例中,该终端设备可以不是便携式通信设备,而是具有触摸敏感表面(例如,触摸屏显示器和/或触摸板)的台式计算机。某些实施例中,该终端设备还可以是智能可穿戴设备,例如,智能手表、智能手环、智能眼镜或智能头戴设备等。
在本申请实施例中,客户端可以提供显示界面,用户能够针对显示界面进行操作,例如通过触摸板或触摸屏上触摸的方式进行操作,或者通过键盘或鼠标的方式进行操作等。
在本申请实施例中,客户端上并不存储完整的三维模型,而是在显示界面上提高三维模型的框架,用户能够在客户端的显示界面上对三维模型的框架进行操作,例如拖拽,旋转,放大缩小,拾取等操作。客户端能够接收并识别用户在界面上的操作事件。
客户端在接收用户在界面上的操作事件后,可以识别该操作事件,并将该操作事件转换为一种服务器可以理解的特定格式,比如JSON格式、XML格式或其他自定义格式,从而生成服务器可识别的操作指令。
步骤230、客户端将操作指令发送至服务器。
客户端在将操作格式化为服务器可识别的操作指令后,可以通过网络协议(比如HTTP、WebSocket等)发送到后端服务器。这一步通常通过网络请求来实现,比如发送POST请求或WebSocket消息。
步骤240、服务器根据操作指令对三维模型进行操作,将操作三维模型产生的动画进行渲染得到图片数据。
服务器在接收到操作指令后,可以针对该指令对三维模型进行相应的操作。具体的,服务器可以对该操作指令进行解析,得到该操作指令的操作内容,例如旋转、缩放、平移等操作,然后根据该操作内容对三维模型进行操作,以更新三维模型的状态,这其中包括在操作三维模型过程中产生的动画、模型变化或其他交互效果。接着,服务器可以使用图形学渲染引擎(如OpenGL、DirectX等)或者渲染库(如Three.js、Babylon.js等)对更新后的三维模型进行渲染,生成图片数据。
进一步的,为了提高渲染效果,服务器还可以对渲染得到的图片数据进行后处理,比如添加阴影、光照效果、抗锯齿等。
步骤250、服务器将图片数据传输至客户端。
服务器在针对三维模型进行操作的过程用户一般是无法感知的,因此服务器需要将操作三维模型过程中渲染得到的图片数据传输至客户端,用户才可以通过客户端感知到操作三维模型的反馈,从而实现三维可视化交互。
服务器可以将操作该三维模型过程中产生的动画进行渲染得到的图片数据编码为字节流,例如使用图片编码格式(如JPEG、PNG)对图片数据进行压缩,然后通过网络传输给客户端。
根据本申请的基于图片推流的三维可视化交互方法,通过服务器读取三维模型文件,基于三维模型文件在内存中渲染图片得到三维模型;客户端接收用户对三维模型的操作事件,将操作事件转换为操作指令,将操作指令发送至服务器;服务器根据操作指令对三维模型进行操作,将操作三维模型产生的动画进行渲染得到图片数据,将图片数据传输至客户端。本申请实施例通过利用性能相对于普通客户端高的服务器,读取和渲染三维模型,客户端将用户在客户端侧针对三维模型的操作事件,经过逻辑计算转为服务器可识别的操作指令,服务器再根据操作指令在服务器侧对三维模型进行操作,并将操作过程中所产生的动画渲染成为图片,将这些图片以数据流的方式推送给客户端,使得用户在客户端侧操作三维模型能够得到相应的反馈,通过这种图片推流的形式,客户端无需在本地存储并运行三维模型,而是通过服务器操作三维模型产生的动画通过图片传输给客户端,从而实现在不降噪、不简化模型,不压缩模型的情况下,仍然能够快速加载三维模型,实现清晰流畅的远程交互效果。
在一些实施例中,上述基于图片推流的三维可视化交互方法还可以包括:
客户端接收图片数据,基于操作事件可视化展示图片数据。
在该实施例中,客户端接收到图片数据后,可以对图片数据进行解码,使用HTML5的Canvas元素等技术在浏览器中显示图像,以响应用户在客户端中针对三维模型的操作,实现三维可视化交互。
该实施例中,客户端通过在接收到图片数据后,基于用户针对三维模型的操作事件可是化展示这些图片数据,保证了用户在操作三维模型后,快速呈现操作三维模型所带来的动画效果。
在一些实施例中,上述基于图片推流的三维可视化交互方法还可以包括:
服务器基于客户端可视化的流畅度需求确定每秒向客户端传输图片的目标数量;
将图片数据传输至客户端,包括:以每秒传输目标数量的图片的方式将图片数据传输至客户端。
在该实施例中,客户端侧页面显示的流畅度是由画面每秒传输帧数(Frames PerSecond,FPS)决定的,FPS越高,通常来说显示的画面就会越流畅。为了保证客户端侧页面显示的流畅度,可以预先限制FPS的值,例如可以限制FPS的值不小于24,则服务器可以确定每秒向客户端传输图片的目标数量大于或等于24;若对客户端侧页面显示的流畅度要求更高,可以现在更高的FPS值,例如限制为不小于30、不小于40、不小于50等等,则服务器确定每秒向客户端传输图片的目标数量则分别为大于或等于30、大于或等于40、大于或等于50。当然,本领域技术人员还可以根据客户端侧页面显示的流畅度限制其他任意FPS值,本申请实施例对此不作限定。
该实施例中,服务器可以根据客户端侧的清晰度需求确定每秒向客户端传输图片的数量,若清晰度需求高则可以每秒传输较多数量的图片,以使得客户端在接收到图片后可视化展示的动画效果更加连贯清晰。
在一些实施例中,上述基于图片推流的三维可视化交互方法还可以包括:
在用户停止对三维模型进行操作的情况下,服务器获取用户停止对三维模型进行操作之前渲染得到最后一帧图片;将分辨率大于预设值的最后一帧图片传输至客户端。
在该实施例中,服务器还可以获知用户是否对三维模型停止操作,若停止操作,则可以将停止操作前的最后一帧图片的高分辨率版本传输至客户端,以使得客户端侧呈现的静止画面显示效果更加清晰。
具体的,服务器通常无法直接获取到用户在客户端的交互状态,不能直接感知用户操作的停止,但是服务器可以通过一些技术手段来间接地识别用户停止操作的情况。例如,服务器可以通过在客户端发送操作指令的时间戳和当前时间进行比较,来判断用户操作的频率,当一段时间内没有收到新的操作指令时,可以认为用户可能已经停止了操作;客户端还可以定期向服务器发送心跳或状态更新的请求,当服务器在一段时间内没有收到这类请求时,可以认为用户可能已经停止了操作;客户端可以通过监听用户交互事件(比如鼠标移动、点击等)来判断用户的操作状态,并在用户停止操作时向服务器发送相应的通知,使得服务器可以识别用户是否停止操作;服务器还可以通过分析用户的操作历史和模式来推断用户的操作状态,例如,如果用户一直在进行连续的旋转操作,然后突然停止了,服务器可以通过分析这种模式来判断用户的停止操作。
服务器在确定用户停止操作的情况下,可以获取用户停止对三维模型进行操作之前渲染得到最后一帧图片,并将最后一帧图片的高分辨率版本传输到客户端,以使得客户端侧呈现的静止画面显示效果更加清晰。
该实施例中,服务器能够获知用户是否对三维模型停止操作,若停止操作,则可以将停止操作前的最后一帧图片的高分辨率版本传输至客户端,以使得客户端侧呈现的静止画面显示效果更加清晰。
下面以客户端作为执行主体为例对本申请实施例提供的基于图片推流的三维可视化交互方法进行说明。客户端可以是任何可以访问网络的终端设备。该终端设备包括但不限于具有触摸敏感表面(例如,触摸屏显示器和/或触摸板)的移动电话、平板电脑、笔记本电脑等便携式通信设备。还应当理解的是,在某些实施例中,该终端设备可以不是便携式通信设备,而是具有触摸敏感表面(例如,触摸屏显示器和/或触摸板)的台式计算机。某些实施例中,该终端设备还可以是智能可穿戴设备,例如,智能手表、智能手环、智能眼镜或智能头戴设备等。
如图3所示,该基于图片推流的三维可视化交互方法包括:步骤310、步骤320和步骤330。
步骤310、接收用户三维模型的操作事件;其中,三维模型是服务器读取三维模型文件,基于三维模型文件在内存中渲染图片得到。
在本申请实施例中,客户端可以提供显示界面,用户能够针对显示界面进行操作,例如通过触摸板或触摸屏上触摸的方式进行操作,或者通过键盘或鼠标的方式进行操作等。
在本申请实施例中,客户端上并不存储完整的三维模型,而是在显示界面上提高三维模型的框架,用户能够在客户端的显示界面上对三维模型的框架进行操作,例如拖拽,旋转,放大缩小,拾取等操作。客户端能够接收并识别用户在界面上的操作事件。
步骤320、将操作事件转换为操作指令。
客户端在接收用户在界面上的操作事件后,可以识别该操作事件,并将该操作事件转换为一种服务器可以理解的特定格式,比如JSON格式、XML格式或其他自定义格式,从而生成服务器可识别的操作指令。
步骤330、将操作指令发送至服务器,以便于服务器根据操作指令对三维模型进行操作,将操作三维模型产生的动画进行渲染得到图片数据,将图片数据传输至客户端。
客户端在将操作格式化为服务器可识别的操作指令后,可以通过网络协议(比如HTTP、WebSocket等)发送到后端服务器。这一步通常通过网络请求来实现,比如发送POST请求或WebSocket消息。
服务器在接收到操作指令后,可以针对该指令对三维模型进行相应的操作。具体的,服务器可以对该操作指令进行解析,得到该操作指令的操作内容,例如旋转、缩放、平移等操作,然后根据该操作内容对三维模型进行操作,以更新三维模型的状态,这其中包括在操作三维模型过程中产生的动画、模型变化或其他交互效果。接着,服务器可以使用图形学渲染引擎(如OpenGL、DirectX等)或者渲染库(如Three.js、Babylon.js等)对更新后的三维模型进行渲染,生成图片数据。
服务器在针对三维模型进行操作的过程用户一般是无法感知的,因此服务器需要将操作三维模型过程中渲染得到的图片数据传输至客户端,用户才可以通过客户端感知到操作三维模型的反馈,从而实现三维可视化交互。
服务器可以将操作该三维模型过程中产生的动画进行渲染得到的图片数据编码为字节流,例如使用图片编码格式(如JPEG、PNG)对图片数据进行压缩,然后通过网络传输给客户端。
根据本申请的基于图片推流的三维可视化交互方法,通过接收用户三维模型的操作事件;其中,三维模型是服务器读取三维模型文件,基于三维模型文件在内存中渲染图片得到;将操作事件转换为操作指令;将操作指令发送至服务器,以便于服务器根据操作指令对三维模型进行操作,将操作三维模型产生的动画进行渲染得到图片数据,将图片数据传输至客户端。本申请实施例通过利用性能相对于普通客户端高的服务器,读取和渲染三维模型,客户端将用户在客户端侧针对三维模型的操作事件,经过逻辑计算转为服务器可识别的操作指令,服务器再根据操作指令在服务器侧对三维模型进行操作,并将操作过程中所产生的动画渲染成为图片,将这些图片以数据流的方式推送给客户端,使得用户在客户端侧操作三维模型能够得到相应的反馈,通过这种图片推流的形式,客户端无需在本地存储并运行三维模型,而是通过服务器操作三维模型产生的动画通过图片传输给客户端,从而实现在不降噪、不简化模型,不压缩模型的情况下,仍然能够快速加载三维模型,实现清晰流畅的远程交互效果。
在一些实施例中,上述基于图片推流的三维可视化交互方法还可以包括:
接收图片数据,基于操作事件可视化展示图片数据。
在该实施例中,客户端接收到图片数据后,可以对图片数据进行解码,使用HTML5的Canvas元素等技术在浏览器中显示图像,以响应用户在客户端中针对三维模型的操作,实现三维可视化交互。
该实施例中,客户端通过在接收到图片数据后,基于用户针对三维模型的操作事件可是化展示这些图片数据,保证了用户在操作三维模型后,快速呈现操作三维模型所带来的动画效果。
下面以服务器作为执行主体为例对本申请实施例提供的基于图片推流的三维可视化交互方法进行说明。
如图4所示,该基于图片推流的三维可视化交互方法包括:步骤410、步骤420和步骤430。
步骤410、读取三维模型文件,基于三维模型文件在内存中渲染图片得到三维模型。
三维模型文件是指包含了三维对象的几何形状、纹理、动画和其他相关信息的文件。常见的三维模型文件格式可以包括:OBJ、FBX、STL等。该三维模型文件可以由模型设计人员预先构建得到,该三维模型可以是一种高精度设备模型,例如可支持像素点5700万以上,零部件4400个以上,文件大小10G以上,包含高清金材质、纹理、贴图和JSON数据。
服务器中可以预先部署三维引擎,通常可以选择合适的三维引擎,比如Unity、Unreal Engine、Three.js等,然后在服务器上安装和配置相应的引擎和相关组件。然后通过编程或可视化工具,在三维引擎中创建虚拟场景,设置摄像机的位置和视角,以及光照效果和交互器(比如鼠标和键盘控制)。
服务器可以通过三维引擎的文件加载模块来读取三维模型文件,在通过三维引擎的文件解析模块解析三维模型的几何信息(顶点、面片等)、材质信息、纹理信息、动画信息等,将这些信息解析成内部的数据结构,比如顶点缓冲区、纹理坐标、法线向量等。
再通过三维引擎的模型构建模块将解析得到的数据构建为内部的三维数据模型表示,例如三角网格、材质贴图、骨骼动画等。接着为了满足渲染和性能需求,还可以对三维数据模型进行优化处理,例如通过三维引擎的模型优化模块对三维数据模型进行各种优化,包括顶点合并、法线平滑、纹理压缩等优化操作。
最后,优化后的三维数据模型会被传递给渲染器进行渲染处理。具体的,可以设置渲染参数,利用GPU或CPU进行高性能计算并绘制渲染图形,包括光照计算、着色、阴影计算等,最终生成可视化的图像或图像序列得到三维模型。
步骤420、根据操作指令对三维模型进行操作,将操作三维模型产生的动画进行渲染得到图片数据;其中,操作指令是客户端发送的,操作指令是客户端接收用户对三维模型的操作事件,将操作事件转换得到的。
服务器在接收到操作指令后,可以针对该指令对三维模型进行相应的操作。具体的,服务器可以对该操作指令进行解析,得到该操作指令的操作内容,例如旋转、缩放、平移等操作,然后根据该操作内容对三维模型进行操作,以更新三维模型的状态,这其中包括在操作三维模型过程中产生的动画、模型变化或其他交互效果。接着,服务器可以使用图形学渲染引擎(如OpenGL、DirectX等)或者渲染库(如Three.js、Babylon.js等)对更新后的三维模型进行渲染,生成图片数据。
进一步的,为了提高渲染效果,服务器还可以对渲染得到的图片数据进行后处理,比如添加阴影、光照效果、抗锯齿等。
步骤430、将图片数据传输至客户端。
服务器在针对三维模型进行操作的过程用户一般是无法感知的,因此服务器需要将操作三维模型过程中渲染得到的图片数据传输至客户端,用户才可以通过客户端感知到操作三维模型的反馈,从而实现三维可视化交互。
服务器可以将操作该三维模型过程中产生的动画进行渲染得到的图片数据编码为字节流,例如使用图片编码格式(如JPEG、PNG)对图片数据进行压缩,然后通过网络传输给客户端。
根据本申请的基于图片推流的三维可视化交互方法,通过读取三维模型文件,基于三维模型文件在内存中渲染图片得到三维模型;根据操作指令对三维模型进行操作,将操作三维模型产生的动画进行渲染得到图片数据;其中,操作指令是客户端发送的,操作指令是客户端接收用户对三维模型的操作事件,将操作事件转换得到的;将图片数据传输至客户端。本申请实施例通过利用性能相对于普通客户端高的服务器,读取和渲染三维模型,客户端将用户在客户端侧针对三维模型的操作事件,经过逻辑计算转为服务器可识别的操作指令,服务器再根据操作指令在服务器侧对三维模型进行操作,并将操作过程中所产生的动画渲染成为图片,将这些图片以数据流的方式推送给客户端,使得用户在客户端侧操作三维模型能够得到相应的反馈,通过这种图片推流的形式,客户端无需在本地存储并运行三维模型,而是通过服务器操作三维模型产生的动画通过图片传输给客户端,从而实现在不降噪、不简化模型,不压缩模型的情况下,仍然能够快速加载三维模型,实现清晰流畅的远程交互效果。
本申请实施例还提供一种客户端。
如图5所示,该客户端包括:
接收模块510,用于接收用户三维模型的操作事件;其中,三维模型是服务器读取三维模型文件,基于三维模型文件在内存中渲染图片得到;
转换模块520,用于将操作事件转换为操作指令;
发送模块530,用于将操作指令发送至服务器,以便于服务器根据操作指令对三维模型进行操作,将操作三维模型产生的动画进行渲染得到图片数据,将图片数据传输至客户端。
根据本申请的客户端,通过接收用户三维模型的操作事件;其中,三维模型是服务器读取三维模型文件,基于三维模型文件在内存中渲染图片得到;将操作事件转换为操作指令;将操作指令发送至服务器,以便于服务器根据操作指令对三维模型进行操作,将操作三维模型产生的动画进行渲染得到图片数据,将图片数据传输至客户端。本申请实施例通过利用性能相对于普通客户端高的服务器,读取和渲染三维模型,客户端将用户在客户端侧针对三维模型的操作事件,经过逻辑计算转为服务器可识别的操作指令,服务器再根据操作指令在服务器侧对三维模型进行操作,并将操作过程中所产生的动画渲染成为图片,将这些图片以数据流的方式推送给客户端,使得用户在客户端侧操作三维模型能够得到相应的反馈,通过这种图片推流的形式,客户端无需在本地存储并运行三维模型,而是通过服务器操作三维模型产生的动画通过图片传输给客户端,从而实现在不降噪、不简化模型,不压缩模型的情况下,仍然能够快速加载三维模型,实现清晰流畅的远程交互效果。
在一些实施例中,该客户端,还包括:
可视化模块,用于接收图片数据,基于操作事件可视化展示图片数据。
本申请实施例还提供一种服务器。
如图6所示,该服务器包括:
读取模块610,用于读取三维模型文件,基于三维模型文件在内存中渲染图片得到三维模型;
渲染模块620,用于根据操作指令对三维模型进行操作,将操作三维模型产生的动画进行渲染得到图片数据;其中,操作指令是客户端发送的,操作指令是客户端接收用户对三维模型的操作事件,将操作事件转换得到的;
传输模块630,用于将图片数据传输至客户端。
根据本申请的服务器,通过读取三维模型文件,基于三维模型文件在内存中渲染图片得到三维模型;根据操作指令对三维模型进行操作,将操作三维模型产生的动画进行渲染得到图片数据;其中,操作指令是客户端发送的,操作指令是客户端接收用户对三维模型的操作事件,将操作事件转换得到的;将图片数据传输至客户端。本申请实施例通过利用性能相对于普通客户端高的服务器,读取和渲染三维模型,客户端将用户在客户端侧针对三维模型的操作事件,经过逻辑计算转为服务器可识别的操作指令,服务器再根据操作指令在服务器侧对三维模型进行操作,并将操作过程中所产生的动画渲染成为图片,将这些图片以数据流的方式推送给客户端,使得用户在客户端侧操作三维模型能够得到相应的反馈,通过这种图片推流的形式,客户端无需在本地存储并运行三维模型,而是通过服务器操作三维模型产生的动画通过图片传输给客户端,从而实现在不降噪、不简化模型,不压缩模型的情况下,仍然能够快速加载三维模型,实现清晰流畅的远程交互效果。
在一些实施例中,该服务器,还包括:
确定模块,用于基于客户端可视化的流畅度需求确定每秒向客户端传输图片的目标数量;
传输模块630,还用于:以每秒传输目标数量的图片的方式将图片数据传输至客户端。
在一些实施例中,该服务器,还包括:
获取模块,用于在用户停止对三维模型进行操作的情况下,服务器获取用户停止对三维模型进行操作之前渲染得到最后一帧图片;将分辨率大于预设值的最后一帧图片传输至客户端。
在一些实施例中,如图7所示,本申请实施例还提供一种电子设备700,包括处理器701、存储器702及存储在存储器702上并可在处理器701上运行的计算机程序,该程序被处理器701执行时实现上述基于图片推流的三维可视化交互方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。
需要说明的是,本申请实施例中的电子设备包括上述的移动电子设备和非移动电子设备。
本申请实施例还提供一种非暂态计算机可读存储介质,该非暂态计算机可读存储介质上存储有计算机程序,该计算机程序被处理器执行时实现上述基于图片推流的三维可视化交互方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。
其中,处理器为上述实施例中的电子设备中的处理器。可读存储介质,包括计算机可读存储介质,如计算机只读存储器ROM、随机存取存储器RAM、磁碟或者光盘等。
本申请实施例还提供一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现上述基于图片推流的三维可视化交互方法。
其中,处理器为上述实施例中的电子设备中的处理器。可读存储介质,包括计算机可读存储介质,如计算机只读存储器ROM、随机存取存储器RAM、磁碟或者光盘等。
本申请实施例另提供了一种芯片,芯片包括处理器和通信接口,通信接口和处理器耦合,处理器用于运行程序或指令,实现上述基于图片推流的三维可视化交互方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。
应理解,本申请实施例提到的芯片还可以称为系统级芯片、系统芯片、芯片系统或片上系统芯片等。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。此外,需要指出的是,本申请实施方式中的方法和装置的范围不限按示出或讨论的顺序来执行功能,还可包括根据所涉及的功能按基本同时的方式或按相反的顺序来执行功能,例如,可以按不同于所描述的次序来执行所描述的方法,并且还可以添加、省去、或组合各种步骤。另外,参照某些示例所描述的特征可在其他示例中被组合。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以计算机软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端(可以是手机,计算机,服务器,或者网络设备等)执行本申请各个实施例所述的方法。
上面结合附图对本申请的实施例进行了描述,但是本申请并不局限于上述的具体实施方式,上述的具体实施方式仅仅是示意性的,而不是限制性的,本领域的普通技术人员在本申请的启示下,在不脱离本申请宗旨和权利要求所保护的范围情况下,还可做出很多形式,均属于本申请的保护之内。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示意性实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本申请的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。
尽管已经示出和描述了本申请的实施例,本领域的普通技术人员可以理解:在不脱离本申请的原理和宗旨的情况下可以对这些实施例进行多种变化、修改、替换和变型,本申请的范围由权利要求及其等同物限定。
Claims (10)
1.一种基于图片推流的三维可视化交互方法,其特征在于,包括:
服务器读取三维模型文件,基于所述三维模型文件在内存中渲染图片得到三维模型;
客户端接收用户对所述三维模型的操作事件,将所述操作事件转换为操作指令,将所述操作指令发送至服务器;
所述服务器根据所述操作指令对所述三维模型进行操作,将操作所述三维模型产生的动画进行渲染得到图片数据,将所述图片数据传输至所述客户端。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
所述客户端接收所述图片数据,基于所述操作事件可视化展示所述图片数据。
3.根据权利要求1所述的方法,其特征在于,所述方法还包括:
所述服务器基于客户端可视化的流畅度需求确定每秒向所述客户端传输图片的目标数量;
所述将所述图片数据传输至所述客户端,包括:以每秒传输所述目标数量的图片的方式将所述图片数据传输至所述客户端。
4.根据权利要求1所述的方法,其特征在于,所述方法还包括:
在用户停止对所述三维模型进行操作的情况下,所述服务器获取用户停止对所述三维模型进行操作之前渲染得到最后一帧图片;将分辨率大于预设值的最后一帧图片传输至所述客户端。
5.一种基于图片推流的三维可视化交互方法,其特征在于,应用于客户端,包括:
接收用户三维模型的操作事件;其中,所述三维模型是服务器读取三维模型文件,基于所述三维模型文件在内存中渲染图片得到;
将所述操作事件转换为操作指令;
将所述操作指令发送至服务器,以便于服务器根据所述操作指令对所述三维模型进行操作,将操作所述三维模型产生的动画进行渲染得到图片数据,将所述图片数据传输至所述客户端。
6.根据权利要求5所述的方法,其特征在于,所述方法还包括:
接收所述图片数据,基于所述操作事件可视化展示所述图片数据。
7.一种基于图片推流的三维可视化交互方法,其特征在于,应用于服务器,包括:
读取三维模型文件,基于所述三维模型文件在内存中渲染图片得到三维模型;
根据操作指令对所述三维模型进行操作,将操作所述三维模型产生的动画进行渲染得到图片数据;其中,所述操作指令是客户端发送的,所述操作指令是客户端接收用户对所述三维模型的操作事件,将所述操作事件转换得到的;
将所述图片数据传输至所述客户端。
8.一种客户端,其特征在于,包括:
接收模块,用于接收用户三维模型的操作事件;其中,所述三维模型是服务器读取三维模型文件,基于所述三维模型文件在内存中渲染图片得到;
转换模块,用于将所述操作事件转换为操作指令;
发送模块,用于将所述操作指令发送至服务器,以便于服务器根据所述操作指令对所述三维模型进行操作,将操作所述三维模型产生的动画进行渲染得到图片数据,将所述图片数据传输至所述客户端。
9.一种服务器,其特征在于,包括:
读取模块,用于读取三维模型文件,基于所述三维模型文件在内存中渲染图片得到三维模型;
渲染模块,用于根据操作指令对所述三维模型进行操作,将操作所述三维模型产生的动画进行渲染得到图片数据;其中,所述操作指令是客户端发送的,所述操作指令是客户端接收用户对所述三维模型的操作事件,将所述操作事件转换得到的;
传输模块,用于将所述图片数据传输至所述客户端。
10.一种基于图片推流的三维可视化交互系统,其特征在于,包括:如权利要求8所述的客户端和如权利要求9所述的服务器。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410170557.3A CN118035479A (zh) | 2024-02-06 | 2024-02-06 | 基于图片推流的三维可视化交互方法和系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410170557.3A CN118035479A (zh) | 2024-02-06 | 2024-02-06 | 基于图片推流的三维可视化交互方法和系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN118035479A true CN118035479A (zh) | 2024-05-14 |
Family
ID=90994379
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202410170557.3A Pending CN118035479A (zh) | 2024-02-06 | 2024-02-06 | 基于图片推流的三维可视化交互方法和系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN118035479A (zh) |
-
2024
- 2024-02-06 CN CN202410170557.3A patent/CN118035479A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Potenziani et al. | 3DHOP: 3D heritage online presenter | |
CN109389661B (zh) | 一种动画文件转化方法及装置 | |
CN102089786B (zh) | 在性能分析期间将图形指令映射到相关联的图形数据的方法和设备 | |
US20080250424A1 (en) | Seamless Window Implementation for Windows Presentation Foundation based Applications | |
Doellner et al. | Server-based rendering of large 3D scenes for mobile devices using G-buffer cube maps | |
WO2008040123A1 (en) | Method and system for delivering and interactively displaying three-dimensional graphics | |
CN111754614A (zh) | 基于vr视频渲染方法、装置、电子设备及存储介质 | |
CN103679813B (zh) | 三维数字地球的构建方法以及三维数字地球系统 | |
CN105144243A (zh) | 数据可视化 | |
KR101431311B1 (ko) | 그래픽 이미지들의 시각적 창작 동안의 성능 분석 | |
US20240169595A1 (en) | Method for analyzing user input regarding 3d object, device, and non-transitory computer-readable recording medium | |
CN116610881A (zh) | 一种基于低代码软件的WebGL浏览交互方法 | |
CN116091672A (zh) | 图像渲染方法、计算机设备及其介质 | |
CN110691010B (zh) | 跨平台跨终端vr/ar产品信息展示系统 | |
CN115080886A (zh) | 一种基于移动端的三维医学模型glb文件解析与展示方法 | |
WO2024139387A1 (zh) | 一种数字孪生体的加载方法及相关装置 | |
CN117788609A (zh) | 界面图元的拾取方法、装置、设备及存储介质 | |
CN117609646A (zh) | 场景渲染方法、装置、电子设备及存储介质 | |
KR101286938B1 (ko) | 그래픽스 이미징을 위한 파티셔닝-기반 성능 분석 | |
CN118035479A (zh) | 基于图片推流的三维可视化交互方法和系统 | |
Rodriguez et al. | Digital Mont'e Prama: 3D Cultural Heritage presentations in museums and anywhere | |
CN114020390A (zh) | Bim模型显示方法、装置、计算机设备和存储介质 | |
Lu et al. | A Cross‐Platform Web3D Monitoring System of the Three‐Machine Equipment in a Fully Mechanized Coalface Based on the Skeleton Model and Sensor Data | |
CN110990104B (zh) | 一种基于Unity3D的纹理渲染方法及装置 | |
Krone et al. | Remote rendering and user interaction on mobile devices for scientific visualization |
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 |