亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

Direct3D---紋理映射

2019-11-10 18:12:58
字體:
來源:轉載
供稿:網友
//--------------------------------------------------------------------------------------// 【紋理繪制四步曲之一】:頂點的定義 //--------------------------------------------------------------------------------------struct CUSTOMVERTEX { FLOAT _x, _y, _z; // 頂點的位置 FLOAT _u, _v; // 紋理坐標 CUSTOMVERTEX(FLOAT x, FLOAT y, FLOAT z, FLOAT u, FLOAT v) : _x(x), _y(y), _z(z), _u(u), _v(v) {}};//D3DFVF_TEX1: 一層紋理#define D3DFVF_CUSTOMVERTEX (D3DFVF_XYZ | D3DFVF_TEX1)// 【紋理繪制四步曲之二】:頂點的訪問 //-------------------------------------------------------------------------------------- //填充頂點緩存 CUSTOMVERTEX* pVertices; if( FAILED( g_pVertexBuffer->Lock( 0, sizeof(CUSTOMVERTEX), (void**)&pVertices, 0 ) ) ) return E_FAIL; // 正面頂點數據 // 前3個數據為頂點位置,后2個數據為紋理坐標 pVertices[0] = CUSTOMVERTEX(-10.0f, 10.0f, -10.0f, 0.0f, 0.0f); pVertices[1] = CUSTOMVERTEX( 10.0f, 10.0f, -10.0f, 2.0f, 0.0f); pVertices[2] = CUSTOMVERTEX( 10.0f, -10.0f, -10.0f, 2.0f, 2.0f); pVertices[3] = CUSTOMVERTEX(-10.0f, -10.0f, -10.0f, 0.0f, 2.0f); // 背面頂點數據 pVertices[4] = CUSTOMVERTEX( 10.0f, 10.0f, 10.0f, 0.0f, 0.0f); pVertices[5] = CUSTOMVERTEX(-10.0f, 10.0f, 10.0f, 2.0f, 0.0f); pVertices[6] = CUSTOMVERTEX(-10.0f, -10.0f, 10.0f, 2.0f, 2.0f); pVertices[7] = CUSTOMVERTEX( 10.0f, -10.0f, 10.0f, 0.0f, 2.0f); // 頂面頂點數據 pVertices[8] = CUSTOMVERTEX(-10.0f, 10.0f, 10.0f, 0.0f, 0.0f); pVertices[9] = CUSTOMVERTEX( 10.0f, 10.0f, 10.0f, 2.0f, 0.0f); pVertices[10] = CUSTOMVERTEX( 10.0f, 10.0f, -10.0f, 2.0f, 2.0f); pVertices[11] = CUSTOMVERTEX(-10.0f, 10.0f, -10.0f, 0.0f, 2.0f); // 底面頂點數據 pVertices[12] = CUSTOMVERTEX(-10.0f, -10.0f, -10.0f, 0.0f, 0.0f); pVertices[13] = CUSTOMVERTEX( 10.0f, -10.0f, -10.0f, 2.0f, 0.0f); pVertices[14] = CUSTOMVERTEX( 10.0f, -10.0f, 10.0f, 2.0f, 2.0f); pVertices[15] = CUSTOMVERTEX(-10.0f, -10.0f, 10.0f, 0.0f, 2.0f); // 左側面頂點數據 pVertices[16] = CUSTOMVERTEX(-10.0f, 10.0f, 10.0f, 0.0f, 0.0f); pVertices[17] = CUSTOMVERTEX(-10.0f, 10.0f, -10.0f, 1.0f, 0.0f); pVertices[18] = CUSTOMVERTEX(-10.0f, -10.0f, -10.0f, 1.0f, 1.0f); pVertices[19] = CUSTOMVERTEX(-10.0f, -10.0f, 10.0f, 0.0f, 1.0f); // 右側面頂點數據 pVertices[20] = CUSTOMVERTEX( 10.0f, 10.0f, -10.0f, 0.0f, 0.0f); pVertices[21] = CUSTOMVERTEX( 10.0f, 10.0f, 10.0f, 1.0f, 0.0f); pVertices[22] = CUSTOMVERTEX( 10.0f, -10.0f, 10.0f, 1.0f, 1.0f); pVertices[23] = CUSTOMVERTEX( 10.0f, -10.0f, -10.0f, 0.0f, 1.0f); g_pVertexBuffer->Unlock();//-------------------------------------------------------------------------------------- // 【紋理繪制四步曲之三】:紋理的創建 //-------------------------------------------------------------------------------------- // 創建紋理 //g_pd3dDevice: D3Drect3D設備對象 //L"pal5q.jpg": 創建紋理的圖標文件名字的字符串 //0: 創建紋理對象的寬度,0表示使用貼圖寬度 //0: 創建紋理對象的高度,0表示使用貼圖高度 //6: 創建紋理的漸進級別 //0: 紋理的使用方式,一般是0 //D3DFMT_X8R8G8B8: 紋理中保存每個顏色成分所使用的位數 //D3DPOOL_MANAGED: 如何管理紋理,一般為D3DPOOL_MANAGED //D3DX_DEFAULT: 圖像像素的過濾方式 //D3DX_DEFAULT: Mip像素過濾方式 //0xFF000000: 透明色,設定這個顏色,在顯示時,這圖像中的這個顏色將忽略 //0: 記錄載入圖片信息,通常為NULL //0: 記錄調色板信息,通常為NULL //g_pMipTexture: 保存最終創建的紋理 D3DXCreateTextureFromFileEx(g_pd3dDevice, L"pal5q.jpg", 0, 0, 6, 0, D3DFMT_X8R8G8B8, D3DPOOL_MANAGED, D3DX_DEFAULT, D3DX_DEFAULT, 0xFF000000, 0, 0, &g_pMipTexture);//各向異性過濾 //設置最大各項異性的程度值 g_pd3dDevice->SetSamplerState(0, D3DSAMP_MAXANISOTROPY, 3); //0: 為哪一層紋理設置采樣狀態 //D3DSAMP_MAGFILTER: 對哪種紋理采樣屬性進行操作,設置放大過濾器 //D3DTEXF_ANISOTROPIC: 對第二個屬性進行值的設定 g_pd3dDevice->SetSamplerState(0, D3DSAMP_MAGFILTER, D3DTEXF_ANISOTROPIC); //D3DSAMP_MINFILTER: 對哪種紋理采樣屬性進行操作,設置縮小過濾器 g_pd3dDevice->SetSamplerState(0, D3DSAMP_MINFILTER, D3DTEXF_ANISOTROPIC); //線性紋理過濾 //g_pd3dDevice->SetSamplerState(0, D3DSAMP_MAGFILTER, D3DTEXF_LINEAR); //g_pd3dDevice->SetSamplerState(0, D3DSAMP_MINFILTER, D3DTEXF_LINEAR); //最近點采樣過濾 //g_pd3dDevice->SetSamplerState(0, D3DSAMP_MAGFILTER, D3DTEXF_POINT); //g_pd3dDevice->SetSamplerState(0, D3DSAMP_MINFILTER, D3DTEXF_POINT); //漸進紋理過濾 //g_pd3dDevice->SetSamplerState(0, D3DSAMP_MIPFILTER, D3DTEXF_LINEAR); //g_pd3dDevice->SetSamplerState(0, D3DSAMP_MAXMIPLEVEL, 16);//-------------------------------------------------------------------------------------- // 【紋理繪制四步曲之四】:紋理的啟用 //-------------------------------------------------------------------------------------- //0: 指定了應用紋理是哪一層 //g_pMipTexture: 將要啟用紋理的IDrect3DBaseTexture9接口對象,為第二步中定義過的g_pMipTexture參數 g_pd3dDevice->SetTexture(0, g_pMipTexture); //啟用紋理

