關(guān)于三維坐標(biāo)系要知道的事

任何坐標(biāo)系,都是用來描述物體的運(yùn)動(dòng)軌跡拂募,在游戲中會(huì)經(jīng)常使用坐標(biāo)系庭猩,它們大部分是為了計(jì)算物體的位置、距離和角度陈症。

二維坐標(biāo)系

坐標(biāo)系的專業(yè)名稱叫做笛卡爾坐標(biāo)系蔼水,它分為二維笛卡爾坐標(biāo)系和三維笛卡爾坐標(biāo)系(以下簡(jiǎn)稱坐標(biāo)系),二維坐標(biāo)系由原點(diǎn)录肯、X軸和Y軸組成趴腋。在游戲領(lǐng)域,二維坐標(biāo)系主要在屏幕空間映射時(shí)會(huì)使用到论咏,它分為兩個(gè)標(biāo)準(zhǔn):OpenGL和DirectX优炬,它們之間最大的區(qū)別在于對(duì)原點(diǎn)和Y軸的位置定義不同。OpenGL標(biāo)準(zhǔn)原點(diǎn)在左下角厅贪,Y軸正軸朝上蠢护;而DirectX標(biāo)準(zhǔn)原點(diǎn)在左上角,Y軸正軸朝下养涮。


a1.png

三維坐標(biāo)系

三維坐標(biāo)系由原點(diǎn)葵硕、X軸、Y軸和Z軸組成贯吓,坐標(biāo)軸之間兩兩互相垂直相交懈凹。三個(gè)坐標(biāo)軸又叫做坐標(biāo)系的基矢量,如果坐標(biāo)軸長(zhǎng)度都為1宣决,那么這樣的基矢量被稱為標(biāo)準(zhǔn)正交基蘸劈,正交這個(gè)詞我們經(jīng)常聽見,它其實(shí)就是表示互相垂直的意思尊沸。

三維坐標(biāo)系在游戲引擎威沫、建模軟件中經(jīng)常使用,它的情況要比二維坐標(biāo)系更加復(fù)雜洼专。不同的軟件棒掠,采用的三維坐標(biāo)系朝向都可能有所不同,有的是Y軸朝上屁商,有的是Z軸朝上烟很,雖然朝向各有所不同,但總的可分為兩大類:左手坐標(biāo)系和右手坐標(biāo)系蜡镶。任何軟件使用的三位坐標(biāo)系雾袱,總是可以通過旋轉(zhuǎn)來判斷出它是左手坐標(biāo)系還是右手坐標(biāo)系。


zuobaioxi.png

游戲中向前官还、向右等方向的描述芹橡,和游戲引擎使用的坐標(biāo)系有很大的關(guān)系。不同的游戲引擎望伦,前后方向都很可能是相反的林说,所以明確坐標(biāo)系的類型非常重要煎殷。

另外一個(gè)就是旋轉(zhuǎn)方向問題。以鐘表為例腿箩,順時(shí)針和逆時(shí)針旋轉(zhuǎn)大家都能分清楚吧豪直。對(duì)于左手坐標(biāo)系而言,它旋轉(zhuǎn)的正方向是順時(shí)針珠移,而右手坐標(biāo)系旋轉(zhuǎn)的正方向是逆時(shí)針弓乙。大家可以通過左右手法則,來確定旋轉(zhuǎn)的正方向钧惧。以左手坐標(biāo)系為例唆貌,伸出左手,拇指豎直垢乙,其他手指微握锨咙,微握的方向就代表左手坐標(biāo)系旋轉(zhuǎn)的正方向。右手坐標(biāo)系同樣如此追逮。


faze.png

各種空間概念

游戲開發(fā)中經(jīng)常會(huì)聽到各種空間酪刀,什么模型空間、世界空間钮孵、觀察空間和屏幕空間骂倘,它們到底是什么意思呢?

模型空間

模型空間又叫對(duì)象空間或者局部空間巴席,每個(gè)模型自身就是一個(gè)坐標(biāo)系历涝,在編寫shader時(shí)我們說的頂點(diǎn)坐標(biāo),其實(shí)是模型上的點(diǎn)相對(duì)于模型空間的原點(diǎn)而言的漾唉。模型的原點(diǎn)是可以在三維軟件自定義的荧库。

以3dsMAX為例小槐,它可以通過調(diào)整軸來修改原點(diǎn)位置践瓷,原點(diǎn)一旦修改,模型導(dǎo)出后肩民,各頂點(diǎn)的坐標(biāo)也會(huì)發(fā)生改變般此。


a2.png

模型導(dǎo)出成obj格式后蚪战,用記事本打開,可以看到各個(gè)頂點(diǎn)的坐標(biāo)铐懊。Y軸為0邀桑,表示的是長(zhǎng)方體底面的四個(gè)頂點(diǎn)。因?yàn)?dsMAX創(chuàng)建的長(zhǎng)方體科乎,默認(rèn)以底面中心作為長(zhǎng)方體模型空間的原點(diǎn)壁畸。


a5.png

另外還需要注意的是:模型空間坐標(biāo)會(huì)受旋轉(zhuǎn)的影響而發(fā)生改變,旋轉(zhuǎn)之后喜喂,它的各坐標(biāo)軸都會(huì)發(fā)生變化瓤摧。在游戲編程中,經(jīng)常會(huì)遇到“角色旋轉(zhuǎn)45度玉吁,然后向前行走100米”類似這樣的邏輯照弥,這其實(shí)是針對(duì)模型空間而言的,通常情況下进副,就要將角色使用的坐標(biāo)系切換到局部坐標(biāo)系这揣,然后調(diào)用旋轉(zhuǎn)、向前之類的API方法影斑,這樣才能得到正確結(jié)果给赞。我們經(jīng)常說的方位術(shù)語,比如forward矫户、back片迅、left、right皆辽、up柑蛇、down之類的,其實(shí)也是針對(duì)模型空間來說的驱闷。

