三个JS - 如何用Y平面切割3D对象?
Three JS - How to cut a 3D object with Y plane?
是否可以使用 Three JS 来切割网格或带有我们可以移动的平面(主要是 Y 轴)的对象?
我想要这张图片中显示的相同功能:
目标是保持网格完整,以允许用户移动平面并查看 Y 平面功能中的网格。
根据 WestLangley 的评论,他发布的 sample link 中的以下代码似乎与您要实现的目标相关:
// ***** 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);
是否可以使用 Three JS 来切割网格或带有我们可以移动的平面(主要是 Y 轴)的对象? 我想要这张图片中显示的相同功能:
目标是保持网格完整,以允许用户移动平面并查看 Y 平面功能中的网格。
根据 WestLangley 的评论,他发布的 sample link 中的以下代码似乎与您要实现的目标相关:
// ***** 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);