綰圭悊鍧愭爣鍙樻崲

Direct3D鎻愪緵浜嗗鐢熸垚鐨勭汗鐞嗗潗鏍囪繘琛屽潗鏍囧彉鎹㈢殑鍔熻兘錛屼笌欏剁偣鍧愭爣鍙樻崲鐩哥被浼鹼紝鍙互鎸囧畾涓涓?x4鐨勭汗鐞嗗潗鏍囧彉鎹㈢煩闃碉紝鎶婂畠涓庣敓鎴愮殑綰圭悊鍧愭爣鐩鎬箻錛岀劧鍚庡皢鍙樻崲涔嬪悗鐨勭汗鐞嗗潗鏍囪緭鍑鴻嚦Direct3D娓叉煋嫻佹按綰褲備嬌鐢ㄧ汗鐞嗗潗鏍囧彉鎹㈠彲浠ュ綰圭悊鍧愭爣榪涜璇稿騫崇Щ銆佹棆杞拰緙╂斁絳変笁緇村彉鎹€傜汗鐞嗗潗鏍囧彉鎹㈠浜庣敓鎴愪竴浜涚壒孌婃晥鏋滄槸闈炲父鏈夌敤鐨勶紝瀹冧笉鐢ㄧ洿鎺ヤ慨鏀歸《鐐圭殑綰圭悊鍧愭爣銆備緥濡傚彲浠ラ氳繃涓涓畝鍗曠殑騫崇Щ鐭╅樀瀵圭汗鐞嗗潗鏍囪繘琛屽彉鎹紝浠庤屼嬌鐗╀綋琛ㄩ潰涓婄殑綰圭悊涓嶆柇鍙樻崲浣嶇疆錛屼駭鐢熷姩鐢繪晥鏋溿傜汗鐞嗗潗鏍囪嚜鍔ㄧ敓鎴愬湪涓夌淮鍥懼艦紼嬪簭涓渶騫挎硾鐨勫簲鐢ㄦ槸鐜鏄犲皠銆?/p>

鍙氳繃鍑芥暟IDirect3DDevice9::SetTransform()鏉ヨ緗?x4鐨勭汗鐞嗗潗鏍囧彉鎹㈢煩闃碉紝瀹冧互D3DTS_TEXTURE0~ D3DTS_TEXTURE7浣滀負絎竴涓弬鏁幫紝琛ㄧず璁劇疆綰圭悊灞?~7鐨勭汗鐞嗙煩闃點備笅鍒椾唬鐮佸綰圭悊灞?璁劇疆浜嗕竴涓皢綰圭悊鍧愭爣u銆乿緙╁皬鍒板師鏉ヤ竴鍗婄殑綰圭悊鐭╅樀錛?/p>

D3DXMATRIX mat;
D3DXMatrixIdentity(&mat);
mat._11 = 0.5f;
mat._22 = 0.5f;
pd3dDevice->SetTransform(D3DTS_TEXTURE0, &mat);

涓嬮潰鐨勪唬鐮佸皢鍘熸潵鐨勭汗鐞嗗潗鏍囧鉤縐伙紙1.0, 1.0, 0錛変釜鍗曚綅銆?/p>

D3DXMATRIX mat;
D3DXMatrixIdentity(&mat);
mat._41 = 1.0f;
mat._42 = 1.0f;
mat._43 = 0.0f;
pd3dDevice->SetTransform(D3DTS_TEXTURE0, &mat);

紺轟緥紼嬪簭閫氳繃涓嬪垪浠g爜瀵硅嚜鍔ㄧ敓鎴愮殑綰圭悊鍧愭爣榪涜鍙樻崲錛?/p>

// texture coordinate transform

D3DXMATRIX mat_texture, mat_scale, mat_trans;

D3DXMatrixIdentity(&mat_texture);
D3DXMatrixScaling(&mat_scale, 0.5f, -0.5f, 1.0f);
D3DXMatrixTranslation(&mat_trans, 0.5f, 0.5f, 1.0f);

mat_texture = mat_texture * mat_scale * mat_trans;
pd3dDevice->SetTransform(D3DTS_TEXTURE0, &mat_texture);


瑕佺湅鏁堟灉鍜屽畬鏁翠唬鐮?br>鍘諱笅闈㈣繖涓富欏?br>
http://www.cnblogs.com/billwillman/articles/1232081.html


娉細綰圭悊鐭╅樀寰堝ソ寰堝己澶с傚彲浠ュ仛綆鍗曠殑姘達紝澶╃┖鐩掕儗鏅瓑鏁堟灉銆?br>鏇翠負涓ラ噸鐨勬槸錛岃繕鑳藉仛鍑烘祦鍏夋晥鏋滐紝灝卞儚銆婅渶闂ㄣ嬩笂鐨勮。鏈嶆晥鏋溿傘?br>