渲染方法和裝置的制造方法
【技術領域】
[0001]本發明涉及圖像處理領域,尤其涉及一種渲染方法和裝置。
【背景技術】
[0002]Act1nScript3.0 (以下簡稱AS3)是一種強大的面向對象編程語言,是FLASH的編程語言,能夠構建效果豐富的互聯網應用程序,這種應用程序是Web體驗的重要部分。但是由于AS3需要運行在虛擬機中等原因,導致其天生性能就不如C/C++。Stage3D(threedimens1nal,三維)是 Adobe 最近發布的新的 FLASH API (Applicat1n ProgrammingInterface,應用程序編程接口),致力于實時3D渲染。使用Stage3D,可以在FLASH中充分利用計算機中GPU (Graphics Processing Unit,圖形處理器)的硬件加速能力。
[0003]在游戲中可以將一個3D場景定義為一組3D幾何體(網格)。每個幾何體又細分為一組三角形,每一個三角形又由一系列的頂點組成,并添加相關的渲染信息如紋理或者頂點顏色。由于在畫面中顯示一個三角形需要3個點的數據,可以將3個點的坐標值上傳到Stage3D,并指定其渲染順序,Stage3D即可執行剩余的渲染操作。因此,對于3D大型游戲或者虛擬現實項目可能有很多場景,一個場景有很多物體需要提供紋理貼圖或者頂點顏色等渲染操作,因此,計算機需要處理的數據量非常龐大,尤其是在全景視頻等場景中。為了符合項目要求可能還要對這些數據做一些特殊處理,使得數據處理工作更加復雜。
[0004]目前,通常是通過AS3對這些數據進行處理,然后交給Stage3D進行3D渲染,而交給Stage3D處理之前,AS3處理這些數據耗費大量的時間,常使得3D渲染的畫面更新不及時,出現卡頓,幀率降低,甚至出現瀏覽器癱瘓等問題。
【發明內容】
[0005]摶術問題
[0006]有鑒于此,本發明要解決的技術問題是,如何加快渲染中的數據處理速度,從而提高渲染效果。
_7] 解決方案
[0008]為了解決上述技術問題,本發明提供一種渲染方法,包括:
[0009]主模塊根據需要執行的渲染任務向對應的高性能模塊發送包括待處理數據的第一數據流對象;
[0010]所述高性能模塊根據所述渲染任務對所述待處理數據進行快速處理得到待渲染數據,并向所述主模塊回傳包括所述待渲染數據的第二數據流對象;
[0011]所述主模塊向渲染模塊發送所述第二數據流對象,由所述渲染模塊根據所述待渲染數據執行所述渲染任務。
[0012]對于上述渲染方法,在一種可能的實現方式中,所述第一數據流對象與所述第二數據流對象為同一個數據流對象,所述高性能模塊向所述主模塊回傳包括所述待渲染數據的第二數據流對象包括:
[0013]所述高性能模塊將包括所述待渲染數據的所述第一數據流對象作為所述第二數據流對象回傳給所述主模塊。
[0014]對于上述渲染方法,在一種可能的實現方式中,所述第一數據流對象與所述第二數據流對象為不同的數據流對象,所述高性能模塊向所述主模塊回傳包括所述待渲染數據的第二數據流對象包括:
[0015]所述高性能模塊將所述待渲染數據寫入新創建的第二數據流對象,并將所述第二數據流對象回傳給所述主模塊。
[0016]對于上述渲染方法,在一種可能的實現方式中,還包括:
[0017]預先設置多種渲染任務對應的快速處理代碼;
[0018]對各所述快速處理代碼進行編譯,分別生成對應的高性能模塊及其接口模塊。
[0019]對于上述渲染方法,在一種可能的實現方式中,主模塊根據需要執行的渲染任務向對應的高性能模塊發送包括待處理數據的第一數據流對象,包括:
[0020]在判斷所述渲染任務的為復雜任務的情況下,所述主模塊通過與所述渲染任務對應的接口模塊,向與所述渲染任務對應的高性能模塊發送包括所述待處理數據的所述第一數據流對象。
[0021]為了解決上述技術問題,本發明提供一種渲染裝置,包括:
[0022]主模塊,用于根據需要執行的渲染任務向對應的高性能模塊發送包括待處理數據的第一數據流對象;
[0023]多個高性能模塊,與所述主模塊連接,各所述高性能模塊用于在接收到所述主模塊發送的所述第一數據流對象后,根據所述渲染任務對所述待處理數據進行快速處理得到待渲染數據,并向所述主模塊回傳包括所述待渲染數據的第二數據流對象;
[0024]渲染模塊,與所述主模塊連接,用于從所述主模塊接收所述第二數據流對象,并根據所述待渲染數據執行所述渲染任務。
[0025]對于上述渲染裝置,在一種可能的實現方式中,所述第一數據流對象與所述第二數據流對象為同一個數據流對象,所述高性能模塊包括:
[0026]接收單元,與所述主模塊連接,用于接收所述主模塊發送的所述第一數據流對象;
[0027]處理單元,與所述接收單元連接,用于根據所述渲染任務對所述待處理數據進行快速處理得到待渲染數據;
[0028]回傳單元,與所述處理單元和所述主模塊分別連接,用于將包括所述待渲染數據的所述第一數據流對象作為所述第二數據流對象回傳給所述主模塊。
[0029]對于上述渲染裝置,在一種可能的實現方式中,所述第一數據流對象與所述第二數據流對象為不同的數據流對象,所述高性能模塊包括:
[0030]接收單元,與所述主模塊連接,用于接收所述主模塊發送的所述第一數據流對象;
[0031]處理單元,與所述接收單元連接,用于根據所述渲染任務對所述待處理數據進行快速處理得到待渲染數據;
[0032]回傳單元,與所述處理單元和所述主模塊分別連接,用于將所述待渲染數據寫入新創建的第二數據流對象,并將所述第二數據流對象回傳給所述主模塊。
[0033]對于上述渲染裝置,在一種可能的實現方式中,還包括:
[0034]代碼生成模塊,用于預先設置多種渲染任務對應的快速處理代碼;
[0035]編譯模塊,與所述代碼生成模塊連接,用于對各所述快速處理代碼進行編譯,分別生成對應的高性能模塊及其接口模塊。
[0036]對于上述渲染裝置,在一種可能的實現方式中,所述主模塊具體用于在判斷所述渲染任務的為復雜任務的情況下,通過與所述渲染任務對應的接口模塊,向與所述渲染任務對應的高性能模塊發送包括所述待處理數據的所述第一數據流對象。
[0037]有益效果
[0038]本實施例的渲染方法,利用高性能模塊對待處理數據進行快速處理并生成待渲染數據,再通過主模塊將待渲染數據提供給渲染模塊進行渲染,能夠快速處理渲染過程中的部分數據,并且不會增加應用程序的內存占用量,從而提高應用程序的性能比如幀率提高,使得畫面顯示更流暢。
[0039]根據下面參考附圖對示例性實施例的詳細說明,本發明的其它特征及方面將變得清楚。
【附圖說明】
[0040]包含在說明書中并且構成說明書的一部分的附圖與說明書一起示出了本發明的示例性實施例、特征和方面,并且用于解釋本發明的原理。
[0041]圖1示出根據本發明一實施例的渲染方法的流程圖;
[0042]圖2示出根據本發明另一實施例的渲染方法的流程圖;
[0043]圖3示出根據本發明另一實施例的渲染方法中需要處理的原始圖;
[0044]圖4示出根據本發明另一實施例的渲染方法中渲染效果的示意圖;
[0045]圖5示出根據本發明另一實施例的渲染方法中采用AS3直接處理數據的運行結果示意圖;
[0046]圖6示出根據本發明另一實施例的渲染方法中采用C/C++模塊處理數據的運行結果示意圖;
[0047]圖7示出根據本發明一實施例的渲染裝置的結構框圖;
[0048]圖8示出根據本發明一實施例的渲染裝置中采用同一數據流對象的結構框圖;
[0049]圖9示出根據本發明一實施例的渲染裝置中采用同一數據流對象的結構框圖;
[0050]圖10示出根據本發明另一實施例的渲染裝置的結構框圖。
【具體實施方式】
[0051]以下將參考附圖詳細說明本發明的各種示例性實施例、特征和方面。附圖中相同的附圖標記表示功能相同或相似的元件。盡管在附圖中示出了實施例的各種方面,但是除非特別指出,不必按比例繪制附圖。
[0052]在這里專用的詞“示例性”意為“用作例子、實施例或說明性”。這里作為“示例性”所說明的任何實施例不必解釋為優于或好于其它實施例。
[0053]另外,為了更好的說明本發明,在下文的【具體實施方式】中給出了眾多的具體細節。本領域技術人員應當理解,沒有某些具體細節,本發明同樣可以實施。在一些實例中,對于本領域技術人員熟知的方法、手段、元件和電路未作詳細描述,以便于凸顯本發明的主旨。
[0054]實施例1
[0055]由于早期計算機生成的三維圖像看起來像發亮的塑料,缺乏各種紋路,如磨損、裂痕、指紋和污漬等紋理,使得三維圖像缺乏真實感。開發人員通常采用紋理等渲染操作來增強計算機生