三 JS - 如何用 Y 平面切割 3D 对象?

Pou*_*opa 7 javascript 3d mesh three.js

是否可以使用 Three JS 切割网格或具有我们可以移动的平面(主要是 Y 轴)的对象?我想要显示在这张图片中的相同功能:

带有 3D 对象的 Y 平面

目标是保持网格完整,以允许用户移动平面并查看 Y 平面函数中的网格。

Dan*_*ard 6

根据 WestLangley 的评论,他发布的示例链接中的以下代码似乎与您要实现的目标相关:

// ***** Clipping planes: *****
var localPlane = new THREE.Plane(new THREE.Vector3(0, -1, 0), 0.8);

// Geometry
var material = new THREE.MeshPhongMaterial({
    color: 0x80ee10,
    shininess: 100,
    side: THREE.DoubleSide,

    // ***** Clipping setup (material): *****
    clippingPlanes: [ localPlane ],
    clipShadows: true
});

var geometry = new THREE.TorusKnotBufferGeometry(0.4, 0.08, 95, 20);

var mesh = new THREE.Mesh(geometry, material);
mesh.castShadow = true;
scene.add(mesh);
Run Code Online (Sandbox Code Playgroud)