一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務(wù)器之家:專注于服務(wù)器技術(shù)及軟件下載分享
分類導(dǎo)航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術(shù)|正則表達(dá)式|C/C++|IOS|C#|Swift|Android|VB|R語(yǔ)言|JavaScript|易語(yǔ)言|vb.net|

服務(wù)器之家 - 編程語(yǔ)言 - Android - OpenGL ES 矩陣變換及其數(shù)學(xué)原理詳解(五)

OpenGL ES 矩陣變換及其數(shù)學(xué)原理詳解(五)

2022-02-24 15:34weiers Android

這篇文章主要為大家詳細(xì)介紹了OpenGL ES 矩陣變換及其數(shù)學(xué)原理的相關(guān)資料,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下

引子

  1. 向量刻畫的是線性空間中的對(duì)象。
  2. 矩陣刻畫的是向量在線性空間中的運(yùn)動(dòng)(變換,躍遷),相似矩陣本質(zhì)上就是同一個(gè)線性變換的不同的描述。
  3. 在一個(gè)線性空間中,選定了一組基,對(duì)于任何一個(gè)線性變化都可以用一個(gè)確定的矩陣來(lái)描述
  4. 矩陣不僅可以作為線性變換的描述,而且可以作為一組基的描述,作為變換的矩陣,不但可以把線性空間中的一個(gè)點(diǎn)給變換到另一個(gè)點(diǎn)去,而且也能夠把線性空間中的一個(gè)坐標(biāo)系(基)表?yè)Q到另一個(gè)坐標(biāo)系(基)去。
  5. 當(dāng)我們談到向量時(shí),一定要指定它所在的坐標(biāo)系才有意義,比如向量b=(1,2,3)實(shí)際上指的是在單位坐標(biāo)系I下有一個(gè)向量的度量為b。
  6. 就可以理解Ma=b就可以看成Ma=Ib,就是說(shuō)在坐標(biāo)系M中度量出來(lái)的向量a和在坐標(biāo)系I里面度量出來(lái)的b實(shí)際上就是同一個(gè)向量。
  7. 對(duì)于矩陣而言,他表示出來(lái)的那個(gè)坐標(biāo)系也是由一組基(向量)組成的,同樣存在這組基實(shí)在哪個(gè)坐標(biāo)系下度量的問(wèn)題。對(duì)于矩陣M,將其理解成IM,即M中的那組向量是在I坐標(biāo)系中得出的。
  8. MxN本質(zhì)是聲明了一個(gè)在M坐標(biāo)系中量出的另一個(gè)坐標(biāo)系N,其中M本身是在I坐標(biāo)系中度量出來(lái)的。
  9. 對(duì)坐標(biāo)系施加變換的方法,就是讓表示那個(gè)坐標(biāo)系的矩陣與表示那個(gè)變化的矩陣相乘。

因此我們來(lái)理解這樣一個(gè)式子,ACb,AC為矩陣,b為一個(gè)向量

  • b是一個(gè)向量,他是在I坐標(biāo)系下度量的,a = Cb也就是在I坐標(biāo)系下將向量b變換到向量b,d=ACb=Aa的含義就是繼續(xù)在I坐標(biāo)系下將向量a變換到向量d。即在同一個(gè)坐標(biāo)系I下面進(jìn)行了兩次變換操作。
  • 另一種理解方式是ACb=IACb,那么IAC三個(gè)矩陣相乘就表示了坐標(biāo)系的變換,在I坐標(biāo)系中度量處新的坐標(biāo)系IA,再在IA坐標(biāo)系下度量出IAC,然后這里最終的坐標(biāo)系中的向量b和在1中在I坐標(biāo)系中經(jīng)過(guò)兩次變換得到的向量是同一個(gè)向量。

上面的兩種理解方式也揭示了對(duì)向量的變換和對(duì)坐標(biāo)系的變換是等價(jià)的,這一點(diǎn)也可以通過(guò)后面旋轉(zhuǎn)變換的圖示中看出來(lái)。

各種變換

平移矩陣

OpenGL ES 矩陣變換及其數(shù)學(xué)原理詳解(五)

縮放矩陣

OpenGL ES 矩陣變換及其數(shù)學(xué)原理詳解(五)

