webgl之创建三维文本,重点是实现中文字体的输出

首先,你要拥有将ttf格式的字体(网上随便找个ttf的字体吧),转换成js文件。当然只还得依靠于gihub提供的插件(下载地址:https://github.com/gero3/facetype.js)

第二步,你就是需要把它引用到你的threejs中。当然你还得确保他有中文字体吧!,最最简单的方法就是打开js,然后随便翻几页,看看有没有中文字体咯!

<script type="text/javascript" src="fonts/FangSong_Regular.typeface.js"></script>
还可以有很多,记住,必须把格式改成(xxxxxxxx.typeface.js)

<script type="text/javascript" src="fonts/bitstream_vera_sans_mono_roman.typeface.js"></script>
<script type="text/javascript" src="fonts/helvetiker_regular.typeface.js"></script>
<script type="text/javascript" src="fonts/helvetiker_bold.typeface.js"></script>


第三步,我就不细述,怎么在threejs中写代码,直接附上代码;

 /*设置字体*/
        var text1;
     
        var controls2 = new function () {

            this.size = 80;
            this.height = 30;
            this.bevelThickness = 2;
            this.bevelSize = 0.5;
            this.bevelEnabled = true;
            this.bevelSegments = 3;
            this.bevelEnabled = true;
            this.curveSegments = 12;
            this.steps = 1;
            this.font = 'fangsong_gb2312';//注意,这个要与浏览器运行时F12中的object相一致。
            this.weight = "normal";
//            this.style = "italics";

            this.asGeom = function () {
                // remove the old plane
                scene.remove(text1);
                // create a new one

                var options = {
                    size: controls2.size,
                    height: controls2.height,
                    weight: controls2.weight,
                    font: controls2.font,
                    bevelThickness: controls2.bevelThickness,
                    bevelSize: controls2.bevelSize,
                    bevelSegments: controls2.bevelSegments,
                    bevelEnabled: controls2.bevelEnabled,
                    curveSegments: controls2.curveSegments,
                    steps: controls2.steps
                };

                console.log(THREE.FontUtils.faces);
                text1 = createText(new THREE.TextGeometry("GAP", options));

                text1.position.x = -500;
                text1.position.y = 100;
                text1.position.z = 900;
                scene.add(text1);

            };

        }

        controls2.asGeom();

这里需要说的

 this.font = 'fangsong_gb2312';这个名字的取法应该跟浏览器中的相同!

然后,就可以愉快的使用中文输出啦!!!!效果如下:

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值