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

基于C#和Direct X的三維虛擬校園構建探討

2015-03-28 06:10:54張繼超馬洋洋董塞漠
測繪工程 2015年1期
關鍵詞:校園模型

張繼超,馬洋洋,董塞漠

(1.遼寧工程技術大學 測繪與地理科學學院,遼寧 阜新123000;2.中國伊斯蘭教協會,北京100053)

隨著虛擬現實技術的發展和“數字地球”概念的提出與廣泛實踐,對三維虛擬校園的構建研究也越來越多。三維虛擬校園可提供校園的虛擬環境,讓人足不出戶就能實現對該場景的漫游與交互,從而達到身臨其境的主觀感受。

Direct X自從1995年出現以來,己成為目前計算機領域中最廣泛的3D標準規范,在眾多3D開發領域得以應用。而C#開發語言,不僅能夠實現對Direct X自身強大的渲染功能的調用,而且能將操作者的意圖運用圖像界面流暢地表現出來[1]。3DSMax是由Autodesk旗下的公司開發的三維建模和動畫制作軟件,具有強大、完美的三維建模功能,是當今世界上最流行的三維建模、動畫制作及渲染軟件。本文利用 C#調用 Direct X[2-3],結合3DSMax建模工具,對三維虛擬校園的構建方法進行探討,并以遼寧工程技術大學(中華路校區)為例,實現了三維虛擬校園的初步構建。

1 三維建模背景及相關理論

1.1 三維建模理論

三維模型是物體的三維多邊形表示,通常用計算機或者其它視頻設備進行顯示。顯示的物體可以是現實世界的實體,也可以是虛構的東西,既可以小到原子,也可以大到很大的尺寸。任何自然界存在的物體都可以用三維模型表示[4]。

三維模型廣泛用于任何使用三維圖形的地方。實際上,它們的應用早于個人電腦上三維圖形的流行。許多計算機游戲使用預先渲染的三維模型圖像作為sprite用于實時計算機渲染

近年來,隨著數字城市的發展,三維模型也在地球科學領域得到廣泛應用,如建立數字高程模型、三維地質模型、數字小區、數字校園[6]等。

三維模型本身是不可見的,為增加模型的真實效果,常采用紋理映射或其他方法(如調整曲面法線、立體渲染等)來增強模型。

1.2 攝像機視圖矩陣

為了將真實世界的對象以三維模型的形式表達出來,需要將世界空間的對象先轉換為模型自身的空間坐標系,然后利用攝像機空間展示顯示區域,其轉換過程如圖1所示。

圖1 三維坐標轉換過程

攝像機空間轉換的過程需要3個參數:即攝像機位置、目標位置以及攝像機上下方向,這3個參數又稱為攝像機矩陣,都為空間向量[7]。在Direct X中可以通過這3個向量形成一個視圖矩陣。即以攝像機位置為起點、攝像機目標位置為終點的單位向量作為攝像機空間的Z′軸坐標(相對于世界空間),然后根據左手法則或右手法則計算出攝像機空間的X′軸坐標,最后計算出攝像機空間的Y′軸坐標。所以視圖矩陣中保存攝像機空間X′,Y′,Z′軸坐標在X,Y,Z方向上的分量,以及在攝像機空間中世界坐標原點的位置,如圖2所示。

圖2 視圖矩陣

2 C#調用Direct X構建虛擬場景

利用C#調用Direct X接口,完成場景的搭建、材質燈光的導入、場景整體渲染、攝像機導入等功能。

2.1 項目初步配置

1)新建項目并添加新建項。新建一個Visual C??枕椖?,設置其項目名稱,在解決方案資源管理器中選擇項目名稱并添加新建項。

2)添加窗體及引用。在 “添加新項”窗體上選擇“Windows窗體”模板,完成窗體添加,并在主菜單上選擇“項目—添加引用”,在.NET中添加Direct X和 Direct X.Direct3D(X)等組件,完成 Direct X的調用。

2.2 3D場景底圖構建

在全局中定義頂點變量,設置貼圖圖片上的水平和垂直位置的坐標分別為Tu和Tv,其中貼圖坐標(0,0)表示圖片左上角,貼圖坐標(1,1)表示右下角。在全局中定義貼圖變量texture及材質變量material,分別用于保存貼圖圖片對象和材質對象,通過指定材質類型可以設置三角形表面的反射等方式。將場景圖片文件復制到項目目錄下作為場景的底圖,并修改渲染函數,導入貼圖和材質函數的相關代碼,進行渲染,然后以上述類似的方式繪制三角形,將兩三角形拼接到一起,構建整個場景底圖。

2.3 攝像機導入及設置

