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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

行矩阵列矩阵D3DGLU3D

發(fā)布時間:2025/6/15 编程问答 15 豆豆
生活随笔 收集整理的這篇文章主要介紹了 行矩阵列矩阵D3DGLU3D 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
void Start () {//矩陣函數(shù)原型:Matrix4x4(Vector4 colum0, Vector4 colum1, Vector4 colum2, Vector4 colum3),這說明U3D使用列矩陣,同opengl//因此矩陣是左乘的,DX是行矩陣,矩陣是右乘的。//在DX中WVP矩陣組合為 W*V*P, 而GL中MVP矩陣組合為 P*V*MMatrix4x4 tm = new Matrix4x4(new Vector4(1, 0, 0, 3), new Vector4(0,1,0,0),new Vector4(0,0,1,0),new Vector4(0,0,0,1));Vector4 pt4 = new Vector4(0, 0, 0, 1);Vector3 pt3 = new Vector3(0, 0, 0);//var pt4t = pt4*tm; //編譯出錯,沒有定義這種乘法,不支持右乘!var pt4t = tm*pt4; var pt4tt = tm.transpose*pt4; //矩陣轉(zhuǎn)置-變?yōu)樾芯仃?/span>var pt3t = tm*pt3;var pt3tt = tm.transpose*pt3; //實際是 tm.transpose * (0,0,0,0),U3D將vector3擴展為w為0,而不是像DX那樣將w擴展為1//總結(jié):在U3D中,//1,矩陣是列矩陣,必須左乘,U3D未定義矩陣右乘向量這種操作//2,vector3(x,y,z)與矩陣相乘時,vector3被擴展為vector4(x,y,z,0)Debug.Log(pt4t.x + "," + pt4t.y+","+ pt4t.z); //0,0,0Debug.Log(pt4tt.x + "," + pt4tt.y+","+ pt4tt.z); //3,0,0Debug.Log(pt3t.x + "," + pt3t.y+","+ pt3t.z); //0,0,0Debug.Log(pt3tt.x + "," + pt3tt.y + "," + pt3tt.z);//0,0,0//3,鑒于2的情況,U3D中操作頂點變換最好使用函數(shù),如下var tx = tm.transpose.MultiplyPoint(pt3t);Debug.Log(tx.x + "," + tx.y + "," + tx.z); //3,0,0 }

?

轉(zhuǎn)載于:https://www.cnblogs.com/timeObjserver/p/9466113.html

總結(jié)

以上是生活随笔為你收集整理的行矩阵列矩阵D3DGLU3D的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

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