平移矩陣和縮放矩陣很容易理解,并且從矩陣形式我們也可以看到為什么用四維的向量表示一個(gè)頂點(diǎn)了,除了w分量用來(lái)做透視除法以外,另一個(gè)作用不也正好是為了把平移整合進(jìn)來(lái)嗎,都做乘法而不做加法。在數(shù)學(xué)上也就是將三維空間的坐標(biāo)表示成其齊次形式.

旋轉(zhuǎn)變換

旋轉(zhuǎn)變換相對(duì)來(lái)說(shuō)較為復(fù)雜,對(duì)繞x、y或z軸旋轉(zhuǎn)的情況比較好理解。

OpenGL ES 矩陣變換及其數(shù)學(xué)原理詳解(五)

以繞z軸旋轉(zhuǎn)為例

OpenGL ES 矩陣變換及其數(shù)學(xué)原理詳解(五)

于是

OpenGL ES 矩陣變換及其數(shù)學(xué)原理詳解(五)

寫成矩陣形式為

OpenGL ES 矩陣變換及其數(shù)學(xué)原理詳解(五)

繞任意軸旋轉(zhuǎn)的旋轉(zhuǎn)矩陣

OpenGL ES 矩陣變換及其數(shù)學(xué)原理詳解(五)

同理,前面學(xué)到的正交投影矩陣,透視矩陣以及攝像機(jī)矩陣,本質(zhì)上和上面的變換都是一樣的。

前面可以看到一般傳入渲染管線的是一個(gè)由攝像機(jī)矩陣,投影矩陣,變換矩陣相乘得到的總的變換矩陣,

在頂點(diǎn)著色器中一般是這樣的形式

?
1
gl_Position = uMVPMatrix * vec4(aPosition,1);

上面的代碼中的變量uMVPMatrix表示了模型(M)、視圖(V)、投影(P)三中變換綜合,

OpenGL ES 矩陣變換及其數(shù)學(xué)原理詳解(五)

注意到矩陣乘法的順序,對(duì)每個(gè)點(diǎn)所做的變換是有順序的,對(duì)每個(gè)點(diǎn)先進(jìn)行模型變換(平移縮放旋轉(zhuǎn))、再進(jìn)行視圖變換(攝像機(jī)視角)再進(jìn)行投影變換,這三個(gè)變換順序是不可變得,因?yàn)楦淖冺樞蜃罱K看到的效果都是不一樣的。

對(duì)每個(gè)點(diǎn)所做的綜合變換本質(zhì)上就是對(duì)這個(gè)點(diǎn)進(jìn)行矩陣相乘,然而就我們傳入的是最終的綜合變換矩陣而言,剛才的理解不是特別準(zhǔn)確,換個(gè)思路理解成綜合變換矩陣就是對(duì)坐標(biāo)系的變換會(huì)更好,因?yàn)楫吘刮覀兪且淮涡詫⑦@個(gè)相乘后的綜合矩陣傳進(jìn)去的。

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持服務(wù)器之家。

原文鏈接:https://blog.csdn.net/cauchyweierstrass/article/details/52909609

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 小嫩videos| 欧美老骚| 亚洲人成网站在线观看妞妞网 | 国产露脸对白刺激3p在线 | 好大好硬好深好爽想要吃奶 | 男人疯狂擦进女人下面 | 国产农村一级特黄α真人毛片 | 欧美久久久久久久一区二区三区 | 暗卫调教女主肉高h | 亚洲成av人片天堂网 | 韩国最新三级网站在线播放 | 亚洲AV久久无码精品九九软件 | 极品丝袜乱系列在线阅读 | 国产精品aaa | 免费视频片在线观看 | 韩日视频在线观看 | 满城尽带黄金甲大胸片 | 国产乱子伦在线观看不卡 | 欧美最猛性xxxxx短视频 | 好男人免费高清在线观看2019 | 男公厕里同性做爰 | 媳妇和公公小说 | 被肉日常np高h | 日本天堂视频 | yin娃sao货调教情趣用品店 | 91麻豆精品国产自产在线 | 国产日韩欧美在线播放 | 青青热久免费精品视频网站 | 四虎精品成人免费观看 | 67194在线免费观看 | 亚洲成年网站在线777 | 91这里只有精品 | 深夜草莓视频 | 天天乐影院 | 亚洲国产精品综合欧美 | 午夜久久免费视频 | 人人揉人人爽五月天视频 | 国产日韩欧美在线观看不卡 | 九九精品国产亚洲A片无码 九九99热久久999精品 | 亚洲色图150p | 欧美一级视频在线高清观看 |