threejs给模型添加边框线

threejs给模型添加边框线

适用

适用:
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)
}
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值