示例html
当执行大量绘制任务时,WebGL的性能约是canvas的3~5倍😲(数据供参考)git
示例github
以(0,1,0)为例,它的齐次向量为(0,0,1,1),变化过程以下: web
当两个表面重叠时,前面的模型会挡住后面的模型 算法
为每一个顶点指定一个纹理坐标(在(0,0)与(1,1,)的正方形中),而后传入纹理对象。片元着色器拿到的是对应片元的内插后的纹理坐标,就利用这个纹理坐标去纹理对象上取颜色,再画到片元上。canvas
混合机制与深度检测相似,也发生在试图向某个已填充的像素填充颜色时。深度检测经过比较z值来肯定像素的颜色,而混合机制会将两种颜色混合less
WebGL 没有为光照提供任何内置的方法,须要开发者在着色器中实现光照算法 光是有颜色的,模型也是有颜色的。在光照下,最终物体呈现的颜色是二者共同做用的结果。工具
复杂模型可能有包括子模型,子模型可能与父模型有相对运动。性能
它作的是一件简单的事,它仅仅运行用户提供的两个方法,一个顶点着色器和一个片段着色器,去绘制点,线和三角形。webgl
作复杂的三维效果,须要复杂的“着色器”。全部空间坐标计算,着色器的设计,都须要程序本身作复杂的算法处理。
目前最流行的 WebGL库 ThreeJs
比较成熟的 WebGL 调试工具是WebGL Inspector
WebGL常常被当成3D API,人们总想“我可使用WebGL和一些神奇的东西作出炫酷的3D做品”。 事实上WebGL仅仅是一个光栅化引擎,它能够根据你的代码绘制出点,线和三角形。想要利用WebGL完成更复杂任务,取决于你可否提供合适的代码,组合使用点,线和三角形代替实现。