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