999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

一種三維模型文件設計及其在光線跟蹤中應用

2015-09-27 08:23:02楊衛平張子頔
現代計算機 2015年29期
關鍵詞:信息模型

楊衛平,張子頔

(山東科技大學電氣信息系,濟南 250031)

一種三維模型文件設計及其在光線跟蹤中應用

楊衛平,張子頔

(山東科技大學電氣信息系,濟南250031)

0 引言

隨著次世代游戲的發展,三維游戲畫面進入了高品質、高特效的時代。開發人員為了能夠表現更加豐富逼真的三維場景,往往會使用更大規模和更先進復雜的模型。然而,大規模復雜模型對網絡傳輸和數據處理提出了更高要求。提高網絡傳輸和數據處理效率無法長期滿足先進三維程序制作的要求。因此,需要一種能夠自然表達大規模復雜模型、占用空間小且適合于讀取的模型文件格式。

現有的文件類型在表達大規模復雜模型時顯得力不從心,對于不同的三維應用開發人員通常需要進行數據轉換以兼容不同的工作場景。主流3D模型文件格式的5個特征:1.文件格式和運行時例程庫的可擴展性;2.連續LOD能力;3.基于剛體和骨架的動畫;4.壓縮;5.漸進流傳輸[1]。在現有的主流文件格式中,并不能滿足未來的要求。這在性能要求更為苛刻的嵌入式設備上更為突出,如Android平臺。

1 通用三維模型文件數據交換方法

通用三維模型文件主要用于建模軟件與目標使用程序之間進行信息共享,因此,文件源數據由建模軟件提供。一個3D模型都是由頂點、邊、面3種圖形元素構成的[1]。現代模型還包括場景位置信息、紋理材質、動畫信息等。因此,需要一種合理的描述性結構,自然地表達出數據之間的關系。

現代三維程序常常要處理數以萬計的頂點信息。通過元數據與面向對象的編程模式相結合,可以高效地管理這些數據。當用戶進行再次開發時,僅需要繼承、重構原有的數據類型并新增數據字段即可,保證了文件格式的可擴展性。之后,文件格式使用對象序列化將數據存儲。

圖1 文件數據交換方法

2 通用三維模型文件結構設計

現代三維程序要求文件格式能夠自然表達數據之間的關系以方便程序開發和維護。因此使用面向對象的程序設計思想組織元數據格式和數據結構。這樣,程序如果需要修改,只需繼承基類即可在不更改程序的情況下增加功能。

本文件結構為保證文件格式的可擴展性、壓縮以及能夠流式傳輸,因此使用對象序列化設計。C++Boost開發庫實現對象序列化。本文件使用Android移動平臺進行測試,以保證文件在嚴格條件下良好運行。

2.1ZZDObj物體描述

ZZDObj是用于描述三維場景中的物體對象的。每一個三維物體都是由多邊形構成的。假設有一正方體,如果將它用三角形表示:

那么,通過三角形表示將會有12個三角形,而正方體有8個頂點,這樣會有很多頂點重復存儲,浪費了存儲空間。因此,應將頂點數據與多邊形表示獨立抽象出來。

進一步,大規模復雜模型通常由很多獨立的子模型構成,使用子模型構建模型不僅方便建模還有利于數據存儲。因此,將每一個子模型抽象成網格對象,這樣就可以在每個網格對象中保存相應的信息,如:模型矩陣、骨骼信息。

包含了兩個線性表對象,分別用于存儲組成該物體的網格對象和動畫信息。

另外,它還包含了用于boost訪問的友元聲明,以及boost序列化方法,這些信息將在序列化時使用。

2.2ZZDMesh網絡描述

ZZDMesh類用于描述組成物體的子物體網格信息,同樣,它包括了boost訪問信息以及對象序列化方法。

在三角形網格中,每個三角形都和其他三角形共享邊,因此,三角形網格ZZDMesh類需要存儲三類信息,頂點、邊、面。

