精品人妻无码一区二区三区软件 ,麻豆亚洲AV成人无码久久精品,成人欧美一区二区三区视频,免费av毛片不卡无码

您現(xiàn)在的位置是:首頁(yè)計(jì)算機(jī)應(yīng)用論文

系統(tǒng)工程理論與實(shí)踐期刊論文范文

發(fā)布時(shí)間: 1

  《系統(tǒng)工程理論與實(shí)踐》雜志是由中國(guó)科學(xué)技術(shù)協(xié)會(huì)主管、中國(guó)系統(tǒng)工程學(xué)會(huì)主辦的集系統(tǒng)科學(xué)、管理科學(xué)、信息科學(xué)等為一體的綜合科技期刊,創(chuàng)刊于1981年3月,每月25日出版,國(guó)內(nèi)外公開(kāi)發(fā)行。
  [摘要]OpenGL即開(kāi)放性圖形庫(kù),它是一種高性能的開(kāi)放式且功能強(qiáng)大的3D圖形庫(kù),具有幾百個(gè)指令和函數(shù)。本文討論了兩種將常見(jiàn)三維模型轉(zhuǎn)入OpenGL中實(shí)現(xiàn)交互的方法,首先對(duì)3DS文件進(jìn)行分析,然后給出轉(zhuǎn)化的思路。從而將三維建模軟件產(chǎn)生的三維模型移植到三維場(chǎng)景中,實(shí)現(xiàn)仿真。

  [關(guān)鍵詞]三維重構(gòu)OpenGL3ds文件

  OpenGL的英文全稱是“OpenGraphicsLibrary”即“開(kāi)放的圖形程序接口”,因?yàn)槠淞己玫目梢浦残院涂缙脚_(tái)性,已逐漸成為高性能圖形開(kāi)發(fā)和交互式視景仿真的國(guó)際圖形標(biāo)準(zhǔn)。它是一種高性能的開(kāi)放式且功能強(qiáng)大的3D圖形庫(kù),具有幾百個(gè)指令和函數(shù)。使用這些指令和函數(shù)可以構(gòu)造出高質(zhì)量的靜止物體模型和動(dòng)態(tài)圖像,并且可以實(shí)現(xiàn)對(duì)模型的實(shí)時(shí)交互操作過(guò)程。但是OpenGL中并沒(méi)有提供建模的高級(jí)命令,其實(shí)現(xiàn)過(guò)程也是通過(guò)基本的幾何圖元點(diǎn)、線和多邊形來(lái)建立三維立體模型的,過(guò)程比較繁瑣,編程量較大。

  現(xiàn)在有許多優(yōu)秀的三維建模軟件如3DSMAX,AUTOCAD等,都可以根據(jù)對(duì)象很方便地建立物體模型,且不需要編程便可很直觀的構(gòu)造模型,模型的外觀更為精細(xì)。在OpenGL中使用三維模型一種比較好的方法是先用三維建模軟件建立模型,再把這些模型轉(zhuǎn)入OpenGL程序,對(duì)其進(jìn)行控制。本文主要討論將三維模型轉(zhuǎn)入OpenGL程序常見(jiàn)的兩種方法。

  一、模型的三維數(shù)據(jù)格式

  存儲(chǔ)三維圖形數(shù)據(jù)的文件格式有很多種,其中比較常見(jiàn)的有:obj格式、3DS格式、WRL格式等。在本文中以3DS格式為例進(jìn)行介紹。在將三維模型轉(zhuǎn)入OpenGL之前,首先將三維模型保存為3DS格式。在3DS文件中就保存了所建模型模型的所有三維數(shù)據(jù)信息,包括模型全部頂點(diǎn)、面、材質(zhì)、法線和紋理等的數(shù)據(jù)信息。3DS文件是由許多塊組成,每個(gè)塊首先描述其信息類別,即該塊是如何組成的。塊的信息類別用ID來(lái)標(biāo)識(shí),塊還包含了下一個(gè)塊的相對(duì)位置信息,便于跳轉(zhuǎn)。

  二、將模型轉(zhuǎn)入OpenGL程序的兩種方法

  (一)編寫OpenGL程序,將模型轉(zhuǎn)入

  將模型轉(zhuǎn)入OpenGL的程序中總共用到3種主要的數(shù)據(jù)結(jié)構(gòu):頂點(diǎn)集(Vertices)、多邊形列表(PolyList)、和相關(guān)三角形列表(CommonTriangleList)。頂點(diǎn)集是頂點(diǎn)及其法向量的列表,多邊形中的頂點(diǎn)將用在下標(biāo)表示,OpenGL將這個(gè)數(shù)組視為一個(gè)頂點(diǎn)數(shù)組。這里存儲(chǔ)的法向量是每一個(gè)頂點(diǎn)的法向量,而不是多邊形的法向量。多邊形列表包括一些列的材質(zhì),一個(gè)材質(zhì)由這樣一組屬性組成:漫反射顏色、光照度、和紋理映射等。與每一種材質(zhì)相對(duì)應(yīng)的是一組三角形,每一個(gè)三角形由一組三元整數(shù)組表示,它們分別是三角形每個(gè)頂點(diǎn)在頂點(diǎn)集中的下標(biāo)。相關(guān)三角形列表與頂點(diǎn)集具有相同的大小,它是一個(gè)指向多邊形列表每一個(gè)包括該頂點(diǎn)的三角形的鏈表。

  相關(guān)三角形列表被用來(lái)建立每個(gè)頂點(diǎn)的法向量。有了模型各種屬性的信息,我們就可以在創(chuàng)立顯示列表中根據(jù)這些指針變量中存入的相應(yīng)數(shù)據(jù)來(lái)再現(xiàn)模型。在創(chuàng)建新的顯示列表(g1NewList)中,使用glBegin(GL_TRIANGLES)和glEnd()函數(shù)來(lái)繪制模型,所有具體屬性的繪制均在這兩個(gè)函數(shù)之間實(shí)現(xiàn)。對(duì)于每一個(gè)面的繪制,都是先賦好材質(zhì),再定義法線和渲染紋理,這些工作都完成后,就可以通過(guò)繪制頂點(diǎn)來(lái)繪制面了。程序中判斷是否具有紋理部分省略,其實(shí)現(xiàn)過(guò)程與其它屬性類似。然后在需要繪制模型的時(shí)候使用函數(shù)調(diào)用即可。

  在OpenGL程序入3DS模型采用了根據(jù)3DS文件的數(shù)據(jù)格式來(lái)編寫OpenGL程序來(lái)讀取數(shù)據(jù)信息,在程序中生成模型的辦法,這種方法在操作上實(shí)際是比較繁瑣的,編程量很大。

 。ǘ┻\(yùn)用軟件將模型轉(zhuǎn)化為cpp文件,然后轉(zhuǎn)入OpenGL程序

  有一些現(xiàn)成的軟件可以專門用來(lái)轉(zhuǎn)換三維模型。3DExploration便是其中的一種。3DExploration也是一種專業(yè)的圖像技術(shù)軟件,它可以讀入許多建模軟件所建的模型文件,并也具有渲染環(huán)境和制作動(dòng)畫的功能。

  我們使用3DExploration軟件讀入模型的3DS文件,通過(guò)另存為將其轉(zhuǎn)化成能為OpenGL所用的cpp文件。這樣我們就較輕松的擁有了表示模型各種參數(shù)的代碼,而不需要自己編寫,從而大大減輕了編程的工作量。最終轉(zhuǎn)化后的文件是由大量的浮點(diǎn)數(shù)組成,這些浮點(diǎn)數(shù)包含了模型面、材質(zhì)、頂點(diǎn)、法線和紋理等的全部信息,并按照這些屬性分類。然后我們?cè)贠penGL程序中專門定義一個(gè)讀取模型參數(shù)的類,在此類中實(shí)現(xiàn)讀取相應(yīng)的浮點(diǎn)數(shù)的函數(shù)的所有功能,再在主程序中調(diào)用。這段代碼運(yùn)行后,這些變量中就會(huì)存入對(duì)應(yīng)表示相應(yīng)屬性的數(shù)據(jù)。最后再編程遍歷所有的頂點(diǎn),法線,紋理,從而生成模型。

  通過(guò)這種方法實(shí)現(xiàn)3DS格式模型的導(dǎo)入,編程簡(jiǎn)單,但是缺點(diǎn)也很明顯,生成的.cpp文件體積較大,無(wú)論是存儲(chǔ)或傳輸都很不方便。

  將三維模型轉(zhuǎn)入OpenGL程序以實(shí)現(xiàn)人機(jī)交互控制在工程、游戲等領(lǐng)域有著廣泛的應(yīng)用,特別是隨著虛擬現(xiàn)實(shí)技術(shù)的發(fā)展,更顯現(xiàn)出它的重要意義和實(shí)用價(jià)值。本文結(jié)合目前的主流技術(shù)對(duì)三維模型轉(zhuǎn)入OpenGL程序的方式進(jìn)行了一定的研究和探索。

  參考文獻(xiàn)

  [1]和平鴿工作室編著,OpenGL三維圖形系統(tǒng)開(kāi)發(fā)與實(shí)用技術(shù)(實(shí)用技術(shù)篇),重慶大學(xué)出版社,2003

  [2]OpenGL體系結(jié)構(gòu)審核委員會(huì)/DaveShreiner/MasonWoo等編著,OpenGL編程指南(第四版),人民郵電出版社,2005


轉(zhuǎn)載請(qǐng)注明來(lái)自:http://www.jinnzone.com/jisuanjiyingyonglw/23556.html