HTML5 WebGL

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

姓名:武风龙英文名字:Alon网名:佐笾已逝现职公司:北京CITV中视互动传媒集团北京帷幄昊合数字娱乐科技有限公司开发经验:J2EE,Android,WebGL,Html5sina微博:@武风龙IT主页:当年IDsoft的卡马克他们,发明了游戏引擎这个概念之后,人们开始用引擎来开发大量的游戏,当游戏的画面拟真度越来越高时,仅仅靠CPU来进行图形图像处理已经不能满足游戏的需要了。于是,人们开始尝试用硬件加速卡来协助CPU进行3D图像处理,此举在技术上和商业上都大获成功。早期比较出名的比如Voodoo等。于是,大量的加速卡及GPU(GraphicProcessingUnit)设计公司开始迅速推出自己的设计,如ATI(刚被AMD收购),NVidia,PowerVR(市场萎缩,转向嵌入式系统的3D加速单元,参考PowerVRMBX及OpenGLES)等开始展露头角。问题随之出现:每家公司可能都有自己的设计方案,那么游戏和3D应用程序开发者所设计开发出来的软件就很难在不同的厂商之间的加速卡上运行,很难很好的使用这些加速卡的加速功能。也就是说,这类应用程序的移植性将会降低。要解决移植性的问题,可以通过将加速卡功能抽象出来,统一定义接口的形式来实现。于是,人们采用了典型的分层模式(参阅:设计模式),将一套应用程序分为3个层次:应用程序层-硬件抽象层-硬件层其中,应用层就是游戏和应用软件开发人员的开发主体,他们调用统一的加速卡API来进行上层开发,而不用考虑移植性问题;硬件抽象层则抽象出硬件的加速功能,进行有利于应用层开发的封装,并向应用层开放API;硬件层将硬件驱动提供给抽象层,以实现抽象层加速功能的有效性。这个结构有效的将游戏和应用程序与硬件加速卡隔离开,这就很好的提升了程序的移植能力。并且,还有一个好处就是,开发人员的知识复用率得到提高,从而降低了这类软件的开发门槛。于是,众多的加速卡厂家就联合起来,形成一个组织,共同制定出了这个硬件抽象层的接口标准,这就是OpenGL。而出于同样的目的,微软也定义了一套平行的类似于OpenGL的接口集合,就叫做Direct3D。What?OpenGL是个专业的图形程序接口,是一个功能强大,调用方便的底层图形库。OpenGL的前身是SGI公司为其图形工作站开发的IRISGL。IRISGL是一个工业标准的3D图形软件接口,功能虽然强大但是移植性不好,于是SGI公司便在IRISGL的基础上开发了OpenGL。OpenGL的英文全称是“OpenGraphicsLibrary”,顾名思义,OpenGL便是“开放的图形程序接口”。DirectX是一种应用程序接口,它可让以windows为平台的游戏或多媒体程序获得更高的执行效率,加强3d图形和声音效果,并提供设计人员一个共同的硬件驱动标准,让游戏开发者不必为每一品牌的硬件来写不同的驱动程序,也降低用户安装及设置硬件的复杂度。这样说是不是有点不太明白,其实从字面意义上说,Direct就是直接的意思,而后边的X则代表了很多的意思,从这一点上我们就可以看出DirectX的出现就是为了为众多软件提供直接服务的。Direct3D(简称:D3D)是微软公司在MicrosoftWindows操作系统上所开发的一套3D绘图编程接口,是DirectX的一部份,目前广为各家显示卡所支援。与OpenGL同为电脑绘图软体和电脑游戏最常使用的两套绘图编程接口之一。Direct3D是基于微软的通用对象模式COM(CommonObjectMode)的3D图形API。它是由微软Direct3D界面(Microsoft)一手树立的3DAPI规范,微软公司拥有该库版权,它所有的语法定义包含在微软提供的程序开发组件的帮助文件、源代码中。Direct3D是微软公司DirectXSDK集成开发包中的重要部分,适合多媒体、娱乐、即时3D动画等广泛和实用的3D图形计算。自1996年发布以来,Direct3D以其良好的硬件兼容性和友好的编程方式很快得到了广泛的认可,现在几乎所有的具有3D图形加速的主流显示卡都对Direct3D提供良好的支持。但它也有缺陷,由于是以COM接口形式提供的,所以较为复杂,稳定性差,另外,目前只在Windows平台上可用。OpenGL只是图形函数库。DirectX包含图形,声音,输入,网络等模块。OpenGL稳定,可跨平台使用。DirectX仅能用于Windows系列平台,包括WindowsMobile/CE系列以及XBOX/XBOX360。=Main_Page2010-6-25日在斯坦福大学WebGL第一阵营成立,所有的讲座和视频都是免费的。2010年12月14日斯里兰卡WebGL第二阵营成立,所有的讲座和视频都是免费的。2011年6月10日加利福尼亚州即将成立WebGL第三阵营。WebGL解决了现有Web交互式三维动画问题第一,它通过HTML脚本本身实现Web交互式三维动画的制作,无需任何浏览器插件支持;第二,它利用底层的图形硬件加速功能进行的图形渲染,是通过统一的、标准的、跨平台的OpenGL接口实现的。Shader(着色器)Shader(着色器)是用来实现图像渲染的用来替代固定渲染管线的可编辑程序。Shader分为VertexShader顶点着色器和FragmentShader像素着色器两种(注:两种着色器在不同的实现中略有不同)。其中VertexShader主要负责顶点的几何关系等的运算,FragmentShader主要负责片源颜色等的计算。着色器替代了传统的固定渲染管线,可以实现3D图形学计算中的相关计算,由于其可编辑性,可以实现各种各样的图像效果而不用受显卡的固定渲染管线限制。这极大的提高了图像的画质。Direct3D和OpenGL都使用了以下三种着色器:顶点着色器:处理每个顶点,将顶点的空间位置投影在屏幕上,即计算顶点的二维坐标。它也负责顶点的深度缓冲(Z-Buffer)的计算。几何着色器:可以从多边形网格中增删顶点。像素着色器(Direct3D):常常又称为片断着色器(OpenGL),处理来自光栅化器的数据。像素着色器常用来处理场景光照和与之相关的效果,如凸凹纹理映射和调色。3D加速卡的主要功能就是协助CPU,负责将内存中的矢量图像数据(顶点集合)进行变换、光照计算、裁剪等操作,最后经过光栅化将图像呈现给人眼。这个过程就叫做渲染。局部坐标变换-世界坐标变换-观察坐标变换-背面消除-光照-裁剪-投影-视口计算-光栅化法线向量(或简称为法线)是一条垂直于某个表面的方向向量。对于平表面而言,它上面每个点的垂直方向都是相同的。但是,对于普通的曲面而言,表面上每个点的法线方向可能各不相同。在OpenGL中,既可以为每个多边形指定一条法线,也可以为多边形的每个顶点分别指定一条法线。同一个多边形的顶点可能共享同一条法线(平表面),也可能具有不同的法线(曲面)。除了顶点之外,不能为多边形的其他地方分配法线。WebGLCanvasMatrix.jsWebGLUC3DLStormEngineCCurve3DCubicVRCopperLichtGammaJSGLGEGTWJS3DSceneJSO3DOSG.JSPhiloGLPre3dSpiderGLPre3dTDLThree.jsX3DOMEnergizeGLCOLLADA是面向交互式3D应用程序的基于XML的数字资产交换方案,使3D创作应用程序可以自由地交换数字资产而不损失信息-使多种DCC和3D处理软件包可以组合成强大的工具链管道。独特的交互模式提供了广泛全面的视觉编译。COLLADAFX支持使用OpenGLES着色语言创作和封装着色器,以使一流的3D创作工具可以有效协作创建OpenGL/OpenGLES应用程序和资产。COLLADA是一个开放的标准,最初用于3D软件数据交换,由SCEA发起,现在则被许多著名厂家支持如Autodesk、XSI等。COLLADA不仅仅可以用于建模工具之间交换数据之用,也可以作为场景描述语言用于小规模的实时渲染。因为COLLADADOM拥有丰富的内容用于表现场景中的各种元素,从多边形几何体到摄像机无所不包。我们可以通过COLLADADOM库来进行场景文件的读取与处理操作。python};

1 / 24
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功