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

基于3DS文件讀取的虛擬場景實現

2012-07-13 06:30:04馬建倉
電子設計工程 2012年23期
關鍵詞:信息模型

陳 曉,馬建倉

(西北工業大學 電子信息學院,陜西 西安 710129)

隨著計算機圖形學的發展,計算機動畫、科學計算可視化和虛擬現實逐漸成為計算機圖形學領域中3大重要技術,其中三維現與廣泛應用于建筑學、醫學、模擬仿真、虛擬現實等諸多領域[1]對大多數人來說,計算機真實感圖形已不再是一個陌生的名詞,它正日益廣泛的深入到人們日常的工作、學習和生活中,在影視特技、廣告動畫中,人們已經領略到計算機真實感圖形的神奇魅力。真實感圖形是一種計算機生成技術,它首先在計算機中構造出所需場景的幾何模型,然后根據假定的光照條件,計算畫面上可見的各個景物表面的光亮度,從而產生逼真的視覺效果。

文中主要針對Autodesk公司的3DMAX軟件建立幾何模型,從而對生成的3DS文件進行編程,實現3DS文件的讀取、重繪及控制。傳統的基于過程的設計方法,由于相關函數多而且散雜同時數據又與函數分離,導致不便于程序的移植,為了克服這些缺點,本文采用了面向對象的程序設計方法,將3DS文件的形體數據讀入到類中,然后利用光線追蹤技術[2]實現對三維模型的渲染,使得生成的場景更加逼真,具有真實感。

1 3DS文件和OpenGL的繪制流程簡介

1.1 3DS文件簡介

3DS文件是基于塊(chunk)結構存儲的。一個塊開始是2個字節的ID,4個字節的塊長度信息,然后是塊的主要數據。將3DS文件以16進制方式打開如圖1所示,數據按照低位在前,高位在后的方式存儲。例如,2個16進制字節FFAF組成的整型數,表明AF是高字節,FF是低字節;對于長整型數,如。938E 0600,表明8E93是低位字,0006是高位字。

圖1 3DS文件的16進制數據構成Fig.1 3 DS file hexadecimal data form

3DS文件中 有一個基本塊,其ID是4D4D,每個3DS文件的開頭都是這樣的一個塊。基本塊中的子塊是3D編輯塊和關鍵幀塊,前者的ID是3D3D,后者的ID是B000.圖2說明了3DS的塊結構以及各個塊之間的嵌套關系。下面對主要的幾個塊進行簡單介紹。

1)主編輯塊(0X3D3D)

描述場景數據的主編輯塊存儲了當前編輯場景的狀況和當前窗口的配置數據,這些數據是用于顯示三維圖形的重要幾何信息,也是基于OPENGL裝載3DS文件的重點煙酒部分。

2)材質塊(0XAFFF)

材質塊定義了使用與物體上的材質屬性,包括材質的名稱,顏色以及貼圖等。如果讀入的材質包含貼圖,則貼圖所對應的文件名、透明度信息、位置和纏繞方法也都存儲在材質塊的響應子塊中。

圖2 3DS文件塊結構Fig.2 3 DS file chunk structure

3)物體塊(0X4000)

物體塊下有物體網格塊 (0X4100)和物體材質塊(0X4130)。物體網格塊存儲的是模型的頂點、頂點的紋理坐標、面信息以及邊信息等。物體材質塊中存儲的是當前物體上所賦予的材質,該塊與材質塊的區別是,材質塊存儲的是3DS文件中材質庫中的信息,而物體材質塊中存儲的是當前物體上的材質信息。

4)其他塊

當遇到塊信息未知或對模型顯示不起作用的塊時(如關鍵幀塊),可不進行處理直接讀入下一個塊。

1.2 OpenGL的繪制流程

OpenGL全稱為“開放式圖形庫”,是由SGI公司開發的三維圖形API,目前在圖形開發領域已經成為工業標準。OpenGL是一種強大的三維圖形開發工具,是圖形硬件的軟件接口[3],OpenGL主要工作是將三維的物體投影到一個二維平面上,之后處理得到的像素,進行顯示。首先將物體轉化為可以描述物體幾何性質的頂點與描述圖像的像素,在執行其他操作后,最終將這些數據轉化為像素數據。

1)針對每個頂點的操作和幾何要素裝配

