首页客户案例企业网站建设外贸独立站SEO优化小程序+APP开发自媒体运营关于动态联系咨询

用WebGL绘制简单文本

WebGL本身只是一个3D接口,并没有提供任何应用层的方法。当然这就包括的文字的绘制问题,绘制其它立体图像我们都是从图形的数学模型中计算出的顶点数据,那文字怎么办呢?对于文字是无法自己计算的,我们需要先得到文字的点阵,再来计算3D顶点坐标。 完整实例:WebGL简单文本绘制(建议F11全屏查看) 这里为了方便起见使用了SimpleWebGL和它的Matrix插件。这个效果的重点在于数据的处理,使用什么WebGL库并不重要。这只是个简单的效果,所以我使用了简单的方法。首先要获取文字的点阵相关的信息,需要创建一个额外的Canvas在上面绘制文字。这个例子中我是直接使用贴图的方式来做的,如果有必要也可以在JS中自己分析顶点数据做成其它模型。下面是构造贴图部分的代码 //创建Canvas,并设置大小 var text=document.createElement("canvas"); text.width=512,text.height=256; //对其绘制文字 (function(g){ //设置文字属性 g.textBaseline="middle",g.textAlign="center"; g.font="128px 楷体",g.fontStyle="rgba(0,0,0,0.3)"; //设置文字渐变 g.fillStyle=g.createLinearGradient(0,0,text.width,0); g.fillStyle.addColorStop(0,"rgba(255,255,0,0.5)"); g.fillStyle.addColorStop(0.5,"rgba(0,255,255,0.5)"); g.fillStyle.addColorStop(1,"rgba(255,0,255,0.5)"); //绘制文字 g.fillText("次碳酸钴",256,128); })(text.getContext("2d")); //放入Texture2D对象 new Texture2D(text,"RGBA").bind(1); 这样贴图数据就准备好了,然后要有一个顶点模型才能往上面贴图呀。所以我们还需要生成一个平面或一个物体用来贴图,这里我生成一个点阵长方体来贴图,绘制时使用线条描绘。下面是这个长方体的生成代码 //做出一个点阵型的长方体,用来往上面贴图 var position=[]; (function(){ var i,j,w=1<<7,h=1<<6,k=Math.max(w,h); for(i=-w;i<=w;i++)for(j=-h;j<=h;j++) position.push(i/k,j/k,0.1, i/k,j/k,-0.1); })(); 着色器的代码也需要看看,不过我就不介绍了。只是基本的贴图代码而已,在片段着色器中把顶点的坐标映射到贴图的坐标上取颜色就行了。

日期:2015年04月21日

标签: 广州网站设计公司 、 广州网站设计 、 广州网站建设公司 、 广州网站建设 、 广州网站制作公司 、 广州网站制作 、 高端网站设计 、 高端网站建设 、 广州高端网站设计 、 广州高端网站建设

获取您的项目定制及优化报价。

* 为广州天河、白云、海珠、番禺、花都、南沙区提供网站建设服务。
微信二维码15876521776免费获取诊断报告