圖2 模型結構表示

通常,相鄰的三角形可以共享連接的頂點,使用索引信息就可以減少用于保存三角形信息的存儲空間。

圖3 索引三角形

因此,它的數據成員包括了用于組成網格對象的頂點集合以及面片索引信息,以及用于描述網格相對位置的矩陣信息。線性表face將保存三角形頂點列表的索引及其他信息。因為,三角形頂點列表索引保存的順序有“順時針”和“逆時針”的區別,不同的保存方式會影響三角形的“正面”和“反面”,因此,使用一個標志位記錄保存順序。

2.3頂點、紋理、面片

每個網格對象都是由多個圖元組成的,圖元信息包括頂點位置、紋理坐標等信息。在索引三角網格中,每個頂點包含了一個三維位置坐標。

Vertex類是用于描述頂點的類。它包括了用于描述頂點的位置坐標信息、法線信息、頂點顏色、紋理坐標等。

Texture類是用于描述紋理信息的類,它描述了紋理文件的文件名、路徑等信息。

Face類包含了用以描述每個三角形面片的信息,它包含了該三角形所用到的頂點索引,面片的紋理信息,

3 模型信息導出

首先聲明用于寫入的存檔類型,它包括text_ oarchive、binary_oarchive和xml_oarchive。它們分別把數據輸出為文本類型、二進制類型和XML類型。當使用文本類型或XML類型時,讀取信息要將數據從字符串類型轉換為對象類型,這樣會消耗大量的時間,尤其是規模龐大的模型文件。同時,模型文件加載要求很高的效率,使用耗時低二進制文件類型則是最佳選擇。

模型文件的導出使用了3ds Max SDK用于制作開發模型導出插件,在使用其他文件格式轉換工具時,只需要轉換成兼容格式文件即可使用。

現代建模程序使用場景樹管理場景對象,遍歷場景樹并選出想要導出的模型。當得到想要導出的模型信息后,需要對其進行如下處理:

為了能夠清晰的描述子模型對象,還需要導出模型矩陣信息。在三維應用中,子模型對象矩陣信息將用以物體重組。使用如下算法,將模型頂點位移至正確位置:

其中,pk是每一個坐標頂點,它們分別乘以子模型矩陣,xmat、ymatzmat、1為子模型偏移向量以及歸一化參數,最終,pfinal為轉換后的正確位置。

4 通用三維模型文件在光線跟蹤引擎中的應用與實現

在Android手機上使用zzd模型文件時文件,應在光線跟蹤器初始化之前載入程序。zzd模型文件載入后進行反序列化操作。之后,對模型文件進行數據結構構建,光線跟蹤器將會追蹤每一條發射自屏幕的反向光線并與場景中每一個物體進行相交測試,通過跟蹤測試可以得到每一個像素點顏色。核心算法如下:

創建文件流并反序列化裝配模型對象

for each屏幕像素

從像素中心向模型對象投射一條光線

圖4 光線跟蹤下的zzd格式模型

計算光線與模型對象的碰撞點

if(光線與某一模型對象發生碰撞)

由模型對象材質和光照信息計算像素的顏色值else

將像素的顏色值設定為背景色

5 性能優化

5.1數據壓縮機數據庫管理

在大規模復雜三維場景中,采用分離式文件存儲模式會帶來諸多問題。首先,分離存儲每一個模型將會使程序模型文件變多,在修改有相互關系的模型時會帶來很大的不便。其次,程序打開、關閉每一個模型文件都需要分配、釋放相應的內存句柄,這會帶來一定的性能損耗。

因此,不僅會導致數據難以維護還會降低運行速率。然而,使用單一模型文件則會大大降低程序可靠性,如果某個模型數據損壞,則整個模型文件將會無法使用。

使用SQLite對模型資源進行管理可以降低程序耦合性又可將多個模型文件統一管理,并且能夠保證數據的可靠存儲和高效的性能[3]。

