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

基于OpenGL的虛擬校園漫游系統的設計與實現

2007-12-31 00:00:00岳俊梅
計算機時代 2007年11期

摘要:介紹了虛擬校園漫游系統的設計與開發技術,包括:OpenGL繪圖窗口的創建;實體建模;紋理設置和貼圖;界面和樹的實現;虛擬仿真——利用VC++6.0開發平臺,編制程序實現虛擬校園的漫游。該系統可以用于校園三維漫游、校園管理、校園規劃等領域。

關鍵詞:虛擬現實;OpenGL;實體建模;虛擬校園

0 引言

虛擬校園作為虛擬技術的一個應用,需運用計算機圖形學以及圖像處理技術結合三維可視化語言在屏幕上顯示校園環境,并實現漫游、人機交互等功能。本文以太原理工大學陽泉學院校區為虛擬空間,主要實現對地形和建筑的建模,以及全方位的觀測,并實現在虛擬空間中的漫游功能,使觀察者無需到達實地就有身臨其境的感覺。

1 虛擬校園漫游系統的設計

虛擬校園漫游系統功能實用,主要包括:圖形操作基本功能和手動漫游功能。

(1)圖形操作基本功能

主要實現地圖和景點圖片的瀏覽功能,提供全景、放大、縮小等基本的地圖操作功能。

(2)手動漫游功能

該系統是為方便學校管理規劃而設計開發的,它提供了多種交互手段,用戶和系統的交互主要通過鼠標和鍵盤進行。通過w、a、s、d鍵上下左右移動,利用鼠標控制前進的方向,用戶可以有效地定位檢索出校園最新信息。

2 虛擬校園實體建模實現

虛擬校園實體建模是系統最主要的部分,內容包括:資料的收集、底圖的生成、立體模型的制作、三維貼圖到校園立體圖的繪制等。我們通過數碼相機采集貼圖,在photoshop cs2中對貼圖進行處理,得到素材,在VC中建立函數,套用OpenGL函數庫構建模型。

2.1虛擬校園實體模型的構成

本文對學校做了建模,主要分為四個層次:第一層(y=0.0;y為地形的高度),包括二食堂、一號教學樓、實驗樓、二號教學樓;第二層(y=0.6),在這一層中只有一號宿舍樓;第三層(y=1.2),二號宿舍樓和大食堂;第四層(y=1.8),在這一層中包括三號宿舍樓、四號宿舍樓和操場。

2.2建模方法

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

2.3虛擬校園最終模型構建

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

3 虛擬校園漫游系統的開發過程

3.1設置像素格式

OpenGL的像素格式告訴系統在利用OpenGL繪制圖形時所采用的顏色模式、顏色的位數。

3.2創建圖形操作描述表

創建圖形操作描述表并啟用它后,才能調用OpenGL函數在窗口內進行各種圖形操作。創建圖形操作描述表利用MFC中視類(CView)的消息OnCreat()實現。

3.3 OpenGL窗口創建

首先是打開VC++6.0,然后創建一個新工程。創建一個新的Win32程序后,鏈接OpenGL庫文件即可。

3.4紋理與貼圖

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

3.4.1紋理設置

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

首先,創建一個文件句柄。句柄用來鑒別資源,它使程序能夠訪問此資源。開始先將句柄設為NULL,然后通過以下三個函數實現紋理設置。

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

3.4.2貼圖制作

在創建虛擬校園的過程中,對建筑物的數據采集非常關鍵。由于在虛擬校園系統中各個建筑物的外觀不一樣,貼圖也不—樣,這對設計是—個難點。用數碼相機取圖片時,因為采集的是正面圖,所以要保持和圖在一個水平線上。

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

3.5樹的實現

樹是通過定義一個類Tree來實現的。由于樹的形狀不像建筑那樣規則,因此它的構造也是相當復雜的。本文中樹的建模過程如下。

3.5.1樹葉紋理的制作

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

3.5.2樹的模型構建

樹的模型構建分兩個部分,樹桿的構建和樹枝的構建。可用以下函數實現。

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

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

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

