一级日韩免费大片,亚洲一区二区三区高清,性欧美乱妇高清come,久久婷婷国产麻豆91天堂,亚洲av无码a片在线观看

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

時(shí)間:2024-08-06 19:12:59 計算機應用畢業(yè)論文 我要投稿
  • 相關(guān)推薦

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

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

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

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

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

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

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

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

基于融合細分的紋理圖像重構模型03-17

基于OpenGL的邦寶模型積木分析系統設計與實(shí)現03-18

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

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

一级日韩免费大片,亚洲一区二区三区高清,性欧美乱妇高清come,久久婷婷国产麻豆91天堂,亚洲av无码a片在线观看