歡迎前往個(gè)人博客 駑馬點(diǎn)滴 和視頻空間 嗶哩嗶哩-《挨踢日志》
這一章節(jié)的目的:讓讀者了解模型中的一個(gè)點(diǎn),是如何映射到屏幕上的一個(gè)點(diǎn)措伐。這個(gè)過程當(dāng)中涉及的各個(gè)空間及其坐標(biāo)變換。
4.1 農(nóng)場(chǎng)游戲
這里主要引出例子:農(nóng)場(chǎng)里有一只叫妞妞的牛,要講述它的眼睛是如何映射到屏幕上的某個(gè)位置。
4.2 笛卡爾坐標(biāo)系
介紹了笛卡爾坐標(biāo)的由來:笛卡爾生病势篡,在床上觀察如何描述蒼蠅的位置。而引出了被稱為笛卡爾坐標(biāo)系(Cartesian Coordinate System)的東西模暗。
幾個(gè)基本概念:
基矢量:多維空間中禁悠,可以作為基的坐標(biāo)軸。
標(biāo)準(zhǔn)正交基:基矢量相互垂直兑宇,且長(zhǎng)度為1碍侦。
正交基:基矢量相互垂直,長(zhǎng)度不全為1隶糕。
講述了左手系和右手系的概念瓷产。Unity 基本使用左手系,除了觀察空間(View Space枚驻,或者說 Camera Space)使用的右手系(和 OpenGL 保持一致)濒旦。
4.3 點(diǎn)和矢量
講述點(diǎn)和矢量的概念,以及二者的區(qū)別再登。
介紹了矢量相關(guān)的運(yùn)算疤估。
4.4 矩陣
矩陣的定義、運(yùn)算霎冯。
單位矩陣(identity matrix)、轉(zhuǎn)置矩陣(transported matrix)钞瀑、逆矩陣(inverse matrix)沈撞、正交矩陣(orthogonal matrix)等定義。
其中雕什,正交矩陣最重要的特性是其逆矩陣等于其轉(zhuǎn)置矩陣缠俺。這個(gè)特性能夠非常方便的求解逆矩陣,帶來運(yùn)算效率的極大提升贷岸。
4.5 矩陣的幾何意義:變換(transform)
什么是變換壹士?變換一般包含縮放、旋轉(zhuǎn)和平移偿警。
什么是齊次坐標(biāo)躏救?教程中的齊次坐標(biāo)是一個(gè)四維矢量。在三維坐標(biāo)上增加第四維坐標(biāo),并設(shè)置對(duì)應(yīng)的值而成(點(diǎn)的話盒使,設(shè)置為 1崩掘,矢量設(shè)置為 0)。
齊次坐標(biāo)表示的平移變換少办、旋轉(zhuǎn)變換苞慢、縮放變換的矩陣形式。
同時(shí)給出這些變換矩陣的逆矩陣英妓。
4.6 坐標(biāo)空間
引入坐標(biāo)空間挽放,和定點(diǎn)坐標(biāo)空間的變換過程。
在父空間 P 中蔓纠,有一個(gè)子空間 C辑畦,C 的原點(diǎn)為 Co,基矢量 為 Cx Cy Cz贺纲,
那么在 C 中的任意一點(diǎn) Pc(a, b, c) 變換到父空間 P 的變換矩陣為:
M(c->p) 是一個(gè) 4X4 矩陣航闺,矩陣左上角 3X3 矩陣恰好為 (Cx, Cy, Cz);
右上角3X1矩陣對(duì)應(yīng) Co猴誊;矩陣左下方 1X3 對(duì)應(yīng) (0, 0, 0) 潦刃;矩陣右下方為 (1);
為了解釋 Unity 中需要用到的多個(gè)坐標(biāo)空間:
模型空間(Model Space)(Local Space)(Object Space)
世界空間(World Space)
觀察空間(View Space)(Camera Space)
裁剪空間(Clip Space)
屏幕空間(Screen Space)
其中懈叹,模型空間變換到世界空間乖杠,需要用到模型變換,對(duì)應(yīng)矩陣 M
世界空間到觀察空間澄成,需要用到觀察變換胧洒,對(duì)應(yīng)矩陣 V
觀察空間到裁剪空間,需要用到投影變換墨状,對(duì)應(yīng)矩陣 P
裁剪空間到屏幕空間卫漫,需要用到屏幕映射。
其中只有觀察空間是右手系肾砂,其余都是左手系列赎。(Unity 當(dāng)中是如此)
4.7 法線變換
有些模型中會(huì)附帶法線數(shù)據(jù),如果從 A 空間變換到 B 空間時(shí)镐确,其變換 M(A->B)可能不是一個(gè)正交變換包吝,那么很可能會(huì)改變法線和表面的垂直特性。因此需要計(jì)算法線對(duì)應(yīng)的變換源葫。
4.8 Unity Shader 的內(nèi)置變量(數(shù)學(xué)篇)
介紹了 Unity 中的一些內(nèi)置的變換矩陣:
UNITY_MATRIX_MVP
UNITY_MATRIX_MV
UNITY_MATRIX_V
UNITY_MATRIX_P
UNITY_MATRIX_VP
UNITY_MATRIX_T_MV
UNITY_MATRIX_IT_MV
_Object2World
_World2Object
攝像機(jī)和屏幕參數(shù)(后續(xù)學(xué)習(xí)過程中再了解)
歡迎前往個(gè)人博客 駑馬點(diǎn)滴 和視頻空間 嗶哩嗶哩-《挨踢日志》