OpenGL的點(diǎn)與向量

請預(yù)定了我們游戲引擎課程的同學(xué)滚粟,務(wù)必強(qiáng)迫自己至少瀏覽一遍所有內(nèi)容,因?yàn)檫@些心法口訣將時(shí)時(shí)刻刻體現(xiàn)在整個(gè)游戲引擎的設(shè)計(jì)中草慧。

向量的長度

現(xiàn)在我們已經(jīng)解釋了關(guān)于坐標(biāo)系系統(tǒng)的一些東西刽严,我們接下來可以來看看最常見的一些被用到點(diǎn)和向量上的操作了皇筛。在任何3D程序或者渲染器中,這些操作應(yīng)該都是非常常見的社痛。

單位化一個(gè)向量

如同我們前面介紹的那樣见转,在3D空間中,一個(gè)向量可以被看成是一個(gè)從一個(gè)點(diǎn)指向另一個(gè)點(diǎn)的箭頭蒜哀。這個(gè)向量不僅僅指明了從A指向B的方向斩箫,同時(shí)還可以被用來計(jì)算AB兩點(diǎn)之間的距離。值得注意的是撵儿,我們的坐標(biāo)軸通常那幾根基向量都是單位向量乘客。

一個(gè)單位化過的向量的長度是1,這樣的向量被稱為單位向量淀歇。單位化一個(gè)向量是非常簡單的易核。我們用它的每一個(gè)分量去除以它的長度就可以了。

image

在數(shù)學(xué)里浪默,你可能會(huì)發(fā)現(xiàn)一個(gè)叫做norm的詞牡直,它定義了一個(gè)函數(shù)可以用來指定一個(gè)向量的長度缀匕。剛才我們講的這個(gè)函數(shù)被稱為歐幾里德范數(shù)。

點(diǎn)乘

點(diǎn)乘兩個(gè)向量在數(shù)學(xué)中可以表示為A·B碰逸,兩個(gè)向量的點(diǎn)乘會(huì)得到一個(gè)數(shù)乡小。我們在這里討論的都是實(shí)數(shù)范圍內(nèi)的向量乘法。點(diǎn)乘是讓每個(gè)向量的各個(gè)部分分別求積后再加起來饵史。

在任何3D程序或者渲染器中满钟,兩個(gè)向量進(jìn)行點(diǎn)乘是非常重要的操作,因?yàn)辄c(diǎn)乘最終得到了一個(gè)關(guān)于cos的式子约急,我們很多時(shí)候都需要這個(gè)cos來做一些后續(xù)的運(yùn)算零远。比如點(diǎn)乘可以用來檢測兩個(gè)向量是否互相垂直,如果互相垂直厌蔽,那么點(diǎn)乘的結(jié)果就是0牵辣。當(dāng)點(diǎn)乘的結(jié)果是-1的時(shí)候,那么兩個(gè)向量剛好方向相反奴饮。如果點(diǎn)乘的結(jié)果是1的時(shí)候纬向,則表示,兩個(gè)向量剛好指向完全相同的方向上戴卜。同樣點(diǎn)乘還可以用來去表示兩個(gè)向量間的夾角或者一個(gè)向量與某個(gè)坐標(biāo)軸之間的夾角逾条。

叉乘

叉乘同樣也是對兩個(gè)向量進(jìn)行操作。與點(diǎn)乘不一樣的是投剥,相較于點(diǎn)乘的結(jié)果是個(gè)數(shù)字师脂,叉乘的結(jié)果是一個(gè)向量。并且江锨,得到的這個(gè)向量同時(shí)垂直于參與進(jìn)行叉乘的兩個(gè)向量吃警。叉乘的數(shù)學(xué)表示為:

C = A x B

得到的C矩陣跟A和B互相正交。如果用A和B定義一個(gè)平面的話啄育,C就垂直于A與B所在的平面酌心。叉乘中,乘法的順序非常重要挑豌,A叉乘B和B叉乘A的結(jié)果是不一樣的安券。

這也就是說,叉乘是不滿足乘法交換律氓英。

其他的運(yùn)算-加法侯勉、減法

