亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于OpenGL的虛擬校園漫游系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)

        2007-12-31 00:00:00岳俊梅
        計(jì)算機(jī)時(shí)代 2007年11期

        摘要:介紹了虛擬校園漫游系統(tǒng)的設(shè)計(jì)與開發(fā)技術(shù),包括:OpenGL繪圖窗口的創(chuàng)建;實(shí)體建模;紋理設(shè)置和貼圖;界面和樹的實(shí)現(xiàn);虛擬仿真——利用VC++6.0開發(fā)平臺(tái),編制程序?qū)崿F(xiàn)虛擬校園的漫游。該系統(tǒng)可以用于校園三維漫游、校園管理、校園規(guī)劃等領(lǐng)域。

        關(guān)鍵詞:虛擬現(xiàn)實(shí);OpenGL;實(shí)體建模;虛擬校園

        0 引言

        虛擬校園作為虛擬技術(shù)的一個(gè)應(yīng)用,需運(yùn)用計(jì)算機(jī)圖形學(xué)以及圖像處理技術(shù)結(jié)合三維可視化語(yǔ)言在屏幕上顯示校園環(huán)境,并實(shí)現(xiàn)漫游、人機(jī)交互等功能。本文以太原理工大學(xué)陽(yáng)泉學(xué)院校區(qū)為虛擬空間,主要實(shí)現(xiàn)對(duì)地形和建筑的建模,以及全方位的觀測(cè),并實(shí)現(xiàn)在虛擬空間中的漫游功能,使觀察者無(wú)需到達(dá)實(shí)地就有身臨其境的感覺。

        1 虛擬校園漫游系統(tǒng)的設(shè)計(jì)

        虛擬校園漫游系統(tǒng)功能實(shí)用,主要包括:圖形操作基本功能和手動(dòng)漫游功能。

        (1)圖形操作基本功能

        主要實(shí)現(xiàn)地圖和景點(diǎn)圖片的瀏覽功能,提供全景、放大、縮小等基本的地圖操作功能。

        (2)手動(dòng)漫游功能

        該系統(tǒng)是為方便學(xué)校管理規(guī)劃而設(shè)計(jì)開發(fā)的,它提供了多種交互手段,用戶和系統(tǒng)的交互主要通過(guò)鼠標(biāo)和鍵盤進(jìn)行。通過(guò)w、a、s、d鍵上下左右移動(dòng),利用鼠標(biāo)控制前進(jìn)的方向,用戶可以有效地定位檢索出校園最新信息。

        2 虛擬校園實(shí)體建模實(shí)現(xiàn)

        虛擬校園實(shí)體建模是系統(tǒng)最主要的部分,內(nèi)容包括:資料的收集、底圖的生成、立體模型的制作、三維貼圖到校園立體圖的繪制等。我們通過(guò)數(shù)碼相機(jī)采集貼圖,在photoshop cs2中對(duì)貼圖進(jìn)行處理,得到素材,在VC中建立函數(shù),套用OpenGL函數(shù)庫(kù)構(gòu)建模型。

        2.1虛擬校園實(shí)體模型的構(gòu)成

        本文對(duì)學(xué)校做了建模,主要分為四個(gè)層次:第一層(y=0.0;y為地形的高度),包括二食堂、一號(hào)教學(xué)樓、實(shí)驗(yàn)樓、二號(hào)教學(xué)樓;第二層(y=0.6),在這一層中只有一號(hào)宿舍樓;第三層(y=1.2),二號(hào)宿舍樓和大食堂;第四層(y=1.8),在這一層中包括三號(hào)宿舍樓、四號(hào)宿舍樓和操場(chǎng)。

        2.2建模方法

        利用OpenGL能夠繪制點(diǎn)、線和多邊形,應(yīng)用這些基本的形體,可以構(gòu)造出幾乎所有的三維模型。考慮到渲染速度,本文主要采用了三角形進(jìn)行建模。在OpenGL中,可以編寫代碼創(chuàng)建三角形,但是創(chuàng)建時(shí)要指定三角形的三個(gè)頂點(diǎn),這樣的話要寫很多代碼且使整個(gè)建模過(guò)程產(chǎn)生大量的冗余代碼。為了解決這一問(wèn)題,本文采用了讀取文本文檔的方法來(lái)減少代碼的冗余。在建模過(guò)程中又定義了繪制臺(tái)階函數(shù)DrawStair()、側(cè)面體函數(shù)DrawWall()、橫面體函數(shù)DrawFloor()來(lái)完成各種模型的建立。

        2.3虛擬校園最終模型構(gòu)建

        虛擬校園最終模型的構(gòu)建都是利用函數(shù)DrawGLScene()完成的。該函數(shù)在主函數(shù)WinMain()中被循環(huán)調(diào)用,直到程序退出為止。繪制效果如圖1所示。

        3 虛擬校園漫游系統(tǒng)的開發(fā)過(guò)程

        3.1設(shè)置像素格式

        OpenGL的像素格式告訴系統(tǒng)在利用OpenGL繪制圖形時(shí)所采用的顏色模式、顏色的位數(shù)。

        3.2創(chuàng)建圖形操作描述表

        創(chuàng)建圖形操作描述表并啟用它后,才能調(diào)用OpenGL函數(shù)在窗口內(nèi)進(jìn)行各種圖形操作。創(chuàng)建圖形操作描述表利用MFC中視類(CView)的消息OnCreat()實(shí)現(xiàn)。

        3.3 OpenGL窗口創(chuàng)建

        首先是打開VC++6.0,然后創(chuàng)建一個(gè)新工程。創(chuàng)建一個(gè)新的Win32程序后,鏈接OpenGL庫(kù)文件即可。

        3.4紋理與貼圖

        紋理貼圖就是利用數(shù)碼相機(jī)將拍攝的實(shí)物照片作為所建立三維模型的紋理“貼”至相應(yīng)的二維物體模型,使模擬的地物更具有真實(shí)感。

        3.4.1紋理設(shè)置

        比如繪制一面磚墻,就可以用一幅真實(shí)的磚墻圖像或照片作為紋理貼到一個(gè)矩形上,這樣,一面逼真的磚墻就畫好了。下面介紹紋理創(chuàng)建的方法。

        首先,創(chuàng)建一個(gè)文件句柄。句柄用來(lái)鑒別資源,它使程序能夠訪問(wèn)此資源。開始先將句柄設(shè)為NULL,然后通過(guò)以下三個(gè)函數(shù)實(shí)現(xiàn)紋理設(shè)置。

        AUX_RGBImageRec*LoadBMP(char *Filename)//載入位圖圖像 auxDIBImageLoad(Filename)//讀取圖像數(shù)據(jù)并將其返回 int LoadGLTextures()//栽入位圖(調(diào)用上面的代碼)并轉(zhuǎn)換成紋理

        3.4.2貼圖制作

        在創(chuàng)建虛擬校園的過(guò)程中,對(duì)建筑物的數(shù)據(jù)采集非常關(guān)鍵。由于在虛擬校園系統(tǒng)中各個(gè)建筑物的外觀不一樣,貼圖也不—樣,這對(duì)設(shè)計(jì)是—個(gè)難點(diǎn)。用數(shù)碼相機(jī)取圖片時(shí),因?yàn)椴杉氖钦鎴D,所以要保持和圖在一個(gè)水平線上。

        對(duì)采集來(lái)的數(shù)碼相片我們用photoshop加以處理,比如對(duì)臺(tái)階貼圖進(jìn)行處理后,臺(tái)階的顏色下淺上深,產(chǎn)生了層次感,如圖2所示。對(duì)各個(gè)樓的柱子貼圖都要進(jìn)行處理,使之看起來(lái)有立體感,如圖3所示。另外本文采用的貼圖都是正方形的,有的貼圖還需要重復(fù)粘貼。比如學(xué)院的草地邊的條磚路,它的貼圖做到了左右上下都對(duì)稱,重合在一起顯得比較協(xié)調(diào)。貼圖處理后效果如圖4所示。

        3.5樹的實(shí)現(xiàn)

        樹是通過(guò)定義一個(gè)類Tree來(lái)實(shí)現(xiàn)的。由于樹的形狀不像建筑那樣規(guī)則,因此它的構(gòu)造也是相當(dāng)復(fù)雜的。本文中樹的建模過(guò)程如下。

        3.5.1樹葉紋理的制作

        樹葉紋理的制作是實(shí)現(xiàn)樹的難點(diǎn)。樹葉的紋理是由兩張貼圖生成的,一張是紋理的透明貼圖branchAlphal.bmp,另一張是紋理的背景貼圖branchl.bmp。通過(guò)兩張貼圖的合成生成樹葉的紋理,可用bool Tree::MakeAlphaTextureBind(char*TextureFileName,char*AlphaFileName,unsigned int*TexturelD)函數(shù)實(shí)現(xiàn)。

        3.5.2樹的模型構(gòu)建

        樹的模型構(gòu)建分兩個(gè)部分,樹桿的構(gòu)建和樹枝的構(gòu)建??捎靡韵潞瘮?shù)實(shí)現(xiàn)。

        void Tree::Draw3DTree(float SzTree)//繪制樹桿

        void Tree::DrawGreenTree()//繪制樹枝

        void Tree::DrawTop(float width,float height)//繪制樹頂

        3.6虛擬校園漫游系統(tǒng)界面的實(shí)現(xiàn)

        本系統(tǒng)界面是作為一個(gè)類來(lái)實(shí)現(xiàn)的,主要是通過(guò)使用OpenGL繪圖函數(shù)來(lái)構(gòu)建。界面的搭建可分為三層。第一層:界面主背景,主要由一個(gè)四邊形加上背景紋理貼圖構(gòu)成。第二層:選項(xiàng)菜單和說(shuō)明層,在本層中主要是根據(jù)鼠標(biāo)的位置和單擊事件來(lái)選擇不同的紋理貼圖給人以變換的感覺,該層也是界面中最主要的一層。第三層:鼠標(biāo)層,鼠標(biāo)同樣是由四邊形加上背景紋理貼圖構(gòu)成,但紋理貼圖方式是由透明加背景色實(shí)現(xiàn)。界面繪制效果如圖5所示。

        4 虛擬仿真

        4.1虛擬校園漫游系統(tǒng)的實(shí)現(xiàn)

        虛擬校園漫游是交互性技術(shù)的重要體現(xiàn)。解決方法如下:①根據(jù)用戶的指令旋轉(zhuǎn)并變換鏡頭位置。②圍繞原點(diǎn),以與鏡頭相反的旋轉(zhuǎn)方向來(lái)旋轉(zhuǎn)世界(讓人產(chǎn)生鏡頭旋轉(zhuǎn)的錯(cuò)覺)。③以與鏡頭平移方式相反的方式來(lái)平移世界(讓人產(chǎn)生鏡頭移動(dòng)的錯(cuò)覺)。

        4.1.1鏡頭的旋轉(zhuǎn)

        鏡頭的旋轉(zhuǎn)是靠獲取鼠標(biāo)事件事實(shí)現(xiàn)的。在這里用到了三個(gè)全局變量和一個(gè)常量,heading是用來(lái)記錄左右旋轉(zhuǎn)的角度,yrot用來(lái)傳遞給渲染函數(shù)這個(gè)值。lookupdown用來(lái)記錄上下旋轉(zhuǎn)的角度。

        4.1.2鏡頭的平移

        鏡頭的平移是靠獲取鍵盤事件來(lái)實(shí)現(xiàn)的。鏡頭的平移分為左移、右移、前進(jìn)、后退,分別對(duì)應(yīng)鍵盤的A、D、W、S鍵。

        4.2碰撞檢測(cè)

        碰撞檢測(cè)就檢測(cè)觀察者在行進(jìn)中是否遇到了阻礙。主要實(shí)現(xiàn)辦法是根據(jù)不同的地形或建筑設(shè)定不同的高度值(也就是Y值),然后在行進(jìn)中檢測(cè)Y值的變化,如果在行進(jìn)的某一瞬間Y值的變化超過(guò)某一范圍則限制x或z值的變化。

        5 結(jié)束語(yǔ)

        本文以虛擬校園的實(shí)現(xiàn)為研究對(duì)象,利用虛擬現(xiàn)實(shí)技術(shù)繪制了虛擬校園的三維模型,編程實(shí)現(xiàn)了虛擬校園的漫游。但有些方面還存在不足,譬如只完成了室外建模,并沒有對(duì)室內(nèi)進(jìn)行建模;碰撞檢測(cè)算法不太精確造成了資源的浪費(fèi)等。

        av成人资源在线观看| 国产精品区一区第一页| 亚洲AV无码精品色欲av| 精品无码专区久久久水蜜桃| 亚洲av无码一区二区乱子仑| 无码丰满熟妇浪潮一区二区av| 国产诱惑人的视频在线观看| 久久天堂av综合合色| 亚洲成av人片在线观看无码| 91精品啪在线观看国产色| 久久婷婷国产色一区二区三区| 精品国产粉嫩内射白浆内射双马尾| 欧洲熟妇色xxxx欧美老妇多毛图片| 蜜臀av一区二区| 欧美日韩国产乱了伦| 国产丝袜美腿中文字幕| 国产成人自拍高清在线| 精品国产乱码久久久久久影片| 最新无码国产在线播放| 中文字幕一区二区三区精品在线| 情爱偷拍视频一区二区| 亚洲av无码专区电影在线观看| 国产精品 精品国内自产拍| 中文字幕中文字幕三区| 国产精品videossex久久发布| 亚洲欧洲中文日韩久久av乱码| 国产精品不卡无码AV在线播放| 人妻少妇艳情视频中文字幕| 国产精品久久国产精品99| 美女啪啪国产| 亚洲国产av精品一区二| 欲求不満の人妻松下纱荣子 | 色婷婷五月综合亚洲小说| 久久AⅤ天堂Av无码AV| 亚洲国产精品婷婷久久| 97精品一区二区视频在线观看| 国产精品99久久久精品免费观看| 我想看久久久一级黄片| 艳妇臀荡乳欲伦69调教视频| 亚洲欧美国产日韩天堂在线视| 国内精品熟女一区二区|