在three.js后期处理中,实现通道辉光效果,效果图如下:

一、模型创建

在三维场景中,创建了两个对象mesh(正方体)bmesh(球体)

//创建模型//正方体var geometry = new THREE.BoxGeometry(100,100,100);var material = new THREE.MeshLambertMaterial({color:0x0000ff});var mesh = new THREE.Mesh(geometry,material);mesh.layers.set(0);scene.add(mesh);//球体var bgeometry = new THREE.SphereGeometry(60,40,40);var bmaterial  = new THREE.MeshLambertMaterial({ color: 0xff5500,transparent:true,opacity:0.8,wireframe:true});var bmesh = new THREE.Mesh(bgeometry,bmaterial);bmesh.position.y = 100;bmesh.layers.set(1);scene.add(bmesh);

PS:如果仅实现全场景的全局辉光效果,可直接在场景中进行后述光晕的设置,但是为了实现局部辉光,让一个物体发光,另一个物体正常显示,我们采用layer图层显示,对两个对象设置不同的图层,以实现不同的渲染显示。

二、光晕设置

这里需要用到如下三个对象,需要从three中导包

import { RenderPass } from "./three/examples/jsm/postprocessing/RenderPass.js";
import { UnrealBloomPass} from "./three/examples/jsm/postprocessing/UnrealBloomPass.js";
import { EffectComposer } from "./three/examples/jsm/postprocessing/EffectComposer.js";

通过构造函数,创建对象如下:

//设置光晕var composer = new EffectComposer(renderer);        //效果组合器//创建通道var renderScene = new RenderPass(scene, camera);    //创建通道var bloomPass = new UnrealBloomPass(//参数一:泛光覆盖场景大小,二维向量类型new THREE.Vector2(window.innerWidth, window.innerHeight),//参数二:bloomStrength 泛光强度,值越大明亮的区域越亮,较暗区域变亮的范围越广1.5,//参数三:bloomRadius 泛光散发半径0.3,//参数四:bloomThreshold 泛光的光照强度阈值,如果照在物体上的光照强度大于该值就会产生泛光0.75);

赋值间接对象,组合composer

//赋值间接对象var params = {exposure: 0,bloomStrength: 1.5,bloomThreshold: 0,bloomRadius: 0,};bloomPass.threshold = params.bloomThreshold;bloomPass.strength = params.bloomStrength;bloomPass.radius = params.bloomRadius;composer.addPass(renderScene);composer.addPass(bloomPass);

三、渲染

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

three.js 实现辉光(原生JS)相关推荐

  1. php上js实现ajax请求,原生JS如何实现Ajax通过POST方式与PHP进行交互的方法

    原生JS如何实现Ajax通过POST方式与PHP进行交互的方法 发布时间:2021-04-20 11:28:22 来源:亿速云 阅读:52 作者:小新 这篇文章将为大家详细讲解有关原生JS如何实现Aj ...

  2. 原生JS那些事:原生JS添加和删除class类名

    2019独角兽企业重金招聘Python工程师标准>>> 如何使用原生js给一个节点添加和删除class名? 由于我们一直习惯于使用jQ封装好的方法,偶尔项目中也会用原生js,这就要了 ...

  3. js html转盘点名,原生JS实现简易随机点名功能

    定时器的工作原理,这里将用引用How JavaScript Timers Work中的例子来解释定时器的工作原理,该图为一个简单版的原理图.· 上图中,左侧数字代表时间,单位毫秒:左侧文字代表某一个操 ...

  4. js 控制鼠标_原生js实现改变视频播放速率

    前言:前几天考研成绩刚刚出来,有人欢喜有人悲,不管结果怎么样,只要努力过,就不存在遗憾一说.大家都知道考研复习的时候会有大量的时间用来看教学视频,就比如说"张宇高数"等等.考研复习 ...

  5. JS 九宫格算法 用原生js实现

    九宫格算法核心: 利用控件索引index计算出控件所在的行数和列数: 利用控件计算出left距离: 利用控件计算出top距离: 写特效时需要用到定位 公式: 行 row=parseInt(i/cols ...

  6. js php排序表格,原生JS实现表格排序

    最近在学习js的表格排序,没想到看不起眼的表格排序实际上却暗含了众多JS知识点.在这里记录一下此次学习过程.希望对大家也有所帮助. 完整的表格排序涉及了下列这些知识点:call方法使用 sort方法深 ...

  7. js html颜色代码,原生js编写的浏览器安全色网页拾色器色盘 生成颜色代码

    原生js编写的浏览器安全色网页拾色器 by js.alixixi.com #abc-colorPicker .colorPick-close,#filter-colorPicker .colorPic ...

  8. 原生js怎么追加html,原生JS改变HTML内容

    最近发现总是把原生JS语法和诸多框架库神马的语法搞混,打算暂时弃用各种库,回归到原生来,好好抠一抠所有的细节,跳一跳各种坑,才能飞得更远.PS. 突然想起冰火里面三眼乌鸦对布兰说的那句话--You'l ...

  9. 原生js追加html代码,原生js实现给指定元素的后面追加内容

    复制代码 代码如下: var header1 = document.getElementById("header"); var p = document.createElement ...

最新文章

  1. Oracle针对SCOTT下EMP表的练习题
  2. mysql多表分析_mysql多表查询实例结果及分析-2017.12.14
  3. Anaconda-- conda 创建、激活、退出、删除虚拟环境
  4. Mysql主从复制详解和实战
  5. CodeForces - 1328F Make k Equal(模拟)
  6. SpringBoot 使用Thymeleaf模板 没有提示
  7. NAU8810相关问题
  8. java 二维数组 floyd_Floyd算法(一)之 C语言详解
  9. JQuery Show()的几种效果
  10. [转载] 当心掉进Python多重继承里的坑
  11. js里面把密码encode_PHP会员找回密码功能的简单实现
  12. gnu ld链接出现“ no .eh_frame_hdr table will be created.”
  13. PC批量转换网易ncm音乐
  14. Alexa工具条遭清洗,其排名逐渐淡出中国(转)
  15. vscode 插件: REST Client 介绍
  16. 基于app_inventor的手机aap与单片机蓝牙互联教程
  17. 置信度置信水平置信区间
  18. 如何去除Word中的波浪线?这三种方法很实用!
  19. SA-Siam:用于实时目标跟踪的双重连体网络A Twofold Siamese Network for Real-Time Object Tracking
  20. 低噪声/低电压晶体管测试综述

热门文章

  1. 诺禾-心源性猝死基因分型研究
  2. 在腾讯实习的五个月的一些思考与收获
  3. cloudflare免费证书_使用百度云加速免费加速你的博客
  4. idea中使用git查看每一行代码是谁写的
  5. lol登入服务器显示证书,登录LOL提示安全证书不可用怎么办
  6. JS类教程 Lynda中文
  7. 覆盖式理解Android 消息处理机制(带源码解析)
  8. pete shinners_Hanselminutes播客155-带有Silverlight 3的C64模拟器,作者:Pete Brown
  9. Abaqus学习-初识Abaqus(悬臂梁)
  10. C语言 --- 动态内存管理(上)+优化版通讯录+笔试题