每個頂點的空間坐標需要經過模型取景矩陣變換、法向矢量矩陣變換,若允許紋理自動生成,則由變換后的頂點坐標所生成的新紋理坐標替代原有的紋理坐標,再經過當前紋理矩陣變換。然后根據幾何要素類型決定采取不同的幾何要素裝配方式。

2)像素操作

由主機讀入的像素首先解壓縮成適當的組分數目,然后進行數據放大、偏置,并經過像素映射處理,根據數據類型的限制在適當的取值范圍內。像素最后寫入紋理內存,使用紋理映射或光柵化生成像素段。

3)像素段操作

當使用紋理映射時,每個像素段將產生紋素,再進行霧效果計算、反走樣處理,接著進行剪裁處理、一致性檢驗、模板檢驗、深度緩沖區檢驗和抖動處理。

2 3DS文件的讀取與控制

3DS文件中采用的是塊結構,并且塊與塊之間存在嵌套的關系,所以對3DS文件中三維模型數據的讀取采用遞歸的方法。返回上一級的條件是當前已經讀入的塊字節數是否等于塊的長度,從父塊跳轉到子塊可用switch語句實現,通過子塊的ID判斷進入那個子塊分支。當遇到沒有必要讀入的塊時,可通過ID判斷,若不需要此塊信息,則可將文件指針向前移動(塊長度—6)個字節[5]然后break跳過該塊,處理下一塊。當遇到需要讀入的塊時,例如材質塊,通過判斷當ID為0XAFFF(EDIT-MATERIAL)時,首先自加記錄材質數目的變量,然后為當前材質塊分配一塊空白的結構,接著遞歸讀出相關信息。當主塊讀完后,整個讀入程序結束。讀入程序的主要流程圖如圖3所示。

圖3 3DS文件處理流程圖Fig.3 3DS document processing flow chart

通過面向對象的編程,實現了3DS文件數據信息的讀取,對象的繪制就是根據類中保存的信息進行繪制,場景控制主要是基于D3D InputSystem實現鍵盤和鼠標的控制操作。用OpenGL繪圖命令繪制出來,主要代碼如下。

3 光線追蹤技術

光線追蹤時一種真實地顯示物體的方法。光線追蹤算法是生成真實感圖形的主要算法之一。它通過跟蹤每一條從視點出發的光線,計算光線與景物交點的光強,可以精確地在三維實體上產生陰影、反射、折射及表面紋理等真實感很強的光學效果。標準的光線追蹤算法需要計算每一條與景物空間相交的光線,并且要根據景物的性質進行光的反射、折射等計算,計算量非常龐大,因此很難滿足真實感圖形顯示的實時性要求,為了提高顯示的實時性,一般通過提高光線追蹤算法的效率及并行處理技術來實現。

在本文中采用二叉空間剖分[6](BSP)加速技術,來提高光線追蹤的效率。它由Schumacker于1969年首先提出,90年代初期由John Carmack和John Romero最早在第一人稱視角游戲Doom中引入。自那以后,幾乎所有的第一人稱射擊類游戲都采用BSP技術。BSP樹能應用在深度排序、碰撞檢測、繪制、節點裁剪和潛在可見集的計算,極大地加速了三維場景的漫游。它基于這樣一個事實:空間中的任何平面都將整個空間分割成兩個半空間,位于該平面某一側的所有點構成了一個半空間,位于另一側的點則定義了另一個半空間,該平面則是將兩個半空間剖分開來的分割面。根據這種空間剖分的方法,可以建立起對整個幾何場景和場景中各種物體幾何的描述。BSP樹的根節點就是整個場景,每個節點所代表的區域被平面分成兩部分,一部分是平面前面(左側)區域的子節點,另一部分是平面后面(右側)區域的子節點。對子節點剖分,一直向下遞歸直到空間內部沒有多邊形或者剖分的深度達到指定的數值時才停止。BSP樹具有內存開銷小,剖分產生的無效區域少,樹結構比較平衡及樹的深度較淺等優點。

4 實驗仿真

基于上述方法,本文設計實現了三維場景模型的讀取、繪制和操作,在此基礎上實現了基于BSP的光線追蹤算法,并且在場景中實現了簡單的粒子系統。仿真場景圖如圖4所示。此圖(b)中的亮光區域即為手槍子彈的爆炸(粒子系統)演示。

圖4 基于3DS文件實現的虛擬場景Fig.4 Based on the 3 DS file virtual scene

5 結 論