調整三角形頂點坐標及攝像機位置,然后修改攝像機函數Set Up Ca mera()中視圖矩陣的代碼,對攝像機進行旋轉[8]。以圍繞Y軸選擇為例,首先在全局中定義旋轉角度及攝像機位置等變量,然后修改攝像機函數,設置鍵盤輸入的Left和Right鍵來控制攝像機的左右旋轉,并通過直接添加窗體的On Key Down()重載函數來實現。

值得注意的是,上述過程實現了攝像機左右旋轉的功能,但是這個旋轉是相對于世界坐標系的Y軸,如果攝像機空間坐標系的Y軸和世界坐標系的Y軸不為同一個方向,這將導致旋轉功能無法完全實現。因此在定義旋轉軸時,應以攝像機空間坐標系的Y軸方向為旋轉軸。除了左右旋轉外,攝像機還應具有上下旋轉來調整視角的功能,此時,其旋轉軸為攝像機空間坐標系的X軸。

攝像機縮放的控制,可以通過設置攝像機位置的比例函數Scale()來實現。在窗體的 On-Key Down()重載函數中添加縮放攝像機代碼,并可設置鍵盤快捷鍵(如鍵盤加號(+ 表示放大、減號(-)表示縮?。┛刂茢z像機的放大和縮小操作。

2.4 繪制基本幾何體

通過Direct3D繪制的每個對象都是由三角形組成的,一個三角形由3個點組成,而每個點都定義成一個向量來指定點的X,Y,Z坐標。所有基本體,主要是由長方體和球體組成[9]。對于任意一個六面體,其各頂點坐標編號如圖3所示。

圖3 六面體頂點坐標編號

通過繪制12個三角形即可形成圖3所示的六面體,將該六面體的頂部和底部面、四周的面進行展開。值得注意的是,為了使頂面的法線向外(即頂點序號按順時針排列),對于底部的面采用序號反向使得繪制的三角形可見。其結果如圖4所示。

圖4 立方體繪制結果

2.5 幾何體的復制、貼圖及場景搭建

在Direct X中,幾何模型對象基本上都是通過Mesh來表示,它也是組成三維場景的基本元素之一。Mesh類具有一個Clone()方法用于復制網格對象至另外一個網格對象中,修改全局變量、初始化函數及渲染函數的相關代碼,復制長方體,將之前建立的場景與幾何體結合到一起,合并相關代碼,進行整體三維場景的搭建[9]。將相關幾何體進行材質貼圖,使其變成完整樓體。

3 3DSMax模型構建

Direct X雖然可實現用戶交互功能,運用鼠標與鍵盤的輸入,多角度觀測整體場景,但該軟件的精度不高,對三維模型細節的渲染不夠完善。因此,本文應用3DSMax軟件對部分三維模型進行制作及渲染。

建模過程包括:三角網搭建、元素的對齊、線條的擠出、布爾運算、圖形的縮放、空間坐標的選定、材質編輯以及渲染參數的設定等。

下面以致遠樓為例,闡述3DSMax模型的構建過程。

1)繪制長方體,并設置其長、寬、高及材質,作為部分樓體輪廓,如圖5所示。

圖5 樓體輪廓

2)建立指定長方體,與樓體輪廓相交,運用布爾運算、復制陣列等,對樓體輪廓進行摳圖,作為門窗的位置。

3)制作門窗,運用多個尺寸不同的長方體,按固定位置進行擺放,作為窗框、門框和玻璃,然后找到相關元素的材質參數,編輯材質,如圖6所示。

圖6 窗戶制作

4)以同樣的方式制作樓體輪廓的中心部分。運用鏡像功能將樓體輪廓的右側部分鏡像并作為樓體的左側部分,最后運用3DS的“倒角”和“擠出”功能,制作樓體的頂部及側面元素并設置材質,如圖7所示。

圖7 鏡像后模型

5)將所有制作完成的模型進行拼接,增加天光,設置高級照明參數并進行映射紋理,對模型進行渲染,如圖8所示。

圖8 渲染后“致遠樓”模型

4 三維虛擬校園的構建

本文以遼寧工程技術大學(中華路校區)為例,結合校園遙感影像圖和建筑物側面照片紋理數據,進行了三維虛擬校園的構建。

4.1 3D場景互動平臺構建

將校園遙感影像文件復制到項目目錄下作為場景底圖,修改渲染函數,導入貼圖和材質函數的相關代碼,進行渲染。然后,修改鼠標控制相關代碼,得到校園3 D場景互動平臺,如圖9所示。

圖9 校園3D場景互動平臺

4.2 校園三維模型導入

在3DSMax下,選擇具有普遍性、代表性以及真實場景的特殊性地物,完成典型地物要素的三維精確建模。主要包括:編輯地形、水泥地面及主要建筑物的導入、花壇的設計、草坪的渲染,并增加樹木、垃圾箱、路燈等地物,提高虛擬校園的視覺效果。部分效果如圖10所示。

5 結束語

