日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

VTK修炼之道59:图形基本操作进阶_纹理映射

發(fā)布時間:2025/3/15 编程问答 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 VTK修炼之道59:图形基本操作进阶_纹理映射 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

1.紋理映射

紋理映射是將紋理空間中的紋理像素映射到屏幕空間中的像素的過程。紋理生成過程實(shí)質(zhì)上是將所定義的紋理映射為某種三維物體表面的屬性,并參與后續(xù)的光照計算。在三維圖形中,紋理映射運(yùn)用的十分廣泛,尤其是描述具有真實(shí)感的物體。

實(shí)現(xiàn)紋理映射主要是建立紋理空間與模型空間、模型空間與屏幕空間之間的映射關(guān)系,如上圖所示。其中紋理空間可以定義為u-v空間,每個坐標(biāo)軸的范圍為(0,1)。對于一個紋理圖像,其左下角的坐標(biāo)為(0,0),右上角坐標(biāo)為(1,1)。 而對于簡單的參數(shù)模型,可以方便地建立模型與紋理空間的映射關(guān)系,例如球面、圓柱面等。 而根據(jù)圖形學(xué)三維空間變換容易實(shí)現(xiàn)模型空間到屏幕空間的變換,因此最終顯示在計算機(jī)屏幕的圖像及時紋理映射后的結(jié)果。 面對無參數(shù)化曲面的紋理映射技術(shù),通常需要蔣雯麗空間到模型空間的映射分解為兩個簡單映射,需要引入一個包圍景物的中介映射媒介,只要步驟如下: 現(xiàn)將二維紋理空間映射為一個簡單的三維物體表面(球面圓柱面等);然后將該中介物體表面的紋理映射到模型表面(例如,以模型表面法線與中建模型的交點(diǎn)作為映射點(diǎn)),這就可以實(shí)現(xiàn)由紋理空間到模型空間映射。

2.VTK中實(shí)現(xiàn)紋理映射

VTK中定義了多個類實(shí)現(xiàn)紋理空間到模型空間的映射
  • vtkTextureMapToPlane:通過一個平面建立紋理空間到模型空間的映射關(guān)系;
  • vtkTextureToSphere:通過球面建立映射關(guān)系;
  • vtkTextureMapToCylinder:通過圓柱面建立映射關(guān)系;
  • vtkTexture:實(shí)現(xiàn)加載紋理;
  • vtkTransformTextureCoords:實(shí)現(xiàn)紋理坐標(biāo)的平移和縮放。
本實(shí)例使用vtkTextureMapToCylinder建立紋理映射,具體實(shí)現(xiàn)如下: #include <vtkAutoInit.h> VTK_MODULE_INIT(vtkRenderingOpenGL); VTK_MODULE_INIT(vtkRenderingFreeType); VTK_MODULE_INIT(vtkInteractionStyle);#include <vtkSmartPointer.h> #include <vtkBMPReader.h> //讀入紋理圖像 #include <vtkTexture.h> //加載紋理圖像 #include <vtkXMLPolyDataReader.h>//加載模型數(shù)據(jù) #include <vtkTextureMapToCylinder.h>//采用圓柱作為中介 #include <vtkPolyDataMapper.h> #include <vtkActor.h> #include <vtkRenderer.h> #include <vtkRenderWindow.h> #include <vtkRenderWindowInteractor.h> #include <vtkOrientationMarkerWidget.h> #include <vtkAxesActor.h> #include <vtkOrientationMarkerWidget.h>int main(int argc, char *argv[]) {vtkSmartPointer<vtkBMPReader> texReader =vtkSmartPointer<vtkBMPReader>::New();texReader->SetFileName("masonry.bmp");vtkSmartPointer<vtkTexture> texture =vtkSmartPointer<vtkTexture>::New();texture->SetInputConnection(texReader->GetOutputPort());vtkSmartPointer<vtkXMLPolyDataReader> modelReader =vtkSmartPointer<vtkXMLPolyDataReader>::New();modelReader->SetFileName("cow.vtp");//紋理映射vtkSmartPointer<vtkTextureMapToCylinder> texturemap =vtkSmartPointer<vtkTextureMapToCylinder>::New();texturemap->SetInputConnection(modelReader->GetOutputPort());/*******************************************************************/vtkSmartPointer<vtkPolyDataMapper> mapper =vtkSmartPointer<vtkPolyDataMapper>::New();mapper->SetInputConnection(texturemap->GetOutputPort());vtkSmartPointer<vtkActor> actor =vtkSmartPointer<vtkActor>::New();actor->SetMapper(mapper);actor->SetTexture(texture); //加載紋理圖//設(shè)定坐標(biāo)系vtkSmartPointer<vtkAxesActor> axes =vtkSmartPointer<vtkAxesActor>::New();vtkSmartPointer<vtkRenderer> renderer =vtkSmartPointer<vtkRenderer>::New();renderer->AddActor(actor);renderer->SetBackground(0, 0, 0);vtkSmartPointer<vtkRenderWindow> rw =vtkSmartPointer<vtkRenderWindow>::New();rw->AddRenderer(renderer);rw->SetSize(640, 480);rw->SetWindowName("TextureMap");vtkSmartPointer<vtkRenderWindowInteractor> rwi =vtkSmartPointer<vtkRenderWindowInteractor>::New();rwi->SetRenderWindow(rw);/**********************************************************/vtkSmartPointer<vtkOrientationMarkerWidget> widget =vtkSmartPointer<vtkOrientationMarkerWidget>::New();widget->SetOutlineColor(1, 1, 1);widget->SetViewport(0, 0, 0.3,0.3);widget->SetOrientationMarker(axes);widget->SetInteractor(rwi);widget->SetEnabled(1);widget->InteractiveOn();/**********************************************************/renderer->ResetCamera();rw->Render();rwi->Start();return 0; }
這個實(shí)例應(yīng)用非常簡單,輸出結(jié)果如下:

