Javascript 如何在圆柱体几何图形的外表面上添加文字?

Javascript 如何在圆柱体几何图形的外表面上添加文字?,javascript,three.js,Javascript,Three.js,我尝试在圆柱体几何体上添加一些文本…我尝试映射纹理,但当我尝试添加文本时,它不起作用 我只想在圆柱体几何体的外侧映射文本(如纹理),这样,如果形状发生变化,文本将跟随形状并看起来像雕刻在表面上 var geometry = new THREE.CylinderGeometry(2.5, 2.5, 5, 10000, 1, true, 100); var materialOuter = new THREE.MeshLambertMaterial({ col

我尝试在圆柱体几何体上添加一些文本…我尝试映射纹理,但当我尝试添加文本时,它不起作用

我只想在圆柱体几何体的外侧映射文本(如纹理),这样,如果形状发生变化,文本将跟随形状并看起来像雕刻在表面上

 var geometry = new THREE.CylinderGeometry(2.5, 2.5, 5, 10000, 1, true, 100);
        var materialOuter = new THREE.MeshLambertMaterial({
            color: 0x581845
        });
 var materialOuter = new THREE.MeshBasicMaterial({
            // map: new THREE.TextureLoader().load("https://threejs.org/examples/textures/758px-Canestra_di_frutta_(Caravaggio).jpg")
            map: new THREE.FontLoader().load('/fonts/gentilis_regular.typeface.json', function (font) {

                var textGeo = new THREE.TextGeometry("My Text", {
                    font: font,
                    size: 200,
                    height: 50,
                    curveSegments: 12,
                    bevelThickness: 2,
                    bevelSize: 5,
                    bevelEnabled: true
                });

                var textMaterial = new THREE.MeshBasicMaterial({ color: 0xff0000 });

                var mesh = new THREE.Mesh(textGeo, textMaterial);
                // mesh.position.set(x, y, z);
                // scene.add(mesh);

            })
        });
        var materialInner = new THREE.MeshBasicMaterial({
            map: new THREE.TextureLoader().load("../images/1.jpg"),
            side: THREE.BackSide
        });

        var materialInner = new THREE.MeshLambertMaterial({ color: 0xd2691e, side: THREE.BackSide });
        var meshOuter = new THREE.Mesh(geometry, materialOuter);
        var meshInner = new THREE.Mesh(geometry, materialInner);
        meshOuter.add(meshInner);



        var bottomCylinder = new THREE.Mesh(new THREE.CylinderGeometry(2.5, 2.5, 0.01, 10000, 1, false, 100), new THREE.MeshLambertMaterial({ color: 0xFFC300, wireframe: false, shading: THREE.FlatShading }));

        bottomCylinder.position.y = -2.5;


        scene.add(bottomCylinder);
        scene.add(meshOuter);

var light = new THREE.AmbientLight(0xffffff);
        light.position.z = 200;
        scene.add(light);

这不是一个充分的答案,但至少我可以告诉你,用开箱即用的
three.js
是不可能做到这一点的。@Mugen87还有其他方法可以做到这一点吗?