基于不規(guī)則物體的動畫生成方法及裝置制造方法
【專利摘要】本發(fā)明公開了一種基于不規(guī)則物體的動畫生成方法及裝置,包括:根據(jù)CPU隨機函數(shù)生成一系列隨機參數(shù),并將這些參數(shù)傳入GPU中的柏林函數(shù)生成一張隨機澡波紋理圖;對隨機澡波紋理圖進行UV采樣,生成n幅澡波紋理圖A;分別對n幅澡波紋理圖A進行平滑濾波處理,生成與澡波紋理圖A一一對應的n幅澡波紋理圖B;將n幅澡波紋理圖B疊加得到最終的一張澡波紋理圖C;根據(jù)澡波紋理圖C生成頂點的高度值,以高度值合成不規(guī)則物體的動畫。
【專利說明】基于不規(guī)則物體的動畫生成方法及裝置
【技術領域】
[0001] 本發(fā)明涉及計算機圖形學【技術領域】,尤其涉及一種基于不規(guī)則物體的動畫生成方 法及裝置。
【背景技術】
[0002] 隨著計算機可編程技術的不斷發(fā)展,3D圖像渲染的性能也有了很大的提高,可以 使用用戶自定義的著色程序語言來替換原來固定流水線中某些功能模塊,使得GPU在功能 上更加具有靈活性。
[0003] 目前通常使用法線貼圖來模擬水波效果,其實現(xiàn)過程為:首先為水模型網(wǎng)格建立 多邊形網(wǎng)格模型,并為水模型網(wǎng)格賦予多張法線貼圖,其中,法線貼圖的方向影響光照的方 向,在不考慮風向和風速的變化的情況下,隨著時間偏移法線貼圖的紋理坐標,可以在不同 的時刻看到水面像被風吹的效果,上述方法雖然能提供場景的真實感,但是程序每幀執(zhí)行 的時間較長,不能渲染出實時性的水面,因此渲染實時性較差,尤其是在渲染復雜場景,例 如層巒疊嶂的山峰、連綿起伏的丘陵、波光粼粼的水面、滄海桑田的礫石等效果更差。
【發(fā)明內容】
[0004] 有鑒于此,本發(fā)明的目的在于提出一種基于不規(guī)則物體的動畫生成方法及裝置, 能夠使得在渲染3D動畫復雜場景時實時性更高。
[0005] 為達此目的,本發(fā)明采用以下技術方案:
[0006] 本發(fā)明提供一種基于不規(guī)則物體的動畫生成方法,包括:
[0007] 根據(jù)CPU傳入的隨機參數(shù)采用柏林函數(shù)生成一張隨機澡波紋理圖,所述隨機參數(shù) 為CPU根據(jù)隨機函數(shù)生成的一系列隨機數(shù);
[0008] 對所述隨機澡波紋理圖進行UV采樣,生成η幅澡波紋理圖A,所述η為大于等于1 的正整數(shù);
[0009] 分別對所述η幅澡波紋理圖A進行平滑濾波處理,生成與所述澡波紋理圖A -一 對應的η幅澡波紋理圖B ;
[0010] 將所述η幅澡波紋理圖B的像素進行疊加得到一張澡波紋理圖C ;
[0011] 根據(jù)所述澡波紋理圖C生成頂點高度值,以高度值合成不規(guī)則物體的動畫。
[0012] 優(yōu)選的,所述根據(jù)CPU傳入的隨機參數(shù)采用柏林函數(shù)生成一張隨機澡波紋理圖, 包括:
[0013] 生成隨機緩存澡波紋理;
[0014] 將所述隨機參數(shù)寫入所述隨機緩存澡波紋理中,得到一張隨機澡波紋理圖。
[0015] 優(yōu)選的,所述對所述隨機澡波紋理圖進行采樣生成η幅澡波紋理圖A,包括:
[0016] 生成η幅緩存澡波紋理;
[0017] 對所述隨機澡波紋理圖中的像素值進行UV采樣;
[0018] 將采樣得到的像素值寫入所述緩存澡波紋理中。
[0019] 優(yōu)選的,所述對所述隨機澡波紋理圖中的像素值進行UV采樣,包括:
[0020] 針對緩存澡波紋理中的像素位置(x,y),采用如下公式計算得到目標位置(X,Y):
【權利要求】
1. 一種基于不規(guī)則物體的動畫生成方法,其特征在于,包括: 根據(jù)CPU傳入的隨機參數(shù)采用柏林函數(shù)生成一張隨機澡波紋理圖,所述隨機參數(shù)為(PU根據(jù)隨機函數(shù)生成的一系列隨機數(shù); 對所述隨機澡波紋理圖進行UV采樣,生成η幅澡波紋理圖A,所述η為大于等于1的正 整數(shù); 分別對所述η幅澡波紋理圖A進行平滑濾波處理,生成與所述澡波紋理圖A-一對應 的η幅澡波紋理圖B; 將所述η幅澡波紋理圖B疊加生成一張澡波紋理圖C; 根據(jù)澡波紋理圖C生成頂點高度值,以高度值合成不規(guī)則物體動畫。
2. 根據(jù)權利要求1所述的方法,其特征在于,所述根據(jù)CPU傳入的隨機參數(shù)采用柏林函 數(shù)生成一張隨機澡波紋理圖,包括: 生成隨機緩存澡波紋理; 將所述隨機參數(shù)寫入所述隨機緩存澡波紋理中,得到一張隨機澡波紋理圖。
3. 根據(jù)權利要求1所述的方法,其特征在于,所述對所述隨機澡波紋理圖進行采樣生 成η幅澡波紋理圖A,包括: 生成η幅緩存澡波紋理; 對所述隨機澡波紋理圖中的像素值進行UV采樣; 將采樣得到的像素值寫入所述緩存澡波紋理中。
4. 根據(jù)權利要求3所述的方法,其特征在于,所述對所述隨機澡波紋理圖中的像素值 進行UV采樣,包括: 針對緩存澡波紋理中的像素位置(x,y),采用如下公式計算得到目標位置(Χ,Υ):
其中,P為常量,int(*)為取整; 獲取所述隨機澡波紋理圖中目標位置(X,Y)處的像素值,將所述像素值作為緩存澡波 紋理中的像素位置(x,y)處的像素值。
5. -種基于不規(guī)則物體的動畫生成裝置,其特征在于,包括: 澡波紋理生成模塊,用于根據(jù)CPU傳入的隨機參數(shù)采用柏林函數(shù)生成一張隨機澡波紋 理圖,所述隨機參數(shù)為CPU根據(jù)隨機函數(shù)生成的一系列隨機數(shù),生成η幅澡波紋理圖A,生成 η幅澡波紋理圖Β,生成澡波紋理圖C; 采樣模塊,用于對所述隨機澡波紋理圖進行UV采樣; 過濾模塊,用于分別對所述η幅澡波紋理圖A進行平滑濾波處理; 計算模塊,用于將η幅第澡波紋理圖B疊加得到一張澡波紋理C,; 合成模塊,用于根據(jù)澡波紋理圖C生成頂點高度值,以高度值合成不規(guī)則物體的動畫。
6. 根據(jù)權利要求5所述的裝置,其特征在于,所述澡波紋理生成模塊,具體用于生成隨 機緩存澡波紋理; 所述裝置,還包括: 寫入模塊,用于將所述隨機參數(shù)寫入所述隨機緩存澡波紋理中,得到一張隨機澡波紋 理圖。
7. 根據(jù)權利要求5所述的裝置,其特征在于,所述澡波紋理生成模塊,具體用于生成η 幅緩存澡波紋理; 所述采樣模塊,具體用于對所述隨機澡波紋理圖中的像素值進行UV采樣; 所述寫入模塊,具體用于將采樣得到的像素值寫入所述緩存澡波紋理中。
8. 根據(jù)權利要求7所述的裝置,其特征在于,所述采樣模塊,具體用于針對緩存澡波紋 理中的像素位置(x,y),采用如下公式計算得到目標位置(Χ,Υ):
其中,P為常量,int(*)為取整; 所述裝置,還包括: 獲取模塊,用于獲取所述隨機澡波紋理圖中目標位置(X,Y)處的像素值,將所述像素 值作為緩存澡波紋理中的像素位置(x,y)處的像素值。
【文檔編號】G06T5/00GK104463937SQ201410737522
【公開日】2015年3月25日 申請日期:2014年12月5日 優(yōu)先權日:2014年12月5日
【發(fā)明者】張翼 申請人:無錫梵天信息技術股份有限公司