WebGL/Opengl標(biāo)準(zhǔn)化設(shè)備坐標(biāo)(NDC)
如果你看得懂下面前兩個(gè)例子,給定三個(gè)坐標(biāo)點(diǎn),為什么渲染出這樣的圖形,說明你是老鳥,不用看這篇文章。


標(biāo)準(zhǔn)化設(shè)備坐標(biāo) :( Normalized Device Coordinates, NDC )
標(biāo)準(zhǔn)化設(shè)備坐標(biāo)是一個(gè) x、y 和 z 值在 -1.0 到 1.0 的一小段空間。任何落在范圍外的坐標(biāo)都會(huì)被丟棄/裁剪,不會(huì)顯示在你的屏幕上。下圖省略z軸:

代碼運(yùn)行渲染如下:

很多介紹標(biāo)準(zhǔn)化坐標(biāo)就是上面這句話,三個(gè)坐標(biāo)軸取值范圍都是[-1, 1],任何落在范圍外的坐標(biāo)都會(huì)被丟棄/裁剪。定義很簡單,但表現(xiàn)的表象有很多,如開頭的那兩個(gè)例子。根本原因是這三個(gè)范圍組成的是一個(gè)立方體區(qū)域:如下圖

下圖是沿z軸正式圖:

接下來演示開頭那兩個(gè)例子為什么演示那樣:
第一個(gè)案例的三個(gè)頂點(diǎn):
(0,0.5,0), (0.5,-0.5,0), (-0.5,-0.5,1.5)
渲染如下:




原因是 (-0.5,-0.5,1.5)這個(gè)點(diǎn)的z坐標(biāo)超出1了,被剪裁掉了。
再演示一下第二案例:
(0,0.5,0), (1.5,-0.5,0), (-1.5,-0.5,1.5)


標(biāo)簽: