我通常使用TextGeometry在webgl上下文中编写文本,但我有一个错误(helvetiker_bold.typeface.js:1未捕获的ReferenceError:_typeface_js未定义),如此问题here。所以人们说TextGeometry API再次改变,并且更好地使用“THREE.FontLoader()”,如link。
但我的代码中有另一个错误,因此错误输出为:
XMLHttpRequest无法加载file:///home/douglas/Projetos/SDCampE/view/fonts/helvetiker_bold.typeface.json。交叉源请求仅支持协议方案:HTTP,数据,chrome,chrome-extension,HTTPS,chrome-extension-resource。
我应该为此文件创建服务器吗?我尝试通过JSON文件和普通的JavaScript文件输入字体,我也有同样的错误。
还有其他方法可以在WebGL中编写简单的3D文本吗?
我尝试运行chrome.exe --allow-file-access-from-files
,但错误仍在继续。
这是我的代码:
var loader = new THREE.FontLoader();
loader.load( 'view/fonts/helvetiker_bold.typeface.json', function ( font ) {
var textGeo = new THREE.TextGeometry( "THREE.JS", {
font: font,
size: 200,
height: 50,
curveSegments: 12,
bevelThickness: 2,
bevelSize: 5,
bevelEnabled: true
});
textGeo.computeBoundingBox();
var centerOffset = -0.5 * ( textGeo.boundingBox.max.x - textGeo.boundingBox.min.x );
var textMaterial = new THREE.MeshPhongMaterial( { color: 0xff0000, specular: 0xffffff } );
var mesh = new THREE.Mesh( textGeo, textMaterial );
mesh.position.x = centerOffset;
mesh.position.y = FLOOR + 67;
mesh.castShadow = true;
mesh.receiveShadow = true;
scene.add( mesh );