加法和減法用在點(diǎn)上意義比較直觀。就是挪動(dòng)點(diǎn)的位置铝阐。但向量之間進(jìn)行加法和減法運(yùn)算壳鹤,就不是那么回事了。有些3D的API會(huì)區(qū)分點(diǎn)饰迹、法線芳誓、向量的這些運(yùn)算余舶。因此,確實(shí)可以去創(chuàng)建點(diǎn)锹淌、法線匿值、向量這三個(gè)完全不同的C++的類。比如法線不會(huì)像點(diǎn)和向量那樣被轉(zhuǎn)換赂摆。兩個(gè)點(diǎn)相減挟憔,很明顯可以產(chǎn)生一個(gè)向量。把一個(gè)向量加到另一個(gè)向量或者點(diǎn)上烟号,會(huì)產(chǎn)生一個(gè)點(diǎn)等等這類的區(qū)別绊谭。但是有的人也認(rèn)為這么干會(huì)增加代碼的復(fù)雜度。所以在咱們的戰(zhàn)火引擎種并沒有對他們做明確的區(qū)分汪拥,但使用者必須知道他們數(shù)學(xué)意義上的區(qū)別达传。

由于微信公眾號每個(gè)月只能群發(fā)四次,所以下個(gè)月開始我們將開始發(fā)布雞翅膀風(fēng)格的文章迫筑,我們同樣會(huì)提供原文鏈接宪赶。如果大家不想錯(cuò)過每一篇文章,請關(guān)注我們的官方網(wǎng)站上的各類書籍文字閱讀部分脯燃。
我們的官網(wǎng): https://edu.battlefire.cn/

我們的網(wǎng)易云課堂:https://study.163.com/series/1001365003.htm

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末搂妻,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子辕棚,更是在濱河造成了極大的恐慌欲主,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,123評論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件逝嚎,死亡現(xiàn)場離奇詭異岛蚤,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)懈糯,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,031評論 2 384
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來单雾,“玉大人赚哗,你說我怎么就攤上這事」瓒眩” “怎么了屿储?”我有些...
    開封第一講書人閱讀 156,723評論 0 345
  • 文/不壞的土叔 我叫張陵,是天一觀的道長渐逃。 經(jīng)常有香客問我够掠,道長,這世上最難降的妖魔是什么茄菊? 我笑而不...
    開封第一講書人閱讀 56,357評論 1 283
  • 正文 為了忘掉前任疯潭,我火速辦了婚禮赊堪,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘竖哩。我一直安慰自己哭廉,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,412評論 5 384
  • 文/花漫 我一把揭開白布相叁。 她就那樣靜靜地躺著遵绰,像睡著了一般。 火紅的嫁衣襯著肌膚如雪增淹。 梳的紋絲不亂的頭發(fā)上椿访,一...
    開封第一講書人閱讀 49,760評論 1 289
  • 那天,我揣著相機(jī)與錄音虑润,去河邊找鬼成玫。 笑死,一個(gè)胖子當(dāng)著我的面吹牛端辱,可吹牛的內(nèi)容都是我干的梁剔。 我是一名探鬼主播,決...
    沈念sama閱讀 38,904評論 3 405
  • 文/蒼蘭香墨 我猛地睜開眼舞蔽,長吁一口氣:“原來是場噩夢啊……” “哼荣病!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起渗柿,我...
    開封第一講書人閱讀 37,672評論 0 266
  • 序言:老撾萬榮一對情侶失蹤个盆,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后朵栖,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體颊亮,經(jīng)...
    沈念sama閱讀 44,118評論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,456評論 2 325
  • 正文 我和宋清朗相戀三年陨溅,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了终惑。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,599評論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡门扇,死狀恐怖雹有,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情臼寄,我是刑警寧澤霸奕,帶...
    沈念sama閱讀 34,264評論 4 328
  • 正文 年R本政府宣布,位于F島的核電站吉拳,受9級特大地震影響质帅,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,857評論 3 312
  • 文/蒙蒙 一煤惩、第九天 我趴在偏房一處隱蔽的房頂上張望嫉嘀。 院中可真熱鬧,春花似錦盟庞、人聲如沸吃沪。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,731評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽票彪。三九已至,卻和暖如春不狮,著一層夾襖步出監(jiān)牢的瞬間降铸,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,956評論 1 264
  • 我被黑心中介騙來泰國打工摇零, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留推掸,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 46,286評論 2 360
  • 正文 我出身青樓驻仅,卻偏偏與公主長得像谅畅,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個(gè)殘疾皇子噪服,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,465評論 2 348

推薦閱讀更多精彩內(nèi)容