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

三維虛擬校園的應用研究

2020-07-10 15:52:28李秀玲
軟件 2020年5期
關鍵詞:數據庫校園用戶

李秀玲

(忻州職業技術學院計算機系,山西 忻州 034000)

0 引言

研究和實驗三維虛擬環境,實現虛擬校園的意義在于:

(1)通過虛擬校園,用戶可以直觀、詳細地了解校園的景觀和環境,能感受到栩栩如生的校園建筑,對校園環境產生身臨其境的感覺。

(2)能夠完善學校的網站功能,用戶可以通過瀏覽器來體驗校園逼真的視覺效果,并配以許多信息查詢功能,有助于學校宣傳,并提高學校的知名度。

(3)有利于學校招生,借助網絡平臺,建立虛擬校園,可以提高校園的美譽度幫助學校大范圍的招生,從而增強學校的影響力和競爭力。

(4)優化學校建設,通過虛擬校園,學校可以方便的對學校結構進行分析,并做出合理的布局規劃[3];另一方面設計者們可以首先在系統中對規劃方案進行預設計,并通過虛擬導游員進行預覽,得到合適的方案,這樣就避免了盲目施工所帶來的資源浪費。

由此,虛擬校園可認為包括學校現實的虛擬化和過程教學[5]。其虛擬校園包括模擬真實的校園景觀,它的建筑可以是現有的建筑,也可以是正在建設的或準備建設的建筑。這個課題主要服務于現實的學校[2]。

1 虛擬校園系統的總體構建

根據作者自身的實際情況和綜合能力,準備從程序底層開發,既運用 VC++和 OpenGL編程技術來實現整個虛擬校園系統[6],校園三維場景的建模主要采用3ds max這個軟件,對建筑物表面紋理圖片的處理主要使用Photoshop這個軟件。

虛擬校園開發系統的總體構建如圖1所示。

2 虛擬校園的功能模塊

根據虛擬校園的總體構建圖,將虛擬校園的功能分為設計界面、輸入數據、建立模型和交互系統四大模塊。如圖2所示。

圖1 系統開發的總體構建圖Fig.1 The overall structure of system development

圖2 虛擬校園系統的功能模塊圖Fig.2 Functional module diagram of virtual campus system

3 建立實體模型

3.1 收集數據及預先處理

在該系統中幾何建模的主要數據來自設計圖紙和實際測量的數據。圖片主要來自數碼相機對一些標志性建筑拍照得到的;紋理數據通過數碼相片及素材庫中的圖片經過處理得到的。針對結構外觀比較簡單的建筑采用 OpenGL直接建模[1],如果建筑物較復雜,首先把模型進行拆分,拆成多個簡單的模型,再進行建模[7]。

3.2 具體建模過程

采用OpenGL建模的方法是,對于建筑物的模型首先建立如下所示的統一的數據結構:

typedef struct Object_Type

{

int nObject_Type;int nNumPoint;

float dWidth_Direct;

float dHeights;

Point3DArray points;

}Object;

在OpenGL中墻面由面片來組成,首先根據攝影測量工具對墻面所收集的頂點進行處理,即把所有的頂點依次連接成一系列的四邊形。具體生成的面片圖3所示。

對于建筑物頂部的建模,可以通過其所有的頂點坐標生成。通常校園建筑物頂部都是平頂建筑,所以其模型能看作是頂部與墻面的組合[9]。這樣就把一個復雜的建筑物簡單化了。

還有校園中如果有如階梯教室、實習實訓場所等復雜的建筑物,可以根據這些建筑物外在的特點對其進行分解,分成若干形態簡單的幾何體,然后在定義這些幾何體的數據模型[4]。

3.3 紋理映射過程

通常對于建筑物表面材質和顏色采用紋理映射的方法進行建模。具體的實現方法是:通過采集加工把建筑物上各個面的紋理數據轉換成圖形圖像格式,在繪制每個面時在分別對每個面進行紋理映射。通過紋理映射得到的場景對象仿真度高,而且栩栩如生。下面的校園景觀圖4就是通過紋理映射得到的。

圖3 墻面四邊形結構圖Fig.3 Wall quadrilateral structure

圖4 紋理映射后的景觀Fig.4 Texture-mapped landscape

4 系統交互的實現

4.1 交互漫游功能的實現

(1)通過鍵盤鼠標獲取

用戶通過鍵盤的上下左右鍵來完成相應的動作控制。每次完成一個動作按鍵系統就會產生一個事件,在系統中控制場景的變換主要是通過用戶先點擊相應的按鍵,然后系統程序把這個動作轉換為控制命令,最后實現虛擬場景的變換。

