程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> 編程綜合問答 >> directx-DirectX怎樣在立方體表面旋轉紋理

directx-DirectX怎樣在立方體表面旋轉紋理

編輯:編程綜合問答
DirectX怎樣在立方體表面旋轉紋理

我往一個立方體表面貼了一個火焰紋理,想讓火焰繞中心旋轉,但是作出來的效果是火焰繞左上角旋轉。
圖片說明

圖片說明

圖片說明
其中的關鍵代碼如下:
/* 根據游戲時長變換紋理坐標 */

static float time = 0;
float t = mTimer.getDeltaTime();//每幀時長

D3DXMATRIX texMtx,TranMtx, RotateMtx;
D3DXMatrixTranslation(&TranMtx, 0.5f, 0.5f, 0.0f);//創建平移矩陣
D3DXMatrixRotationZ(&RotateMtx, time += t); //創建旋轉矩陣
texMtx = TranMtx * RotateMtx; //得到最終變換矩陣

mfxTexMtxVar->SetMatrix((float*)&texMtx); //應用到效果文件中的矩陣變量

請問應該如何實現?

附:我還發現創建平移矩陣時,修改相應的偏移量居然對最終的效果毫無作用!奇了怪了!

最佳回答:


你設置的中心點不對,首先d3d默認的旋轉坐標點是左上定點,要想老中心點旋轉就得重新設置旋轉點,可以去找下具體設置的函數

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved