上一篇文章记录了webgl运行的基础内容。
这一篇记录一下文字的创建。
在很多文章中,都详细的说明了3d引擎里要创建文字,可以有很多方法,比如纯div和css。
不过我还是更喜欢pure webgl。所以就采用了大多数引擎采用的方法。
其实文字和图片的创建逻辑差不多。
都是通过webgl创建纹理。然后绑定图像,启动后将纹理配置入uniform变量,最后在片元着色器里通过uv进行采样。
不同的地方是:
- 图片的纹理用的是html-image-element
- 文字的纹理用的是html-canvas-element
众所周知,canvas本身一无所有,需要用户创建内容。
所以我们就可以在canvas上创建文字,最后注入webgl就可以了。
在canvas上绘制文字也非常简单,就是filltext方法。
不过有个难点,如果想要让纹理可以进行mipmap采样。那么canvas的宽高就要设置为2的幂次方。
还有一个东西没有实现,就是多行文本。这个等后期有时间再弄。
好了,就写这么点。
下一篇记录正方体的创建。