3.參看資料:

1.《C++ primer》
2.《The VTK User’s Guide – 11thEdition》
3. ?張曉東, 羅火靈. VTK圖形圖像開發(fā)進(jìn)階[M]. 機(jī)械工業(yè)出版社, 2015.

總結(jié)

以上是生活随笔為你收集整理的VTK修炼之道59:图形基本操作进阶_纹理映射的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 欧美黄色图片 | 成人动漫在线观看免费 | 久久一级大片 | 国产av无毛| 福利在线一区二区 | 欧美国产日韩在线观看 | 一区二区三区在线观 | 深夜激情网 | 日韩精品人妻无码一本 | 色综合中文 | 国产精品女人久久久 | 麻豆一区产品精品蜜桃的特点 | 91丨九色丨国产 | 久久亚洲一区二区三区四区五区 | 99在线精品视频免费观看软件 | 欧美30p | 能看av的网站 | 精品99久久久久成人网站免费 | 中文字幕23 | 天天干天天日夜夜操 | 国产又粗又硬又长又爽的演员 | 中国女人性猛交 | 日本一区二区三区久久 | 久久久精品在线 | 一区二区三区精品久久久 | 日本一区二区精品视频 | 探花国产 | 亚洲性图第一页 | 操比网站 | 精品国产午夜福利 | 亚洲一区第一页 | 国产精品欧美久久久久天天影视 | 国产美女视频 | 性猛交ⅹxxx富婆视频 | 亚洲天堂视频一区 | 蜜桃久久久久久 | 91视| 动漫裸体无遮挡 | 天堂久久久久久 | 疯狂做爰高潮videossex | 又粗又猛又爽又黄少妇视频网站 | 亚洲国产日韩一区 | 欧美成人一区二区三区四区 | 成人黄色免费视频 | 天堂av中文在线观看 | 少妇无套高潮一二三区 | 亚洲av永久无码精品一百度影院 | 国产精品无码粉嫩小泬 | 免费观看一区二区三区毛片 | 视频精品久久 | 97人妻精品一区二区三区视频 | 狠狠干综合 | 韩国女主播一区二区 | 欧美性高潮 | 久久综合桃花网 | 天天草影院 | 欧美在线视频免费观看 | 韩日av一区二区 | 美女的奶胸大爽爽大片 | 色老板精品凹凸在线视频观看 | 国产视频一二区 | 91玖玖| 亚洲午夜18毛片在线看 | 国语av在线| 亚洲婷婷在线观看 | 亚洲高清在线观看视频 | 森泽佳奈在线播放 | 天天操夜夜爱 | 一区二区视频在线观看免费 | 欧美午夜寂寞影院 | a级在线视频 | 亚洲专区中文字幕 | 国产美女主播在线 | 精品无码久久久久久久久成人 | 欧美 日韩 国产 在线 | 国产成人精品一区二区在线小狼 | 国产成年妇视频 | 黄色无毒网站 | 国产欧美一区二区三区免费看 | 91九色网站 | 欧美亚洲一区 | 三级免费 | 日本呦呦| 日本三级日本三级日本三级极 | 艳妇乳肉豪妇荡乳av无码福利 | 亚洲一区二区观看 | 草草久久久 | 亚洲爱爱av| 久久久久久久国产精品美女 | 美日韩精品一区二区 | 国产美女作爱全过程免费视频 | 一区二区三区欧美日韩 | 深爱综合网 | 亚洲午夜一区二区 | 国产成人自拍偷拍 | 成人免费短视频 | 性渴老太作爱 | 国产区精品 | 在线观看 中文字幕 |