世界空間

世界空間是一個(gè)絕對(duì)位置耻台,它描述的是一個(gè)宏觀的大空間,而且他的坐標(biāo)軸方向使不會(huì)發(fā)生變化的空另。這個(gè)很好理解盆耽,但在一些情況下,模型空間位置會(huì)等于世界空間扼菠,這取決于物體本身的層次結(jié)構(gòu)摄杂。

如果物體本身沒有父節(jié)點(diǎn),那么這個(gè)物體的模型空間位置會(huì)等于世界空間位置循榆;

如果物體本身有父節(jié)點(diǎn)匙姜,那么物體的位置是指相對(duì)于父節(jié)點(diǎn)模型空間而言的;

如果物體從父節(jié)點(diǎn)移出冯痢,此時(shí)物體的位置會(huì)被自動(dòng)轉(zhuǎn)換成世界空間坐標(biāo)氮昧;

a6.png

觀察空間

再來說說觀察空間,觀察空間又叫相機(jī)空間浦楣,它是以攝像機(jī)為原點(diǎn)的空間袖肥,攝像機(jī)所在的位置就是觀察空間的原點(diǎn)。正因?yàn)槿绱苏窭停^察空間的坐標(biāo)系往往和世界坐標(biāo)椎组、模型坐標(biāo)是相反的。

屏幕空間

其他三個(gè)空間都是三維坐標(biāo)系历恐,而屏幕空間是一個(gè)二維空間寸癌,觀察空間向屏幕空間轉(zhuǎn)換专筷,就叫做投影。但它們之間還有一次轉(zhuǎn)換蒸苇,叫做裁剪空間轉(zhuǎn)換磷蛹。

裁剪空間

模型能否被渲染,取決于相機(jī)的是視野范圍溪烤,這通過相機(jī)的視錐體來定義味咳,視錐體類似于一個(gè)梯形空間,通過設(shè)置最近距離檬嘀、最遠(yuǎn)距離以及視野角度來定義視錐體的范圍槽驶。模型只有在視錐體范圍內(nèi)才能被渲染。

觀察空間經(jīng)過一個(gè)透視投影的操作鸳兽,將所有頂點(diǎn)變換到裁剪空間內(nèi)掂铐,視錐體作為裁剪空間的一部分,決定了相機(jī)可以看到的空間揍异,裁剪空間的存在堡纬,是為了方便對(duì)圖元進(jìn)行裁剪。


a4.png
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末蒿秦,一起剝皮案震驚了整個(gè)濱河市烤镐,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌棍鳖,老刑警劉巖炮叶,帶你破解...
    沈念sama閱讀 212,599評(píng)論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異渡处,居然都是意外死亡镜悉,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,629評(píng)論 3 385
  • 文/潘曉璐 我一進(jìn)店門医瘫,熙熙樓的掌柜王于貴愁眉苦臉地迎上來侣肄,“玉大人,你說我怎么就攤上這事醇份〖诠” “怎么了?”我有些...
    開封第一講書人閱讀 158,084評(píng)論 0 348
  • 文/不壞的土叔 我叫張陵僚纷,是天一觀的道長(zhǎng)矩距。 經(jīng)常有香客問我,道長(zhǎng)怖竭,這世上最難降的妖魔是什么锥债? 我笑而不...
    開封第一講書人閱讀 56,708評(píng)論 1 284
  • 正文 為了忘掉前任,我火速辦了婚禮,結(jié)果婚禮上哮肚,老公的妹妹穿的比我還像新娘登夫。我一直安慰自己,他們只是感情好允趟,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,813評(píng)論 6 386
  • 文/花漫 我一把揭開白布恼策。 她就那樣靜靜地躺著,像睡著了一般拼窥。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上蹋凝,一...
    開封第一講書人閱讀 50,021評(píng)論 1 291
  • 那天鲁纠,我揣著相機(jī)與錄音,去河邊找鬼鳍寂。 笑死改含,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的迄汛。 我是一名探鬼主播捍壤,決...
    沈念sama閱讀 39,120評(píng)論 3 410
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼鞍爱!你這毒婦竟也來了鹃觉?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,866評(píng)論 0 268
  • 序言:老撾萬榮一對(duì)情侶失蹤睹逃,失蹤者是張志新(化名)和其女友劉穎盗扇,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體沉填,經(jīng)...
    沈念sama閱讀 44,308評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡疗隶,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,633評(píng)論 2 327
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了翼闹。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片斑鼻。...
    茶點(diǎn)故事閱讀 38,768評(píng)論 1 341
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖猎荠,靈堂內(nèi)的尸體忽然破棺而出坚弱,到底是詐尸還是另有隱情,我是刑警寧澤关摇,帶...
    沈念sama閱讀 34,461評(píng)論 4 333
  • 正文 年R本政府宣布史汗,位于F島的核電站,受9級(jí)特大地震影響拒垃,放射性物質(zhì)發(fā)生泄漏停撞。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 40,094評(píng)論 3 317
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望戈毒。 院中可真熱鬧艰猬,春花似錦、人聲如沸埋市。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,850評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽道宅。三九已至食听,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間污茵,已是汗流浹背樱报。 一陣腳步聲響...
    開封第一講書人閱讀 32,082評(píng)論 1 267
  • 我被黑心中介騙來泰國(guó)打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留泞当,地道東北人迹蛤。 一個(gè)月前我還...
    沈念sama閱讀 46,571評(píng)論 2 362
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像襟士,于是被迫代替她去往敵國(guó)和親盗飒。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,666評(píng)論 2 350

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