久久久久无码精品,四川省少妇一级毛片,老老熟妇xxxxhd,人妻无码少妇一区二区

MFC的OpenGL紋理貼圖技術(shù)研

  • 相關(guān)推薦

MFC的OpenGL紋理貼圖技術(shù)研

摘要:OpenGL是一個開放的三維圖形軟件包,而Visual C 是目前主要的OpenGL開發(fā)工具。本文簡要介紹了
OpenGL的紋理貼圖技術(shù)及其在MFC中的基本操作步驟。并通過最后的實例驗證了紋理貼圖技術(shù)在繪制真實感圖形中的必要性。關(guān)鍵詞:OpenGL;MFC;紋理貼圖;計算機圖形學(xué)現(xiàn)實世界中的物體表面往往有各種紋理,因此要繪制逼真的三維物體,除了對物體進行光照處理外,還需要加上紋理貼圖,使物體看起來更真實。OpenGL是SGI公司的一個開放的三維計算機圖形軟件接口,為用戶提供豐富的圖形庫,能快速渲染出高質(zhì)量的三維彩色圖像。OpenGL編程的重點是圖形的生成和如何產(chǎn)生各種真實效果,但是編寫一個優(yōu)秀的Windows程序,還必須用到用戶界面接口。VC 的MFC模式可以較為完美地實現(xiàn)對OpenGL生成的效果圖的動態(tài)交互操作。紋理貼圖技術(shù)簡介
紋理貼圖技術(shù)也叫紋理映射技術(shù),它是計算機圖形學(xué)中廣泛應(yīng)用的一項重要技術(shù)。傳統(tǒng)的幾何造型只能表示景物的形狀,無法描述景物表面的微觀細節(jié),而利用紋理圖像來描述景物表面各點處的反射屬性,可以達到模擬景物表面豐富的紋理細節(jié)的目的,提高計算機生成圖形的真實性。另一方面,采用紋理映射的方法可以大大地簡化建模的過程。比如,同是一棟大樓表面,若完全用建模的方法來構(gòu)造,則需要畫出大樓的每一扇門、每一扇窗
戶;若采用紋理映射,只需建立簡單的長方體模型,用拍下的大樓外觀圖片貼至模型表面即可。相比之下,工作量要小得多。OpenGL紋理貼圖
紋理映射是將指定圖像的一部分映射到允許進行紋理映射的每個圖段上。這種映射伴隨著使用一幅圖像的顏色到某一圖段的(s,t,r)坐標所指示的位置上并修改該圖段的RGBA顏色。但要特別注意的是,在OpenGL中,紋理映射僅在RGBA模式下說明,在顏色索引模式下,它的使用未作定義。概括地說,使用紋理繪制的一般步驟為:定義紋理貼圖、控制紋理、說明紋理貼圖方式,定義紋理坐標等。
2.1 定義紋理
紋理的定義有兩種:連續(xù)法和離散法。連續(xù)法把紋理定義為一個二元函數(shù),函數(shù)的定義域就是紋理空間。而離散法則是把紋理定義在一個二維數(shù)組中,該數(shù)組表示紋理空間中行間隔和列間隔固定的一組網(wǎng)格點上的紋理值。網(wǎng)格點之間的其它點的紋理值可以通過對相鄰網(wǎng)格點上紋理值進行插值來獲得。通過紋理空間與物體空間之間的坐標變換,可以把紋理映射到物體表面。一般來說,離散法是較為常用的紋理定義方法。其實現(xiàn)函數(shù)為
glTexlmage2D()。該函數(shù)的原型如下:void glTexImage2D(Gl_enum target,GLint level,Gl_enum compo—nents, GLsizei width, GLsizei height, Glint border,Gl_enumformat。Gl_enumtype,const GLvoid pixels);其中:target指定紋理映射,此處必須是GL—TEXT—URE 2D;level指定紋理圖像分辨率的級數(shù),當只
有一種分辨率時,level=0;Components是選擇用于調(diào)整和混合的成分;width和height分別指定紋理圖像的寬和高,必須是2 ,凡為正數(shù);Border為邊界的寬度,必須是0和1;format和type分別指定紋理映射的格式和數(shù)據(jù)類型;Pixels指定一個指針,指向紋理數(shù)據(jù)在內(nèi)存中的位置。
2.2 控制紋理
紋理圖像在映射到物體時會產(chǎn)生許多問題。這些問題主要有紋理圖像的紋理怎樣對應(yīng)到屏幕上的像素、怎樣通過紋理貼圖實現(xiàn)紋理縮放和紋理重復(fù)等。其實現(xiàn)函數(shù)為glTexParmneter(),該函數(shù)的原型(以glTexParmneterf形式為例)為:void glTexPa—rmneterf(GLeRuin target,GLeRuin pname,GLfloat pa—ram),其中target參數(shù)為目標紋理,pname參數(shù)的取值有以下幾個:GL TEXTURE MIN FILTER、GL,ⅡⅨ TURE—MAG一兀I肛R、GL—TEXrrI yRE— WRAP一GL— TEXTU RE —WRAP— T,而parmn參數(shù)的取值要根據(jù)pname而定。
2.3 說明紋理貼圖方式
OpenGL用于紋理貼圖方式的函數(shù)為glTex~v(),該函數(shù)的原型(以glTexEnvf形式為例)為:voidglTexEnv(Gl_enum target,Gl_enum pname,GLfloat pa—ram)其中target參數(shù)必須為GL—TEXTURE —ENV,pname參數(shù)必須為GL—TEXTURE —ENV—MODE,而參數(shù)parmn為GL—MODULATE 、GL—DECAL或GL—BLEND。
2.4 定義紋理坐標
紋理坐標控制紋理圖像中的像素怎樣映射到物體。紋理坐標可以是1、2、3、4維的,通常用齊次坐標來表示,即(5,t,r,q)。OpenGL定義紋理坐標的函數(shù)為 xCoord()。該函數(shù)共有32種不同的形式。例如:glTexCoord4f(O.Of,0.Of,0.Of,0.Of)。
3 基于MFC的OpenGL中的紋理貼圖利用VC 的MFC AppWizard(exe)建立一個新項目OpenglTexture,選擇基于單文檔界面的應(yīng)用,其它選項都使用缺省值。在OpenglTextureView.h頭文件中,添加各成員變量和成員函數(shù)。for(i=0;i

【MFC的OpenGL紋理貼圖技術(shù)研】相關(guān)文章:

MFC中消息映射機制分析03-18

人臉的檢測定位MFC+VC++03-08

圖像紋理特征的分析方法研究03-07

小研垃圾滲濾液處理技術(shù)及工藝03-03

小研楊莊礦采空區(qū)的技術(shù)處理11-18

基于融合細分的紋理圖像重構(gòu)模型03-17

基于OpenGL的邦寶模型積木分析系統(tǒng)設(shè)計與實現(xiàn)03-18

提高口腔醫(yī)學(xué)技術(shù)專業(yè)學(xué)生實習(xí)質(zhì)量探研12-08

做好終結(jié)性評價 體現(xiàn)新課程理念-高中信息技術(shù)命題技巧實踐研03-07