很多时候我们需要在three.js应用中用到文字,这里有几种方法可以这样做。
1. DOM+CSS
用HTML来添加文字通常是最简单快捷的方式。这种方法是介绍three.js覆盖例子中最常用的。
添加内容到一个div
<div id="info">Description</div>
用css来绝对定位文字到一个位置。如果是全屏展示three.js应用,那么你需要使用z-index来确保文字展示在所有元素之上。
#info {
position: absolute;
top: 10px;
width: 100%;
text-align: center;
z-index: 100;
display:block;
}
2. 使用Textuer在canvas上绘制文字
如果你希望在three.js场景中的平面上轻松绘制文本,请使用此方法。
3. 在您最喜欢的3D应用程序中创建一个模型并导出到three.js
如果您喜欢使用3d应用程序并将模型导入到three.js,请使用此方法。
4. 程序几何文本
如果你只想使用纯粹的three.js或者是创建一个程序化的动态的文字几何体,你可以使用THREE.TextGeometry的实例
new THREE.TextGeometry( text, parameters );
为了能让上面的代码工作,你的TextGeometry需要一个THREE.Font的实例来设置”font”参数。请前往TextGeometry了解为什么这样做,其他参数的描述,以及three.js本身自带的JSON字体列表。
例子:
WebGL / geometry / text
canvas / geometry / text
WebGL / shadowmap
如果这些字体让你不满意,或者您想要使用的字体不在,这儿有一个教程,其中包含一个用于混合器的python脚本,它可以将文本导出为Three.js的JSON格式:http://www.jaanga.com/2012/03/blender-to-threejs-create-3d-text-with.html