分布式三維渲染系統的製作方法
2023-06-19 02:25:06 1
專利名稱:分布式三維渲染系統的製作方法
技術領域:
本發明涉及分布式處理系統,特別是涉及一種分布式三維渲染系統。
背景技術:
隨著科技的飛速發展,傳統的單機三維渲染系統輸出圖像的效果、解析度及幀率 已經無法滿足用戶對場景的細膩程度及大視野的需求。為了獲得更大的顯示尺寸、更寬的 視野、更高的顯示解析度、更具衝擊力的視覺效果,三維渲染的運算量成倍增長,單臺處理 器無法滿足應用需求。為了適應這繁重的三維渲染運算,目前業界有提出了這麼一種分布 式的三維渲染系統,該系統由很多單個的渲染節點組成,在執行渲染任務時自動將任務分 解到相應渲染節點,自動負載平衡每個渲染節點的使用效率。上述的將單幀圖像的渲染運 算分布到多臺計算機或多個GPlKgraphics processing unit,圖形顯示卡),有許多方法可 以實現這種技術,主要是把每幀畫面分割成不同的區域,分配到不同的節點,由各個計算機 或GPU各自單獨完成計算,最後把各個渲染節點所渲染的圖像合併成一張大的圖像,從而 實現超大解析度三維場景的快速渲染。
分布式三維渲染系統可以用更快的速度完成大解析度場景的渲染,然而與此同時 也帶來了多個渲染節點之間渲染及圖像輸出顯示的不同步問題。眾所周知,目前衡量三位 場景的複雜度主要看這個場景有多少個三角形組成,場景越複雜包含的三角越多,三角形 多的場景對應的三維渲染運算量就越大。在一個大解析度的三維場景畫面中,畫面每一部 分的場景複雜程度不盡相同,有的部分可能是由幾十個三角形組成的場景,有的場景則需 要幾百個幾千個三角形組成,這樣按塊分配給各個渲染節點的運算量就完全不一樣。如果 每個渲染節點的處理能力相同(即每秒處理的三角形個數相同),則由較多三角形組成的復 雜三維場景運算需花費的時間就會越長,簡單的三維場景運算花費的時間就越短。這個就 會導致處理節點每秒鐘處理的幀數時快時慢,各個處理節點之間處理的幀率有快有慢。如 果不採取有效的同步機制就會出現各個節點之間的不同步現象,從而導致圖像撕裂現象的 出現。如圖1所示,某一時刻渲染節點I渲染顯示A畫面的一部分,理論上渲染節點2此時 也應該渲染顯示A畫面的一部分,由於沒有有效的同步機制,這時渲染節點2渲染顯示的是 B畫面的一部分,這樣在拼接顯示的時候我們看見的就是一個撕裂的畫面。
傳統的分布式三維渲染系統主要採用軟體的同步機制來實現各個渲染節點之間 渲染運算的同步。如圖2以及圖3所示,上述實現各個渲染節點之間同步的過程主要包括 以下幾個步驟
I)、所有三維模型數據全部由主控制臺通過內部通訊網絡實時的發給每個節點;
2)、每個渲染節點通過通訊接口接收自己的三維模型數據;
3)、渲染節點接收完一幀數據後再通過內部數據總線把三維模型數據傳輸給GPU 開始啟動三維渲染運算;
4)、等待GPU運算處理完畢信號,同時把處理完畢信號發送給主控制臺,告訴主控 制臺本節點已經準備就緒;
5)、主控制臺在收到所有節點報告的準備就緒信號後發送同步顯示命令給各個渲 染節點;
6)、每個渲染節點收到同步顯示命令後就把剛渲染好的圖像數據輸出顯示,這樣 就完成了 一幀三維場景的渲染顯示。循環執行上述第一至第六步可以實現整個渲染過程。
上面軟體同步的方法主要思想是通過主控制臺發布同步命令讓處理快的渲染節 點等待處理慢的渲染節點,從而實現各個渲染節點之間渲染運算的同步問題。由於GPU帶 有圖像輸出顯示的功能,一般做法就是直接由GPU輸出顯示圖像。然而,GPU內部數據交換 顯示部分只有晶片廠家能控制,沒有可供同步輸出的控制接口。當我們把三維模型數據提 交給GPU運算完成後,GPU就直接輸出顯示,不會等待同步顯示命令。也就是說,採用單獨 的軟體同步機制不能完全起到同步的作用。發明內容
基於此,有必要針對上述單獨的軟體同步機制不能完全實現各個渲染節點之間的 同步問題,提供一種分布式三維渲染系統。
為實現上述目的,本發明採用如下的技術方案
一種分布式3D拼接顯示處理系統,包括主控制臺、至少兩個渲染節點,所述渲染 節點包括圖形顯示卡、同步顯示卡;
所述主控制臺將三維模型數據發給各渲染節點,各渲染節點接收到自己的三維模 型數據後將所述三維模型數據傳輸給所述圖形顯示卡並啟動三維渲染運算,然後等待所述 圖形顯示卡的運算處理完畢信號;當接收到所述處理完畢信號後啟動所述同步顯示卡從所 述圖形顯示卡中讀取渲染好的三維圖像數據並進行存儲,同時將所述處理完畢信號發送給 所述主控制臺;所述主控制臺在接收到所有渲染節點的處理完畢信號後發送同步顯示命令 給各渲染節點;各渲染節點收到所述同步顯示命令後通知所述同步顯示卡將渲染好的三維 圖像數據進行輸出顯示。
由以上方案可以看出,本發明的分布式三維渲染系統,採用同步顯示卡來實現可 控的圖像輸出顯示功能,實現了卡與卡之間的同步控制,讓整個渲染系統可以共用同一個 視頻輸出同步信號,保證了整個系統視頻輸出的完全同步;並且由於本發明中實現了同步 顯示卡與圖形顯示卡之間的直接數據傳輸,從而降低了數據傳輸對系統總線帶寬與CPU處 理時間的浪費,提高了整個系統的運行效率。本發明在傳統的軟體機制的基礎上重點增加 了硬體機制來實現各個渲染節點之間的完全同步,保證了系統快速、正確的顯示,在超大分 辨率三維圖像的生成、演示及仿真方面有較高的實用價值(如三維GIS、三維虛擬景觀、虛擬 仿真等)。
圖1為採用傳統的分布式三維渲染系統進行渲染時出現畫面撕裂的示意圖2為傳統的分布式三維渲染系統中主控制臺處理流程示意圖3為傳統的分布式三維渲染系統中渲染節點處理流程示意圖4為本發明實施例中一種分布式三維渲染系統的結構示意圖5為本發明實施例中渲染節點的結構以及數據傳輸路徑示意圖6為傳統的渲染節點中數據傳輸路徑示意圖7為本發明實施例中同步顯示卡的結構示意圖8為本發明實施例中分布式三維渲染系統渲染節點處理流程示意圖。
具體實施方式
下面結合附圖以及具體的實施例,對本發明的技術方案作進一步的描述。
參見圖4所示,一種分布式三維渲染系統,包括主控制臺、至少兩個渲染節點。其 中,主控制臺是系統的主控器及系統對外的總交互接口,負責渲染模型、數據及同步控制的 命令分發;各個渲染節點主要負責本節點範圍內的三維模型數據同步運算、圖像生成及圖 像同步輸出顯示等。
如圖5所示,每個渲染節點中均可以包括圖形顯示卡(GPU)、同步顯示卡等,同步 顯示卡與圖形顯示卡之間可以直接進行數據傳輸,不需要經過內存,這樣可以節省大量的 CPU處理時間及整個系統帶寬。其中,GPU負責三維數據的運算及圖像數據的生成,是完成 三維渲染的核心模塊;同步顯示卡是完成圖像數據輸出顯示的模塊,負責各個節點之間輸 出圖像的同步控制,是同步輸出的關鍵模塊。
本發明實施例中分布式三維渲染系統的工作流程如下所述主控制臺將三維模 型數據發給各渲染節點,各渲染節點接收到自己的三維模型數據後,將所述三維模型數據 傳輸給所述圖形顯示卡並啟動三維渲染運算,然後等待所述圖形顯示卡的運算處理完畢信 號(圖形顯示卡的三維渲染運算完成之後會發送運算處理完畢信號);當接收到所述處理完 畢信號後,啟動所述同步顯示卡從所述圖形顯示卡中讀取渲染好的三維圖像數據並進行存 儲,同時將所述處理完畢信號發送給所述主控制臺;所述主控制臺在接收到所有渲染節點 的處理完畢信號後,發送同步顯示命令給各渲染節點;各渲染節點收到所述同步顯示命令 後通知所述同步顯示卡將渲染好的三維圖像數據進行輸出顯示。
作為一個較好的實施例,如圖5所示,所述渲染節點還可以包括CPU (Central Processing Unit,中央處理單元)、內存、網絡接口卡等組成部分,所述內存、網絡接口卡、 圖形顯示卡、同步顯示卡分別與所述CPU相連接。其中,CPU是整個渲染節點的主控器,負 責初始化各個功能模塊、控制協調各個功能模塊之間的數據交換等;內存是系統數據的臨 時存放點;網絡接口卡主要完成節點機與外部的數據交換的功能。
作為一個較好的實施例,所述網絡接口卡、圖形顯示卡、同步顯示卡均可以通過 PC1-E總線與所述CPU相連接。
另外,作為一個較好的實施例,如圖7所示,所述同步顯示卡可以包括板載內存、 同步接口、視頻輸出接口、主處理單元;所述板載內存、同步接口、視頻輸出接口分別與所述 主處理單元相連接。其中,板載內存主要用於圖像數據的緩存;同步接口是外部同步信號的 輸入輸出接口 ;視頻輸出接口是視頻圖像輸出的標準接口 ;主處理單元負責高速的數據傳 輸、數據緩衝、同步顯示處理及視頻數據輸出轉換等功能,該主處理單元可以用一片可編程 邏輯晶片來實現。
作為一個較好的實施例,如圖7所示,所述主處理單元中可以進一步的包括DMA (DMA(Direct Memory Access,直接內存存取)控制器、內存控制器、高速數據接口、同步處 理單元、圖像視頻數據轉換單元;所述DMA控制器與所述高速數據接口、內存控制器分別相連接,所述內存控制器還與所述板載內存、圖像視頻數據轉換單元分別相連接,所述圖 像視頻數據轉換單元還與所述視頻輸出接口、同步處理單元分別相連接,所述同步處理單 元還與所述同步接口相連接。其中,內存控制器主要負責板載內存晶片的初始化、刷新、 讀寫等控制,是圖像數據緩衝的接口 ;高速數據接口主要實現高速的數據傳數據協議(如 PC1-Express接口協議),是同步顯示卡與CPU、圖形顯示卡之間的高速數據交換的通道; DMA控制器主要負責控制同步顯示卡與CPU、圖形顯示卡之間的數據傳輸;同步處理單元主 要負責產生視頻同步信號並與其它同步顯示卡之間傳輸同步信號;圖像視頻數據轉換單元 主要根據同步處理單元產生的視頻同步信號輸出顯示視頻圖像。
在本發明實施例中,同步顯示卡可以實現可控的圖像輸出顯示功能,通過同步接 口可以實現卡與卡之間的同步控制,讓整個渲染系統共用同一個視頻輸出同步信號;通過 高速數據接口可以實現與GPU之間快速的傳輸圖像數據;並且其內置的DMA控制器在配置 完成後可以快速的與GPU傳輸數據,基本上不佔用CPU的處理時間。由圖5(本發明實施例 渲染節點中的數據傳輸路徑示意圖)與圖6 (傳統的渲染節點中的數據傳輸路徑示意圖)的 對比可知,由於本發明實施例中處理完的圖像數據只在GPU和同步顯示卡之間傳輸,不需 要經過內存,因此節省大量了 CPU處理時間及整個系統帶寬,整個系統運行效率非常高。
參見圖8所示,本發明實施例中在軟體同步的基礎上加入硬體機制(同步顯示卡) 後所實現的完整的輸出顯示同步的步驟如下
I)、所有三維模型數據全部由主控制臺通過內部通訊網絡實時的發給每個節點;
2)、每個渲染節點通過通訊接口接收自己的三維模型數據;
3)、渲染節點接收完一幀數據後再通過內部數據總線把三維模型數據傳輸給圖形 顯示卡(GPU)開始啟動三維渲染運算;
4)、等待GPU運算處理完畢信號,當收到處理完畢信號後立即啟動同步顯示卡的 DMA控制器從GPU的內存單元中讀取剛處理完的一幀三維圖像數據存放在所述板載內存裡 面;同時把處理完畢信號發送給主控制臺,告訴主控制臺本渲染節點已經準備就緒;
5)、主控制臺在收到所有渲染節點報告的準備就緒信號(即處理完畢信號)後發送 同步顯示命令給各個渲染節點;
6)、每個渲染節點收到同步顯示命令後就通知同步顯示卡把剛渲染好的三維圖像 數據輸出顯示,直到等到下一個同步顯示命令後才切換到下一幀數據的輸出顯示。循環完 成上述第一至第六步即可以實現整個渲染過程。
通過以上方案可以看出,本發明的分布式三維渲染系統,採用同步顯示卡來實 現可控的圖像輸出顯示功能,實現了卡與卡之間的同步控制,讓整個渲染系統可以共用 同一個視頻輸出同步信號,保證了整個系統視頻輸出的完全同步;並且由於本發明中實 現了同步顯示卡與圖形顯示卡之間的直接數據傳輸,從而降低了數據傳輸對系統總線帶 寬與CPU處理時間的浪費,提高了整個系統的運行效率。本發明在傳統的軟體機制的基 礎上重點增加了硬體機制來實現各個渲染節點之間的完全同步,保證了系統快速、正確 的顯示,在超大解析度三維圖像的生成、演示及仿真方面有較高的實用價值(如三維GIS (Geographiclnformation System,地理信息系統)、三維虛擬景觀、虛擬仿真等)。
以上所述實施例僅表達了本發明的幾種實施方式,其描述較為具體和詳細,但並 不能因此而理解為對本發明專利範圍的限制。應當指出的是,對於本領域的普通技術人員來說,在不脫離本發明構思的前提下, 還可以做出若干變形和改進,這些都屬於本發明的保護範圍。因此,本發明專利的保護範圍應以所附權利要求為準。
權利要求
1.一種分布式三維渲染系統,其特徵在於,包括主控制臺、至少兩個渲染節點,所述渲染節點包括圖形顯示卡、同步顯示卡;所述主控制臺將三維模型數據發給各渲染節點,各渲染節點接收到自己的三維模型數據後將所述三維模型數據傳輸給所述圖形顯示卡並啟動三維渲染運算,然後等待所述圖形顯示卡的運算處理完畢信號;當接收到所述處理完畢信號後啟動所述同步顯示卡從所述圖形顯示卡中讀取渲染好的三維圖像數據並進行存儲,同時將所述處理完畢信號發送給所述主控制臺;所述主控制臺在接收到所有渲染節點的處理完畢信號後發送同步顯示命令給各渲染節點;各渲染節點收到所述同步顯示命令後通知所述同步顯示卡將渲染好的三維圖像數據進行輸出顯示。
2.根據權利要求1所述的分布式三維渲染系統,其特徵在於,所述渲染節點還包括 CPU、內存、網絡接口卡;所述內存、網絡接口卡、圖形顯示卡、同步顯示卡分別與所述CPU相連接。
3.根據權利要求2所述的分布式三維渲染系統,其特徵在於,所述網絡接口卡、圖形顯示卡、同步顯示卡均通過PC1-E總線與所述CPU相連接。
4.根據權利要求1所述的分布式三維渲染系統,其特徵在於,所述同步顯示卡包括板載內存、同步接口、視頻輸出接口、主處理單元;所述板載內存、同步接口、視頻輸出接口分別與所述主處理單元相連接。
5.根據權利要求4所述的分布式三維渲染系統,其特徵在於,所述主處理單元包括 DMA控制器、內存控制器、高速數據接口、同步處理單元、圖像視頻數據轉換單元;所述DMA 控制器與所述高速數據接口、內存控制器分別相連接,所述內存控制器還與所述板載內存、 圖像視頻數據轉換單元分別相連接,所述圖像視頻數據轉換單元還與所述視頻輸出接口、 同步處理單元分別相連接,所述同步處理單元還與所述同步接口相連接。
全文摘要
本發明提供一種分布式三維渲染系統,包括主控制臺、至少兩個渲染節點,所述渲染節點包括圖形顯示卡、同步顯示卡;主控制臺將三維模型數據發給各渲染節點,各渲染節點接收到自己的三維模型數據後將所述三維模型數據傳輸給所述圖形顯示卡並啟動三維渲染運算,然後等待圖形顯示卡的運算處理完畢信號;當接收到處理完畢信號後啟動同步顯示卡從圖形顯示卡中讀取渲染好的三維圖像數據並進行存儲,同時將處理完畢信號發送給主控制臺;主控制臺在接收到所有渲染節點的處理完畢信號後發送同步顯示命令給各渲染節點;各渲染節點收到同步顯示命令後通知同步顯示卡將渲染好的三維圖像數據進行輸出顯示。本發明的系統實現了各個渲染節點之間的完全同步。
文檔編號G06T15/00GK103049926SQ20121056840
公開日2013年4月17日 申請日期2012年12月24日 優先權日2012年12月24日
發明者趙群英 申請人:廣東威創視訊科技股份有限公司