THREE.js Turn THREE.planeGeometry to THREE.plane

2019-08-25 02:27发布

I am trying to configure the position of a THREE.plane for localClipping, and Im finding it a little unintuitive. I had a thought, is it possible to create some planeGeometry, manipulate it, and convert its position and orientation to the create a THREE.plane in its place?

This would be useful for configuring the position of a clipping planes.

1条回答
仙女界的扛把子
2楼-- · 2019-08-25 03:04

You want to set a THREE.Plane from a Mesh having a PlaneGeometry, and you want to take into consideration the mesh's position and quaternion (or rotation). In other words, you want the THREE.Plane to align with the planar Mesh.

The easiest way to do that is to use plane.setFromNormalAndCoplanarPoint().

The normal is the normal to the plane mesh after rotation. The coplanar point is any point in the plane mesh; the position will do.

var plane = new THREE.Plane();
var normal = new THREE.Vector3();
var point = new THREE.Vector3();

normal.set( 0, 0, 1 ).applyQuaternion( planeMesh.quaternion );

point.copy( planeMesh.position );

plane.setFromNormalAndCoplanarPoint( normal, point );

three.js r.96

查看更多
登录 后发表回答