适用
适用:
1、做模型一些特效的时候可以用,还有就是有些模型内部的wireframe线框比较乱的时候可以用。
2、凸显模型边界时,直接覆盖到模型上,调整线的透明度。
问题
因为这种线条主要是普通线条,线宽固定为1,添加特效之后会有锯齿出现,使用ssaa或者fxaa处理抗锯齿,效果并不理想,抗锯齿这块一直在研究如何处理,暂时还没好的解决方法。
代码
// object:要添加线条的模型
// color:线条颜色
function frameline (object, color) {
// 边框辅助线
const edges = new THREE.EdgesGeometry(object.geometry)
const material = new THREE.LineBasicMaterial({
color: color,
linewidth: 1,
depthWrite: false,
depthTest: false,
side: THREE.DoubleSide,
transparent: true,
opacity: 0.05
})
const line = new THREE.LineSegments(edges, material)
// 获取物体的世界坐标 旋转等
const worldPosition = new THREE.Vector3()
object.getWorldPosition(worldPosition)
line.scale.copy(object.scale)
line.rotation.copy(object.rotation)
line.position.copy(worldPosition)
return line
// return之后,直接添加到场景,或者自建的group/object3D组里即可
// group.add(line)
}