本發(fā)明涉及通信領(lǐng)域,具體而言,涉及一種三維處理方法、裝置及系統(tǒng)。
背景技術(shù):
目前大部分網(wǎng)站呈現(xiàn)給用戶的還是平面格式,而平面網(wǎng)站無法給用戶帶來豐富的視覺體驗,因此,如何有效構(gòu)建三維網(wǎng)站成了人們熱衷的話題。在現(xiàn)有的三維網(wǎng)站的構(gòu)建方案中,當三維模型數(shù)據(jù)較大時,有限的網(wǎng)絡(luò)帶寬無法滿足數(shù)據(jù)快速傳輸?shù)男枰?,其次,當三維模型數(shù)據(jù)較大時,客戶端無法順利完成大模型數(shù)據(jù)的加載與渲染,此外,當網(wǎng)絡(luò)帶寬不穩(wěn)定時,傳輸大的三維模型數(shù)據(jù)容易造成數(shù)據(jù)丟失,導致繪制的場景出現(xiàn)失真現(xiàn)象。
針對相關(guān)技術(shù)中三維網(wǎng)站的三維網(wǎng)站的大模型數(shù)據(jù)傳輸與用戶交互上實時性差、繪制大場景效率低的問題,目前還沒有有效地解決方案。
技術(shù)實現(xiàn)要素:
本發(fā)明實施例提供了一種三維處理方法、裝置及系統(tǒng),以至少解決相關(guān)技術(shù)中三維網(wǎng)站的三維網(wǎng)站的大模型數(shù)據(jù)傳輸與用戶交互上實時性差、繪制大場景效率低的問題。
根據(jù)本發(fā)明的一個實施例,提供了一種三維處理方法,包括:中間服務器接收客戶端發(fā)送的請求以及源站服務器對客戶端發(fā)送的請求的響應,其中,所述請求用于請求在所述客戶端顯示的內(nèi)容,所述內(nèi)容包括繪制完畢的三維數(shù)據(jù);所述中間服務器判斷所述中間服務器本地是否保存有繪制完畢的三維數(shù)據(jù),如果有則將所述繪制完畢的三維數(shù)據(jù)發(fā)送給所述客戶端,如果沒有,則向調(diào)度中心請求繪制所述三維數(shù)據(jù)。
可選地,所述中間服務器發(fā)送的繪制完畢的三維數(shù)據(jù)為場景,所述方法還包括:所述中間服務器接收來自所述客戶端的用于請求繪制三維交互對象所使用的數(shù)據(jù)的消息;所述中間服務器向所述客戶端發(fā)送繪制所述三維交互對象所使用的數(shù)據(jù),其中,該數(shù)據(jù)是所述客戶端繪制交互對象的依據(jù)。
可選地,所述方法還包括:所述客戶端接收所述中間服務器發(fā)送的所述繪制所述三維交互對象所使用的數(shù)據(jù);所述客戶端以所述繪制所述三維交互對象所使用的數(shù)據(jù)為依據(jù)繪制所述三維交互對象;所述客戶端接收來自所述中間服務器的所述場景;所述客戶端融合所述三維交互對象與所述場景。
可選地,所述中間服務器向調(diào)度中心請求繪制所述三維數(shù)據(jù)包括:所述中間服務器向所述調(diào)度中心請求繪制所述三維數(shù)據(jù),其中,所述調(diào)度中心用于將所述三維數(shù)據(jù)拆分為至少一部分,并分配給至少一個繪制服務器進行繪制,所述繪制服務器包括所述中間服務器;所述方法還包括:所述中間服務器接收并存儲所述至少一個繪制服務器返回的所述繪制完畢的三維數(shù)據(jù);所述中間服務器將所述至少一個繪制服務器返回的所述繪制完畢的三維數(shù)據(jù)發(fā)送給所述客戶端。
可選地,所述方法還包括:所述調(diào)度中心根據(jù)接收到的請求判斷繪制所述三維數(shù)據(jù)需要的資源;所述調(diào)度中心根據(jù)所述資源將所述三維數(shù)據(jù)拆分為至少一部分,并分配給至少一個所述繪制服務器進行繪制。
可選地,所述調(diào)度中心根據(jù)接收到的請求判斷繪制所述三維數(shù)據(jù)需要的資源包括:所述調(diào)度中心根據(jù)接收到的請求分析所述請求的場景信息;所述調(diào)度中心根據(jù)所述場景信息確定所述三維數(shù)據(jù)的拆分信息,其中,所述拆分信息包括:所述三維數(shù)據(jù)的拆分塊的數(shù)量和大小。
可選地,所述調(diào)度中心根據(jù)所述資源將所述三維數(shù)據(jù)拆分為至少一部分,并分配給至少一個所述繪制服務器進行繪制包括:所述調(diào)度中心根據(jù)所述拆分信息將所述三維數(shù)據(jù)拆分為至少一部分;所述調(diào)度中心根據(jù)所述拆分信息以及所述繪制服務器的繪制能力確定用于繪制所述三維數(shù)據(jù)的至少一個所述繪制服務器;所述調(diào)度中心根據(jù)確定的結(jié)果和拆分的結(jié)果將所述三維數(shù)據(jù)分配給用于繪制所述三維數(shù)據(jù)的至少一個所述繪制服務器。
可選地,所述方法還包括:所述調(diào)度中心獲取所述客戶端的過往操作行為信息,其中,所述過往操作行為信息用于統(tǒng)計所述客戶端的過往操作行為;所述調(diào)度中心根據(jù)所述過往操作行為信息確定為所述客戶端提供的三維數(shù)據(jù),并分配所述繪制服務器繪制所述過往操作行為信息。
根據(jù)本發(fā)明的另一個方面,還提供了一種三維處理裝置,應用于中間服務器,包括:第一接收模塊,用于接收客戶端發(fā)送的請求以及源站服務器對客戶端發(fā)送的請求的響應,其中,所述請求用于請求在所述客戶端顯示的內(nèi)容,所述內(nèi)容包括繪制完畢的三維數(shù)據(jù);第一處理模塊,用于判斷所述中間服務器本地是否保存有繪制完畢的三維數(shù)據(jù),如果有則將所述繪制完畢的三維數(shù)據(jù)發(fā)送給所述客戶端,如果沒有,則向調(diào)度中心請求繪制所述三維數(shù)據(jù)。
可選地,所述中間服務器發(fā)送的繪制完畢的三維數(shù)據(jù)為場景,所述裝置還包括:第二接收模塊,用于接收來自所述客戶端的用于請求繪制三維交互對象所使用的數(shù)據(jù)的消息;發(fā)送模塊,用于向所述客戶端發(fā)送繪制所述三維交互對象所使用的數(shù)據(jù),其中,該數(shù)據(jù)是所述客戶端繪制交互對象的依據(jù)。
可選地,所述第一處理模塊用于:向調(diào)度中心請求繪制所述三維數(shù)據(jù),其中,所述調(diào)度中心用于將所述三維數(shù)據(jù)拆分為至少一部分,并分配給至少一個繪制服務器進行繪制,所述繪制服務器包括所述中間服務器;所述裝置還包括:第二處理模塊,用于接收并存儲所述至少一個繪制服務器返回的所述繪制完畢的三維數(shù)據(jù);將所述至少一個繪制服務器返回的所述繪制完畢的三維數(shù)據(jù)發(fā)送給所述客戶端。
根據(jù)本發(fā)明的另一個方面,還提供了一種三維處理系統(tǒng),包括:中間服務器、調(diào)度中心和客戶端,其中,所述中間服務器包括:如上述任一項所述的三維處理裝置;所述調(diào)度中心,與所述中間服務器連接,用于將三維數(shù)據(jù)拆分為至少一部分,并分配給至少一個繪制服務器進行繪制,所述繪制服務器包括所述中間服務器;所述客戶端,與所述中間服務器連接,用于向所述中間服務器發(fā)送請求,并接收所述中間服務器發(fā)送的繪制完畢的三維數(shù)據(jù),其中,所述請求用于請求在所述客戶端顯示的內(nèi)容,所述內(nèi)容包括繪制完畢的三維數(shù)據(jù)。
通過本發(fā)明,中間服務器接收客戶端發(fā)送的請求以及源站服務器對客戶端發(fā)送的請求的響應,其中,請求用于請求在客戶端顯示的內(nèi)容,內(nèi)容包括繪制完畢的三維數(shù)據(jù);述中間服務器判斷中間服務器本地是否保存有繪制完畢的三維數(shù)據(jù),如果有則將繪制完畢的三維數(shù)據(jù)發(fā)送給客戶端,如果沒有,則向調(diào)度中心請求繪制三維數(shù)據(jù),由此可見,采用上述方案當客戶端請求三維數(shù)據(jù)時,由中間服務器判斷在中間服務器本地是否已經(jīng)存儲了繪制完畢的客戶端請求的三維數(shù)據(jù),如果有則將本地存儲的數(shù)據(jù)直接提供給客戶端,如果沒有,再請求調(diào)度中心繪制該三維數(shù)據(jù),由于中間服務器可以將繪制完畢的三維數(shù)據(jù)緩存在本地,并在客戶端發(fā)起請求時直接將緩存的三維數(shù)據(jù)發(fā)送給客戶端,因此,提高了三維網(wǎng)站的大模型數(shù)據(jù)傳輸與用戶交互上的實時性、繪制大場景的效率,從而解決了相關(guān)技術(shù)中三維網(wǎng)站的三維網(wǎng)站的大模型數(shù)據(jù)傳輸與用戶交互上實時性差、繪制大場景效率低的問題。
附圖說明
此處所說明的附圖用來提供對本發(fā)明的進一步理解,構(gòu)成本申請的一部分,本發(fā)明的示意性實施例及其說明用于解釋本發(fā)明,并不構(gòu)成對本發(fā)明的不當限定。在附圖中:
圖1是根據(jù)本發(fā)明實施例的一種三維處理方法的流程圖;
圖2是根據(jù)本發(fā)明實施例的一種三維處理裝置的結(jié)構(gòu)框圖一;
圖3是根據(jù)本發(fā)明實施例的一種三維處理裝置的結(jié)構(gòu)框圖二;
圖4是根據(jù)本發(fā)明實施例的一種三維處理系統(tǒng)的結(jié)構(gòu)框圖;
圖5是根據(jù)本發(fā)明可選實施例的三維處理系統(tǒng)的結(jié)構(gòu)示意圖;
圖6是根據(jù)本發(fā)明可選實施例的三維處理方法的流程圖一;
圖7是根據(jù)本發(fā)明可選實施例的三維處理方法的流程圖二;
圖8是根據(jù)本發(fā)明可選實施例的三維處理方法的流程圖三。
具體實施方式
下文中將參考附圖并結(jié)合實施例來詳細說明本發(fā)明。需要說明的是,在不沖突的情況下,本申請中的實施例及實施例中的特征可以相互組合。
需要說明的是,本發(fā)明的說明書和權(quán)利要求書及上述附圖中的術(shù)語“第一”、“第二”等是用于區(qū)別類似的對象,而不必用于描述特定的順序或先后次序。
實施例1
在本實施例中提供了一種三維處理方法,圖1是根據(jù)本發(fā)明實施例的一種三維處理方法的流程圖,如圖1所示,該流程包括如下步驟:
步驟S102,中間服務器接收客戶端發(fā)送的請求以及源站服務器對客戶端發(fā)送的請求的響應,其中,上述請求用于請求在客戶端顯示的內(nèi)容,內(nèi)容包括繪制完畢的三維數(shù)據(jù);
步驟S104,中間服務器判斷中間服務器本地是否保存有繪制完畢的三維數(shù)據(jù),如果有則將繪制完畢的三維數(shù)據(jù)發(fā)送給客戶端,如果沒有,則向調(diào)度中心請求繪制三維數(shù)據(jù)。
可選地,上述三維處理方法可以但不限于應用于網(wǎng)站構(gòu)建的場景中。例如:三維網(wǎng)站的構(gòu)建等。
可選地,上述三維處理方法可以但不限于應用于服務器,例如:客戶端與源站之間的中間服務器??蛇x地,在本實施例中,中間服務器可以但不限于是內(nèi)容分發(fā)網(wǎng)絡(luò)(Content Delivery Network,簡稱為CDN)節(jié)點。
通過上述步驟,中間服務器接收來自客戶端的請求以及源站服務器對客戶端發(fā)送的請求的響應,其中,該請求用于請求在客戶端顯示的內(nèi)容,內(nèi)容包括繪制完畢的三維數(shù)據(jù);中間服務器判斷中間服務器本地是否保存有繪制完畢的三維數(shù)據(jù),如果有則將繪制完畢的三維數(shù)據(jù)發(fā)送給客戶端,如果沒有,則向調(diào)度中心請求繪制三維數(shù)據(jù),由此可見,采用上述方案當客戶端請求三維數(shù)據(jù)時,由中間服務器判斷在中間服務器本地是否已經(jīng)存儲了繪制完畢的客戶端請求的三維數(shù)據(jù),如果有則將本地存儲的數(shù)據(jù)直接提供給客戶端,如果沒有,再請求調(diào)度中心繪制該三維數(shù)據(jù),由于中間服務器可以將繪制完畢的三維數(shù)據(jù)緩存在本地,并在客戶端發(fā)起請求時直接將緩存的三維數(shù)據(jù)發(fā)送給客戶端,因此,提高了三維網(wǎng)站的大模型數(shù)據(jù)傳輸與用戶交互上的實時性、繪制大場景的效率,從而解決了相關(guān)技術(shù)中三維網(wǎng)站的大模型數(shù)據(jù)傳輸與用戶交互上實時性差、繪制大場景效率低的問題。
在本實施例中,客戶端可以將請求發(fā)送至源站,再由源站根據(jù)客戶端的請求為客戶端分配能夠為其提供三維數(shù)據(jù)的中間服務器。客戶端也可以直接向中間服務器發(fā)送請求,向中間服務器請求三維數(shù)據(jù)。
在本實施例中,可以在傳統(tǒng)的客戶端與源站之間加入一個中間服務器層,用以緩存繪制節(jié)點繪制的場景數(shù)據(jù),當用戶漫游三維網(wǎng)站時,首先向中間服務器發(fā)起資源請求或者場景更新請求,如果中間服務器上資源滿足用戶需求,則響應給用戶,否則由渲染節(jié)點(例如:渲染服務器)渲染新的場景,然后中間服務器緩存并響應數(shù)據(jù)給用戶。這里的渲染服務器可以是上述中間服務器,在本實施例中,由中間服務器對三維數(shù)據(jù)進行繪制,省去了由專門的渲染節(jié)點繪制三維數(shù)據(jù)的過程,從而提高了三維網(wǎng)站的大模型數(shù)據(jù)傳輸與用戶交互上的實時性、繪制大場景的效率。
在本實施例中,在客戶端程序啟動時,可以首先通過私有協(xié)議將客戶端設(shè)備信息如設(shè)備分辨率等發(fā)送至源站,由源站計算出匹配該客戶端的場景數(shù)據(jù)參數(shù),并將請求轉(zhuǎn)發(fā)至中間服務器,由中間服務器做相應的圖像處理。
可選地,在本實施例中,中間服務器發(fā)送的繪制完畢的三維數(shù)據(jù)可以但不限于為場景。也就是說,由中間服務器繪制較為復雜的場景數(shù)據(jù),而使用較為頻繁的交互對象則由中間服務器為客戶端提供用于繪制交互對象的數(shù)據(jù),再由客戶端自行對交互對象進行繪制。客戶端還可以將自行繪制的交互對象和由中間服務器提供的場景數(shù)據(jù)融合。
在一個示例中,客戶端可以通過發(fā)送消息向中間服務器請求繪制交互對象所使用的數(shù)據(jù),中間服務器根據(jù)該消息向客戶端發(fā)送客戶端請求的數(shù)據(jù),客戶端以該數(shù)據(jù)為依據(jù)繪制交互對象。例如:中間服務器接收來自客戶端的用于請求繪制三維交互對象所使用的數(shù)據(jù)的消息,中間服務器向客戶端發(fā)送繪制三維交互對象所使用的數(shù)據(jù),其中,該數(shù)據(jù)是客戶端繪制交互對象的依據(jù)。
通過上述步驟,客戶端向中間服務器請求繪制交互對象所使用的數(shù)據(jù),中間服務器將客戶端請求的繪制交互對象的數(shù)據(jù)發(fā)送給客戶端,由客戶端繪制交互對象,可見,由中間服務器和客戶端分別繪制場景數(shù)據(jù)和交互對象,再由客戶端將二者融合,避免了由客戶端繪制數(shù)據(jù)量較大的場景時繪制時間長,效率低,實時性差的問題,可以節(jié)省三維網(wǎng)站繪制的時間,提高三維網(wǎng)站繪制的效率和實時性。
也就是說,在本實施例中,針對本地設(shè)備硬件資源不足的特點,可以將交互頻繁的對象交給本地終端繪制,將復雜場景交給專門的服務器集群(即本實施例中的繪制服務器)來繪制,最終將二者在本地客戶端進行融合,有效解決了本地終端繪制大場景效率低下,實時性差的問題。
可選地,在一個示例中,中間服務器可以向調(diào)度中心請求繪制三維數(shù)據(jù),再由調(diào)度中心對三維數(shù)據(jù)的繪制進行調(diào)度和分配,中間服務器向調(diào)度中心請求繪制三維數(shù)據(jù)的方式可以但不限于是中間服務器向調(diào)度中心請求繪制上述三維數(shù)據(jù),再由該調(diào)度中心將三維數(shù)據(jù)拆分為至少一部分,并分配給至少一個繪制服務器進行繪制。在繪制完成后,至少一個繪制服務器可以將繪制結(jié)果發(fā)送給中間服務器,中間服務器則可以接收到至少一個繪制服務器返回的繪制完畢的三維數(shù)據(jù),并將至少一個繪制服務器返回的繪制完畢的三維數(shù)據(jù)發(fā)送給請求該三維數(shù)據(jù)的客戶端。
需要說明的是,在本實施例中,繪制服務器可以但不限于包括中間服務器,該中間服務器可以但不限于是客戶端請求的中間服務器,也可以但不限于是網(wǎng)絡(luò)中的其它中間服務器,對于繪制三維數(shù)據(jù)的中間服務器的分配可以但不限于由調(diào)度中心根據(jù)預定規(guī)則(例如:服務器的繪制能力,服務器的傳輸速度等)進行調(diào)度。
通過上述步驟,由調(diào)度中心對三維數(shù)據(jù)的繪制進行分配和調(diào)度,由至少一個繪制服務器對三維數(shù)據(jù)進行繪制,從而避免了由單一的繪制服務器繪制三維數(shù)據(jù)導致三維數(shù)據(jù)的繪制效率低的問題,從而提高了三維數(shù)據(jù)的繪制效率。進一步,調(diào)度中心分為的繪制服務器包括中間服務器,省去了由專門的繪制服務器繪制三維數(shù)據(jù)的環(huán)節(jié),從而進一步提高了三維數(shù)據(jù)的繪制效率。
此外,中間服務器接收到至少一個繪制服務器返回的繪制完畢的三維數(shù)據(jù),將該三維數(shù)據(jù)發(fā)送給客戶端,并存儲該繪制完畢的三維數(shù)據(jù),以便在客戶端再度請求該三維數(shù)據(jù)時直接將存儲的該三維數(shù)據(jù)提供給客戶端,從而省去了再次繪制該三維數(shù)據(jù)的過程,提高了三維網(wǎng)站的大模型數(shù)據(jù)傳輸與用戶交互上的實時性、繪制大場景的效率。
在本實施例中,復雜場景的繪制由中間服務器集群來完成,對于大的場景,需將場景進行分割,然后由中間服務器集群中不同的中間服務器針對不同的分割區(qū)域進行渲染,渲染任務的分配由調(diào)度中心統(tǒng)一完成。
在本實施例中,調(diào)度中心可以通過分析場景信息,確定場景分割塊數(shù)與大小,并統(tǒng)一調(diào)度中間服務器集群中不同的中間服務器進行不同區(qū)域的繪制,當網(wǎng)站涉及多個場景時,不同場景的繪制也由調(diào)度中心統(tǒng)一分配。此外,該調(diào)度中心還可以用于通知客戶端向哪一個中間服務器發(fā)起請求。
在本實施例中,調(diào)度中心對渲染服務器集群的任務分配通過計算不同渲染節(jié)點的渲染能力來完成,每次繪制任務由當前渲染能力最強的渲染節(jié)點來進行。
在一個可選示例中,可以但不限于由調(diào)度中心對繪制三維數(shù)據(jù)需要的資源進行拆分和分配。例如:調(diào)度中心根據(jù)接收到的請求判斷繪制三維數(shù)據(jù)需要的資源,調(diào)度中心根據(jù)資源將三維數(shù)據(jù)拆分為至少一部分,并分配給至少一個繪制服務器進行繪制。
在上述可選示例中,調(diào)度中心可以但不限于根據(jù)接收到的請求分析該請求的場景信息,并根據(jù)分析得到的場景信息確定三維數(shù)據(jù)的拆分信息,其中,上述拆分信息可以但不限于包括:三維數(shù)據(jù)的拆分塊的數(shù)量和大小。也就是說,調(diào)度中心可以分析得到客戶端請求繪制的場景的場景信息,并確定如何將三維數(shù)據(jù)拆分,即確定三維數(shù)據(jù)的拆分塊的數(shù)量和大小。
在上述可選示例中,調(diào)度中心確定了拆分信息后,可以根據(jù)拆分信息將三維數(shù)據(jù)拆分為至少一部分,并根據(jù)拆分信息以及繪制服務器的繪制能力確定用于繪制三維數(shù)據(jù)的至少一個繪制服務器,根據(jù)確定的結(jié)果和拆分的結(jié)果將三維數(shù)據(jù)分配給用于繪制三維數(shù)據(jù)的至少一個繪制服務器。
通過上述步驟,調(diào)度中心可以實現(xiàn)對需要繪制的三維數(shù)據(jù)的調(diào)度和分配,根據(jù)繪制服務器的繪制能力調(diào)度至少一個繪制服務器繪制三維數(shù)據(jù),提高了三維數(shù)據(jù)的繪制效率,從而提高了三維網(wǎng)站的大模型數(shù)據(jù)傳輸與用戶交互上的實時性、繪制大場景的效率。
在本實施例中,可以但不限于通過情境感知功能以分析用戶過往行為為依托,通過主動感知用戶的操作意圖,提前通過中間服務器集群對相應場景進行渲染。例如:調(diào)度中心獲取客戶端的過往操作行為信息,其中,過往操作行為信息用于統(tǒng)計客戶端的過往操作行為,該調(diào)度中心根據(jù)上述過往操作行為信息確定為客戶端提供的三維數(shù)據(jù),并分配繪制服務器繪制上述過往操作行為信息。
實施例2
在本實施例中還提供了一種三維處理裝置,應用于中間服務器,該裝置用于實現(xiàn)上述實施例及優(yōu)選實施方式,已經(jīng)進行過說明的不再贅述。如以下所使用的,術(shù)語“模塊”可以實現(xiàn)預定功能的軟件和/或硬件的組合。盡管以下實施例所描述的裝置較佳地以軟件來實現(xiàn),但是硬件,或者軟件和硬件的組合的實現(xiàn)也是可能并被構(gòu)想的。
圖2是根據(jù)本發(fā)明實施例的一種三維處理裝置的結(jié)構(gòu)框圖一,如圖2所示,該裝置包括:
第一接收模塊22,用于接收客戶端發(fā)送的請求以及源站服務器對客戶端發(fā)送的請求的響應,其中,上述請求用于請求在客戶端顯示的內(nèi)容,內(nèi)容包括繪制完畢的三維數(shù)據(jù);
第一處理模塊24,第一接收模塊22,耦合至用于判斷中間服務器本地是否保存有繪制完畢的三維數(shù)據(jù),如果有則將繪制完畢的三維數(shù)據(jù)發(fā)送給客戶端,如果沒有,則向調(diào)度中心請求繪制三維數(shù)據(jù)。
可選地,上述三維處理裝置可以但不限于應用于網(wǎng)站構(gòu)建的場景中。例如:三維網(wǎng)站的構(gòu)建等。
可選地,上述三維處理裝置可以但不限于應用于服務器,例如:客戶端與源站之間的中間服務器??蛇x地,在本實施例中,中間服務器可以但不限于是內(nèi)容分發(fā)網(wǎng)絡(luò)(Content Delivery Network,簡稱為CDN)節(jié)點。
通過上述裝置,第一接收模塊接收來自客戶端的請求以及源站服務器對客戶端發(fā)送的請求的響應,其中,請求用于請求在客戶端顯示的內(nèi)容,內(nèi)容包括繪制完畢的三維數(shù)據(jù);第一處理模塊判斷中間服務器本地是否保存有繪制完畢的三維數(shù)據(jù),如果有則將繪制完畢的三維數(shù)據(jù)發(fā)送給客戶端,如果沒有,則向調(diào)度中心請求繪制三維數(shù)據(jù),由此可見,采用上述方案當客戶端請求三維數(shù)據(jù)時,由第一處理模塊判斷在中間服務器本地是否已經(jīng)存儲了繪制完畢的客戶端請求的三維數(shù)據(jù),如果有則將本地存儲的數(shù)據(jù)直接提供給客戶端,如果沒有,再請求調(diào)度中心繪制該三維數(shù)據(jù),由于中間服務器可以將繪制完畢的三維數(shù)據(jù)緩存在本地,并在客戶端提出請求時直接發(fā)送給客戶端,因此,提高了三維網(wǎng)站的大模型數(shù)據(jù)傳輸與用戶交互上的實時性、繪制大場景的效率,從而解決了相關(guān)技術(shù)中三維網(wǎng)站的大模型數(shù)據(jù)傳輸與用戶交互上實時性差、繪制大場景效率低的問題。
可選地,上述服務器發(fā)送的繪制完畢的三維數(shù)據(jù)可以但不限于為場景。
圖3是根據(jù)本發(fā)明實施例的一種三維處理裝置的結(jié)構(gòu)框圖二,如圖3所示,可選地,上述裝置還包括:
第二接收模塊32,耦合至第一接收模塊22,用于接收來自客戶端的用于請求繪制三維交互對象所使用的數(shù)據(jù)的消息;
發(fā)送模塊34,耦合至第二接收模塊32,用于向客戶端發(fā)送繪制三維交互對象所使用的數(shù)據(jù),其中,該數(shù)據(jù)是客戶端繪制交互對象的依據(jù)。
可選地,第一處理模塊24用于:向調(diào)度中心請求繪制三維數(shù)據(jù),其中,調(diào)度中心用于將三維數(shù)據(jù)拆分為至少一部分,并分配給至少一個繪制服務器進行繪制,繪制服務器包括中間服務器;上述裝置還可以包括:第二處理模塊,耦合至處理模塊24,用于接收并存儲至少一個繪制服務器返回的繪制完畢的三維數(shù)據(jù);將至少一個繪制服務器返回的繪制完畢的三維數(shù)據(jù)發(fā)送給客戶端。
在本實施例中還提供了一種三維處理系統(tǒng),圖4是根據(jù)本發(fā)明實施例的一種三維處理系統(tǒng)的結(jié)構(gòu)框圖,如圖4所示,該系統(tǒng)包括:中間服務器42、調(diào)度中心44和客戶端46,其中,中間服務器42包括:上述任一項的三維處理裝置;調(diào)度中心,與中間服務器42連接,用于將三維數(shù)據(jù)拆分為至少一部分,并分配給至少一個繪制服務器進行繪制,繪制服務器包括中間服務器42;客戶端46,與中間服務器42連接,用于向中間服務器42發(fā)送請求,并接收中間服務器42發(fā)送的繪制完畢的三維數(shù)據(jù),其中,上述請求用于請求在客戶端46顯示的內(nèi)容,該內(nèi)容包括繪制完畢的三維數(shù)據(jù)。
可選地,客戶端用于:接收中間服務器發(fā)送的繪制三維交互對象所使用的數(shù)據(jù);以繪制三維交互對象所使用的數(shù)據(jù)為依據(jù)繪制三維交互對象;接收來自中間服務器的場景;融合三維交互對象與場景。
可選地,調(diào)度中心用于:根據(jù)接收到的請求判斷繪制三維數(shù)據(jù)需要的資源;根據(jù)資源將三維數(shù)據(jù)拆分為至少一部分,并分配給至少一個繪制服務器進行繪制。
可選地,調(diào)度中心還用于:根據(jù)接收到的請求分析請求的場景信息;根據(jù)場景信息確定三維數(shù)據(jù)的拆分信息,其中,拆分信息包括:三維數(shù)據(jù)的拆分塊的數(shù)量和大小。
可選地,調(diào)度中心還用于:根據(jù)拆分信息將三維數(shù)據(jù)拆分為至少一部分;根據(jù)拆分信息以及繪制服務器的繪制能力確定用于繪制三維數(shù)據(jù)的至少一個繪制服務器;根據(jù)確定的結(jié)果和拆分的結(jié)果將三維數(shù)據(jù)分配給用于繪制三維數(shù)據(jù)的至少一個繪制服務器。
可選地,調(diào)度中心還用于:獲取客戶端的過往操作行為信息,其中,過往操作行為信息用于統(tǒng)計客戶端的過往操作行為;根據(jù)過往操作行為信息確定為客戶端提供的三維數(shù)據(jù),并分配繪制服務器繪制過往操作行為信息。
需要說明的是,上述各個模塊是可以通過軟件或硬件來實現(xiàn)的,對于后者,可以通過以下方式實現(xiàn),但不限于此:上述模塊均位于同一處理器中;或者,上述模塊分別位于多個處理器中。
下面結(jié)合本發(fā)明可選實施例進行詳細說明。
本發(fā)明可選實施例提供了一種三維處理系統(tǒng),圖5是根據(jù)本發(fā)明可選實施例的三維處理系統(tǒng)的結(jié)構(gòu)示意圖,如圖5所示,在該系統(tǒng)中,情境感知模塊用于感知用戶在客戶端的操作意圖,并以用戶過往數(shù)據(jù)為依托,增強判斷的準確性。客戶端模塊用于交互對象的繪制任務,并與中間服務器發(fā)送過來的背景圖片進行融合。內(nèi)容調(diào)度模塊用于為客戶端選擇一個可訪問的中間服務器,同時指定服務器集群的渲染節(jié)點進行場景的繪制任務。中間服務器模塊用來緩存用戶請求的場景資源,并根據(jù)用戶終端設(shè)備信息對緩存的圖片進行壓縮等處理,以響應匹配用戶終端設(shè)備的數(shù)據(jù)。服務器集群圖形分布式渲染模塊用于不同場景不同區(qū)域的分工渲染。源站服務器模塊用于網(wǎng)站實際內(nèi)容的生成。
本發(fā)明可選實施例還提供了一種三維處理方法,應用于客戶端側(cè),圖6是根據(jù)本發(fā)明可選實施例的三維處理方法的流程圖一,如圖6所示,該流程包括如下步驟:
步驟S602,客戶端啟動時首先將終端設(shè)備信息,如分辨率等,發(fā)送至源站,源站對這些信息進行處理,后續(xù)中間服務器根據(jù)處理的結(jié)果對緩存的圖片進行壓縮等處理,以匹配不同的終端設(shè)備。
步驟S604,本地客戶端繪制交互對象。
步驟S606,繪制完交互對象后與中間服務器傳送過來的初始背景圖片進行場景融合。
步驟S608,當用戶在場景中漫游時,情境感知模塊不斷感知用戶意圖并判斷場景是否需要更新,若沒有感知到用戶將進入新的場景則繼續(xù)保持不斷感知的狀態(tài)。
步驟S610,當情境感知模塊感知到用戶進入新的場景時,本地客戶端向中間服務器請求相應的場景資源,得到響應后將本地交互對象與新的背景融合。
步驟S612,當用戶在一場景中漫游時,情境感知模塊會不斷感知用戶意圖并判斷用戶興趣域是否發(fā)生變化,若未感知到發(fā)生變化則繼續(xù)保持不斷感知的狀態(tài)。
步驟S614,當情境感知模塊感知到用戶興趣域即將發(fā)生變化時,本地客戶端向中間服務器請求相應的場景資源,更新興趣域?qū)膱鼍百Y源,并在本地客戶端完成同一場景不同區(qū)域的融合以及與本地交互對象的場景融合。
本發(fā)明可選實施例還提供了另一種三維處理方法,圖7是根據(jù)本發(fā)明可選實施例的三維處理方法的流程圖二,如圖7所示,該流程包括如下步驟:
步驟S702,當中間服務器沒有用戶請求的場景資源或者資源過期時,會由中間服務器集群對請求的場景資源進行繪制。
步驟S704,調(diào)度中心根據(jù)請求,利用相關(guān)數(shù)據(jù)模型和參數(shù)計算出渲染能力最佳的渲染節(jié)點(例如:中間服務器)所在。其中計算的參數(shù)主要包含節(jié)點CPU性能參數(shù)(主頻,利用率等),GPU性能參數(shù)(顯存等),內(nèi)存利用率,磁盤IO,單位時間內(nèi)的CPU進程占用數(shù)目,節(jié)點歷史可靠性指標等。各個參數(shù)在數(shù)據(jù)模型中都有各自對應的權(quán)重,并由數(shù)據(jù)模型計算出一個最終值作為衡量渲染節(jié)點渲染能力的指標。
步驟S706,得到最佳渲染節(jié)點后,更新渲染節(jié)點隊列,渲染節(jié)點隊列的排列根據(jù)渲染能力大小不斷更新。
步驟S708,得到最佳渲染節(jié)點后,利用該節(jié)點對所請求場景資源進行繪制。
步驟S710,最佳渲染節(jié)點將繪制好的圖片發(fā)送至中間服務器并進行緩存。
步驟S712,中間服務器將繪制好的場景資源發(fā)送至客戶端。
本發(fā)明可選實施例還提供了另一種三維處理方法,圖8是根據(jù)本發(fā)明可選實施例的三維處理方法的流程圖三,如圖8所示,該流程包括如下步驟:
步驟S802,中間服務器接受客戶端場景數(shù)據(jù)的請求。
步驟S804,中間服務器判斷是否為第一次請求,若為第一次請求則中間服務器向源站轉(zhuǎn)發(fā)請求,并由渲染節(jié)點(例如:中間服務器)對所請求的場景資源進行渲染。
步驟S806,渲染節(jié)點將渲染好的圖片發(fā)送至中間服務器,中間服務器緩存相應的場景數(shù)據(jù)并根據(jù)客戶終端設(shè)備信息對圖片進行壓縮等相關(guān)處理,然后發(fā)送匹配用戶終端設(shè)備的資源給客戶端。
步驟S808,若非第一次請求,則中間服務器首先驗證緩存的場景數(shù)據(jù)是否過期。
步驟S810,若緩存過期,則中間服務器向源站請求最新的場景數(shù)據(jù)并由渲染節(jié)點重新渲染相關(guān)場景,更新緩存,然后發(fā)送最新的場景數(shù)據(jù)至客戶端。
步驟S812,若緩存未過期,則中間服務器將處理過的場景圖片(例如:壓縮后的場景數(shù)據(jù))發(fā)送至客戶端。
在上述可選實施例中,可以但不限于將中間服務器作為渲染節(jié)點,由中間服務器對三維數(shù)據(jù)進行繪制,省去了使用專門的繪制服務器作為渲染節(jié)點來繪制三維數(shù)據(jù)的過程,從而節(jié)省了繪制三維數(shù)據(jù)的時間,提高了三維數(shù)據(jù)的繪制效率,進而提高了三維網(wǎng)站的構(gòu)建效率。
綜上所述,本發(fā)明是針對當前三維網(wǎng)站缺少一種有效的構(gòu)建方法且場景渲染效率低下提出的一種解決方案,可以有效解決當前三維網(wǎng)站中繪制復雜三維場景效率低下,實時性差的問題,同時解決了不同設(shè)備對同一內(nèi)容進行請求而導致的不匹配問題。在本發(fā)明可選實施例中可以直接把繪制任務交給本地終端來繪制,忽略了本地終端硬件資源不足無法實時繪制復雜場景的問題,而把三維模型數(shù)據(jù)都放在服務器端,沒有考慮到有限的網(wǎng)絡(luò)帶寬無法快速傳輸大的數(shù)據(jù)模型,從而引發(fā)數(shù)據(jù)傳輸失敗或丟失,容易導致三維網(wǎng)站場景失真、用戶訪問實時性差的問題。有的雖然考慮了利用服務器來繪制大規(guī)模場景,但是單一的服務器對于實時繪制復雜場景的能力畢竟有限,同時在訪問并發(fā)量較大的情況下,當用戶訪問三維網(wǎng)站的興趣域發(fā)生變化時,無法對興趣域進行實時更新。有的把整個復雜場景都放在服務端進行繪制,忽略了交互性差的問題。因此本方案提出利用服務器集群來繪制復雜場景,有效利用了服務器集群硬件資源充足的特點,通過與內(nèi)容調(diào)度中心的配合,實現(xiàn)不同服務器對不同場景不同區(qū)域繪制的合理分工,保證了復雜場景繪制的實時性;同時利用本地資源對交互對象進行繪制,充分利用了本地繪制交互性強的特點,并最終將交互對象與中間服務器響應的場景資源在本地進行融合,達到交互性與實時性的統(tǒng)一。
通過客戶端直接訪問源站,當用戶訪問量大時,將導致源站壓力巨大,且如果復雜場景的繪制任務由源站完成,則會進一步導致繪制效率低下。因此本方案通過增加中間服務器層,用以對服務器集群渲染的場景圖片進行緩存,一方面減輕了源站的壓力,另一方面有效提高了用戶訪三維場景的速度。
以上實施例僅用以說明本發(fā)明的技術(shù)方案而非對其進行限制,本領(lǐng)域的普通技術(shù)人員可以對本發(fā)明的技術(shù)方案進行修改或者等同替換,而不脫離本發(fā)明的精神和范圍,本發(fā)明的保護范圍應以權(quán)利要求所述為準。
顯然,本領(lǐng)域的技術(shù)人員應該明白,上述的本發(fā)明的各模塊或各步驟可以用通用的計算裝置來實現(xiàn),它們可以集中在單個的計算裝置上,或者分布在多個計算裝置所組成的網(wǎng)絡(luò)上,可選地,它們可以用計算裝置可執(zhí)行的程序代碼來實現(xiàn),從而,可以將它們存儲在存儲裝置中由計算裝置來執(zhí)行,并且在某些情況下,可以以不同于此處的順序執(zhí)行所示出或描述的步驟,或者將它們分別制作成各個集成電路模塊,或者將它們中的多個模塊或步驟制作成單個集成電路模塊來實現(xiàn)。這樣,本發(fā)明不限制于任何特定的硬件和軟件結(jié)合。
以上所述僅為本發(fā)明的優(yōu)選實施例而已,并不用于限制本發(fā)明,對于本領(lǐng)域的技術(shù)人員來說,本發(fā)明可以有各種更改和變化。凡在本發(fā)明的精神和原則之內(nèi),所作的任何修改、等同替換、改進等,均應包含在本發(fā)明的保護范圍之內(nèi)。