一種三維場景下視覺相關(guān)的模型漸進渲染方法
【專利摘要】本發(fā)明公開了一種三維場景下視覺相關(guān)的模型漸進渲染方法,其主要思路是按照視點和目標的距離,計算視覺相關(guān)因子,對模型幾何數(shù)據(jù)和紋理數(shù)據(jù)進行LOD渲染,采用異步策略和視點相關(guān)的排序算法,對模型的渲染過程進行控制,以解決現(xiàn)有大規(guī)模三維模型渲染速度慢、占用內(nèi)存和顯存等系統(tǒng)資源過大、渲染面片數(shù)量過多、渲染不流暢、視覺突變、效率低下等一系列問題。
【專利說明】一種三維場景下視覺相關(guān)的模型漸進渲染方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及一種模型漸進渲染方法,尤其涉及一種三維場景下視覺相關(guān)的模型漸進渲染方法。
【背景技術(shù)】
[0002]在三維場景中,模型用來表現(xiàn)空間實體。三維場景中的模型數(shù)據(jù),一般包括幾何數(shù)據(jù)(面片數(shù)據(jù))和紋理材質(zhì)數(shù)據(jù)(貼圖、顏色等),面片數(shù)據(jù)體現(xiàn)模型的形狀,紋理材質(zhì)數(shù)據(jù)則使得模型表面更加真實和生動。
[0003]隨著衛(wèi)星遙感技術(shù)、航天攝影技術(shù)、激光掃描技術(shù)和人工建模技術(shù)的不斷發(fā)展,三維模型數(shù)據(jù)的生產(chǎn)規(guī)模越來越大,虛擬現(xiàn)實系統(tǒng)、數(shù)字城市、和三維GIS系統(tǒng)要展示的模型數(shù)量也越來越多。傳統(tǒng)的三維可視化系統(tǒng),存在著諸多的缺陷:1、數(shù)據(jù)在系統(tǒng)啟動的時候全部加載進來,導(dǎo)致等待時間過長甚至因為超過系統(tǒng)的吞吐能力而無法完成;2、渲染時根據(jù)當前場景的需要采用同步加載策略對模型的幾何數(shù)據(jù)和紋理數(shù)據(jù)進行加載,導(dǎo)致渲染不流暢,容易出現(xiàn)卡頓現(xiàn)象;3、如果采用了異步加載策略,但是將最詳細的數(shù)據(jù)一次加入到系統(tǒng)中,導(dǎo)致顯存和顯卡的計算資源消耗太大,渲染的面片數(shù)量太多,渲染效率低;4、在對模型的加載和渲染過程中,沒有對需要加載的數(shù)據(jù)進行排序,導(dǎo)致加載效率低下;5、沒有對模型的紋理和面片數(shù)據(jù)進行預(yù)處理,無法減少模型渲染對顯卡、內(nèi)存的資源損耗;6、有多級顯示,但未考慮漸變顯示,顯示突變,不夠柔和。
【發(fā)明內(nèi)容】
[0004]為了解決上述技術(shù)所存在的不足之處,本發(fā)明提供了一種三維場景下視覺相關(guān)的模型漸進渲染方法。
[0005]為了解決以上技術(shù)問題,本發(fā)明采用的技術(shù)方案是:一種三維場景下視覺相關(guān)的模型漸進渲染方法,其特征在于:其渲染方法的具體實施步驟如下:
[0006]1、開始渲染模型,首先對所有的三維模型數(shù)據(jù)進行分析,根據(jù)每個模型的中心點坐標和模型的幾何體數(shù)據(jù)進行視口過濾,判斷模型是否在當前可視區(qū)域內(nèi),如果不在當前可視區(qū)域直接從渲染隊列中剔除;如果在當前可視區(qū)域內(nèi),那么根據(jù)當前場景的視點,計算模型的視覺相關(guān)因子α ;
[0007]2、對于每個三維模型計算得到視覺相關(guān)因子α,判斷是否達到當前場景的可視化指標要求;如果沒有達到指標要求,那么把該模型從待渲染隊列中剔除;如果三維模型的視覺相關(guān)因子達到當前場景的可視化指標要求,那么根據(jù)視覺相關(guān)因子α計算當前模型的LOD級別m:
[0008]3、判斷第m級模型數(shù)據(jù)是否已經(jīng)加載,如果沒有加載,那么把當前模型的m級LOD幾何數(shù)據(jù)送入加載線程等待加載;
[0009]4、根據(jù)視點距離和級別對待加載模型進行排序計算,得到一個模型的優(yōu)先級隊列;按照優(yōu)先級從文件中讀取第m級模型幾何數(shù)據(jù);[0010]5、在第m級模型數(shù)據(jù)加載完成后,根據(jù)視覺相關(guān)因子α獲取紋理分辨率β并計算紋理分辨率β ;
[0011]6、由紋理分辨率β和視覺相關(guān)因子α計算當前場景需要的紋理LOD級別δ ;
[0012]7、判斷當前場景中δ級紋理數(shù)據(jù)是否已經(jīng)加載,如果沒有加載,那么送入紋理加載線程等待加載;下一步根據(jù)視點距離和級別對要讀取的紋理進行排序;下一步異步加載線程按照排序結(jié)果先后從文件中讀取第S級紋理數(shù)據(jù);
[0013]8、如果δ級紋理數(shù)據(jù)已經(jīng)加載完成,那么將m級模型數(shù)據(jù)和δ級紋理數(shù)據(jù)送入顯卡準備渲染;
[0014]9、根據(jù)紋理和幾何數(shù)據(jù)加載情況設(shè)置透明度在顯卡中進行渲染,以達到漸變?nèi)S渲染效果;
[0015]10、渲染結(jié)束。
[0016]本發(fā)明采用視覺相關(guān)的模型幾何數(shù)據(jù)和紋理數(shù)據(jù)LOD評價、加載、渲染,以及視覺相關(guān)的排序及異步加載方法,保證了視域內(nèi)距離近的模型優(yōu)先加載,清晰度更高,距離遠的模型延遲加載,精度低,從而有效地解決現(xiàn)有大規(guī)模三維模型渲染過程中數(shù)據(jù)加載緩慢、占用內(nèi)存和顯存等系統(tǒng)資源過大、渲染面片數(shù)量過多、渲染不流暢、突變、效率低下等一系列問題。
【專利附圖】
【附圖說明】
[0017]圖1為本發(fā)明的模型渲染流程圖。
【具體實施方式】
[0018]下面結(jié)合附圖和【具體實施方式】對本發(fā)明作進一步詳細的說明。
[0019]如圖1所示,其渲染方法的具體實施步驟如下:
[0020]1、開始渲染模型,首先對所有的三維模型數(shù)據(jù)進行分析,根據(jù)每個模型的中心點坐標和模型的幾何體數(shù)據(jù)進行視口過濾,判斷模型是否在當前可視區(qū)域內(nèi),如果不在當前可視區(qū)域直接從渲染隊列中剔除;如果在當前可視區(qū)域內(nèi),那么根據(jù)當前場景的視點,計算模型的視覺相關(guān)因子α ;
[0021]2、對于每個三維模型計算得到視覺相關(guān)因子α,判斷是否達到當前場景的可視化指標要求;如果沒有達到指標要求,那么把該模型從待渲染隊列中剔除;如果三維模型的視覺相關(guān)因子達到當前場景的可視化指標要求,那么根據(jù)視覺相關(guān)因子α計算當前模型的LOD級別m:
[0022]3、判斷第m級模型數(shù)據(jù)是否已經(jīng)加載,如果沒有加載,那么把當前模型的m級LOD幾何數(shù)據(jù)送入加載線程等待加載;
[0023]4、根據(jù)視點距離和級別對待加載模型進行排序計算,得到一個模型的優(yōu)先級隊列;按照優(yōu)先級從文件中讀取第m級模型幾何數(shù)據(jù);
[0024]5、在第m級模型數(shù)據(jù)加載完成后,根據(jù)視覺相關(guān)因子α獲取紋理分辨率β并計算紋理分辨率β ;
[0025]6、由紋理分辨率β和視覺相關(guān)因子α計算當前場景需要的紋理LOD級別δ ;
[0026]7、判斷當前場景中δ級紋理數(shù)據(jù)是否已經(jīng)加載,如果沒有加載,那么送入紋理加載線程等待加載;下一步根據(jù)視點距離和級別對要讀取的紋理進行排序;下一步異步加載線程按照排序結(jié)果先后從文件中讀取第S級紋理數(shù)據(jù);
[0027]8、如果δ級紋理數(shù)據(jù)已經(jīng)加載完成,那么將m級模型數(shù)據(jù)和δ級紋理數(shù)據(jù)送入顯卡準備渲染;
[0028]9、根據(jù)紋理和幾何數(shù)據(jù)加載情況設(shè)置透明度在顯卡中進行渲染,以達到漸變?nèi)S渲染效果;
[0029]10、渲染結(jié)束。
[0030]上述實施方式并非是對本發(fā)明的限制,本發(fā)明也并不僅限于上述舉例,本【技術(shù)領(lǐng)域】的技術(shù)人員在本發(fā)明的技術(shù)方案范圍內(nèi)所做出的變化、改型、添加或替換,也均屬于本發(fā)明的保護范圍。
【權(quán)利要求】
1.一種三維場景下視覺相關(guān)的模型漸進渲染方法,其特征在于:其渲染方法的具體實施步驟如下: (1)、開始渲染模型,首先對所有的三維模型數(shù)據(jù)進行分析,根據(jù)每個模型的中心點坐標和模型的幾何體數(shù)據(jù)進行視口過濾,判斷模型是否在當前可視區(qū)域內(nèi),如果不在當前可視區(qū)域直接從渲染隊列中剔除;如果在當前可視區(qū)域內(nèi),那么根據(jù)當前場景的視點,計算模型的視覺相關(guān)因子α ; (2)、對于每個三維模型計算得到視覺相關(guān)因子α,判斷是否達到當前場景的可視化指標要求;如果沒有達到指標要求,那么把該模型從待渲染隊列中剔除;如果三維模型的視覺相關(guān)因子達到當前場景的可視化指標要求,那么根據(jù)視覺相關(guān)因子α計算當前模型的LOD級別m ; (3)、判斷第m級模型數(shù)據(jù)是否已經(jīng)加載,如果沒有加載,那么把當前模型的m級LOD幾何數(shù)據(jù)送入加載線程等待加載; (4)、根據(jù)視點距離和級別對待加載模型進行排序計算,得到一個模型的優(yōu)先級隊列;按照優(yōu)先級從文件中讀取第m級模型幾何數(shù)據(jù); (5)、在第m級模型數(shù)據(jù)加載完成后,根據(jù)視覺相關(guān)因子α獲取紋理分辨率β并計算紋理分辨率β ; (6)、由紋理分辨率β和視覺相關(guān)因子α計算當前場景需要的紋理LOD級別δ; (7)、判斷當前場景中δ級紋理數(shù)據(jù)是否已經(jīng)加載,如果沒有加載,那么送入紋理加載線程等待加載;下一步根據(jù)視點距離和級別對要讀取的紋理進行排序;下一步異步加載線程按照排序結(jié)果先后從文件中讀取第S級紋理數(shù)據(jù); (8)、如果δ級紋理數(shù)據(jù)已經(jīng)加載完成,那么將m級模型數(shù)據(jù)和δ級紋理數(shù)據(jù)送入顯卡準備渲染; (9)、根據(jù)紋理和幾何數(shù)據(jù)加載情況設(shè)置透明度在顯卡中進行渲染,以達到漸變?nèi)S渲染效果; (10)、渲染結(jié)束。
【文檔編號】G06T15/00GK103927781SQ201410187408
【公開日】2014年7月16日 申請日期:2014年5月6日 優(yōu)先權(quán)日:2014年5月6日
【發(fā)明者】賈慶雷, 馬柳青 申請人:蘇州中科圖新網(wǎng)絡(luò)科技有限公司