为啥我不能在 ThreeJS Typescript 项目中创建 Face3

Posted

技术标签:

【中文标题】为啥我不能在 ThreeJS Typescript 项目中创建 Face3【英文标题】:Why I can't create Face3 in ThreeJS Typescript project为什么我不能在 ThreeJS Typescript 项目中创建 Face3 【发布时间】:2021-08-18 09:23:32 【问题描述】:

我正在尝试使用 Face3 创建网格。我在打字稿项目中使用 Threejs。我面临几个问题。

const points = [
     new Face3(-1, 1, -1),//c
     new Face3(-1, -1, 1),//b
     new Face3(1, 1, 1),//a

     new Face3(1, 1, 1),//a
     new Face3(1, -1, -1),//d
     new Face3(-1, 1, -1),//c

     new Face3(-1, -1, 1),//b
     new Face3(1, -1, -1),//d
     new Face3(1, 1, 1),//a

     new Face3(-1, 1, -1),//c
     new Face3(1, -1, -1),//d
     new Face3(-1, -1, 1),//b
]
let geometry = new Geometry();
for (const point of points) 
     geometry.faces.push(point);

首先,我无法将此几何添加到网格中。它给了我一个错误,它不是 BufferGeometry

如果我尝试从 Geomtery 创建一个新的 BufferGeometry,我找不到属性 fromGeometry

如果这些功能已被弃用,那么确切的替代方案是什么?为什么没有适当的指南或说明可用? 有没有人可以建议我更好的解决方案。

【问题讨论】:

【参考方案1】:

THREE.Geometryr125 以来已从核心中删除并移至 examples/jsm/deprecated/Geometry.jsTHREE.Face 可以从同一个模块中导入。

请注意,不建议再使用THREE.Geometry。最好关注THREE.BufferGeometrythree.js 论坛上的以下主题提供了更多背景信息:https://discourse.threejs.org/t/three-geometry-will-be-removed-from-core-with-r125/22401

【讨论】:

以上是关于为啥我不能在 ThreeJS Typescript 项目中创建 Face3的主要内容,如果未能解决你的问题,请参考以下文章

为啥我不能访问 TypeScript 私有成员?

为啥我不能在 TypeScript 中以这种方式只读数组?

为啥不能在 TypeScript 中导出类实例?

为啥我在使用 ThreeJS 和 VueJS 时只看到黑色背景?

为啥我们不能在 TypeScript 类中定义一个 const 字段,为啥静态只读不起作用?

为啥我无法悬停并单击 Threejs 转换工具?