第一步為全局變量

第二步與第三步位于函數Objects_Init()中,Objects_Init()是渲染資源初始化函數,在此函數中進行要被渲染的物體的資源的初始化 Objects_Init()調用位置:Direct3D_Init()末尾,即Direct3D初始化完成后。 Direct3D_Init():Direct3D初始化函數,進行Direct3D的初始化。 Direct3D_Init()調用位置:Windows窗口創建后,即函數CreateWindow()后面

最后一步位于函數Direct3D_Render()中,Direct3D_Render()是使用Direct3D進行渲染的函數,位于該函數的“【Direct3D渲染五步曲之三】:正式繪制,利用頂點緩存繪制圖形 ”中 Direct3D_Render()調用位置: 窗口過程函數WndPRoc()中,接收到消息WM_PAINT后

設置紋理的尋址方式:

// 根據鍵盤按鍵的按下,設置為紋理尋址方式 if (g_pDInput->IsKeyDown(DIK_1)) //鍵盤上1鍵被按下 { // 設置重復紋理尋址模式 g_pd3dDevice->SetSamplerState(0, D3DSAMP_ADDRESSU, D3DTADDRESS_WRAP); g_pd3dDevice->SetSamplerState(0, D3DSAMP_ADDRESSV, D3DTADDRESS_WRAP); } if (g_pDInput->IsKeyDown(DIK_2)) //鍵盤上2鍵被按下 { // 設置鏡像紋理尋址模式 g_pd3dDevice->SetSamplerState(0, D3DSAMP_ADDRESSU, D3DTADDRESS_MIRROR); g_pd3dDevice->SetSamplerState(0, D3DSAMP_ADDRESSV, D3DTADDRESS_MIRROR); } if (g_pDInput->IsKeyDown(DIK_3)) //鍵盤上3鍵被按下 { // 設置夾取紋理尋址模式 g_pd3dDevice->SetSamplerState(0, D3DSAMP_ADDRESSU, D3DTADDRESS_CLAMP); g_pd3dDevice->SetSamplerState(0, D3DSAMP_ADDRESSV, D3DTADDRESS_CLAMP); } if (g_pDInput->IsKeyDown(DIK_4)) //鍵盤上4鍵被按下 { // 設置邊框紋理尋址模式 g_pd3dDevice->SetSamplerState(0, D3DSAMP_ADDRESSU, D3DTADDRESS_BORDER); g_pd3dDevice->SetSamplerState(0, D3DSAMP_ADDRESSV, D3DTADDRESS_BORDER); }

