javascript - Three.js:手动创建的几何体

标签 javascript three.js

我正在尝试从头开始创建一个 THREE.Geometry。 当我尝试使用它(在 THREE.Mesh 中)时,我得到

TypeError: faces3 is undefined @ three.js:20426

几何图形已创建并在屏幕上可见,但执行停止

这是我正在使用的代码:

makePlane = function(width, height)
{
    var geom = new THREE.Geometry();

    var v0 = new THREE.Vector3(0, 0, 0);
    var v1 = new THREE.Vector3(width, 0, 0);
    var v2 = new THREE.Vector3(width, height, 0);

    geom.vertices.push(v0);
    geom.vertices.push(v1);
    geom.vertices.push(v2);

    var face = new THREE.Face3(0, 1, 2);

    geom.faces.push(face);

    return geom;
};

我还需要做什么才能使其正常工作?

更新: 在 R62 中仍然发生。它也发生在由 Three.js 内置的 PlaneGeometry 类生成的几何体上,所以这可能是一个 Three.js 错误。我会提交报告。

我还应该提到,执行实际上没有停止,这是我的一个错误。我刚刚收到错误,如果没有问题的话,我不应该有任何错误。

更新 2: 记录了一个问题 here ,但已关闭。

最佳答案

根据您在进一步计算步骤中所做的操作,您可能需要在返回 geom-Object 之前添加这些行:

geom.computeCentroids();
geom.computeFaceNormals();
geom.computeVertexNormals(); 

关于javascript - Three.js:手动创建的几何体,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19532128/

相关文章:

javascript - 如何安全地使用 JSON.stringify

javascript - 我如何改进这个 Javascript,以便将事件附加到页面中的所有元素?

javascript - 将OBJ文件加载到Three.js中的过程

javascript - three.js中如何控制TrackBallControls的旋转

javascript - Three.js - 每 x 秒生成一个对象并将每个对象向前移动(沿 Z)

javascript - 在 Three.js 中将 Geometry 转换为 BufferGeometry 是否会增加顶点数?

javascript - 从 JS 对象到 JSON Angular

javascript - 主下拉菜单和 7 个子下拉菜单同名重置

javascript - 多个 OnBeforeUnload

node.js - 使用 Node 在 THREE.js 中加载纹理