threejs 效果合成器(EffectComposer)

用于在three.js中实现后期处理效果。该类管理了产生最终视觉效果的后期处理过程链。 后期处理过程根据它们添加/插入的顺序来执行,最后一个过程会被自动渲染到屏幕上。

构造函数
EffectComposer( renderer

例子

outlinePass

需要引入:

<script src="./js/postprocessing/EffectComposer.js"></script>
<script src="./js/postprocessing/OutlinePass.js"></script>
<script src="./js/postprocessing/RenderPass.js"></script>

<script src="./js/postprocessing/ShaderPass.js"></script>
<script src="./js/shaders/CopyShader.js"></script>

方法如下:

function initEffectComposer(){
  composer = new THREE.EffectComposer( renderer );

  const renderPass = new THREE.RenderPass( scene, camera );
  composer.addPass( renderPass );

  outlinePass = new THREE.OutlinePass( new THREE.Vector2( window.innerWidth, window.innerHeight ), scene, camera );
  composer.addPass( outlinePass );

  outlinePass.edgeStrength = Number( 5 );//边缘长度
  outlinePass.edgeGlow = Number( 1 );//边缘辉光
  outlinePass.edgeThickness = Number( 3.6 );//边缘厚度 值越小越明显
  outlinePass.pulsePeriod = Number( 2.9 ); //一闪一闪周期
  outlinePass.visibleEdgeColor.set( 0xffff00 );//没有被遮挡的outline的颜色
  outlinePass.hiddenEdgeColor.set( 0xff0000 );//被遮挡的outline的颜色

}

在render方法中添加:

composer.render();

对于需要使用outlinePass 的mesh对象,以数组的形式传入,如:

 outlinePass.selectedObjects = [intersects[0].object];

效果图:
在这里插入图片描述

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值