在三維虛擬場景中大部分操作是由鼠標來完成的,如:三維場景的視角、旋轉及定位等操作。所以在三維校園系統中實現用戶的動作輸入時常常是鍵盤鼠標配合起來使用共同來完成用戶的操作。

(2)漫游的控制

在虛擬漫游系統中如果用戶的視角發生改變時,場景中的對象也發生了相應的改變。這樣就需要通過下面的方法來實現:一是通過場景中改變三維對象的坐標來完成,二是通過三維場景視點的變換來完成場景的改變。這種方法是通過對用戶視點的變換來完成場景中對象的重新繪制。

當場景的建模完成后,通常要選擇一個合適的視角作為觀察點,或者來回不停地變換視角,來對場景進行觀察。OpenGL中專門提供了函數gluLookAt( )用于視點的變換[10]。

void gluLookAt(GLdouble eyex,GLdouble eyey,

GLdouble eyez,

GLdouble centerx, GLdouble centery,

GLdouble centerz,

GLdouble upx, GLdouble upy, GLdouble

upz);

其中:eyex,eyez,eyez是指定視點位置

Centerx,centerz,centery指定參考點位置

Upx, upy,upz,指定視口向上的方向

具體如圖5所示。

圖5 函數gluLookAt()的坐標系Fig.5 Coordinates of the function glulookat

在虛擬校園漫游系統中人所處的位置的坐標方向始終向上,其中視點坐標的方向即向量坐標(upx,upy,upz)固定為(0.0f,1.0f,0.0f),然后通過鍵盤鼠標的操作,即提前設定一個變量然后通過鍵盤來調整速度,通過鼠標操作來確定相關的位移量。利用三維幾何學知識計算出參考點與人眼之間的變化,最后通過函數gluLookAt()自動生成相應的三維場景。

4.2 動態漫游功能的實現

所謂動態漫游指用戶在下圖的三維正交投影圖上點擊,選定一條路線來實現場景漫游。

圖6 三維正交投影示意圖Fig.6 Three-dimensional orthogonal projection diagram

在三維校園場景中,通過點擊鼠標確定一條路線,系統會自動獲取點擊點的坐標,然后計算出這條路線視點參數、目標點參數,然后把這些參數帶入函數gluLookAt()中,來回地繪制場景,這樣就完成了三維場景的路線漫游。在Windows下編程時,用計時器來實現時間間隔。在編程環境下創建一個計時器,該計時器就隔一定時間通知Windows向窗口發送信息,Windows通過響應這個信息就能以一定的時間間隔來完成任務。

4.3 碰撞檢測

在本文中實現碰撞檢測采用的是層次包圍盒法,這種方法的具體做法是:首先給場景中的對象建立方體包圍盒,屬性參數設置為隱藏;然后在用戶指定路線上的模型時給每個對象添加包圍盒,最后在場景中進行漫游時添加碰撞檢測。實現碰撞檢測的具體流程圖如下。

圖7 碰撞檢測的流程圖Fig.7 Flow chart of collision detection

根據上面的流程圖,首先為每個模型定義包圍盒,包圍盒其實就是一個正六面體,其屬性參數設為隱藏,具體碰撞檢測的初始化代碼如下:

stuct OBJPOSI

{

float x, h, z;

float sizew;

float sizel;

float sizeh;

float showscale;

int objnum;

float angle;

};

其中 float x,h,z設對象的位置;float sizew設置包圍盒的寬,float sizel設置包圍盒的長,float sizeh設置包圍盒高;float showscale設置對象的縮放倍數;float angle設置對象的角度。

碰撞檢測時首先判斷這兩個對象的包圍盒是否發生了碰撞這樣做不僅程序簡單,而且計算準確。

4.4 連接數據庫

通過上面的研究工作,為了達到與周圍環境的交互效果,還需要增加數據庫的功能,即把三維校園中的對象都收入到數據庫中,當用戶任意選擇建筑物時,選擇到的建筑物為參數可以到數據庫中查找,并將建筑物的名稱及面積實時地顯示在桌面上。具體實現過程是:首先獲取用戶點擊對象的名稱;然后在數據庫中根據對象的名稱查找相關的信息;最后將信息輸出到桌面上。

由于這個三維場景的數據量不太,選擇Access數據庫就可以了。首先編寫dll文件實現必要的函數接口。

boolg_open_db(); //初始化數據庫

voidg_get_value(const char*valuename, const

char*id, const char*value);

//設置數據標注的腳本

支持

boolg_close_db(); //關閉數據庫

這樣數據庫中的信息可以隨時隨軍地更新,這樣用戶在交互式漫游時,可以隨意點擊觸發,同時對于場景中出現的建筑物通過數據庫查找更加詳細的信息。

