WebGL學習(2) — 坐標系統(tǒng)

WebGL使支持HTML<canvas>標簽的瀏覽器不安裝任何插件,便可以使用基于OpenGL ES 2.0的API在canvas中進行3D渲染筒占。WebGL程序由js控制代碼和計算機的圖形處理單元(GPU,Graphics Processing Unit)中執(zhí)行的渲染代碼(shader code)組成妻献。webgl元素可以和其他HTML元素混合浮声,并且會和頁面的其他部分或頁面背景相合成。

  • 需要理解的幾個概念
canvas: 畫布
vertex shader: 頂點著色器旋奢,用來存儲圖像的位置相關(guān)信息泳挥,如坐標、大小等
fragment shader: 片元著色器至朗,用來描述對象的顏色紋理等信息
buffer: 緩沖區(qū)屉符,通常情況下如果繪制多個點或復雜的紋理會特別使用到buffer object,其他情況下,圖形會在該區(qū)域進行緩沖矗钟,緩沖完成后顯示在屏幕上唆香。
  • 協(xié)同工作過程
協(xié)同工作過程

通過canvas獲取webgl的上下文 > vartex shader和fragment shader指定圖形的形狀和樣式 > 將圖形數(shù)據(jù)放入相應緩沖區(qū) > 繪制

  • 獲取webGL執(zhí)行環(huán)境
 + html
<canvas id="canvas"></canvas>
 + js
var canvas = document.getElementById('canvas');
// 獲取webgl執(zhí)行環(huán)境的上下文
var webgl = canvas.getContext('webgl');
// 實際上,getContext的參數(shù)可能為["webgl", "experimental-webgl","webkit-3d","moz-webgl"]中的任意一個吨艇,因此通常情況下在正式項目中躬它,需要對瀏覽器的兼容性進行處理。
  • 坐標系統(tǒng)
    webgl的三維坐標系統(tǒng)是笛卡爾坐標系中的右手坐標系东涡,具有x冯吓,y,z三個維度疮跑。右手坐標系如下圖:(箭頭指向為正軸方向)
右手坐標系
  • canvas與webgl坐標系對應關(guān)系(默認下)
canvas的中心點:webgl的坐標原點(0.0, 0.0, 0.0)
canvas x軸左右邊緣:webgl中x軸的-1.0和1.0
canvas y軸上下邊緣:webgl中y軸的1.0和-1.0
  • 關(guān)于-1.0和1.0
    webGL本質(zhì)上是基于光柵化的API组贺,而不是基于3D的API。webGL只關(guān)注兩個方面祖娘,即投影矩陣的坐標和投影矩陣的顏色失尖。使用webGL程序的任務(wù)是實現(xiàn)具有投影矩陣坐標和顏色的webGL對象。頂點著色器提供投影矩陣的坐標渐苏,片段著色器提供投影矩陣的顏色掀潮。無論目標圖形尺寸多大,其投影矩陣的坐標范圍始終是從-1.0到1.0琼富。
    笛卡爾坐標系以屏幕中心為原點胧辽,規(guī)范正交化后是-1到1,方便轉(zhuǎn)化為笛卡爾坐標計算公黑。

上一篇: WebGL學習(1) — 瀏覽器支持測試

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市摄咆,隨后出現(xiàn)的幾起案子凡蚜,更是在濱河造成了極大的恐慌,老刑警劉巖吭从,帶你破解...
    沈念sama閱讀 218,122評論 6 505
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件朝蜘,死亡現(xiàn)場離奇詭異,居然都是意外死亡涩金,警方通過查閱死者的電腦和手機谱醇,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,070評論 3 395
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來步做,“玉大人副渴,你說我怎么就攤上這事∪龋” “怎么了煮剧?”我有些...
    開封第一講書人閱讀 164,491評論 0 354
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經(jīng)常有香客問我勉盅,道長佑颇,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,636評論 1 293
  • 正文 為了忘掉前任草娜,我火速辦了婚禮挑胸,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘宰闰。我一直安慰自己茬贵,他們只是感情好,可當我...
    茶點故事閱讀 67,676評論 6 392
  • 文/花漫 我一把揭開白布议蟆。 她就那樣靜靜地躺著闷沥,像睡著了一般。 火紅的嫁衣襯著肌膚如雪咐容。 梳的紋絲不亂的頭發(fā)上舆逃,一...
    開封第一講書人閱讀 51,541評論 1 305
  • 那天,我揣著相機與錄音戳粒,去河邊找鬼路狮。 笑死,一個胖子當著我的面吹牛蔚约,可吹牛的內(nèi)容都是我干的奄妨。 我是一名探鬼主播,決...
    沈念sama閱讀 40,292評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼苹祟,長吁一口氣:“原來是場噩夢啊……” “哼砸抛!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起树枫,我...
    開封第一講書人閱讀 39,211評論 0 276
  • 序言:老撾萬榮一對情侶失蹤直焙,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后砂轻,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體奔誓,經(jīng)...
    沈念sama閱讀 45,655評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,846評論 3 336
  • 正文 我和宋清朗相戀三年搔涝,在試婚紗的時候發(fā)現(xiàn)自己被綠了厨喂。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 39,965評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡庄呈,死狀恐怖蜕煌,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情诬留,我是刑警寧澤幌绍,帶...
    沈念sama閱讀 35,684評論 5 347
  • 正文 年R本政府宣布颁褂,位于F島的核電站,受9級特大地震影響傀广,放射性物質(zhì)發(fā)生泄漏颁独。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,295評論 3 329
  • 文/蒙蒙 一伪冰、第九天 我趴在偏房一處隱蔽的房頂上張望誓酒。 院中可真熱鬧,春花似錦贮聂、人聲如沸靠柑。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,894評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽歼冰。三九已至,卻和暖如春耻警,著一層夾襖步出監(jiān)牢的瞬間隔嫡,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,012評論 1 269
  • 我被黑心中介騙來泰國打工甘穿, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留腮恩,地道東北人。 一個月前我還...
    沈念sama閱讀 48,126評論 3 370
  • 正文 我出身青樓温兼,卻偏偏與公主長得像秸滴,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子募判,可洞房花燭夜當晚...
    茶點故事閱讀 44,914評論 2 355

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

  • WebGL從2012年開始接觸荡含,后面因為開始專注前端其他方面的事情,慢慢地就把它給遺忘届垫。最近前端開始又流行起繪畫制...
    我不是傳哥閱讀 4,094評論 1 22
  • <轉(zhuǎn)>我也忘了轉(zhuǎn)自哪里,抱歉,感謝原作者 什么是Shader Shader(著色器)是一段能夠針對3D對象進行操作...
    星易乾川閱讀 5,591評論 1 16
  • 1 前言 一直想沿著圖像處理這條線建立一套完整的理論知識體系释液,同時積累實際應用經(jīng)驗。因此有了從使用AVFounda...
    RichardJieChen閱讀 5,666評論 5 12
  • 1.Xcode 8 Command + / 不能注釋 解決方法: 在終端輸入sudo /usr/libexec/x...
    默默學習閱讀 224評論 0 0
  • LIUQIN 學而思 20170606為孩子立界線day4 今天場景好生活化敦腔,感覺就是自家情形的翻版或原型。 場景...
    Sophie2liu閱讀 307評論 0 0