2014-01-10 47 views
3

“正常”我得到了以下错误three.js所 - 遗漏的类型错误:无法读取属性未定义

Uncaught TypeError: Cannot read property 'normal' of undefined 

在我的网页运行下面的代码后:

var text_geo = new THREE.TextGeometry("H", {size:20}); 
var text_mat = new THREE.MeshBasicMaterial({color:"white", overdraw:true}); 
var txt = new THREE.Mesh(text_geo, text_mat); 

当我使用Chrome调试器,它会将问题追溯到three.js源代码文件。有没有办法解决这个问题?
谢谢

+0

哪里是“正常'在你的代码? – FRECIA

+0

我的代码中没有“正常”任何地方。我认为这是TextGeometry的其中一个属性的默认值。 – user3179985

+0

法线是几何体每个面的属性。每个脸部具有三个顶点,每个脸部具有相关的法线或一个法线。该错误表明不会为几何图形生成面。 –

回答

7

我遇到了同样的问题,您应该下载一个字体让THREE.js使用它。作为默认字体是helvetiker,它位于here,将其添加到页面就像常规的JavaScript

<script src="http://mrdoob.github.com/three.js/examples/fonts/helvetiker_regular.typeface.js"></script>

可以肯定,您加载three.js所后的字体。

如果你想使用另一种类型的字体,你可以下载相应的字体,并设置一个weight属性:

<script src="http://mrdoob.github.com/three.js/examples/fonts/helvetiker_bold.typeface.js"></script>

var text_geo = new THREE.TextGeometry("H", {size:20, weight: "bold"});

r.54

相关问题