5.2DOD和網絡加速

在三維場景中,較多的三角形會影響三維應用的運行速度,應用細節層次LOD技術可減少模型三角形面,同時又能保證模型視覺效果。LOD技術通過動態確定物體與人眼(三維程序通常為視平面)的距離來連續的使用不同優化級別的網格模型,不僅保證了速度,還不降低視覺效果。

統一柵格是一種空間數據結構,當遍歷時這種數據結構僅有非常小的數據交互,統一柵格由軸對齊包圍盒體對象構成,其中盒體又被細分為多個尺寸的柵格單元,每一個柵格單元亦是一個軸對齊包圍盒體。與柵格碰撞的某一光線將穿越其中的柵格單元,且只與這一類柵格單元內的對象進行相交測試。柵格單元將進行遍歷,光線首次碰撞的物體為最近碰撞對象,該光線也將在此處停止。

創建柵格對象需要按照如下步驟進行:

(對于含有三角形Ti的場景)

①計算包含三角形Ti包圍盒體單元(b1,b2)

②對三角形包圍盒進行相交測試

③如果包圍盒相交測試為真,記錄此包圍盒引用

圖5 加速效果對比(采樣點230)

由圖5可以看出,使用柵格+LOD加速可以大大提高系統運行速度。提高運行速度在10倍以上,這主要是因為柵格加速可以在每次光線相交運算中,消減大量的多余面片,對于計算量龐大的三角面片模型計算此項加速技術顯得尤為重要。

6 結語

通過實驗表明,本文件格式在Android移動三維程序中表現良好,可以自然的描述場景與模型的關系,通過優化手段,文件處理時間大大縮短,使其擁有優秀的加載讀取速率。同時,這種平臺無關的文件格式可以輕松部署到各種主流平臺,也可作為移動手機游戲模型文件。

[1]謝曉竹,呂麗剛,張申.基于彈藥庫視頻監控的背景提取及閾值獲取[J].系統仿真學報,2006,18:400-402.DOI:10.3969/j.issn. 1004-731X.2006.z2.114.

[2]周莉,蘇鴻根.通用3D模型文件格式和算法的研究及其OpenGL實現[J].計算機工程與設計,2009,30(2):433-436.

[3]楊衛平,張子頔.基于SQLite的3D游戲引擎資源管理系統設計[J].現代計算機:專業版,2014,(19):57-61.DOI:10.3969/j.issn.1007-1423.2014.19.015.

[4]焦衛東,盧朝陽,黃瑾.圖像描述中Delaunay三角形網格的快速生成方法[J].西安電子科技大學學報,2007,34(3):348-353.DOI: 10.3969/j.issn.1001-2400.2007.03.003.

Three-Dimensional Model;File Format;Ray Tracing;Android

Design of a Three-Dimensional Model File and Its Application in Ray Tracing

YANG Wei-ping,ZHANG Zi-di
(Department of Electrical Engineering and Information Technology,Shandong University of Science and Technology,Jinan 250031)

1007-1423(2015)29-0061-05

10.3969/j.issn.1007-1423.2015.29.015

楊衛平(1960-),女,山東菏澤人,碩士,教授,研究方向為計算機圖像處理

2015-09-22

2015-09-29

現代三維程序能夠表現逼真復雜的場景,智能手機系統針對這方面的需求越來越明顯,而現有三維模型文件格式難以滿足目前及未來智能手機端更復雜的大規模三維程序的要求。給出一種新型的三維模型文件格式(zzd),這種新型文件格式具有可靠的結構,能夠確保大規模復雜模型的存儲,同時具備良好的可擴展性、耦合性,能夠高效的讀取載入,并進行模型壓縮和流式傳輸。經采用光線跟蹤算法對其在Android平臺下進行實驗應用。實驗表明,該文件格式能夠適應三維場景應用需求。

三維模型;文件格式;光線跟蹤;Android