本文基于C#調用Direct X,輔以3DSMax實現了三維虛擬校園的構建,包括三維場景的搭建;樓體元素的構建及導入;樓體貼圖函數的運用及場景圖的渲染;其他實體模型構建與導入;燈光及材質代碼的編寫;攝像機位置設置等。用戶能夠通過鼠標鍵盤等設備輸入相關消息,并可以對三維場景進行多角度操作,真正實現了系統的用戶交互功能。此外,通過3DMAX軟件制作的模型場景,補償了Direct X的表現效果,完善了三維虛擬校園的元素細節,增加了真實感。

[1] 肖澤云.基于Visual C#的Direct X開發實例[M].宜昌:三峽大學出版社,2010.

[2] 吳昊.關于C++BUILDER語言的Direct X開發問題的研究[J].軟件導刊,2006,5(6):67-69.

[3] 李震宇.游戲開發之路——在C++Builder中進行Direct X編程[J].電腦編程技巧與維護,2000,6(3):72-86.

[4] 馬萍.三維虛擬校園立體場景的設計與實現[D].濟南:山東師范大學,2013.

[5] 孫明杰,韓超.用C++6.0和Direct X實現太空射擊游戲引擎[J].科技廣場,2006,18(5):77-79.

[6] 王建敏,王凱,孟凡帥.校園三維景觀設計與實現[J],測繪工程,2011,20(3):62-64.

[7] 徐黎明.Visual C++下Direct3D坐標變換的實現 [J].軟件導刊,2008,7(2):77-79.

[8] LAH SAU MENG,KELVIN.Design and Development of a Peer-to-Peer Online Multiplayer Game Using Direct X and C#[A].TENCON 2004 IEEE Region 10 Conference,Singapore,2004:278-281.

[9] FENGHUA SHI.Visualization Modeling of Mine Road way based on Visual C#[J].Co mputer Society,2008,18(5):271-275.

猜你喜歡
校園模型
一半模型
重要模型『一線三等角』
重尾非線性自回歸模型自加權M-估計的漸近分布
Q爆校園
再見,我的校園
南方周末(2018-06-28)2018-06-28 08:11:04
校園的早晨
琴童(2017年3期)2017-04-05 14:49:04
春滿校園
3D打印中的模型分割與打包
FLUKA幾何模型到CAD幾何模型轉換方法初步研究
開心校園
主站蜘蛛池模板: 国产精选小视频在线观看| 天天摸夜夜操| 就去色综合| 国产美女在线观看| 国产精品久线在线观看| 亚洲日本中文综合在线| 亚洲中文字幕在线一区播放| 亚洲天堂网在线视频| 青青青国产视频手机| 欧美精品伊人久久| 国产精品毛片一区视频播| 在线国产91| 国产91九色在线播放| 亚洲日韩AV无码一区二区三区人| 国产美女叼嘿视频免费看| 色综合国产| 国产精品成人免费视频99| 97影院午夜在线观看视频| 久久综合AV免费观看| 无码日韩人妻精品久久蜜桃| 国产一级毛片网站| 久久激情影院| 2020久久国产综合精品swag| 成人午夜免费观看| www.youjizz.com久久| 99手机在线视频| 1024你懂的国产精品| 四虎影视8848永久精品| 欧美高清国产| 爆乳熟妇一区二区三区| 日韩欧美国产精品| 亚洲欧美在线综合图区| 999精品色在线观看| 成人午夜视频在线| h视频在线观看网站| 亚洲精品va| 亚洲精品黄| AV不卡在线永久免费观看| 国产一级二级三级毛片| 亚洲无码日韩一区| 国产不卡网| 免费在线看黄网址| 色偷偷综合网| 亚洲丝袜中文字幕| 午夜精品福利影院| 精品国产自在现线看久久| 亚洲二区视频| 午夜毛片免费观看视频 | 99九九成人免费视频精品 | 久久午夜影院| 无码福利日韩神码福利片| 亚洲激情99| 99视频在线精品免费观看6| 国产杨幂丝袜av在线播放| 99热这里只有精品5| 亚洲一区免费看| 丝袜美女被出水视频一区| 欧美一区精品| 亚洲精品va| 九九九精品视频| 日韩在线1| 婷婷成人综合| 美女亚洲一区| 久久久久青草大香线综合精品 | 91福利免费| 亚洲欧洲一区二区三区| 97精品国产高清久久久久蜜芽| 国产国产人成免费视频77777| 亚洲日韩高清无码| 一本一本大道香蕉久在线播放| 永久在线精品免费视频观看| 成人午夜福利视频| 四虎综合网| 国产成人久视频免费| 在线国产毛片手机小视频| 99精品福利视频| 成人免费网站久久久| 99精品福利视频| 久久久国产精品免费视频| 欧美精品亚洲日韩a| 九九视频免费在线观看| 伊人色在线视频|