4.5 虛擬漫游系統的生成

為了實現能在虛擬場景中漫游,而且與周圍場景發生交互,產生身臨其境的感覺。需要在場景中添加背景音樂增強場景的沉浸感,首先選擇一個適合場景的音樂作為背景音樂,這時需要應用腳本編輯器,在數據庫函數類型中創建函數的初始化,然后添加背景音樂腳本,并插入語句設置其相關屬性[8]。

經過以上過程的創建包括創建三維場景的構造、自然現象的模擬、數據庫的設計、交互場景的構造及碰撞檢測的實現等工作的完成,校園虛擬漫游系統的開發基本完成,其實現的效果圖如圖8所示。

圖8 校園虛擬系統效果圖Fig.8 Virtual system on campus

5 結語

高職院校作為以職業技能為主,我們需要的不是高科技,而是更為先進的理念和創新。互聯網高速發展正在改變著人們的生活,虛擬現實技術正把越來越多的網上場景改造成真正的 3D場景,所以虛擬現實的明天在網絡,網絡的明天在虛擬現實。本系統可以推廣到其它的虛擬系統應用和實現中,如“虛擬城市、虛擬小區”的研究和實現中。

猜你喜歡
數據庫校園用戶
校園的早晨
琴童(2017年3期)2017-04-05 14:49:04
春滿校園
數據庫
財經(2017年2期)2017-03-10 14:35:35
關注用戶
商用汽車(2016年11期)2016-12-19 01:20:16
關注用戶
商用汽車(2016年6期)2016-06-29 09:18:54
數據庫
財經(2016年15期)2016-06-03 07:38:02
關注用戶
商用汽車(2016年4期)2016-05-09 01:23:12
數據庫
財經(2016年3期)2016-03-07 07:44:46
數據庫
財經(2016年6期)2016-02-24 07:41:51
開心校園
主站蜘蛛池模板: 亚洲精品777| 国产在线视频导航| 亚洲一区网站| 成人在线不卡| 国产亚洲欧美另类一区二区| 亚洲国产精品无码AV| 人人妻人人澡人人爽欧美一区| 永久免费AⅤ无码网站在线观看| 1024你懂的国产精品| 国产熟女一级毛片| 成人国产一区二区三区| 亚洲动漫h| 无码丝袜人妻| 亚洲高清资源| 日本免费福利视频| 久久亚洲天堂| 国产成人无码久久久久毛片| 波多野结衣无码中文字幕在线观看一区二区| 在线va视频| 亚洲欧美另类中文字幕| 任我操在线视频| 欧美日韩久久综合| 亚洲精品天堂在线观看| 国产欧美一区二区三区视频在线观看| 精品欧美一区二区三区久久久| 国产精品欧美亚洲韩国日本不卡| 欧美成人区| 91毛片网| 久久久久久久久久国产精品| 国产一二视频| 国产成人精品2021欧美日韩| 久久性妇女精品免费| 亚洲无码高清免费视频亚洲| 国产极品美女在线| 美女免费精品高清毛片在线视| 伊人久久久大香线蕉综合直播| 欧美无专区| 亚洲欧美在线精品一区二区| 在线看AV天堂| 韩国v欧美v亚洲v日本v| 欧美一级99在线观看国产| 亚洲最猛黑人xxxx黑人猛交| 国产成人av大片在线播放| 啪啪永久免费av| 伊人福利视频| 国产一级无码不卡视频| 日韩午夜福利在线观看| 日韩午夜伦| 成人毛片免费观看| 成年网址网站在线观看| 亚洲免费黄色网| 欧美日韩国产在线播放| 精品無碼一區在線觀看 | 久久九九热视频| 免费无码在线观看| 天堂av综合网| 97视频在线精品国自产拍| 在线免费看黄的网站| 99福利视频导航| 福利姬国产精品一区在线| 国产特级毛片| 中文无码伦av中文字幕| 亚洲国产在一区二区三区| 午夜少妇精品视频小电影| 91热爆在线| 极品私人尤物在线精品首页| 国产真实自在自线免费精品| 亚洲大学生视频在线播放| 孕妇高潮太爽了在线观看免费| 人妻丝袜无码视频| 97视频免费在线观看| 国产欧美性爱网| 国产福利一区二区在线观看| 国产高潮视频在线观看| 国产小视频网站| 啪啪永久免费av| 久久综合五月婷婷| av色爱 天堂网| 欧美一区二区三区欧美日韩亚洲| 欧美在线中文字幕| 国产精品自在在线午夜| 91网址在线播放|