EdgesGeometry为几何体添加线框
EdgesGeometry很少用到,一直没忽视。但是当你用起来的时候就可以制作出一些高级的效果。
官方文档:https://threejs.org/docs/index.html#api/en/geometries/EdgesGeometry
var geometry = new THREE.BoxBufferGeometry( 100, 100, 100 );
var edges = new THREE.EdgesGeometry( geometry );
var line = new THREE.LineSegments( edges, new THREE.LineBasicMaterial( { color: 0xffffff } ) );
scene.add( line );
使用起来很简单直接new一个就可以了。然后用到LineSegments中。
构造函数:EdgesGeometry( geometry : Geometry, thresholdAngle : Integer )
参数:
- geometry — Any geometry object.
- thresholdAngle — An edge is only rendered if the angle (in degrees) between the face normals of the adjoining faces exceeds this value. default = 1 degree.
只有当相邻面的法线之间的角度(以度为单位)超过此值时,才呈现边缘。默认值= 1度。
我的模型题诗bufferGeometry有问题,于是就通过fromBufferGeometry方法转成了Geometry。
var edges = new THREE.EdgesGeometry(new THREE.Geometry().fromBufferGeometry(mod.geometry));
var line = new THREE.LineSegments( edges, new THREE.LineBasicMaterial( { color: 0xffffff } ) );
小知识点:BufferGeometry和Geometry直接可以互相转换。