3DS是一種通用的保存三維模型的數據格式,因此研究該格式的讀取和繪制很有重要的實際意義。本文基于面向對象的編程方法對3DS文件進行讀取,利用OpenGL進行重繪,大大降低OpenGL建立復雜模型的難度,可以較容易的得到真實的三維復雜物體模型。在此基礎上運用光線追蹤技術,對三維模型場景進行實時渲染,使得生成的場景更加逼真,具有真實感。

[1]于瑩瑩.在VC中利用OpenGL實現動態效果圖像的技巧[J].微型電腦應用,2002,18(6):50-52.

YU Ying-ying.In the VC using OpenGL realize dynamic image skills[J].Microcompute Applications,2002,18(6):50-52.

[2]彭群生,鮑虎軍,金小剛.計算機真實感圖形的算法基礎[M].北京:科學出版社,1999.

[3]Wright R S,Lipchak B.OpenGL超級寶典[M].徐波,譯.3版.北京:人民郵電出版社,2005.

[4]郭景,雷鳴.3DSMAX模型在OpenGL中的讀取與重現[J].自動化與儀表,2002,17(5):46-49.

GUO Jing,LEI Ming.3DSMAX model in the OpenGL reading and reappear[J].Automation and Instrumentation,2002,17(5):46-49.

[5]殷素峰,高雪強,楊勝強.在OpenGL環境下開發3DS文件瀏覽器[J].工程圖學學報,2005(6):22-25.

YAN Su-feng,GAO Xue-qiang,YANG Sheng-qiang.Development 3DS file browser based on OpenGL[J].Journal of Engineering Graphics,2005(6):22-25.

[6]Kaplan M.Space-tracing:a constant time ray-tracer[C]//SIGGRAPH’85 State of the Art Image Syn Sem Notes,1985:149-158.

猜你喜歡
信息模型
一半模型
重要模型『一線三等角』
重尾非線性自回歸模型自加權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
主站蜘蛛池模板: 精品人妻AV区| 69视频国产| 国产成人91精品| 亚洲中文字幕手机在线第一页| 一本久道久综合久久鬼色| 亚洲欧美国产五月天综合| 少妇露出福利视频| 丝袜亚洲综合| 少妇露出福利视频| 亚亚洲乱码一二三四区| 乱系列中文字幕在线视频| 一级福利视频| 乱系列中文字幕在线视频 | 青青操视频在线| 日本91视频| 国产91线观看| 一本久道热中字伊人| 久久国产乱子伦视频无卡顿| 国产福利影院在线观看| 国产美女自慰在线观看| 国产一区二区福利| 黄色网在线免费观看| 久久伊人操| 亚洲另类色| 成人福利视频网| 在线日本国产成人免费的| 精品免费在线视频| 精品国产Ⅴ无码大片在线观看81| 免费一级毛片在线观看| 国禁国产you女视频网站| 性做久久久久久久免费看| 免费人成网站在线观看欧美| 第一区免费在线观看| 亚洲国产理论片在线播放| 亚洲天堂网在线播放| 一级毛片在线免费看| 99视频精品全国免费品| 在线观看无码av五月花| 99爱视频精品免视看| 日本黄网在线观看| 国产96在线 | 久久精品日日躁夜夜躁欧美| 久久亚洲国产一区二区| 99久久精品国产自免费| 日本免费新一区视频| 国产麻豆精品久久一二三| 国产成人精品第一区二区| 99精品一区二区免费视频| 国产美女在线免费观看| 乱人伦中文视频在线观看免费| 国产亚洲第一页| 日本免费福利视频| m男亚洲一区中文字幕| 国产成人久久综合777777麻豆 | 国产主播在线观看| 国产女人水多毛片18| 无码在线激情片| 97影院午夜在线观看视频| 2021精品国产自在现线看| 97在线公开视频| 亚洲国产一区在线观看| 成人夜夜嗨| www亚洲天堂| 国产一区二区三区免费观看| 露脸真实国语乱在线观看| 五月激情婷婷综合| 色婷婷综合在线| 人妻无码AⅤ中文字| 午夜免费视频网站| 国产v精品成人免费视频71pao| 国产成人乱无码视频| 99热这里只有精品免费| 亚洲AV无码一二区三区在线播放| 尤物特级无码毛片免费| 巨熟乳波霸若妻中文观看免费| 成人在线综合| 香蕉视频在线观看www| 国产女人在线视频| 精品三级在线| 久久国产精品影院| 欧美日韩精品一区二区在线线 | 天天婬欲婬香婬色婬视频播放|