位于函數Direct3D_Update()中 Direct3D_Update(): 不是即時渲染代碼但是需要即時調用的,如按鍵后的坐標的更改,都放在這里。 Direct3D_Update()調用位置: WinMain中的消息循環過程:

//【5】消息循環過程 MSG msg = { 0 }; //初始化msg while( msg.message != WM_QUIT ) //使用while循環 { if( PeekMessage( &msg, 0, 0, 0, PM_REMOVE ) ) //查看應用程序消息隊列,有消息時將隊列中的消息派發出去。 { TranslateMessage( &msg ); //將虛擬鍵消息轉換為字符消息 DispatchMessage( &msg ); //該函數分發一個消息給窗口程序。 } else { Direct3D_Update(hwnd); //調用更新函數,進行畫面的更新 Direct3D_Render(hwnd); //調用渲染函數,進行畫面的渲染 } }

這里寫圖片描述


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
欧美日韩国产一中文字不卡| 国产ts一区二区| 97超碰蝌蚪网人人做人人爽| 麻豆精品精华液| 久久久久久久一区二区三区| 国产一区二区三区精品久久久| 成人网页在线免费观看| 国产成人啪精品视频免费网| 久久天堂av综合合色| 久久久999国产精品| 日本道色综合久久影院| 久国内精品在线| 亚洲aa在线观看| 一区二区国产精品视频| 国产在线拍揄自揄视频不卡99| 欧美精品成人91久久久久久久| 亚洲欧美精品一区| 国产精品白嫩初高中害羞小美女| 精品国产区一区二区三区在线观看| 日韩精品在线影院| 亚洲欧美中文字幕在线一区| 亚洲成色777777女色窝| 成人做爽爽免费视频| 亚洲国产古装精品网站| 亚洲影视九九影院在线观看| 久久久国产精彩视频美女艺术照福利| 欧美一级电影免费在线观看| 555www成人网| 久久成人精品电影| 日韩精品久久久久久久玫瑰园| 久久精品亚洲热| 欧美性极品xxxx娇小| 久久久成人av| 不卡毛片在线看| 成人欧美一区二区三区在线湿哒哒| 91久久久久久久久久| 久久成人18免费网站| 亚洲国产精品va| 色狠狠av一区二区三区香蕉蜜桃| 国产精品欧美一区二区| 成人国产精品日本在线| 国产中文字幕91| 国产成人在线一区| 影音先锋欧美精品| 亚洲精品成人免费| 国产精品国产三级国产aⅴ9色| 欧美另类老女人| 欧美裸体xxxx极品少妇软件| 国产美女高潮久久白浆| 97国产精品免费视频| 国内自拍欧美激情| 国产成人午夜视频网址| 中文字幕亚洲综合久久筱田步美| 国产69久久精品成人| 国产日韩在线亚洲字幕中文| 这里只有精品在线播放| 91精品国产色综合久久不卡98| 精品久久久久久中文字幕一区奶水| 久久精品色欧美aⅴ一区二区| 国产精品白嫩美女在线观看| 国产精品看片资源| 国产偷国产偷亚洲清高网站| 91久久久精品| 精品亚洲一区二区三区| 97久久伊人激情网| 69av在线视频| 亚洲电影免费在线观看| 欧美性xxxx18| 亚洲a级在线观看| 91久久在线视频| 久久久精品网站| 色综合五月天导航| 国产精品你懂得| 久久99热这里只有精品国产| 久久最新资源网| 久久久久久欧美| **欧美日韩vr在线| 中文字幕在线国产精品| xxxxxxxxx欧美| 亚洲国产精品va在线看黑人| 欧美精品一区三区| 亚洲男人7777| 亚洲国产成人精品电影| 欧美在线视频导航| 久久午夜a级毛片| 亚洲免费视频观看| 欧美性猛交xxxx免费看漫画| 96pao国产成视频永久免费| 国产欧美va欧美va香蕉在线| 欧美在线观看日本一区| 精品亚洲国产成av人片传媒| 欧美激情一区二区三区高清视频| 91日韩在线视频| 成人午夜两性视频| 不卡伊人av在线播放| 91精品国产色综合久久不卡98口| 日韩在线高清视频| 亚洲精品www久久久| 欧美日韩综合视频| 色狠狠av一区二区三区香蕉蜜桃| 欧美日韩色婷婷| 国产精品偷伦视频免费观看国产| 国产亚洲精品91在线| 在线播放国产精品| 欧美做爰性生交视频| 国产在线观看一区二区三区| 久久777国产线看观看精品| 在线成人免费网站| 中文字幕免费精品一区| 日韩小视频在线观看| 热久久这里只有| 欧美日韩成人免费| 久久夜精品va视频免费观看| 国产精品中文字幕在线| 欧美激情亚洲综合一区| 91精品国产色综合久久不卡98| 三级精品视频久久久久| 乱亲女秽乱长久久久| 亚洲国内精品视频| 国产日韩欧美电影在线观看| 青青久久av北条麻妃黑人| 国产精品久久久久久久久久新婚| 欧美日韩中文字幕在线视频| 日韩经典中文字幕在线观看| 日本一区二区三区在线播放| 亚洲精品中文字幕有码专区| 91国产一区在线| 国产成人精品在线播放| 精品国产电影一区| 国产精品电影在线观看| 久久久久久久一区二区| 国产精品偷伦免费视频观看的| 中文字幕亚洲国产| 伊人一区二区三区久久精品| 亚洲免费伊人电影在线观看av| 亚洲男人天堂久| 久久久久久国产精品三级玉女聊斋| 国产免费一区二区三区香蕉精| 中文字幕亚洲欧美日韩在线不卡| 国产精品你懂得| 日韩人在线观看| 91精品国产电影| 欧美视频专区一二在线观看| 亚洲free性xxxx护士白浆| 久久久亚洲国产天美传媒修理工| 在线亚洲午夜片av大片| 欧美日韩在线视频一区二区| 日韩欧美高清视频| 欧美日韩国产精品一区| 欧美国产高跟鞋裸体秀xxxhd| 免费不卡在线观看av| 日本高清+成人网在线观看| 久久视频精品在线| 2019最新中文字幕| 麻豆国产va免费精品高清在线| 精品视频—区二区三区免费| 综合国产在线观看| 欧美一级片免费在线| 久久精品夜夜夜夜夜久久| 亚洲福利视频网站| 亚洲视频网站在线观看| 亚洲国产精品成人一区二区| 福利二区91精品bt7086| 精品亚洲一区二区三区在线播放|