CN116527748B - 一种云渲染交互方法、装置、电子设备及存储介质 - Google Patents
一种云渲染交互方法、装置、电子设备及存储介质 Download PDFInfo
- Publication number
- CN116527748B CN116527748B CN202310758854.5A CN202310758854A CN116527748B CN 116527748 B CN116527748 B CN 116527748B CN 202310758854 A CN202310758854 A CN 202310758854A CN 116527748 B CN116527748 B CN 116527748B
- Authority
- CN
- China
- Prior art keywords
- target
- cloud rendering
- camera
- rendering
- terminal
- 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
Links
- 238000009877 rendering Methods 0.000 title claims abstract description 386
- 238000000034 method Methods 0.000 title claims abstract description 64
- 230000003993 interaction Effects 0.000 title claims abstract description 40
- 230000011664 signaling Effects 0.000 claims abstract description 98
- 238000004891 communication Methods 0.000 claims abstract description 41
- 230000033001 locomotion Effects 0.000 claims description 53
- 239000013598 vector Substances 0.000 claims description 49
- 230000008859 change Effects 0.000 claims description 28
- 238000005096 rolling process Methods 0.000 claims description 15
- 238000004590 computer program Methods 0.000 claims description 14
- 230000035945 sensitivity Effects 0.000 claims description 13
- 230000004044 response Effects 0.000 claims description 12
- 238000010586 diagram Methods 0.000 description 12
- 230000008569 process Effects 0.000 description 10
- 230000006870 function Effects 0.000 description 7
- 238000012545 processing Methods 0.000 description 7
- 230000003287 optical effect Effects 0.000 description 5
- 238000012546 transfer Methods 0.000 description 5
- 230000005540 biological transmission Effects 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 4
- 239000011159 matrix material Substances 0.000 description 4
- 230000008901 benefit Effects 0.000 description 3
- 238000011161 development Methods 0.000 description 3
- 238000005265 energy consumption Methods 0.000 description 3
- 230000006978 adaptation Effects 0.000 description 2
- 239000003086 colorant Substances 0.000 description 2
- 230000002452 interceptive effect Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000010606 normalization Methods 0.000 description 2
- 239000013307 optical fiber Substances 0.000 description 2
- 230000000644 propagated effect Effects 0.000 description 2
- 238000012216 screening Methods 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 230000009466 transformation Effects 0.000 description 2
- 230000009471 action Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000006835 compression Effects 0.000 description 1
- 238000007906 compression Methods 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 238000012800 visualization Methods 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/51—Discovery or management thereof, e.g. service location protocol [SLP] or web services
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/02—Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/14—Session management
- H04L67/141—Setup of application sessions
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/60—Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本申请实施例提供了一种云渲染交互方法、装置、电子设备及存储介质,涉及计算机技术领域。该方法包括:向Web服务器发送云渲染请求,并接收Web服务器反馈的预设指令服务地址和GPU资源地址;根据GPU资源地址确定云渲染端,并根据预设指令服务地址向对应的预设指令服务发送连接请求,使预设指令服务生成对应的信令服务;通过信令服务建立与云渲染端之间的通信连接。通过在终端和云渲染端之间设置信令服务,使终端可以与更多的云渲染端进行连接,而并非仅能与对应的云渲染端进行连接,进而可以实现多终端与多云渲染端之间的交互。且通过Web服务器筛选后的目标云渲染端能保证具备足够的可调用资源,整体上能提高渲染的效率和渲染结果的质量。
Description
技术领域
本申请涉及计算机技术领域,具体而言,本申请涉及一种云渲染交互方法、装置、电子设备及存储介质。
背景技术
云渲染是云计算技术的一种形式,是近年3D(three dimensional,三维)可视化的一个重要发展方向。云渲染指的是在云端的GPU(graphics processing unit,图像处理器)服务器加载、渲染3D数据,然后客户端通过接入视频流的方式,获取云端的3D渲染成果。云渲染技术的优点在于由于云渲染端相较于客户端有着更强的渲染能力,因此可以完成客户端无法完成的海量、高质量3D渲染,且3D模型数据无需发送至客户端,使模型存储更加安全。由于云渲染具有以上众多优点,近年来云渲染技术的发展、应用非常迅速,广泛的运用在各个领域。
现有技术的方案中,对于每一终端,会预先设置好对应的云渲染端服务器,当用户通过终端向对应的云渲染端发送3D数据的渲染请求时,云渲染端将根据渲染请求中包含的3D数据在云端完成对目标3D模型的渲染,并将渲染结果返回终端,从而实现整个云渲染过程。
但是,在现有技术的方案中,每一终端只能与预先设置的对应的云渲染端服务器建立连接,即终端只可调用对应的云渲染端服务器的资源。而在实际业务操作中,经常会遇到终端需要通过对应的云渲染端服务器进行渲染操作,但对应的云渲染端服务器可调用资源较少的情况,这种情况下进行渲染会导致渲染的效率较低且最终渲染结果的质量较差。而现有技术的方案由于对于终端可选择使用的云渲染端服务器的限制较大,无法解决实际操作中渲染效率低以及渲染结果质量差的问题,不能满足实际业务的需求。
发明内容
本申请的目的旨在至少能解决上述的技术缺陷之一,本申请实施例所提供的技术方案如下:
第一方面,本申请实施例提供了一种云渲染交互方法,包括:
向网络Web(World Wide Web,万维网)服务器发送云渲染请求,并接收Web服务器响应于云渲染请求反馈的预设指令服务地址和目标图像处理器GPU(graphics processingunit,图像处理器)资源地址;
根据目标GPU资源地址确定目标云渲染端,并根据预设指令服务地址向对应的预设指令服务发送针对目标云渲染端的连接请求,以使预设指令服务响应于连接请求生成对应的目标信令服务;
通过目标信令服务建立与目标云渲染端之间的通信连接,在有云渲染需求时,通过目标信令服务向目标云渲染端发送云渲染指令,并接收目标云渲染端通过信令服务反馈的云渲染指令对应的渲染结果。
在本申请的一种可选实施例中,目标GPU资源地址通过以下方式获取,具体包括:
通过Web服务器从预设数据库中获取当前各GPU的资源负载量;其中,预设数据库中存储有各GPU的当前资源负载量;
将当前资源负载量最小的GPU作为目标GPU,并获取对应的GPU资源地址。
在本申请的一种可选实施例中,根据预设指令服务地址向对应的预设指令服务发送针对目标云渲染端的连接请求之后,具体包括:
通过预设指令服务开启目标云渲染端中的三维程序和对应的像素流组件。
第二方面,本申请实施例提供了一种云渲染交互方法,包括:
通过目标信令服务建立与目标终端之间的通信连接;
在接收到目标终端通过通信连接发送的云渲染指令时,基于云渲染指令获取对应的渲染结果,并通过通信连接将渲染结果发送至目标终端;
其中,目标信令服务是由预设指令服务响应于目标终端发送针对目标云渲染端的连接请求生成的,目标云渲染端是基于网络Web服务器响应于目标终端发送的云渲染请求获取的目标图像处理器GPU资源地址确定的。
在本申请的一种可选实施例中,若云渲染指令为场景变换操作,云渲染指令包含有对应的操作参数;
基于云渲染指令获取对应的渲染结果,具体包括:
根据操作参数对三维程序中的三维场景进行调整,并将调整后的三维场景作为渲染结果。
在本申请的一种可选实施例中,若获取到的场景变换操作的操作类型为场景移动操作,操作参数包括场景移动操作的移动向量;移动向量通过执行场景移动操作的外置设备分别在目标终端的显示屏幕中水平方向上的移动距离和垂直方向上的移动距离获取;
根据操作参数对三维程序中的三维场景进行调整,具体包括:
获取三维程序中的相机当前位置坐标和相机当前观测点坐标,并根据场景移动操作的移动向量、相机当前位置坐标和相机当前观测点坐标,获取相机目标位置坐标和相机目标观测点坐标;
根据相机目标位置坐标和相机目标观测点坐标对三维场景进行调整。
在本申请的一种可选实施例中,若获取到的场景变换操作的操作类型为场景旋转操作,操作参数包括执行场景旋转操作的外置设备分别在显示屏幕中水平方向上的移动的像素值和垂直方向上移动的像素值;
根据操作参数对三维程序中的三维场景进行调整,具体包括:
获取三维程序中的相机当前位置坐标和相机当前观测点坐标,并根据相机当前位置坐标和相机当前观测点坐标获取相机和相机当前观测点的距离和相机的朝向向量;
根据相机当前朝向向量、水平方向上的移动的像素值、垂直方向上移动的像素值获取相机目标朝向向量;
根据相机目标朝向向量、相机当前观测点坐标、相机和相机当前观测点的距离,获取相机目标位置坐标;
根据相机目标位置坐标和相机当前观测点坐标对三维场景进行调整。
在本申请的一种可选实施例中,若获取到的场景变换操作的操作类型为场景缩放操作,操作参数包括行场景缩放操作的外置设备的滚轴灵敏度标量,并根据滚轴灵敏度标量获取外置设备滚动轴原始值;
根据操作参数对三维程序中的三维场景进行调整,具体包括:
获取三维程序中的相机当前位置坐标和相机当前观测点坐标,并根据相机当前位置坐标和相机当前观测点坐标获取相机和相机当前观测点的距离;
根据滚动轴原始值、相机和相机当前观测点的距离获取缩放后相机和相机当前观测点的距离;
根据缩放后相机和相机当前观测点的距离、相机当前观测点坐标获取相机目标位置坐标;
根据相机目标位置坐标和当前观测点坐标对三维场景进行调整。
第三方面,本申请实施例提供了一种云渲染交互装置,包括:
资源地址获取模块用于向网络Web服务器发送云渲染请求,并接收Web服务器响应于云渲染请求反馈的预设指令服务地址和目标图像处理器GPU资源地址;
目标信令服务获取模块用于根据目标GPU资源地址确定目标云渲染端,并根据预设指令服务地址向对应的预设指令服务发送针对目标云渲染端的连接请求,以使预设指令服务响应于连接请求生成对应的目标信令服务;
渲染结果接收模块用于通过目标信令服务建立与目标云渲染端之间的通信连接,在有云渲染需求时,通过目标信令服务向目标云渲染端发送云渲染指令,并接收目标云渲染端通过信令服务反馈的云渲染指令对应的渲染结果。
在本申请的一种可选实施例中,目标GPU资源地址通过以下方式获取,具体包括:
通过Web服务器从预设数据库中获取当前各GPU的资源负载量;其中,预设数据库中存储有各GPU的当前资源负载量;
将当前资源负载量最小的GPU作为目标GPU,并获取对应的GPU资源地址。
在本申请的一种可选实施例中,目标信令服务获取模块具体用于:
通过预设指令服务开启目标云渲染端中的三维程序和对应的像素流组件。
第四方面,本申请实施例提供了一种云渲染交互装置,包括:
连接建立模块,用于通过目标信令服务建立与目标终端之间的通信连接;
渲染结果发送模块,用于在接收到目标终端通过通信连接发送的云渲染指令时,基于云渲染指令获取对应的渲染结果,并通过通信连接将渲染结果发送至目标终端;
其中,目标信令服务是由预设指令服务响应于目标终端发送针对目标云渲染端的连接请求生成的,目标云渲染端是基于网络Web服务器响应于目标终端发送的云渲染请求获取的目标图像处理器GPU资源地址确定的。
在本申请的一种可选实施例中,若云渲染指令为场景变换操作,云渲染指令包含有对应的操作参数;
渲染结果发送模块具体用于:
根据操作参数对三维程序中的三维场景进行调整,并将调整后的三维场景作为渲染结果。
在本申请的一种可选实施例中,若获取到的场景变换操作的操作类型为场景移动操作,操作参数包括场景移动操作的移动向量;移动向量通过执行场景移动操作的外置设备分别在目标终端的显示屏幕中水平方向上的移动距离和垂直方向上的移动距离获取;
渲染结果发送模块进一步用于:
获取三维程序中的相机当前位置坐标和相机当前观测点坐标,并根据场景移动操作的移动向量、相机当前位置坐标和相机当前观测点坐标,获取相机目标位置坐标和相机目标观测点坐标;
根据相机目标位置坐标和相机目标观测点坐标对三维场景进行调整。
在本申请的一种可选实施例中,若获取到的场景变换操作的操作类型为场景旋转操作,操作参数包括执行场景旋转操作的外置设备分别在显示屏幕中水平方向上的移动的像素值和垂直方向上移动的像素值;
渲染结果发送模块进一步用于:
获取三维程序中的相机当前位置坐标和相机当前观测点坐标,并根据相机当前位置坐标和相机当前观测点坐标获取相机和相机当前观测点的距离和相机的朝向向量;
根据相机当前朝向向量、水平方向上的移动的像素值、垂直方向上移动的像素值获取相机目标朝向向量;
根据相机目标朝向向量、相机当前观测点坐标、相机和相机当前观测点的距离,获取相机目标位置坐标;
根据相机目标位置坐标和相机当前观测点坐标对三维场景进行调整。
在本申请的一种可选实施例中,若获取到的场景变换操作的操作类型为场景缩放操作,操作参数包括行场景缩放操作的外置设备的滚轴灵敏度标量,并根据滚轴灵敏度标量获取外置设备滚动轴原始值;
渲染结果发送模块进一步用于:
获取三维程序中的相机当前位置坐标和相机当前观测点坐标,并根据相机当前位置坐标和相机当前观测点坐标获取相机和相机当前观测点的距离;
根据滚动轴原始值、相机和相机当前观测点的距离获取缩放后相机和相机当前观测点的距离;
根据缩放后相机和相机当前观测点的距离、相机当前观测点坐标获取相机目标位置坐标;
根据相机目标位置坐标和当前观测点坐标对三维场景进行调整。
第五方面,本申请实施例提供了一种电子设备,包括存储器、处理器及存储在存储器上的计算机程序;
处理器执行计算机程序以实现第一方面实施例或第一方面任一可选实施例中所提供的方法。
第六方面,本申请实施例提供了一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时实现第一方面实施例或第一方面任一可选实施例中所提供的方法。
本申请实施例提供的技术方案带来的有益效果是:
通过Web服务器为终端筛选出合适可用的目标云渲染端,并将针对目标云渲染端的连接请求发送至预设指令服务,使预设指令服务生成对应的信令服务,最后通过信令服务实现终端与目标云渲染端之间的交互。通过在终端和目标云渲染端之间设置信令服务,使终端可以与更多的云渲染端进行连接,而并非仅能与对应的云渲染端进行连接,进而可以实现多终端与多云渲染端之间的交互。且通过Web服务器筛选后的目标云渲染端能保证具备足够的可调用资源,整体上能提高渲染的效率和渲染结果的质量。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对本申请实施例描述中所需要使用的附图作简单地介绍。
图1为本申请实施例提供的一种云渲染交互方法的流程示意图;
图2为本申请实施例的一个示例中终端与信令服务连接过程的流程示意图;
图3为本申请实施例的一个示例中终端与目标云渲染端通过信令服务进行数据传递的流程示意图;
图4为本申请实施例的一个示例中终端与云渲染端三维程序指令传递过程的流程示意图;
图5为本申请实施例的一个示例中终端通过Web服务器获取GPU资源地址的流程示意图;
图6为本申请实施例提供的一种云渲染交互方法的流程示意图;
图7为本申请实施例的一个示例中三维程序进行画面渲染过程的流程示意图;
图8为本申请实施例的一个示例中云渲染交互控制流程的流程示意图;
图9为本申请实施例提供的一种云渲染交互装置的结构框图;
图10为本申请实施例提供的一种云渲染交互装置的结构框图;
图11为本申请实施例提供的一种电子设备的结构示意图。
具体实施方式
下面结合本申请中的附图描述本申请的实施例。应理解,下面结合附图所阐述的实施方式,是用于解释本申请实施例的技术方案的示例性描述,对本申请实施例的技术方案不构成限制。
本技术领域技术人员可以理解,除非特意声明,这里使用的单数形式“一”、“一个”、“所述”和“该”也可包括复数形式。应该进一步理解的是,本申请实施例所使用的术语“包括”以及“包含”是指相应特征可以实现为所呈现的特征、信息、数据、步骤、操作、元件和/或组件,但不排除实现为本技术领域所支持其他特征、信息、数据、步骤、操作、元件、组件和/或它们的组合等。应该理解,当我们称一个元件被“连接”或“耦接”到另一元件时,该一个元件可以直接连接或耦接到另一元件,也可以指该一个元件和另一元件通过中间元件建立连接关系。此外,这里使用的“连接”或 “耦接”可以包括无线连接或无线耦接。这里使用的术语“和/或”指示该术语所限定的项目中的至少一个,例如“A和/或B”可以实现为“A”,或者实现为“B”,或者实现为“A和B”。
为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。
下面通过对几个示例性实施方式的描述,对本申请实施例的技术方案以及本申请的技术方案产生的技术效果进行说明。需要指出的是,下述实施方式之间可以相互参考、借鉴或结合,对于不同实施方式中相同的术语、相似的特征以及相似的实施步骤等,不再重复描述。
图1为本申请实施例提供一种云渲染交互方法的流程示意图,该方法的执行主体可以是终端(例如电脑、手机等),如图1所示,该方法可以包括:
步骤S101,向网络Web服务器发送云渲染请求,并接收Web服务器响应于云渲染请求反馈的预设指令服务地址和目标图像处理器GPU资源地址。
其中,Web服务器上部署有Web服务、调度单元和预设数据库,用于为终端反馈预设指令服务地址和GPU资源地址。云渲染请求是由终端发送的请求通过云渲染端进行云渲染操作的请求,云渲染请求中可以包含终端的标识信息。预设指令服务地址用于使终端与预设指令服务建立连接。目标GPU资源地址是Web服务器根据各GPU的实时资源占用情况从所有GPU中筛选出的GPU的资源地址,示例性的,一个GPU资源地址可以是192.168.1.1:8001。
具体地,当终端需要通过云渲染端进行云渲染操作时,会向Web服务器发送云渲染请求,Web服务器接收到终端发送的云渲染请求后,会获取预设指令服务地址,然后从所有的GPU中选出目标GPU,并获取目标GPU的资源地址,再将预设指令服务地址和目标GPU资源地址一并反馈给终端。
步骤S102,根据目标GPU资源地址确定目标云渲染端,并根据预设指令服务地址向对应的预设指令服务发送针对目标云渲染端的连接请求,以使预设指令服务响应于连接请求生成对应的目标信令服务。
其中,每个GPU资源地址可以对应一个云渲染端,因此可以通过目标GPU资源地址确定出目标云渲染端。预设指令服务可采用Java SpringBoot(一种简化新Spring(一个开放源代码的应用程序框架)应用的搭建及开发的框架)等框架编写,可以通过Apache、Tomcat(两种应用于Web服务器的软件)等工具发布。终端与指令服务可通过Http(HyperText Transfer Protocol,超文本传输协议)心跳机制或Websocekt(一种协议,用于Web服务器和终端进行数据传递)建立一种长连接。目标信令服务是基于WebRTC(web real-time communications,网络实时通信)协议的长连接服务,可由NodeJS(一种优化执行速度的运行环境)开发。由预设指令服务根据终端的标识信息和目标云渲染端的标识信息生成,用于将终端发送的云渲染指令传输给目标云渲染端或将目标云渲染端发送的云渲染指令对应的渲染结果传输给客户端,实现终端与目标云渲染端点对点的信息传递。
具体地,终端获取到Web服务器发送的目标GPU资源地址后,确定出对应的目标云渲染端,并根据预设指令服务地址向对应的预设指令服务发送对目标云渲染端的连接请求,预设指令服务接收到连接请求后根据终端的标识信息和目标云渲染端的标识信息生成对应的目标信令服务。
步骤S103,通过目标信令服务建立与目标云渲染端之间的通信连接,在有云渲染需求时,通过目标信令服务向目标云渲染端发送云渲染指令,并接收目标云渲染端通过信令服务反馈的云渲染指令对应的渲染结果。
其中,云渲染指令的类型可分为画面渲染操作指令和场景变换操作指令,由终端发送,并通过目标信令服务发送至目标云渲染端。渲染结果为目标云渲染端执行云渲染指令后得到的画面内容。
具体地,终端通过目标信令服务与目标云渲染端建立通信连接,当终端需要通过目标云渲染端进行云渲染操作时,会将相应的云渲染指令发送给目标信令服务,目标信令服务将云渲染指令发送至目标云渲染端。举例来说,如图2所示,终端A和终端B为两个不同的终端,终端A和终端B会通过访问相同的预设指令服务地址将连接请求发送至相同的预设指令服务,预设指令服务根据终端A的标识信息为终端A创建对应的目标信令服务A,根据终端B的标识信息为终端B创建对应的目标信令服务B。然后终端A和目标信令服务A可以通过建立P2P(peer to peer,对等网络)通信通道进行连接,终端B和目标信令服务B可以通过建立P2P通信通道进行连接。当终端A需要与目标信令服务A断开连接或终端B需要与目标信令服务B断开连接时,预设指令服务可以将对应的目标信令服务关闭。
当目标云渲染端接收到云渲染指令后,会执行相应的渲染步骤,并将对应的渲染结果发送至目标信令服务,目标信令服务再将渲染结果发送至终端。示例性的,如图3所示,终端(即Peer-A)通过P2P通信通道将云渲染指令发送至目标信令服务,目标云渲染端(即Peer-B)通过P2P通信通道将对应的渲染结果发送至目标信令服务。目标信令服务将对应的发送成功或失败的消息以Sdp、candidate(两种消息格式)等格式返回终端或目标云渲染端。
需要说明的是,渲染前后的画面数据可以由目标云渲染端进行编码后直接发送至终端,终端直接接收到编码后的数据后可以进行解码,在显示屏幕上显示对应的解码后的画面内容。
需要说明的是,目标信令服务在传输云渲染指令或渲染结果的过程中,不会对传输的内容进行任何处理。且当终端请求断开与目标云渲染端的连接时,可以通过预设指令服务将目标信令服务关闭,以此实现断开终端与目标云渲染端之间的通信连接的操作。且在本申请提供的实施例中,预设指令服务可以只有一个,所有终端都将通过同一个预设指令服务分别生成对应的目标信令服务。
可选的,目标云渲染端也可以异步执行终端发送的云渲染指令。示例性的,如图4所示,终端可以将终端标识信息UserID(user identification,标识信息)、MessageID(message identification,云渲染指令的全程唯一标识符)以及云渲染指令的参数发送至目标云渲染端的三维程序,此时目标云渲染端的三维程序可以先将终端发送过来的数据存储至内存中(即交互前云端三维程序),当满足预设的执行条件时,再从内存中读取这些数据并根据这些数据执行相关的渲染操作(即交互后云端三维程序)。最后可以将渲染操作的执行结果(或渲染结果)以事件标识符的形式返回给终端。
本申请提供的方案,通过Web服务器为终端筛选出合适可用的目标云渲染端,并将针对目标云渲染端的连接请求发送至预设指令服务,使预设指令服务生成对应的信令服务,最后通过信令服务实现终端与目标云渲染端之间的交互。通过在终端和目标云渲染端之间设置信令服务,使终端可以与更多的云渲染端进行连接,而并非仅能与对应的云渲染端进行连接,进而可以实现多终端与多云渲染端之间的交互。且通过Web服务器筛选后的目标云渲染端能保证具备足够的可调用资源,整体上能提高渲染的效率和渲染结果的质量。
在本申请的一种可选实施例中,目标GPU资源地址通过以下方式获取,具体包括:
通过Web服务器从预设数据库中获取当前各GPU的资源负载量;其中,预设数据库中存储有各GPU的当前资源负载量;
将当前资源负载量最小的GPU作为目标GPU,并获取对应的GPU资源地址。
其中,预设数据库中存储有各GPU的当前资源负载量和各终端与GPU的对应关系,具体来说,当Web服务器为任一终端筛选出目标GPU后,预设数据库会将该终端的标识信息与目标GPU通过对应关系进行存储,而每个GPU对应的终端数量可以表征该GPU的当前资源负载量,对应的终端数量越少,该GPU的当前资源负载量就越小。
具体地,如图5所示,当接收到终端发送的云渲染请求后,Web服务器将通过Web服务器上的Web服务将云渲染请求发送至Web服务器上的调度单元,调度单元可以访问预设数据库并从预设数据库中读取当前所有GPU的资源负载量,然后将当前资源负载量最小的GPU确定为目标GPU,并获取目标GPU的资源地址(即GPU资源调度过程)。最后将预设指令服务地址、GPU资源地址以及Html(Hyper Text Markup Language,超文本标记语言)、javascript(即时编译型的编程语言)等前端代码一并返回终端。
可选的,Web服务器上Web服务可由Vue(一套用于构建用户界面的渐进式框架)、Jquery(一种简化了用户与浏览器的交互的框架)等前端框架开发,通过Nginx(一个代理服务器,用于发布Web服务)等工具发布。预设数据库可以采用PostgreSQL、MySQL(两种关系型数据库类型)等关系型数据库。
在本申请的一种可选实施例中,根据预设指令服务地址向对应的预设指令服务发送针对目标云渲染端的连接请求之后,具体包括:
通过预设指令服务开启目标云渲染端中的三维程序和对应的像素流组件。
其中,三维程序是可加载、读取三维数据的顶点、纹理,并渲染成三维图形的渲染程序。像素流组件通常使用H.264(一种解码器标准)视频压缩技术,对三维渲染程序每个渲染帧结果(如视频、音频)进行编码,形成像素流地址,并向目标信令服务发送形成的像素流地址。
具体地,终端向预设指令服务发送对目标云渲染端的连接请求后,预设指令服务将自动开启目标云渲染端中的三维程序和像素流组件,以使目标云渲染端可以通过三维程序和像素流组件进行渲染操作。
图6为本申请实施例提供一种云渲染交互方法的流程示意图,该方法的执行主体可以是目标云渲染端,如图6所示,该方法可以包括:
步骤S201,通过目标信令服务建立与目标终端之间的通信连接;
步骤S202,在接收到目标终端通过通信连接发送的云渲染指令时,基于云渲染指令获取对应的渲染结果,并通过通信连接将渲染结果发送至目标终端;
其中,目标信令服务是由预设指令服务响应于目标终端发送针对目标云渲染端的连接请求生成的,目标云渲染端是基于网络Web服务器响应于目标终端发送的云渲染请求获取的目标图像处理器GPU资源地址确定的。
其中,Web服务器上部署有Web服务、调度单元和预设数据库,用于为终端反馈预设指令服务地址和GPU资源地址。云渲染请求是由终端发送的请求通过云渲染端进行云渲染操作的请求,云渲染请求中可以包含终端的标识信息。预设指令服务地址用于使终端与预设指令服务建立连接。目标GPU资源地址是Web服务器根据各GPU的实时资源占用情况从所有GPU中筛选出的GPU的资源地址,示例性的,一个GPU资源地址可以是192.168.1.1:8001。
下面先介绍目标云渲染端通过三维程序进行渲染的过程,如图7所示,云渲染端中包含有多种三维数据(如地形数据、BIM(Building Information Modeling,建筑信息模型)模型数据、倾斜摄影数据等),当需要进行渲染操作时,可以将相同类型的三维数据输入到同一个三维渲染程序中,三维渲染程序根据三维数据对画面进行渲染后,将画面内容输入到对应的像素流组件中,像素流组件对画面内容进行编码,得到对应的画面编码数据(即像素流地址)。
具体地,当目标云渲染端通过目标信令服务与终端建立通信连接,并接收到终端通过目标信令服务发送的云渲染指令时,将执行相应的渲染步骤,并将对应的渲染结果发送至目标信令服务,目标信令服务再将渲染结果发送至终端。目标信令服务的生成方式和前文所述目标信令服务的生成方式是相同的,此处不再赘述。
本申请提供的方案,通过Web服务器为终端筛选出合适可用的目标云渲染端,并将针对目标云渲染端的连接请求发送至预设指令服务,使预设指令服务生成对应的信令服务,最后通过信令服务实现终端与目标云渲染端之间的交互。通过在终端和目标云渲染端之间设置信令服务,使终端可以与更多的云渲染端进行连接,而并非仅能与对应的云渲染端进行连接,进而可以实现多终端与多云渲染端之间的交互。且通过Web服务器筛选后的目标云渲染端能保证具备足够的可调用资源,整体上能提高渲染的效率和渲染结果的质量。
综上所述,下面对本申请提供的方案进行整体说明,如图8所示,本申请提供的云渲染交互方案可以包含如下几个步骤:
第一步,终端通过访问Web服务获取前端html、javascript代码以及预设指令服务地址等信息。第二步,终端根据预设指令服务地址向预设指令服务发起针对目标云渲染端的连接请求。第三步,预设指令服务将根据终端和目标云渲染端的标识信息生成对应的目标信令服务,同时开启目标云渲染端中的三维程序和像素流组件。第四步,终端向目标信令服务派发云渲染指令,目标信令服务将云渲染指令发送至目标云渲染端中的三维渲染程序。第五步,三维渲染程序将执行云渲染指令对应的步骤,对初始状态帧进行渲染,依次得到交互状态帧以及交互后状态帧,并将每一帧发送至像素流组件中进行逐帧编码。第六步,像素流组件将编码后的数据以流媒体传输的形式返回终端。
在本申请的一种可选实施例中,若云渲染指令为场景变换操作,云渲染指令包含有对应的操作参数;
基于云渲染指令获取对应的渲染结果,具体包括:
根据操作参数对三维程序中的三维场景进行调整,并将调整后的三维场景作为渲染结果。
其中,场景变换操作可以分为场景移动操作、场景旋转操作和场景缩放操作。三维场景为云渲染端中三维程序的画面内容。操作参数可以是终端通过外置设备进行的操作经过转化后得到的数据。
具体地,当目标云渲染端接收到终端的场景变换操作类型的云渲染指令时,将获取云渲染指令中包含的操作参数,并根据操作参数对三维程序中的三维场景进行调整,并将调整后的三维场景作为渲染结果返回终端。
在本申请的一种可选实施例中,若获取到的场景变换操作的操作类型为场景移动操作,操作参数包括场景移动操作的移动向量;移动向量通过执行场景移动操作的外置设备分别在目标终端的显示屏幕中水平方向上的移动距离和垂直方向上的移动距离获取;
根据操作参数对三维程序中的三维场景进行调整,具体包括:
获取三维程序中的相机当前位置坐标和相机当前观测点坐标,并根据场景移动操作的移动向量、相机当前位置坐标和相机当前观测点坐标,获取相机目标位置坐标和相机目标观测点坐标;
根据相机目标位置坐标和相机目标观测点坐标对三维场景进行调整。
其中,移动向量为场景变换操作后光标位置坐标和场景变换操作前光标位置坐标之间的向量。相机可以看作是三维程序中的“观察者”,相机当前位置坐标是相机当前所处的位置坐标,相机当前观测点坐标是相机中的焦点工具所聚焦的位置坐标。相机目标位置坐标为执行场景变换操作后三维程序中相机应处于的位置坐标。相机目标观测点坐标为执行场景变换操作后三维程序中相机中的焦点工具应聚焦的位置坐标。
具体地,移动向量的计算过程可以参考如下公式:
offsetX=event.clientX-lastMouseX;
offsetY=event.clientY-lastMouseY;
vec2=S*(offsetX,offsetY);
以鼠标为例,上述公式中,offsetX为鼠标移动的在目标终端的显示屏幕X轴(即水平方向)上移动的像素值、offestY为鼠标移动的在目标终端的显示屏幕Y轴(即垂直方向)上移动的像素值。event.clientX、event.clientY分别为本次鼠标移动后鼠标在目标终端的显示屏幕中X轴坐标值、Y轴坐标值,lastMouseX、lastMouseY分别为本次鼠标移动前鼠标在目标终端的显示屏幕中X轴坐标值、Y轴坐标值,单位为pixel(像素);S为鼠标移动灵敏度标量,默认为1.0,值越大则鼠标移动所带来的场景移动越敏感。可由目标终端根据需要传入,以此实现目标终端控制三维场景移动灵敏度。vec2表示二维空间的计算。
相机目标位置坐标和相机目标观测点坐标的获取方式可参考如下公式:
vec3'=normalize(/>);
vec3=normalize(cross(/>));
cameraEye='*mouseOffset.X+/>*mouseOffset.Y;
cameraCenter='*mouseOffset.X+/>*mouseOffset.Y;
上述公式中,为相机朝向在垂直方向上的向量,/>为相机朝向在水平方向上的向量。normalize(归一化)是对向量进行归一化处理,即在保持向量的朝向不变的情况下,使向量的模为1。cross是一种计算函数,用于计算向量积。表示相机在左右方向上偏移的向量,/>'表示相机在上下方向上偏移的向量。vec3表示三维空间的计算。cameraEye表示相机坐标改变量,cameraCenter表示相机观测点坐标改变量。
再通过公式=/>-/>,计算相机的初始朝向。最后根据cameraEye、cameraCenter、/>获取相机目标位置坐标和相机目标观测点坐标,并更新三维程序的视图矩阵,以此实现对场景移动操作。
在本申请的一种可选实施例中,若获取到的场景变换操作的操作类型为场景旋转操作,操作参数包括执行场景旋转操作的外置设备分别在显示屏幕中水平方向上的移动的像素值和垂直方向上移动的像素值;
根据操作参数对三维程序中的三维场景进行调整,具体包括:
获取三维程序中的相机当前位置坐标和相机当前观测点坐标,并根据相机当前位置坐标和相机当前观测点坐标获取相机和相机当前观测点的距离和相机的朝向向量;
根据相机当前朝向向量、水平方向上的移动的像素值、垂直方向上移动的像素值获取相机目标朝向向量;
根据相机目标朝向向量、相机当前观测点坐标、相机和相机当前观测点的距离,获取相机目标位置坐标;
根据相机目标位置坐标和相机当前观测点坐标对三维场景进行调整。
具体地,以鼠标为例,鼠标旋转向量可参照上述相似的方式计算。
根据公式=/>-/>计算相机的初始朝向,并计算相机当前位置距离相机当前观测点的距离radius=/>。
根据鼠标旋转向量分别计算初始朝向与水平方向和垂直方向的角度/>。
=mouseOffset.X*/>/180;
=mouseOffset.Y*/>/180;
然后将角度代入预设矩阵计算相机目标朝向:
vec3=/>*/>*;
再计算出相机目标位置坐标:'=/>-/>*radius;最后根据cameraEye、cameraCenter、/>更新三维程序的视图矩阵,以此实现对场景旋转操作。
在本申请的一种可选实施例中,若获取到的场景变换操作的操作类型为场景缩放操作,操作参数包括行场景缩放操作的外置设备的滚轴灵敏度标量,并根据滚轴灵敏度标量获取外置设备滚动轴原始值;
根据操作参数对三维程序中的三维场景进行调整,具体包括:
获取三维程序中的相机当前位置坐标和相机当前观测点坐标,并根据相机当前位置坐标和相机当前观测点坐标获取相机和相机当前观测点的距离;
根据滚动轴原始值、相机和相机当前观测点的距离获取缩放后相机和相机当前观测点的距离;
根据缩放后相机和相机当前观测点的距离、相机当前观测点坐标获取相机目标位置坐标;
根据相机目标位置坐标和当前观测点坐标对三维场景进行调整。
其中,以鼠标为例,鼠标滚动轴原始值为WheelDelta,当滚轴向上滚动一个单位时,原始滚轴值为正值,可以设置WheelDelta为1.1*S;当滚轴向下滚动一个单位时,原始滚轴值为负值,可以设置WheelDelta为0.9*S;S为鼠标滚轴灵敏度标量,默认值为1.0,取值范围[1,+∞]。当鼠标滚轮一次性滚动的单位越多,对应的WheelDelta也会发生对应的变化,一般来说,示例性的,WheelDelta的取值范围可以是[0.1,10]。其中,若WheelDelta小于1,表示滚轴向下滚动;若WheelDelta大于1.表示滚轴向上滚动。
具体地,先计算3D场景相机的朝向向量:
=/>-/>;
然后计算相机当前位置坐标距离相机当前观测点坐标的距离radius=;
根据目标终端传入的滚动轴原始值,修改radius值,计算公式radius(鼠标滚轴操作后)=radius(鼠标滚轴操作前)*WheelDelta;
然后通过以下公式计算目标相机位置坐标:
'=/>-/>*radius;
最后根据'、/>、/>更新三维程序的视图矩阵,以此实现对场景缩放操作。
另外,在本申请提供的各实施例中,终端还可以计算建筑物的电力能耗数据,并通过目标信令服务发送至目标云渲染端,同时也可以通过终端用户设置的参数自动对不同的建筑物进行染色,示例性的,可以将耗能高建筑颜色参数设为深色,耗能低建筑颜色参数设为浅色。
图9为本申请实施例提供一种云渲染交互装置的结构框图,如图9所示,该云渲染交互装置900可以包括:资源地址获取模块901、目标信令服务获取模块902以及渲染结果接收模块903,其中,
资源地址获取模块901用于向网络Web服务器发送云渲染请求,并接收Web服务器响应于云渲染请求反馈的预设指令服务地址和目标图像处理器GPU资源地址;
目标信令服务获取模块902用于根据目标GPU资源地址确定目标云渲染端,并根据预设指令服务地址向对应的预设指令服务发送针对目标云渲染端的连接请求,以使预设指令服务响应于连接请求生成对应的目标信令服务;
渲染结果接收模块903用于通过目标信令服务建立与目标云渲染端之间的通信连接,在有云渲染需求时,通过目标信令服务向目标云渲染端发送云渲染指令,并接收目标云渲染端通过信令服务反馈的云渲染指令对应的渲染结果。
本申请提供的方案,通过Web服务器为终端筛选出合适可用的目标云渲染端,并将针对目标云渲染端的连接请求发送至预设指令服务,使预设指令服务生成对应的信令服务,最后通过信令服务实现终端与目标云渲染端之间的交互。通过在终端和目标云渲染端之间设置信令服务,使终端可以与更多的云渲染端进行连接,而并非仅能与对应的云渲染端进行连接,进而可以实现多终端与多云渲染端之间的交互,且通过Web服务器筛选后的目标云渲染端能保证具备足够的可调用资源,整体上能提高渲染的效率和渲染结果的质量。
在本申请的一种可选实施例中,目标GPU资源地址通过以下方式获取,具体包括:
通过Web服务器从预设数据库中获取当前各GPU的资源负载量;其中,预设数据库中存储有各GPU的当前资源负载量;
将当前资源负载量最小的GPU作为目标GPU,并获取对应的GPU资源地址。
在本申请的一种可选实施例中,目标信令服务获取模块具体用于:
通过预设指令服务开启目标云渲染端中的三维程序和对应的像素流组件。
图10为本申请实施例提供一种云渲染交互装置的结构框图,如图10所示,该云渲染交互装置1000可以包括:连接建立模块1001、渲染结果发送模块1002其中,
连接建立模块1001用于通过目标信令服务建立与目标终端之间的通信连接;
渲染结果发送模块1002用于在接收到目标终端通过通信连接发送的云渲染指令时,基于云渲染指令获取对应的渲染结果,并通过通信连接将渲染结果发送至目标终端;
其中,目标信令服务是由预设指令服务响应于目标终端发送针对目标云渲染端的连接请求生成的,目标云渲染端是基于网络Web服务器响应于目标终端发送的云渲染请求获取的目标图像处理器GPU资源地址确定的。
本申请提供的方案,通过Web服务器为终端筛选出合适可用的目标云渲染端,并将针对目标云渲染端的连接请求发送至预设指令服务,使预设指令服务生成对应的信令服务,最后通过信令服务实现终端与目标云渲染端之间的交互。通过在终端和目标云渲染端之间设置信令服务,使终端可以与更多的云渲染端进行连接,而并非仅能与对应的云渲染端进行连接,进而可以实现多终端与多云渲染端之间的交互。且通过Web服务器筛选后的目标云渲染端能保证具备足够的可调用资源,整体上能提高渲染的效率和渲染结果的质量。
在本申请的一种可选实施例中,若云渲染指令为场景变换操作,云渲染指令包含有对应的操作参数;
渲染结果发送模块具体用于:
根据操作参数对三维程序中的三维场景进行调整,并将调整后的三维场景作为渲染结果。
在本申请的一种可选实施例中,若获取到的场景变换操作的操作类型为场景移动操作,操作参数包括场景移动操作的移动向量;移动向量通过执行场景移动操作的外置设备分别在目标终端的显示屏幕中水平方向上的移动距离和垂直方向上的移动距离获取;
渲染结果发送模块进一步用于:
获取三维程序中的相机当前位置坐标和相机当前观测点坐标,并根据场景移动操作的移动向量、相机当前位置坐标和相机当前观测点坐标,获取相机目标位置坐标和相机目标观测点坐标;
根据相机目标位置坐标和相机目标观测点坐标对三维场景进行调整。
在本申请的一种可选实施例中,若获取到的场景变换操作的操作类型为场景旋转操作,操作参数包括执行场景旋转操作的外置设备分别在显示屏幕中水平方向上的移动的像素值和垂直方向上移动的像素值;
渲染结果发送模块进一步用于:
获取三维程序中的相机当前位置坐标和相机当前观测点坐标,并根据相机当前位置坐标和相机当前观测点坐标获取相机和相机当前观测点的距离和相机的朝向向量;
根据相机当前朝向向量、水平方向上的移动的像素值、垂直方向上移动的像素值获取相机目标朝向向量;
根据相机目标朝向向量、相机当前观测点坐标、相机和相机当前观测点的距离,获取相机目标位置坐标;
根据相机目标位置坐标和相机当前观测点坐标对三维场景进行调整。
在本申请的一种可选实施例中,若获取到的场景变换操作的操作类型为场景缩放操作,操作参数包括行场景缩放操作的外置设备的滚轴灵敏度标量,并根据滚轴灵敏度标量获取外置设备滚动轴原始值;
渲染结果发送模块进一步用于:
获取三维程序中的相机当前位置坐标和相机当前观测点坐标,并根据相机当前位置坐标和相机当前观测点坐标获取相机和相机当前观测点的距离;
根据滚动轴原始值、相机和相机当前观测点的距离获取缩放后相机和相机当前观测点的距离;
根据缩放后相机和相机当前观测点的距离、相机当前观测点坐标获取相机目标位置坐标;
根据相机目标位置坐标和当前观测点坐标对三维场景进行调整。
下面参考图11,其示出了适于用来实现本申请实施例的电子设备(例如执行图1或图6所示方法的终端设备或服务器)1100的结构示意图。本申请实施例中的电子设备可以包括但不限于诸如移动电话、笔记本电脑、数字广播接收器、PDA(个人数字助理)、PAD(平板电脑)、PMP(便携式多媒体播放器)、车载终端(例如车载导航终端)、可穿戴设备等等的移动终端以及诸如数字TV、台式计算机等等的固定终端。图11示出的电子设备仅仅是一个示例,不应对本申请实施例的功能和使用范围带来任何限制。
电子设备包括:存储器以及处理器,存储器用于存储执行上述各个方法实施例所述方法的程序;处理器被配置为执行存储器中存储的程序。其中,这里的处理器可以称为下文所述的处理装置1101,存储器可以包括下文中的只读存储器(ROM)1102、随机访问存储器(RAM)1103以及存储装置1108中的至少一项,具体如下所示:
如图11所示,电子设备1100可以包括处理装置(例如中央处理器、图形处理器等)1101,其可以根据存储在只读存储器(ROM)1102中的程序或者从存储装置1108加载到随机访问存储器(RAM)1103中的程序而执行各种适当的动作和处理。在RAM1103中,还存储有电子设备1100操作所需的各种程序和数据。处理装置1101、ROM 1102以及RAM1103通过总线1104彼此相连。输入/输出(I/O)接口1105也连接至总线1104。
通常,以下装置可以连接至I/O接口1105:包括例如触摸屏、触摸板、键盘、鼠标、摄像头、麦克风、加速度计、陀螺仪等的输入装置1106;包括例如液晶显示器(LCD)、扬声器、振动器等的输出装置1107;包括例如磁带、硬盘等的存储装置1108;以及通信装置1109。通信装置1109可以允许电子设备1100与其他设备进行无线或有线通信以交换数据。虽然图11示出了具有各种装置的电子设备,但是应理解的是,并不要求实施或具备所有示出的装置。可以替代地实施或具备更多或更少的装置。
特别地,根据本申请的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本申请的实施例包括一种计算机程序产品,其包括承载在非暂态计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信装置1109从网络上被下载和安装,或者从存储装置1108被安装,或者从ROM 1102被安装。在该计算机程序被处理装置1101执行时,执行本申请实施例的方法中限定的上述功能。
需要说明的是,本申请上述的计算机可读存储介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本申请中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本申请中,计算机可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读信号介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:电线、光缆、RF(射频)等等,或者上述的任意合适的组合。
在一些实施方式中,客户端、服务器可以利用诸如HTTP(HyperText TransferProtocol,超文本传输协议)之类的任何当前已知或未来研发的网络协议进行通信,并且可以与任意形式或介质的数字数据通信(例如,通信网络)互连。通信网络的示例包括局域网(“LAN”),广域网(“WAN”),网际网(例如,互联网)以及端对端网络(例如,ad hoc端对端网络),以及任何当前已知或未来研发的网络。
上述计算机可读介质可以是上述电子设备中所包含的;也可以是单独存在,而未装配入该电子设备中。
上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被该电子设备执行时,使得该电子设备:
向网络Web服务器发送云渲染请求,并接收Web服务器响应于云渲染请求反馈的预设指令服务地址和目标图像处理器GPU资源地址;根据目标GPU资源地址确定目标云渲染端,并根据预设指令服务地址向对应的预设指令服务发送针对目标云渲染端的连接请求,以使预设指令服务响应于连接请求生成对应的目标信令服务;通过目标信令服务建立与目标云渲染端之间的通信连接,在有云渲染需求时,通过目标信令服务向目标云渲染端发送云渲染指令,并接收目标云渲染端通过信令服务反馈的云渲染指令对应的渲染结果。
或者,
通过目标信令服务建立与目标终端之间的通信连接;在接收到目标终端通过通信连接发送的云渲染指令时,基于云渲染指令获取对应的渲染结果,并通过通信连接将渲染结果发送至目标终端;其中,目标信令服务是由预设指令服务响应于目标终端发送针对目标云渲染端的连接请求生成的,目标云渲染端是基于网络Web服务器响应于目标终端发送的云渲染请求获取的目标图像处理器GPU资源地址确定的。
可以以一种或多种程序设计语言或其组合来编写用于执行本申请的操作的计算机程序代码,上述程序设计语言包括但不限于面向对象的程序设计语言—诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
附图中的流程图和框图,图示了按照本申请各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,该模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本申请实施例中所涉及到的模块或单元可以通过软件的方式实现,也可以通过硬件的方式来实现。其中,模块或单元的名称在某种情况下并不构成对该单元本身的限定,例如,第一约束获取模块还可以被描述为“获取第一约束的模块”。
本文中以上描述的功能可以至少部分地由一个或多个硬件逻辑部件来执行。例如,非限制性地,可以使用的示范类型的硬件逻辑部件包括:现场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、片上系统(SOC)、复杂可编程逻辑设备(CPLD)等等。
在本申请的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或快闪存储器)、光纤、便捷式紧凑盘只读存储器(CD-ROM)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
应该理解的是,虽然附图的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,其可以以其他的顺序执行。而且,附图的流程图中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,其执行顺序也不必然是依次进行,而是可以与其他步骤或者其他步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
以上所述仅是本发明的部分实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
Claims (12)
1.一种云渲染交互方法,其特征在于,包括:
向网络Web服务器发送云渲染请求,并接收所述Web服务器响应于所述云渲染请求反馈的预设指令服务地址和目标图像处理器GPU资源地址;其中,所述云渲染请求中包含有终端的标识信息;
根据所述目标GPU资源地址确定目标云渲染端,并根据所述预设指令服务地址向对应的预设指令服务发送针对所述目标云渲染端的连接请求,以使所述预设指令服务响应于所述连接请求根据所述终端的标识信息和所述目标云渲染端的标识信息生成对应的目标信令服务;
通过所述目标信令服务建立与所述目标云渲染端之间的通信连接,在有云渲染需求时,通过所述目标信令服务向所述目标云渲染端发送云渲染指令,并接收所述目标云渲染端通过所述信令服务反馈的所述云渲染指令对应的渲染结果。
2.根据权利要求1中所述的方法,其特征在于,所述目标GPU资源地址通过以下方式获取,包括:
通过所述Web服务器从预设数据库中获取当前各GPU的资源负载量;其中,所述预设数据库中存储有各GPU的当前资源负载量;
将当前资源负载量最小的GPU作为目标GPU,并获取对应的GPU资源地址。
3.根据权利要求1中所述的方法,其特征在于,所述根据所述预设指令服务地址向对应的预设指令服务发送针对所述目标云渲染端的连接请求之后,包括:
通过所述预设指令服务开启所述目标云渲染端中的三维程序和对应的像素流组件。
4.一种云渲染交互方法,其特征在于,包括:
通过目标信令服务建立与目标终端之间的通信连接;
在接收到所述目标终端通过所述通信连接发送的云渲染指令时,基于所述云渲染指令获取对应的渲染结果,并通过所述通信连接将所述渲染结果发送至所述目标终端;
其中,所述目标信令服务是由预设指令服务响应于所述目标终端发送针对目标云渲染端的连接请求根据所述终端的标识信息和所述目标云渲染端的标识信息生成的,所述目标云渲染端是基于网络Web服务器响应于所述目标终端发送的云渲染请求获取的目标图像处理器GPU资源地址确定的;其中,所述云渲染请求中包含有终端的标识信息。
5.根据权利要求4中所述的方法,其特征在于,若所述云渲染指令为场景变换操作,所述云渲染指令包含有对应的操作参数;
所述基于所述云渲染指令获取对应的渲染结果,包括:
根据所述操作参数对三维程序中的三维场景进行调整,并将调整后的三维场景作为所述渲染结果。
6.根据权利要求5中所述的方法,其特征在于,若获取到的场景变换操作的操作类型为场景移动操作,所述操作参数包括所述场景移动操作的移动向量;所述移动向量通过执行所述场景移动操作的外置设备分别在所述目标终端的显示屏幕中水平方向上的移动距离和垂直方向上的移动距离获取;
所述根据所述操作参数对三维程序中的三维场景进行调整,包括:
获取所述三维程序中的相机当前位置坐标和相机当前观测点坐标,并根据所述场景移动操作的移动向量、所述相机当前位置坐标和所述相机当前观测点坐标,获取所述相机目标位置坐标和所述相机目标观测点坐标;
根据所述相机目标位置坐标和所述相机目标观测点坐标对所述三维场景进行调整。
7.根据权利要求5中所述的方法,其特征在于,若获取到的场景变换操作的操作类型为场景旋转操作,所述操作参数包括执行所述场景旋转操作的外置设备分别在显示屏幕中水平方向上的移动的像素值和垂直方向上移动的像素值;
所述根据所述操作参数对三维程序中的三维场景进行调整,包括:
获取所述三维程序中的相机当前位置坐标和相机当前观测点坐标,并根据所述相机当前位置坐标和相机当前观测点坐标获取所述相机和所述相机当前观测点的距离和所述相机的朝向向量;
根据所述相机当前朝向向量、所述水平方向上的移动的像素值、所述垂直方向上移动的像素值获取所述相机目标朝向向量;
根据所述相机目标朝向向量、所述相机当前观测点坐标、所述相机和所述相机当前观测点的距离,获取相机目标位置坐标;
根据所述相机目标位置坐标和所述相机当前观测点坐标对所述三维场景进行调整。
8.根据权利要求5中所述的方法,其特征在于,若获取到的场景变换操作的操作类型为场景缩放操作,所述操作参数包括行所述场景缩放操作的外置设备的滚轴灵敏度标量,并根据所述滚轴灵敏度标量获取所述外置设备滚动轴原始值;
所述根据所述操作参数对三维程序中的三维场景进行调整,包括:
获取所述三维程序中的相机当前位置坐标和相机当前观测点坐标,并根据所述相机当前位置坐标和相机当前观测点坐标获取所述相机和所述相机当前观测点的距离;
根据所述滚动轴原始值、所述相机和所述相机当前观测点的距离获取缩放后所述相机和所述相机当前观测点的距离;
根据所述缩放后所述相机和所述相机当前观测点的距离、所述相机当前观测点坐标获取相机目标位置坐标;
根据所述相机目标位置坐标和所述当前观测点坐标对所述三维场景进行调整。
9.一种云渲染交互装置,其特征在于,包括:
资源地址获取模块,用于向网络Web服务器发送云渲染请求,并接收所述Web服务器响应于所述云渲染请求反馈的预设指令服务地址和目标图像处理器GPU资源地址;其中,所述云渲染请求中包含有终端的标识信息;
目标信令服务获取模块,用于根据所述目标GPU资源地址确定目标云渲染端,并根据所述预设指令服务地址向对应的预设指令服务发送针对所述目标云渲染端的连接请求,以使所述预设指令服务响应于所述连接请求根据所述终端的标识信息和所述目标云渲染端的标识信息生成对应的目标信令服务;
渲染结果接收模块,用于通过所述目标信令服务建立与所述目标云渲染端之间的通信连接,在有云渲染需求时,通过所述目标信令服务向所述目标云渲染端发送云渲染指令,并接收所述目标云渲染端通过所述信令服务反馈的所述云渲染指令对应的渲染结果。
10.一种云渲染交互装置,其特征在于,包括:
连接建立模块,用于通过目标信令服务建立与目标终端之间的通信连接;
渲染结果发送模块,用于在接收到所述目标终端通过所述通信连接发送的云渲染指令时,基于所述云渲染指令获取对应的渲染结果,并通过所述通信连接将所述渲染结果发送至所述目标终端;
其中,所述目标信令服务是由预设指令服务响应于所述目标终端发送针对目标云渲染端的连接请求根据所述终端的标识信息和所述目标云渲染端的标识信息生成的,所述目标云渲染端是基于网络Web服务器响应于所述目标终端发送的云渲染请求获取的目标图像处理器GPU资源地址确定的;其中,所述云渲染请求中包含有终端的标识信息。
11.一种电子设备,包括存储器、处理器及存储在存储器上的计算机程序,其特征在于,所述处理器执行所述计算机程序以实现权利要求1-8中任一项所述方法的步骤。
12.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1-8中任一项所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310758854.5A CN116527748B (zh) | 2023-06-26 | 2023-06-26 | 一种云渲染交互方法、装置、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310758854.5A CN116527748B (zh) | 2023-06-26 | 2023-06-26 | 一种云渲染交互方法、装置、电子设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116527748A CN116527748A (zh) | 2023-08-01 |
CN116527748B true CN116527748B (zh) | 2023-09-15 |
Family
ID=87397904
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310758854.5A Active CN116527748B (zh) | 2023-06-26 | 2023-06-26 | 一种云渲染交互方法、装置、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116527748B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116893816B (zh) * | 2023-09-08 | 2024-01-23 | 北京趋动智能科技有限公司 | 远程渲染方法、装置及存储介质 |
CN117437342B (zh) * | 2023-12-20 | 2024-04-30 | 深圳图为技术有限公司 | 一种三维场景渲染方法和存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104052803A (zh) * | 2014-06-09 | 2014-09-17 | 国家超级计算深圳中心(深圳云计算中心) | 一种去中心化的分布式渲染方法及渲染系统 |
CN111061560A (zh) * | 2019-11-18 | 2020-04-24 | 北京视博云科技有限公司 | 云渲染资源调度方法、装置、电子设备及存储介质 |
CN112015533A (zh) * | 2020-08-24 | 2020-12-01 | 当家移动绿色互联网技术集团有限公司 | 适用于分布式渲染的任务调度方法和装置 |
CN115827236A (zh) * | 2022-12-13 | 2023-03-21 | 睿宇时空科技(重庆)股份有限公司 | 实景三维在云发布过程中负载性能优化方法及系统 |
CN116112744A (zh) * | 2023-02-15 | 2023-05-12 | 北京字跳网络技术有限公司 | 视频处理方法、装置、电子设备及存储介质 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20220141662A1 (en) * | 2019-02-06 | 2022-05-05 | Apple Inc. | Enabling interactive service for cloud renderting gaming in 5g systems |
-
2023
- 2023-06-26 CN CN202310758854.5A patent/CN116527748B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104052803A (zh) * | 2014-06-09 | 2014-09-17 | 国家超级计算深圳中心(深圳云计算中心) | 一种去中心化的分布式渲染方法及渲染系统 |
CN111061560A (zh) * | 2019-11-18 | 2020-04-24 | 北京视博云科技有限公司 | 云渲染资源调度方法、装置、电子设备及存储介质 |
CN112015533A (zh) * | 2020-08-24 | 2020-12-01 | 当家移动绿色互联网技术集团有限公司 | 适用于分布式渲染的任务调度方法和装置 |
CN115827236A (zh) * | 2022-12-13 | 2023-03-21 | 睿宇时空科技(重庆)股份有限公司 | 实景三维在云发布过程中负载性能优化方法及系统 |
CN116112744A (zh) * | 2023-02-15 | 2023-05-12 | 北京字跳网络技术有限公司 | 视频处理方法、装置、电子设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN116527748A (zh) | 2023-08-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN116527748B (zh) | 一种云渲染交互方法、装置、电子设备及存储介质 | |
CN110021052B (zh) | 用于生成眼底图像生成模型的方法和装置 | |
KR102657674B1 (ko) | 3차원 비디오의 처리 방법, 장치, 판독 가능 저장매체 및 전자기기 | |
CN115690382B (zh) | 深度学习模型的训练方法、生成全景图的方法和装置 | |
CN112927271A (zh) | 图像处理方法、图像处理装置、存储介质与电子设备 | |
EP4181517A1 (en) | Method and apparatus for converting picture to video, device, and storage medium | |
CN112714263B (zh) | 视频生成方法、装置、设备及存储介质 | |
CN115908679A (zh) | 纹理映射方法、装置、设备及存储介质 | |
WO2024027820A1 (zh) | 基于图像的动画生成方法、装置、设备及存储介质 | |
WO2024016923A1 (zh) | 特效图的生成方法、装置、设备及存储介质 | |
WO2024037556A1 (zh) | 图像处理方法、装置、设备及存储介质 | |
CN111815508A (zh) | 图像生成方法、装置、设备和计算机可读介质 | |
CN116596748A (zh) | 图像风格化处理方法、装置、设备、存储介质和程序产品 | |
CN114066722B (zh) | 用于获取图像的方法、装置和电子设备 | |
CN116248889A (zh) | 图像编码及解码方法、装置和电子设备 | |
CN112492230B (zh) | 视频处理方法、装置、可读介质及电子设备 | |
CN114419298A (zh) | 虚拟物体的生成方法、装置、设备及存储介质 | |
CN114723600A (zh) | 美妆特效的生成方法、装置、设备、存储介质和程序产品 | |
CN111489428B (zh) | 图像生成方法、装置、电子设备及计算机可读存储介质 | |
CN111738899B (zh) | 用于生成水印的方法、装置、设备和计算机可读介质 | |
WO2023029892A1 (zh) | 视频处理方法、装置、设备及存储介质 | |
CN117714769A (zh) | 图像显示方法、装置、电子设备以及存储介质 | |
CN116760991A (zh) | 码流信息生成方法和装置 | |
CN114549284A (zh) | 图像信息处理方法、装置和电子设备 | |
CN114245134A (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 |