張子頔(1992-),男,山東濟南人,本科

The modern three-dimensional programsare capable of showing realistic and complex scenes,the needs of this area for the smart phone system become more and more insufficient.Nevertheless,the existing three-dimensional model file format is difficult to satisfy current and future requirements of a complex and large-scale three-dimensional application in smart phone.Presents a novel three-dimensional model file format(zzd),this new file format has a reliable structure satisfy the requirements of the large-scale storage of complex models.It has good scalability,coupling,can efficiently read loads,and model compression and streaming.The file format and the application is experimented by using ray tracing algorithm on the Android platform.Experiments indicate that the file format can accommodate three-dimensional scene application requirements.

猜你喜歡
信息模型
一半模型
重要模型『一線三等角』
重尾非線性自回歸模型自加權M-估計的漸近分布
訂閱信息
中華手工(2017年2期)2017-06-06 23:00:31
3D打印中的模型分割與打包
FLUKA幾何模型到CAD幾何模型轉換方法初步研究
展會信息
中外會展(2014年4期)2014-11-27 07:46:46
一個相似模型的應用
信息
建筑創作(2001年3期)2001-08-22 18:48:14
健康信息
祝您健康(1987年3期)1987-12-30 09:52:32
主站蜘蛛池模板: 国产女人18毛片水真多1| 黄色网站在线观看无码| 天堂中文在线资源| 日韩AV无码免费一二三区| 丁香婷婷综合激情| 亚洲日韩在线满18点击进入| 91青青视频| 国产人成乱码视频免费观看| 国产成人综合亚洲网址| 91毛片网| 欧美一区二区精品久久久| 久久这里只有精品2| 91无码人妻精品一区二区蜜桃| 国产成人1024精品下载| 在线观看精品国产入口| 熟妇人妻无乱码中文字幕真矢织江| 女人18毛片一级毛片在线 | 国产成人狂喷潮在线观看2345| 91网红精品在线观看| AV不卡无码免费一区二区三区| 国产欧美日韩一区二区视频在线| 99精品国产电影| 亚洲午夜福利精品无码不卡| 亚洲中文字幕手机在线第一页| 欧美国产日本高清不卡| 婷婷99视频精品全部在线观看| 91精品国产丝袜| 国产va在线观看| 国产a在视频线精品视频下载| 久久久精品无码一二三区| 丰满人妻中出白浆| 国产精品白浆无码流出在线看| 天天色天天综合网| 亚洲成A人V欧美综合| 日本在线亚洲| 99热国产这里只有精品9九| 亚洲精品片911| 欧美激情第一欧美在线| 女人一级毛片| 日韩免费视频播播| 免费毛片全部不收费的| 无码内射在线| 欧美色综合网站| 国产视频一区二区在线观看 | 国产十八禁在线观看免费| 亚洲天堂网2014| 国产91在线|中文| 亚洲va在线观看| 亚洲中文无码av永久伊人| 超碰免费91| 国产久草视频| 国产不卡在线看| 久久精品人妻中文系列| 亚洲中文字幕无码爆乳| 亚洲水蜜桃久久综合网站 | 一本一道波多野结衣av黑人在线| 中文字幕免费播放| 免费精品一区二区h| 免费网站成人亚洲| 日韩资源站| 国产网站黄| 亚洲精选无码久久久| 亚洲一区二区三区国产精华液| 亚洲综合专区| 久久99精品国产麻豆宅宅| 亚洲熟妇AV日韩熟妇在线| 91福利免费| 国产永久在线视频| 在线播放国产一区| 不卡色老大久久综合网| 91欧洲国产日韩在线人成| 亚洲av无码人妻| 欧美啪啪精品| 亚洲不卡网| 国产成a人片在线播放| 国产福利在线免费观看| 欧美色香蕉| 成人在线综合| 97综合久久| 亚洲欧美日本国产综合在线 | 亚洲动漫h| 午夜综合网|