3.6虛擬校園漫游系統界面的實現

本系統界面是作為一個類來實現的,主要是通過使用OpenGL繪圖函數來構建。界面的搭建可分為三層。第一層:界面主背景,主要由一個四邊形加上背景紋理貼圖構成。第二層:選項菜單和說明層,在本層中主要是根據鼠標的位置和單擊事件來選擇不同的紋理貼圖給人以變換的感覺,該層也是界面中最主要的一層。第三層:鼠標層,鼠標同樣是由四邊形加上背景紋理貼圖構成,但紋理貼圖方式是由透明加背景色實現。界面繪制效果如圖5所示。

4 虛擬仿真

4.1虛擬校園漫游系統的實現

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

4.1.1鏡頭的旋轉

鏡頭的旋轉是靠獲取鼠標事件事實現的。在這里用到了三個全局變量和一個常量,heading是用來記錄左右旋轉的角度,yrot用來傳遞給渲染函數這個值。lookupdown用來記錄上下旋轉的角度。

4.1.2鏡頭的平移

鏡頭的平移是靠獲取鍵盤事件來實現的。鏡頭的平移分為左移、右移、前進、后退,分別對應鍵盤的A、D、W、S鍵。

4.2碰撞檢測

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

5 結束語

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

主站蜘蛛池模板: 久操线在视频在线观看| 亚洲最大看欧美片网站地址| 日韩二区三区无| 国产手机在线ΑⅤ片无码观看| 制服无码网站| 国产麻豆aⅴ精品无码| 国产va欧美va在线观看| 激情综合图区| av在线人妻熟妇| 国产一级毛片yw| 国产极品粉嫩小泬免费看| 夜夜操国产| 日本高清视频在线www色| 精品丝袜美腿国产一区| 91精品视频在线播放| 国产爽妇精品| 麻豆国产在线观看一区二区| 国产成人亚洲精品蜜芽影院| 欧美亚洲日韩不卡在线在线观看| 亚洲中文字幕97久久精品少妇| 91毛片网| 国产精品久久久久久久久kt| 国产网友愉拍精品| 日韩少妇激情一区二区| 亚洲系列无码专区偷窥无码| 欧美高清日韩| 日本福利视频网站| 亚洲色成人www在线观看| av在线手机播放| 国产h视频免费观看| 99er精品视频| 91九色最新地址| 久久综合丝袜长腿丝袜| 亚洲自偷自拍另类小说| 亚洲国产成熟视频在线多多| 国产精品13页| 99久久这里只精品麻豆| vvvv98国产成人综合青青| 亚洲日本中文综合在线| 美女无遮挡免费网站| 一级毛片高清| 一级香蕉视频在线观看| www.91在线播放| 亚洲成网777777国产精品| 国产精品美女网站| 久久一色本道亚洲| 日韩av电影一区二区三区四区| 91无码网站| 91青草视频| 免费一级毛片在线播放傲雪网| 香蕉99国内自产自拍视频| 99这里只有精品在线| 国产精品99久久久| 香蕉视频在线精品| 日韩专区第一页| 亚洲色图欧美在线| 国产91在线|日本| 免费看a级毛片| 亚洲一区二区日韩欧美gif| 伊人成人在线| 2020精品极品国产色在线观看| 国产亚洲精品在天天在线麻豆| 99热这里只有精品免费| 国产精品久久久久久久久久久久| 天堂岛国av无码免费无禁网站| 亚洲精品第一页不卡| 亚洲日产2021三区在线| 国产全黄a一级毛片| 中文无码精品A∨在线观看不卡| 日本久久久久久免费网络| 乱人伦视频中文字幕在线| 国产精品密蕾丝视频| 亚洲最大综合网| 国产精品亚洲片在线va| 青草娱乐极品免费视频| 久久综合伊人77777| 免费不卡视频| 在线精品亚洲国产| 久久精品无码专区免费| 五月天久久婷婷| 国产成人a毛片在线| 视频国产精品丝袜第一页|