我们可以在three.js和WebGL中沿x轴剪切单个3D对象吗?

我们可以在three.js和WebGL中沿x轴剪切单个3D对象吗?,3d,three.js,webgl,3d,Three.js,Webgl,我们可以裁剪3D obj的一部分吗。对象的隐藏部分应保持隐藏移动摄影机并使用鼠标旋转。其他对象应始终保持完全可见 下面的代码裁剪x轴上的所有内容,但我想显示一个obj一半,另一个完整 var localPlane = new THREE.Plane( new THREE.Vector3( -1, 0, 0 ), 1 ); renderer.clippingPlanes = [ localPlane ]; renderer.localClippingEnabled = true; 示例: 希望在

我们可以裁剪3D obj的一部分吗。对象的隐藏部分应保持隐藏移动摄影机并使用鼠标旋转。其他对象应始终保持完全可见

下面的代码裁剪x轴上的所有内容,但我想显示一个obj一半,另一个完整

var localPlane = new THREE.Plane( new THREE.Vector3( -1, 0, 0 ), 1 );
renderer.clippingPlanes = [ localPlane ];
renderer.localClippingEnabled = true;
示例:


希望在旋转时始终保持上半身

不幸的是,直到今天,在Three.JS中剪切或裁剪3D.obj对象几乎是不可能的。但是,在其他WebGl库中,3D对象可以轻松裁剪为任何定义的形状,如


查看它剪辑平面中的所有内容看起来你可能正在寻找类似这样的东西我想加载obj文件并将其裁剪为显示一半,当旋转的隐藏部分应保持隐藏时。剪裁在3.js中是在世界空间中完成的。解决方法是旋转摄影机而不是对象。或创建自定义材质。
 mCSG = BABYLON.CSG.FromMesh(mymesh);//convert mesh to CSG
 var box1 = BABYLON.Mesh.CreateBox("box1", 3, scene);//define cropping mesh
 box1CSG = BABYLON.CSG.FromMesh(box1);//convert cropping mesh to CSG
 var subCSG = mCSG.subtract(box1CSG);//cropped CSG
 newmesh = subCSG.toMesh("csg", mat0, scene);//convert cropped CSG to mesh