文章目录

  • 前言
  • 一、辉光
    • 1、引入库:
    • 2、注意事项:
      • 主要注意渲染器中添加
      • 通道添加
      • 渲染使用合成渲染
      • 部分代码
  • 二、layers分层渲染
  • 总结

前言

踩坑记录:
1、UnrealBloomPass 辉光参照three官网示例
2、分层渲染分为两篇:本篇为最简单的layers分层渲染


一、辉光

1、引入库:

import { EffectComposer } from 'three/examples/jsm/postprocessing/EffectComposer'
import { UnrealBloomPass } from 'three/examples/jsm/postprocessing/UnrealBloomPass'
import { RenderPass } from 'three/examples/jsm/postprocessing/RenderPass'

2、注意事项:

其他three组件都是常规的写法,开启炫光通道的时候如下注意点

主要注意渲染器中添加

renderer.autoClear = false

通道添加


bloomPass.renderToScreen = true

渲染使用合成渲染

composer.render()

部分代码

除去常规写法的【场景、相机、控制器、光源等】
只需要注意上述这部分代码

initrenderer () {var width = document.getElementById('threecanvas').offsetWidthvar height = document.getElementById('threecanvas').offsetHeightrenderer = new THREE.WebGLRenderer({antialias: true,})renderer.setPixelRatio(window.devicePixelRatio)// 设置分辨率与电脑的分辨率相同renderer.setSize(width, height)renderer.toneMapping = THREE.ReinhardToneMappingrenderer.autoClear = falsedocument.getElementById('threecanvas').appendChild(renderer.domElement)
}
addBloomPass () {var width = document.getElementById('threecanvas').offsetWidthvar height = document.getElementById('threecanvas').offsetHeightconst renderScene = new RenderPass(scene, camera)const bloomPass = new UnrealBloomPass(new THREE.Vector2(width, height),1.5,0.4,0.85)bloomPass.renderToScreen = truebloomPass.threshold = params.bloomThresholdbloomPass.strength = params.bloomStrengthbloomPass.radius = params.bloomRadiuscomposer = new EffectComposer(renderer)composer.setSize( width, height );composer.addPass(renderScene)composer.addPass(bloomPass)
}
function render () {requestAnimationFrame(render)update()composer.render()
}

二、layers分层渲染

问题: 使用简单的layers分层渲染会出现深度遮挡问题,或者有其他物体在光晕后方,光晕不生效

注意事项和上述相同,然后给物体分层即可

我们只需要在渲染的时候设置好层级
注意合成的渲染通道在上,正常的渲染在下,相当于两个图层,然后把相机分给两个图层
图层0:正常渲染
图层1:使用通道渲染

function render () {requestAnimationFrame(render)update()renderer.clear()camera.layers.set(1)composer.render()renderer.clearDepth()camera.layers.set(0)renderer.render(scene, camera)
}

然后自己需要哪些物体使用炫光的通道,就把这个物体

object.layers.set(1)

正常渲染的话

object.layers.set(0)

或不设置,正常的图层默认为0

总结

由于这种简单的layers分层会出现不确定性问题
下篇继续

threejs辉光通道01(UnrealBloomPass layers)相关推荐

  1. threejs 辉光的使用 在vue

    引入插件 import {EffectComposer} from "three/examples/jsm/postprocessing/EffectComposer.js";im ...

  2. THREEJS辉光与景深特效

    效果预览 辉光效果: 景深效果: 核心代码 辉光和景深尽量把场景背景设置为黑色,要不影响效果. // 设置场景背景色为黑色 scene.background = new THREE.Color(0, ...

  3. 基于THREEJS场景中模型局部辉光效果

    背景 之前写过一个关于辉光的文章,全场景辉光(传送门),但是有些时候,我们的场景只需要一部分模型辉光,这就是本文的背景.还是基于ThreeJS实现. 原理 简单来说,就是做两个合成器(Composer ...

  4. threejs 局部辉光

    首先看一下局部辉光的效果. 困扰很久的问题,终于解决了!!! 具体找到解决的方法是看了这里和这里2.也是看了这两个帖子之后才找到解决方法. 这种辉光效果也是用后期处理方法,大家可以先看官网上的这个例子 ...

  5. 使用threejs实现辉光大气层效果

    最近想使用threejs实现辉光的特效,在查阅了一些资料之后,不仅实现了辉光的特效,还顺带实现了大气层特效,在写着色器的过程中有了一些理解~ 首要目标:为了实现辉光的着色器,我们把辉光分为几个步骤来实 ...

  6. 使用threejs实现地球辉光和大气层效果

    使用threejs实现地球辉光和大气层效果 使用插件方式 在github上有glow的插件可以使用,效果不错. 地址:https://github.com/jeromeetienne/threex.g ...

  7. threejs postprocessing-后处理通道效果使用详解

    threejs的后期处理通道包提供了各种强大的效果,有了这些效果会大大降低代码难度,并且可以直接使用内置的着色器包,避免了复杂的着色器代码编写.后期处理通道一般都按顺序执行,后加入的会覆盖前面的通道. ...

  8. Three.js实现分区Bloom辉光效果

    一.效果展示 辉光效果 二.如何实现 1.基于EffectComposer后期渲染器. 2.借助UnrealBloomPass渲染通道,实现辉光效果. 3.了解three.js中 layers 分层的 ...

  9. three.js 实现辉光(原生JS)

    在three.js后期处理中,实现通道辉光效果,效果图如下: 一.模型创建 在三维场景中,创建了两个对象mesh(正方体)bmesh(球体) //创建模型//正方体var geometry = new ...

最新文章

  1. cvGEMM()函数(矩阵通用乘法运算)
  2. oracle外部表kup-04040,【故障处理】19c PDB中创建外部表时,出现KUP-04040报错
  3. 时间序列趋势判断(二)——Cox-Staut趋势检验
  4. PowerPivot for Sharepoint 2010 配制及常见错误
  5. 自定义autograd function
  6. solr的简单使用说明
  7. 基于confd和etcd的tuxedo中间件容器化方案
  8. java单例模式调用_java单例模式使用及注意事项
  9. 供配电系统自动化实训
  10. STM32CubeMX低功耗模式——待机模式(standby)RTC唤醒
  11. go-swagger注解使用
  12. 常用命令大全(网络命令+关机重启命令)
  13. 医院招聘护士 计算机证,医院招聘护士的自我介绍
  14. 未来十年人工智能和机器学习,主要造就了哪些新职位?
  15. bizhubc226说明书_bizhubc226打印机如何扫描?
  16. Web 数据提取:Sequentum Enterprise 2.78 Crack
  17. 正n边形的魔法阵,判断该魔法阵消耗的魔力和产生的能量。
  18. Nginx频繁报状态码400错误,定位到原因是丢包引起
  19. 机器学习模型评价指标:准确率(Precision)、召回率(Recall)、F值(F-Measure)、ROC曲线、PR曲线
  20. 银河系内适宜人类居住的星球估计有一亿颗

热门文章

  1. 这4个正经的网站,能看片还能涨知识!
  2. Lua学习笔记(2023-2)
  3. How to use template
  4. SpringBoot集成WebSocket实现在线聊天
  5. 《计算机网络》虚拟局域网和高速以太网
  6. 视频号如何上热门的几个指标:国仁楠哥
  7. STM32单片机与蓝牙模块HC-05通信数据帧处理
  8. 仿真4. 仿真平台架构设计
  9. 暴打外挂!瞬移、无敌技能你也能秒实现
  10. 关于CSDN获取博客内容接口的x-ca-signature签名算法研究