首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >内存泄漏,CSG导入,THREEJS

内存泄漏,CSG导入,THREEJS
EN

Stack Overflow用户
提问于 2022-08-07 10:49:54
回答 1查看 30关注 0票数 0

我能够使这个示例工作在https://sbcode.net/threejs/engraving/上。

我现在正在寻找雕刻我以前从GLB文件导入的网格在现场。

下面是我的代码:

代码语言:javascript
复制
 const loader = new GLTFLoader();
    let sword
    loader.load("scene/glb/object.glb", function (gltf) {
        sword = gltf.scene;  // sword 3D object is loaded
        sword.scale.set(1, 1, 1);
        sword.position.y = 0;
        sword.position.x = 0;
        sword.position.z = 0;
    
        engravedMesh = sword.children[0]
        engravedCSG = CSG.fromMesh(engravedMesh)
   
        scene.add(sword);
        engraving()
    });

    let font
function engraving() {
    
    const loaderFont = new FontLoader()
    loaderFont.load('fonts/helvetiker_regular.typeface.json', function (f) {
        font = f
        regenerateGeometry()
    })
}
function regenerateGeometry() {
 
let newGeometry

newGeometry = new TextGeometry("AAAAAAAAAAAAAAAAAAAAAAAA", {
    font: font,
    size: 3,
    height: 3,
    curveSegments: 2,
})

newGeometry.center()
//bender.bend(newGeometry, 'y', Math.PI / 16)
newGeometry.translate(0, 0, 0)
//scene.add(newGeometry)

const textCSG = CSG.fromGeometry(newGeometry)
var engraved = engravedCSG.subtract(textCSG)

engravedMesh.geometry.dispose()
engravedMesh.geometry = CSG.toMesh(
    engraved,
    new THREE.Matrix4()
).geometry
}

当我试图执行执行时,我的屏幕已经冻结了。

我做错什么了吗?

EN

回答 1

Stack Overflow用户

发布于 2022-08-07 12:41:29

最后,它与另一个glb文件一起工作。我想我在搅拌机上造了一个太高清晰度的球体。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73266780

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档