首页 > 其他分享 >three.js 添加呼吸灯效果

three.js 添加呼吸灯效果

时间:2024-03-18 14:23:53浏览次数:22  
标签:outlinePass THREE three 添加 composer new js

添加引用

import { EffectComposer } from "three/examples/jsm/postprocessing/EffectComposer.js"
import { RenderPass } from "three/examples/jsm/postprocessing/RenderPass.js"
import { OutlinePass } from "three/examples/jsm/postprocessing/OutlinePass.js"
import { ShaderPass } from "three/examples/jsm/postprocessing/ShaderPass.js"
import { FXAAShader } from "three/examples/jsm/shaders/FXAAShader.js"

定义广法

function addColor() {
  var obj = scene.getObjectByName("货物$A1$1$1");
  var selectedObjects = [];
  selectedObjects.push(obj);
  composer = new THREE.EffectComposer(renderer);
  var renderPass = new THREE.RenderPass(scene, camera);
  composer.addPass(renderPass);
  var outlinePass = new THREE.OutlinePass(
    new THREE.Vector2(window.innerWidth, window.innerHeight),
    scene,
    camera,
    selectedObjects ////必须是一个数组,否则不会产生效果
  );
  outlinePass.selectedObjects = selectedObjects; //必须是一个数组,否则不会产生效果
  outlinePass.edgeStrength = 10.0; // 边框的亮度
  outlinePass.edgeGlow = 1; // 光晕[0,1]
  outlinePass.usePatternTexture = false; // 是否使用父级的材质
  outlinePass.edgeThickness = 1.0; // 边框宽度
  outlinePass.downSampleRatio = 1; // 边框弯曲度
  outlinePass.pulsePeriod = 5; // 呼吸闪烁的速度
  outlinePass.visibleEdgeColor.set(parseInt(0x00ff00)); // 呼吸显示的颜色
  outlinePass.hiddenEdgeColor = new THREE.Color(0, 0, 0); // 呼吸消失的颜色
  outlinePass.clear = true;
  composer.addPass(outlinePass);

  var effectFXAA = new THREE.ShaderPass(THREE.FXAAShader);
  effectFXAA.uniforms.resolution.value.set(
    1 / window.innerWidth,
    1 / window.innerHeight
  );
  effectFXAA.renderToScreen = true;
  composer.addPass(effectFXAA);
}

必须在render()方法中执行composer.render()

if (composer) {
 composer.render();
}

标签:outlinePass,THREE,three,添加,composer,new,js
From: https://www.cnblogs.com/duixue/p/18080295

相关文章

  • vue3+threejs新手从零开发卡牌游戏(二):初始化场景
    在删掉初始化中一些没用的代码后,在views目录下新建game文件夹,在里面新建一个index.vue,这里就当成游戏的主入口。目录结构如下:下面开始尝试创建场景:一、添加一个div作为threejs的画布对象,之后整个的主要游戏开发内容全在这一个div中(实际threejs会渲染成canvas),并调整样式铺满......
  • 三种方式,浅谈 Cocos Creator 的动画添加
    前言虽然Cocos的官方文档对动画系统做了较详细的介绍,但是对于刚接触的同学(比如我)来说还是不太友好。尽管如此,我就按文档加社区帖子一起实践了一下。为了方便忘记后能快速捡起,所以就用我的方式结合使用场景,简单介绍一下CocosCreator动画添加的三种方式。属性动画这个是Co......
  • 安装nodejs 环境
    一、使用NVM安装Node.js1.安装nvm#$curl-o-https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.2/install.sh|bash2.测试是否安装完成#command-vnvm3.列出Node.JS的所有可用版本#nvmls-remote4.列出Node.JS版本的所有最新LTS版本#nvmls......
  • 接上文,将完整地址信息和行政编码添加到原本数据新的一列中
    1.可以直接在txt文件中完成,也可以在数据库中完成,我通过txt完成,数据库需要注意更多方面的信息如导出的表应该多添加一列如添加一个原始地址,可以方便后期插入的时候where条件有可写内容,不然不管是插入还是更新都挺麻烦的,因为和原来的表中没有一列可以联系起来(我...)上次我们处理......
  • js的基本使用
    1什么是javascriptJavaScript是一门世界上最流行的脚本语言2快速入门内部标签使用<script> //.........</script>外部标签使用abs.js<scriptsrc="abs.js"></script>2.1数据类型=变量=vara//不能数字开头数值,文本,图形,音频,视频。。。。numberjs不区分......
  • python 服务自动生成 js 调用
    python服务自动生成js调用原理接管请求分发过程;为每个command维护对应的handler;利用python动态特性,获得handler的参数;利用模版生成js代码;利用**kwargs获取所有参数传递给handler;Demo以Flask为例#main.pyfromflaskimportFlask,requestfro......
  • three模型加载loader模块封装
    在three项目中需要加载很多的模型而且在很多地方需要使用loader加载模型回调的gltf上一个项目中遇到了初学three的我留下笔记简单版`import*asTHREEfrom'three';import{GLTFLoader}from'three/examples/jsm/loaders/GLTFLoader.js';constloader=newGLTFLoa......
  • vue页面纯前端导出excel表格(多级表头,exceljs)
    查找对比因为是第一次实现这样的功能,先在网上进行了查找,发现了三种比较常用的方法:1.安装file-saverxlsxscript-loader如果想设置表格样式的话,需要同时安装依赖xlsx-style,通常情况下安装此依赖会报错,需要进行修改;2.安装vue-json-excel这个插件看起来比较好上手,但是好像只......
  • feigni请求添加拦截器
    @FeignClient的configuration属性:Feign注解@FeignClient的configuration属性,可以对feign的请求进行配置。包括配置Feign的Encoder、Decoder、Interceptor等。feign请求添加拦截器,也可以通过这个configuration属性来指定。feign请求拦截器RequestIntercept......
  • 基于Java的厦门旅游电子商务预订系统(Vue.js+SpringBoot)
    目录一、摘要1.1项目介绍1.2项目录屏二、功能模块2.1景点类型模块2.2景点档案模块2.3酒店管理模块2.4美食管理模块三、系统设计3.1用例设计3.2数据库设计3.2.1学生表3.2.2学生表3.2.3学生表3.2.4学生表四、系统展示五、核心代码5.1新增景点类型5.2查......