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