專利名稱:一種基于三維點(diǎn)云的實(shí)時透明物體gpu并行生成方法
技術(shù)領(lǐng)域:
本發(fā)明是ー種利用對深度圖平滑濾波的方法從數(shù)值仿真或者采集得到的三維點(diǎn)云中直接生成出透明物體的GPU并行技術(shù),用于真實(shí)感虛擬現(xiàn)實(shí)環(huán)境中透明物體的生成。
背景技術(shù):
在透明物體建模過程中常常通過采集或者是仿真的方法獲得物體的的點(diǎn)云表示,如通過三維掃描儀可以直接獲得真實(shí)物體表面的大量離散點(diǎn)的空間位置。另外,可交互的流體的仿真作為透明物體主要的生成方法常常使用光滑流體動力學(xué)(Smoothed ParticleHydrodynamics,簡稱 SPH)。文獻(xiàn) 1-Gingold RA, Monaghan JJ (1977) Smoothed particlehydrodynamics—theory and application to non-spherical stars. Mon Not R AstronSocl81:375389首先提出了 SPH方法,SPH方法是用大量離散的粒子近似表示流體,通過核函數(shù)逼近和粒子逼近實(shí)現(xiàn)流體的仿真,整個過程是在連續(xù)域中實(shí)現(xiàn)的,不但可以處理大變形的物體,而且對于細(xì)節(jié)問題也有很好的效果。對于原始點(diǎn)云表示的透明物體的真實(shí)感生成,傳統(tǒng)的方法需要重建表面,常用的表面重建方法首先定義ー種標(biāo)量場,如密度場,使用特定的核函數(shù)對點(diǎn)云在定義的采樣空間內(nèi)進(jìn)行卷積運(yùn)算得到透明物體幾何的離散標(biāo)量場;接著使用構(gòu)建隱式表面的方法或者直接生成的方法對追蹤得到的流體表面進(jìn)行生成。文獻(xiàn)2-L0RENSEN,W. E.,ANDCLINE, H. E. 1987.Marching cubes : A high resolution3d surface constructionalgorithm. SIGGRAPH Comput. Graph. 21, 4, 163169.在構(gòu)建隱式表面然后再使用 MarchingCubes 算法對流體進(jìn)行生成。文獻(xiàn) 3-Fraedrich, R. ; Auer, S. ; Westermann, R. 〃Efficient High-Quality Volume Rendering of SPH Data, Visualization and ComputerGraphics, IEEE Transactions on, vol. 16, no. 6, pp. 1533-1540,Nov. -Dec. 2010 提出一種與視點(diǎn)相關(guān)的透視網(wǎng)格算法,對于不同視點(diǎn)實(shí)時構(gòu)造透視網(wǎng)格對點(diǎn)云數(shù)據(jù)采樣接著使用改進(jìn)過的Raycasting算法直接生成透明物體表面。使用上述方法需要對于每ー幀都需要構(gòu)建整個標(biāo)量場再追蹤表面最后生成物體,計算規(guī)模大訪存開銷大,難以滿足實(shí)時應(yīng)用程序要求,文獻(xiàn) 4-MUller, Μ.,SCHIRM, S.,AND DUTHALER, S. 2007. Screen space meshes. InSCA’ 07:Proceedings of the2007ACM SIG-GRAPH/Eurographics symposium on Computeranimation, Eurograpnics Association,Aire-la-Ville, Switzerland, Switzerland, 915.提出了在眼坐標(biāo)系中生成三維點(diǎn)云的邊界作為網(wǎng)格的方法,這種方法只構(gòu)造透明物體的可見表面,首先計算屏幕空間內(nèi)每個像素的深度,接著光滑獲得的深度圖然后從深度圖中構(gòu)造多邊形網(wǎng)格,但是這種方法構(gòu)造的深度圖不能直接映射到GPU上,同時構(gòu)造網(wǎng)格的過程也是復(fù)雜的計算過程。對于需要進(jìn)行重新采樣獲得標(biāo)量場進(jìn)而追蹤表面的方法來說,重采樣的過程本身難以保證原始信號的細(xì)節(jié),在之后的表面追蹤過程中又會導(dǎo)致原始物體細(xì)節(jié)的進(jìn)ー步丟失,而且重建表面的過程往往會存在計算量大、放存次數(shù)多的問題,難以適應(yīng)實(shí)時或者可交互級別程序的應(yīng)用;在眼坐標(biāo)系中構(gòu)建網(wǎng)格的方法雖然不需要構(gòu)建中間標(biāo)量場,但是直接從點(diǎn)云中構(gòu)造網(wǎng)格的速度隨著點(diǎn)的數(shù)量増加而變慢,同樣難以對大規(guī)模的點(diǎn)云進(jìn)行透明物體的實(shí)時生成。
發(fā)明內(nèi)容
本發(fā)明的技術(shù)解決問題克服現(xiàn)有技術(shù)的不足,提供一種與視點(diǎn)相關(guān)的三維點(diǎn)云表示的透明物體直接生成方法,該方法不需要構(gòu)建中間標(biāo)量場,直接使用原始的點(diǎn)云數(shù)據(jù),保持了透明物體的細(xì)節(jié),同時該方法是ー種與視點(diǎn)相關(guān)的方法,可以利用硬件剔除大量不可見的點(diǎn),使計算量小,此外該方法對于硬件要求不高,可以適應(yīng)不同平臺對實(shí)時性和交互性的要求便于不同平臺的移植。本發(fā)明的技術(shù)解決方案一種基于三維點(diǎn)云的實(shí)時透明物體GPU并行生成方法,其特點(diǎn)在于步驟如下(I)生成背景貼圖;(2)生成透明物體的幾何緩沖,將點(diǎn)云作為球體進(jìn)行生成,利用硬件深度檢測獲得近視平面的深度值,同時在著色器中計算并保存透明物體材質(zhì)信息;( 3 )利用幾何緩沖中的深度信息,平滑深度;(4)再次使用球體生成所有三維點(diǎn),計算透明物體厚度;(5)透明物體著色,利用幾何緩沖對透明物體使用光照算法進(jìn)行光照計算,利用厚度值計算透明物體的折射反射光線,并利用折射光線對背景貼圖采樣獲得當(dāng)前像素點(diǎn)的背景顏色,最后通過融合操作以完成著色。 所述步驟(I)生成背景貼圖時根據(jù)場景規(guī)模和光照情況選擇不同的生成方法,場景中不透明物體數(shù)量Ns與光源數(shù)量N1的比值老為V,設(shè)定ー個閾值n,當(dāng)V < η的時候使用延時繪制管線,否則使用傳統(tǒng)的繪制管線。所述步驟(2)中生成透明物體幾何緩沖時,使用精靈點(diǎn)算法生成所有三維點(diǎn),同時修正當(dāng)前所在像素的深度值;利用步驟(I)中保留的深度值,使用深度檢測方法可以對不可見的三維點(diǎn)進(jìn)行剔除從而大幅度減少實(shí)際生成的三維點(diǎn)數(shù)目。對生成三維點(diǎn)后所在像素深度值的過程為根據(jù)相機(jī)的位置計算精靈點(diǎn)大小
權(quán)利要求
1.一種基于三維點(diǎn)云的實(shí)時透明物體GPU并行生成方法,其特征步驟如下 (1)生成背景貼圖; (2)生成透明物體的幾何緩沖,按球體生成點(diǎn)云,利用硬件深度檢測獲得近視平面的深度值,同時在著色器中計算并保存透明物體材質(zhì)信息; (3)利用幾何緩沖中的深度信息,平滑深度; (4)再次按球體生成點(diǎn)云,利用硬件Alpha混合累加計算透明物體厚度; (5)透明物體著色,利用幾何緩沖對透明物體使用光照算法進(jìn)行光照計算,利用厚度值計算透明物體的折射反射光線,并利用折射光線對背景貼圖采樣獲得當(dāng)前像素點(diǎn)的背景顏色,最后通過融合操作完成著色。
2.根據(jù)權(quán)利要求I所述的基于三維點(diǎn)云的實(shí)時透明物體GPU并行生成方法,其特征在于所述步驟(I)中,生成背景貼圖時根據(jù)場景規(guī)模和光照情況選擇不同的生成方法,場景中不透明物體數(shù)量Ns與光源數(shù)量N1的比值,為V,設(shè)定ー個閾值n,當(dāng)V < η的時候使用延時繪制管線,否則使用傳統(tǒng)的繪制管線。
3.根據(jù)權(quán)利要求I所述的基于三維點(diǎn)云的實(shí)時透明物體GPU并行生成方法,其特征在干所述步驟(2)中,生成透明物體幾何緩沖時,使用精靈點(diǎn)方法生成所有三維點(diǎn),同時修正當(dāng)前所在像素的深度值;利用步驟(I)中保留的深度值,使用深度檢測方法可以對不可見的三維點(diǎn)進(jìn)行剔除,從而大幅度減少實(shí)際生成的三維點(diǎn)數(shù)目。
4.根據(jù)權(quán)利要求I所述的基于三維點(diǎn)云的實(shí)時透明物體GPU并行生成方法,其特征在于所述步驟(3)中,平滑深度將雙邊濾波器分為橫向和縱向兩個方向依次對輸入圖像進(jìn)行平滑。
5.根據(jù)權(quán)利要求I所述的基于三維點(diǎn)云的實(shí)時透明物體GPU并行生成方法,其特征在于所述步驟(4)中,計算透明物體厚度時,在當(dāng)前相機(jī)位置使用原圖像1/4的分辨率生成場景中透明物體,此時開啟硬件的Alpha混合的相加模式,當(dāng)前點(diǎn)的厚度值為:私疒*へ其中Nz為當(dāng)前像素位置上物體法向量在z方向的分量,r為用戶指定的厚度值。
6.根據(jù)權(quán)利要求I所述的基于三維點(diǎn)云的實(shí)時透明物體GPU并行生成方法,其特征在于所述步驟(5)中,透明物體與背景融合的步驟為 對于當(dāng)前像素,在透明物體對應(yīng)的幾何緩沖中采樣S,若其中alpha分量Sa > 0,利用分量sx、Sy和Sz重建眼坐標(biāo)系中的位置Psye ; 重建法向量,以當(dāng)前點(diǎn)為中心,分別在上下左右各個方向?qū)ο噜徬袼夭蓸硬⒅亟ㄑ圩鴺?biāo)系坐標(biāo),在獲得的4個點(diǎn)中計算局部包圍盒Lbb = {min(x, y, z)max(x, y, z)},則當(dāng)前點(diǎn)法向量N0 = normalize (Lbb (min) X Lbb (max)); 采用Phong模型計算當(dāng)前點(diǎn)的顏色值C。; 在厚度貼圖中采樣,獲得當(dāng)前點(diǎn)厚度值T。,同時利用Psye和ル根據(jù)折射定律計算折射光線方向k ; 從背景貼圖中根據(jù)k采樣獲得新的顏色值cb,按照得到最終當(dāng)前像素的顏色。
7.根據(jù)權(quán)利要求3所述的基于三維點(diǎn)云的實(shí)時透明物體生成方法,其特征在于生成精靈點(diǎn)時修正深度值的過程為根據(jù)相機(jī)的位置計算精靈點(diǎn)大小
全文摘要
一種基于三維點(diǎn)云的實(shí)時透明物體GPU并行生成方法,步驟為(1)生成背景貼圖,非透明物體;(2)生成透明物體幾何緩沖,生成球體的方式生成所有三維點(diǎn),利用硬件深度檢測獲得近視平面的深度值,同時保存透明物體材質(zhì)信息;(3)平滑深度,用幾何緩沖中的深度信息,對深度值進(jìn)行平滑濾波從而獲得光滑表面;(4)計算透明物體厚度,生成所有三維點(diǎn),利用硬件Alpha混合計算透明物體厚度;(5)透明物體著色,用深度值及材質(zhì)信息對透明物體進(jìn)行光照計算,利用厚度值計算透明物體的折射反射屬性,再利用背景貼圖以完成著色。本發(fā)明避免了傳統(tǒng)方法中表面重建的步驟,可以滿足百萬級別基于點(diǎn)云的透明物體實(shí)時生成的需求。
文檔編號G06T7/00GK102915559SQ20121030190
公開日2013年2月6日 申請日期2012年8月22日 優(yōu)先權(quán)日2012年8月22日
發(fā)明者趙斌, 沈旭昆, 張鳳全, 龍翔, 趙沁平 申請人:北京航空航天大學(xué)