国产午夜精品久久久久免费视-国产午夜三级-国产性大片黄在线观看在线放-国产性老妇女做爰在线-一区一精品-一区在线观看

基于Android平臺(tái)的紋理映射分析與實(shí)現(xiàn)論文

時(shí)間:2021-04-27 09:10:39 論文 我要投稿

基于Android平臺(tái)的紋理映射分析與實(shí)現(xiàn)論文

  引言

基于Android平臺(tái)的紋理映射分析與實(shí)現(xiàn)論文

  紋理映射的本質(zhì)是對(duì)三維物體進(jìn)行二維參數(shù)化,即先求得三維物體表而上任一點(diǎn)的二維(u,v)參數(shù)值,進(jìn)而得到該點(diǎn)的紋理值,最終生成三維圖形表而上的紋理圖案。在光滑曲而上添加紋理圖案的核心問(wèn)題是映射,因此紋理問(wèn)題可以簡(jiǎn)化為從一個(gè)坐標(biāo)系到另一個(gè)坐標(biāo)系的變換。總的來(lái)說(shuō),紋理映射技術(shù)是一種使建立的3D模型更接近現(xiàn)實(shí)物體的技術(shù)。

  1紋理映射基本原理

  紋理生成過(guò)程實(shí)質(zhì)上是將所定義的紋理映射為反映某種三維景物表面的屬性(與光照明模型及表面幾何有關(guān)的`各種參數(shù),如表面法向、漫/鏡面反射率等),并參與后續(xù)的光照明計(jì)算。

  二維紋理映射就是從二維紋理平面到三維物體表面的映射。一般二維紋理平面是有范圍限制的,在這個(gè)平面區(qū)域內(nèi),每點(diǎn)都可用數(shù)學(xué)函數(shù)表達(dá),從而可以離散的分離出每點(diǎn)的灰度值和顏色值,這個(gè)平面區(qū)域稱(chēng)為紋理空間,一般將紋理空間的平面區(qū)域定義在[0,1]*[0,1]。紋理映射是確定物體表面一點(diǎn)P在紋理空間中的對(duì)應(yīng)點(diǎn)(u,v),從而紋理空間中的點(diǎn)(u,v)處的紋理值就是物體表面點(diǎn)P的紋理屬性。建立紋理空間與景物空間及景物空間與屏幕空間之間的映射關(guān)系:

  圖1紋理映射

  景物表面的紋理屬性主要有以下幾種:

  表面顏色,即表面的漫反射率;鏡面反射分量,即表面的鏡面反射率;透明度;表面法向,即撓動(dòng)表面法向來(lái)產(chǎn)生表面的凹凸紋理;環(huán)境的漫反射和鏡面反射效果;光源強(qiáng)度和色彩分布。

  根據(jù)紋理定義域的不同,可分為而為二維和三維紋理,由于本文是基于Android平臺(tái)的,考慮到效率和資源問(wèn)題,主要給出了二維紋理的模型,對(duì)三維紋理映射技術(shù)就不再討論了。

  2紋理映射的實(shí)現(xiàn)

  本節(jié)將通過(guò)在一個(gè)立方體各個(gè)面貼上圖片來(lái)介紹Android平臺(tái)下基于OpenGLES的紋理映射有關(guān)的內(nèi)容:定義紋理、控制濾波、說(shuō)明映射方式、繪制場(chǎng)景,給出頂點(diǎn)的紋理坐標(biāo)和幾何坐標(biāo)。

  首先,我們通過(guò)Android平臺(tái)的OpenGLES庫(kù)來(lái)創(chuàng)建一個(gè)紋理,并使用圖片來(lái)生成一個(gè)紋理,過(guò)程如下:

  IntBufferintBuffer=IntBuffer.allocate(1);//創(chuàng)建紋理

  gl.glGenTextures(1,intBuffer);//設(shè)置要使用的紋理

  gl.glBindTexture(GL10.GL_TEXTURE_2D,texture);

  函數(shù)glGenTextures(intn,intBuffertextures)用于通知OpenGL我們想生成一個(gè)紋理的名字。函數(shù)glBindTexture(inttarget,inttexture)方法用于通知OpenGL將紋理名字texture綁定到紋理目標(biāo)上。

  在Android中我們使用GLUtils中的一個(gè)靜態(tài)方法texImage2D(inttarget,intlevel,Bitmapbitmap,intborder)來(lái)生成一個(gè)紋理。過(guò)程如下:

  //生成紋理

  GLUtils.texImage2D(GL10.GL_TEXTURE_2D,0,GLImage.mBitmap,0)

  通過(guò)以上過(guò)程,我們便成功地創(chuàng)建了一個(gè)紋理。

  為了能有更好的效果,我們還需要設(shè)置在OpenGL現(xiàn)實(shí)圖像時(shí),它放大得比原始紋理大(GL_TEXTURE_MAG_FILTER)或縮小得比原始紋理小(GL_TEXTURE_MIN_FILTER)時(shí)OpenGL所采用的濾波方式。以下過(guò)程是我們?cè)O(shè)置的線(xiàn)性濾波://設(shè)置線(xiàn)性濾波

  Gl.glTexParameterx(GL10.GL_TEXTURE_2D,GL10.GL_TEXTURE_MIN_FILTER,GL10.GL_LINEAR);

  在android中可以使用glBindTexture(inttarget,inttexture)方法來(lái)綁定紋理。以下過(guò)程綁定了上面創(chuàng)建的紋理:Gl.glBindTexture(GL10.GL_TEXTURE_COORD_ARRAY);//綁定紋理

  紋理需要使用glEnableClientState()方法來(lái)開(kāi)啟紋理:Gl.glEnableClientState(GL10.GL_TEXTURE_COORD_ARRAY);

  與之對(duì)應(yīng)的,關(guān)閉紋理過(guò)程如下:

  Gl.glDisableClientState(GL10.GL_TEXTURE_COORD_ARRAY);

  為了將紋理正確的映射到四邊形上,必須將紋理的右上角映射到四邊形的右上角,紋理的左上角映射到四邊形的左上角,紋理的右下角和左下角亦是如此。因?yàn)椋绻成溴e(cuò)誤的話(huà),圖像顯示時(shí)可能上下顛倒,側(cè)向一邊或者什么都沒(méi)有。下面是我們對(duì)立方體的每一個(gè)面所設(shè)置的紋理映射數(shù)據(jù):

  IntBuffertexCoords=IntBuffer.wrap(newint[]

  {

  One,0.,0,0,0,one,one,one,

  0,0,0,one,one,one,one,0,

  One,one,one,0,0,0,0,one

  0,one,one,one,one,0,0,0,

  0,0,0,one,one,one,one,0,

  One,0,0,0,0,one,one,one

  });

  設(shè)置好這些映射數(shù)據(jù)之后,可以通過(guò)glTexCoordPointer將紋理綁定到要繪制的物體上。過(guò)程如下:

  Gl.glTextCoordPointer(2,GL10.GL_FIXED,0,texCoords);

  最后,將其繪制到屏幕上即可。效果圖2如圖所示:

  圖2紋理映射效果

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

  本文通過(guò)對(duì)紋理映射的基本原理進(jìn)行了分析,并在Android平臺(tái)中利用OpenglES圖形庫(kù)對(duì)紋理映射技術(shù)進(jìn)行了實(shí)現(xiàn)。

  由于本文利用的是Android應(yīng)用層封裝后的OpenglES圖形庫(kù),在效率上欠佳,以后的主要工作是通過(guò)AndroidNDK對(duì)OpenglES進(jìn)行原生態(tài)開(kāi)發(fā),進(jìn)而提高實(shí)現(xiàn)效率。

  參考文獻(xiàn)

  [1]李增忠.紋理映射技術(shù)的研究[D].中國(guó)優(yōu)秀碩士學(xué)位論文全文數(shù)據(jù)庫(kù),2005.

  [2](美)ShaneCo.comnder.Android移動(dòng)應(yīng)用開(kāi)發(fā)從入門(mén)到精通[M].北京:人民郵電出版社,2010.

  [3]楊豐盛.Android應(yīng)用開(kāi)發(fā)揭秘[M].北京:機(jī)械工業(yè)出版社,2010.

主站蜘蛛池模板: 成人中文字幕在线观看 | 欧美午夜在线观看 | 在线观看黄色毛片 | 成年人香蕉视频 | 天天夜日日日日碰日日摸 | 色综合久久综合网 | 亚洲一区二区三区精品影院 | 国产精品一区高清在线观看 | 露脸超嫩97后在线播放 | 五月天狠狠干 | 成年黄网站色视频免费观看 | 91免费精品国偷自产在线在线 | 亚洲欧美日韩在线观看播放 | 国产成人18黄网站免费 | 国产一区二区视频在线 | 中文字幕在线一区二区三区 | 日韩欧美伦理 | 免费观看黄a一级视频日本 免费观看黄a一级视频 | 成人欧美视频在线观看 | 成人免费在线视频观看 | 日韩有码在线视频 | 99视频在线看观免费 | 国产成人精品午夜视频' | 久久综合精品视频 | 亚洲精品网站在线观看不卡无广告 | 免费一级毛片女人图片 | 黄色短视频免费观看 | 欧美日韩一区二区亚洲 | 亚洲欧美乱综合图片区小说区 | 在线观看成年人网站 | 亚洲天堂视频在线播放 | 窝窝视频成人影院午夜在线 | 在线天堂资源www中文在线 | 免费xxxxx在线观看网站 | 亚洲国产成人va在线观看 | 亚洲人成网站色7799在线播放 | 亚洲图片视频在线观看 | 免费中文字幕 | 午夜色图| 激情文学亚洲 | 亚洲免费成人网 |