linaCharts开发笔记:Three.js导入obj和使用中文
生活随笔
收集整理的這篇文章主要介紹了
linaCharts开发笔记:Three.js导入obj和使用中文
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
直接進入主題,首先是導入中文字體,Three.js自帶只支持顯示3D的英文,如果需要使用中文,需要自己導入。
一、選一個你喜歡的字體,也就是ttf文件,盡量選小一點的,不然轉換成的js文件也會非常大。
二、下載facetype.js,地址:
https://github.com/gero3/facetype.js
然后運行index.html,界面如下:
直接將ttf文件轉換為js文件,比如我生成的 FZYaoTi_Regular.js
三、直接使用代碼如下:
var loader = new THREE.FontLoader();loader.load( 'lib/font/FZYaoTi_Regular.js', function ( font ) {var text_style = {font: font,size: 4,height: 1,curveSegments: 12,//曲線上點的數量bevelThickness: 0.1, //文本斜面深度bevelSize: 0.1, //斜面離輪廓的距離bevelEnabled: true //是否打開曲面}var textGeo = new THREE.TextGeometry( "莉娜醬", text_style );var textMaterial = new THREE.MeshPhongMaterial( {color: 0xB3B3B3} ); var mesh = new THREE.Mesh( textGeo, textMaterial );//對于文字,先設置lookat和先設置position是不一樣的mesh.lookAt(new THREE.Vector3(100, 0, 150));mesh.position.set( 20, -4, 30 ); scene.add( mesh );}); 特別說明,一定要先設置文字的lookAt再設置position,如果反過來的話,文字出現和你想象不一樣的結果(比如會自旋轉一個角度)
然后,使用obj和mtl:
一、首先用3dmax生成模型的.obj和.mtl文件,我是放在model/下的,后面會設置路徑
二、導入相關js
<script type="text/javascript" src="lib/MTLLoader.js"></script><script type="text/javascript" src="lib/OBJLoader.js"></script>三、代碼如下:var mtlLoader = new THREE.MTLLoader(); mtlLoader.setPath( 'model/' ); mtlLoader.load( 'test8.mtl', function( materials ) { materials.preload(); var objLoader = new THREE.OBJLoader(); objLoader.setMaterials( materials ); objLoader.setPath( 'model/' ); objLoader.load( 'test8.obj', function ( object ) { object.position.set(0,0,0);object.scale.set(2,2,2);scene.add( object ); }); }); 需要注意,有時候導入的模型并不在中心,這時候需要在3dmax中將模型的位置調到0,0,0再導出
總結
以上是生活随笔為你收集整理的linaCharts开发笔记:Three.js导入obj和使用中文的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 中石油布局天然气商储 天然气国家储备有望
- 下一篇: storm the 少儿英语_storm