WebGL是針對(duì)Web上3D圖像的API。歷史上,MoziUa、Opera、Google等瀏覽器廠商曾分另提供了試驗(yàn)性的JavaScript3DAPI。今天,WebGL正向規(guī)范化方向邁進(jìn),而越來越多的HTML5瀏覽器加入了支持它的陣營。WebGL的規(guī)范化進(jìn)程由瀏覽器廠商和The Khronos Group(負(fù)責(zé)OpenGL的組織,OpcnGL是1992年創(chuàng)建的跨平臺(tái)3D繪圖標(biāo)準(zhǔn))共同推進(jìn)。OpenGL規(guī)范的當(dāng)前版本為第4版,它已被廣泛應(yīng)用于游戲和計(jì)算機(jī)輔助設(shè)計(jì)中,并成為了微軟Direct3D的有力競爭對(duì)手。
我們?cè)诳吹搅嗽赾anvas元素中調(diào)用getContextr2cH,可以獲得2D繪圖的上下文。亳無疑問,這為其他類型的繪圖上下文提供了方便之門。WebGL使用的同樣是canvas元素,只不過獲取的是3D上下文。由于還在試驗(yàn)期,所以調(diào)用getContexU)時(shí),傳入的參數(shù)需要使用瀏覽器廠商指定的名稱作為前綴(moz-webgl、webk1t-3d等例如,在支持WebGL的Firefox版本中,可以在canvas元素中調(diào)用getContextrmoz-webgr)來獲取3D上下文。這里調(diào)用getContextO返回的API對(duì)象與2Dcanvas的有所不同,因?yàn)樗峁┑氖荗penGL綁定,而非繪圖操作。WebGL版本的canvas上下文管理的是紋理和頂點(diǎn)緩沖區(qū),而不是調(diào)用函數(shù)來繪制線條 和填充形狀。