VUE2+THREE.JS辉光设定和解决辉光导致背景变暗的问题

THREE.JS辉光设定和解决辉光导致背景变暗的问题

  • THREE.JS 辉光设定
  • THREE.JS 辉光导致背景变暗的问题
    • 1.设定背景图片
    • 2.初始化辉光
    • 3. animate 一直渲染辉光

THREE.JS 辉光设定

给我的设计好的fbx模型,已经设定好了模型发光材质,所以直接添加辉光效果,就可以自动发光
blender模型生成器里的发光只是生成器里的发光效果,导入到three里并不生效,需要用代码生成辉光效果

1.引入辉光参数

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

2.添加辉光方法

//添加辉光效果
initBollmPass() {
	let renderScene = new RenderPass(scene, camera);
	let bloomPass = new UnrealBloomPass(new THREE.Vector2(window.innerWidth, window.innerHeight), 0.3, 0.5, 1); //辉光阀值,辉光半径,辉光强度
	bloomPass.renderToScene = TreeWalker;
	bloomPass.samples = 7; //采样次数
	composer = new EffectComposer(renderer);
	composer.setSize(window.innerWidth, window.innerHeight);
	composer.addPass(renderScene);
	composer.addPass(bloomPass);
	// 设置场景背景颜色
	scene.background = new THREE.Color("#182238");
},

3.动画执行
要想辉光一直有效,需要一直执行composer.render()方法:
animate方法中增加 composer.render();
在这里插入图片描述

THREE.JS 辉光导致背景变暗的问题

1.设定背景图片

scene.background = new THREE.TextureLoader().load("three/work-shop-bg.png");

2.初始化辉光

//初始化辉光
initEffectComposer() {
	// 场景渲染器
	effectComposer = new EffectComposer(renderer);
	const renderPass = new RenderPass(scene, camera);
	effectComposer.addPass(renderPass);
	//创建辉光效果
	unrealBloomPass = new UnrealBloomPass(new THREE.Vector2(window.innerWidth, window.innerHeight), 0.3, 0.5, 1);
	unrealBloomPass.renderToScreen = false;
	// 辉光合成器
	glowComposer = new EffectComposer(renderer);
	glowComposer.renderToScreen = false;
	glowComposer.addPass(new RenderPass(scene, camera));
	glowComposer.addPass(unrealBloomPass);
	// 着色器
	let shaderPass = new ShaderPass(
		new THREE.ShaderMaterial({
			uniforms: {
				baseTexture: { value: null },
				bloomTexture: { value: glowComposer.renderTarget2.texture },
				tDiffuse: {
					value: null,
				},
			},
			vertexShader:
				"\t\t\tvarying vec2 vUv;\n" +
				"\n" +
				"\t\t\tvoid main() {\n" +
				"\n" +
				"\t\t\t\tvUv = uv;\n" +
				"\n" +
				"\t\t\t\tgl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );\n" +
				"\n" +
				"\t\t\t}",
			fragmentShader:
				"\t\t\tuniform sampler2D baseTexture;\n" +
				"\t\t\tuniform sampler2D bloomTexture;\n" +
				"\n" +
				"\t\t\tvarying vec2 vUv;\n" +
				"\n" +
				"\t\t\tvoid main() {\n" +
				"\n" +
				"\t\t\t\tgl_FragColor = ( texture2D( baseTexture, vUv ) + vec4( 1.0 ) * texture2D( bloomTexture, vUv ) );\n" +
				"\n" +
				"\t\t\t}",
			defines: {},
		}),
		"baseTexture"
	);

	shaderPass.renderToScreen = true;
	shaderPass.needsSwap = true;
	effectComposer.addPass(shaderPass);
},

3. animate 一直渲染辉光

执行辉光效果器渲染:glowComposer.render();
执行场景效果器渲染:effectComposer.render();
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/204505.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Docker 安装部署 Sentinel Dashboard

1、下载 jar 包 官方 jar 包下载地址:https://github.com/alibaba/Sentinel/releases 或者点击 链接 直接跳转到下载页 进入链接下载你需要的版本 下载完毕(我这里统一放在一个sentinel目录内) 2、编写 Dockerfile 文件(这里我不…

求臻医学满分通过EMQN室间质评,检测实力再获国际权威机构认可

近日,欧洲分子基因诊断质量联盟(European Molecular Genetics Quality Network,EMQN)公布了2023年Oncogene panel 项目能力验证考核结果,求臻医学旗下北京和杭州检验实验室,使用自主研发的ChosenOne大Panel…

Apache DolphinScheduler 开源之夏采访:苏国伟的开源之旅

个人介绍 大家好,我是苏国伟,来自西安电子科技大学软件工程专业。我在实验室中主要从事数据集成等方面的工作。除了编程,我还热衷于踢足球、观看球赛和健身,这些爱好让我的生活更加丰富多彩。 开源之路 我最初是在本科的分布式…

【Linux基础开发工具】yum生态vim的配置与使用

目录 前言 1. Linux 软件包管理器 yum 1.1 什么是yum 1.2 快速上手yum 1.3 yum生态 2. Linux编辑器vim 2.1 vim的模式 2.2 vim使用技巧 3. vim编辑器辅助功能配置 3.1 配置 3.2 用户sudo权限配置 总结 前言 Linux基础指令与权限之后,Linux系统开发工具的使用…

美林防火建材——朱林甫 坚韧与创新:美林传奇

在这个变幻莫测的时代,有一些创业者凭借着对行业的深刻理解和对未来的敏锐洞察,不仅在商海中乘风破浪,更是引领了整个行业的发展。今天,我们要讲述的,就是一位这样的创业者——来自浙江嘉善的朱总,他创立的…

初始Redis(入门篇)

目录 什么是Redis Redis特性 速度快 丰富的功能 客户端语言多 持久化 主从复制 Redis可以做什么 缓存 排行榜系统 计数器应用 消息队列系统 Redis安装 centos7安装 Redis重要文件 Redis的使用 Redis通用命令 set get keys exists del expire 什么是Redi…

生成式AI与预测式AI的主要区别与实际应用

近年来,预测式人工智能(Predictive AI)通过先进的推荐算法、风险评估模型、以及欺诈检测工具,一直在推高着该领域公司的投资回报率。然而,今年初突然杀出的生成式人工智能(Generative AI)突然成…

如何绕过某讯手游保护系统并从内存中获取Unity3D引擎的Dll文件

​ 某讯的手游保护系统用的都是一套,在其官宣的手游加固功能中有一项宣传是对比较热门的Unity3d引擎的手游保护方案,其中对Dll文件的保护介绍如下, “Dll加固混淆针对Unity游戏,对Dll模块的变量名、函数名、类名进行加密混淆处理&…

Android中添加C或C++代码

1、创建cpp目录,用于存放C和C代码。 2、创建CMake构建脚本CMakeLists.txt文件,将其放在cpp目录中。 # Sets the minimum version of CMake required to build the native library. cmake_minimum_required(VERSION 3.22.1)# Declares and names the pro…

单宁对葡萄酒可饮用性和陈酿潜力会有影响吗?

当在酿酒过程中葡萄酒中的单宁过量时,酿酒师可以使用白蛋白、酪蛋白和明胶等各种细化剂,这些药物可以与单宁分子结合,并将其作为沉淀物沉淀出来。随着葡萄酒的老化,单宁将形成长长的聚合链,氧气可以与单宁分子结合&…

数据挖掘实战-基于word2vec的短文本情感分析(文末送书)

🤵‍♂️ 个人主页:艾派森的个人主页 ✍🏻作者简介:Python学习者 🐋 希望大家多多支持,我们一起进步!😄 如果文章对你有帮助的话, 欢迎评论 💬点赞&#x1f4…

【PPT模板合集】关于自制内容的PPT模板合集,包括原创的PPT及改良内容的PPT,适合科研/比赛/工作

【PPT模板合集】关于自制内容的PPT模板合集,包括原创的PPT及改良内容的PPT,适合科研/比赛/工作 零、前言一、校园层面的PPT模板1.1 各种毕业答辩1.2 夏令营答辩1.3 奖学金答辩1.4 比赛/项目答辩 二、学术层面的PPT模板2.1 学术汇报2.2 会议海报类型 三、…

使用VScode通过内网穿透在公网环境下远程连接进行开发

文章目录 前言1、安装OpenSSH2、vscode配置ssh3. 局域网测试连接远程服务器4. 公网远程连接4.1 ubuntu安装cpolar内网穿透4.2 创建隧道映射4.3 测试公网远程连接 5. 配置固定TCP端口地址5.1 保留一个固定TCP端口地址5.2 配置固定TCP端口地址5.3 测试固定公网地址远程 前言 远程…

网站监控有什么作用?

科技改变生活,科技的发展让我们的生活越来越精彩丰富,数据中心机房监控系统也可以称为“自我监控系统”,主要是针对机房所有的设备及环境进行集中监控和管理的,其监控对象构成机房的各个子系统:动力系统、环境系统、消…

SpringBoot+Redis获取电脑信息

获取电脑信息 测试 System.getProperties(); System: 是Java中的一个内置类,用于提供与系统相关的功能和信息。这个类中包含了一些静态方法和常量,可以让您方便地访问和操作系统级别的资源。 getProperties(): 是一个静态方法,它返回一个表示…

学习笔记小结

redis-cluster集群 redis3.0引入的分布式存储方案 集群由多个node节点组成,redis数据分布在这些节点当中。 在集群之中分为主节点和从节点 集群模式当中,主从一一对应,数据的写入和读取与主从模式一样,主负责写,从…

实时沟通,实时增长:企业使用WhatsApp Business的不二选择

在数字化浪潮中,WhatsApp Business崭露头角,成为企业与客户之间沟通的新利器。今天运营坛将和大家深入探讨WhatsApp Business在2023年为企业带来的机遇,从增长率、客户群体、功能特性以及优势等方面剖析为何企业需要充分利用这一强大工具。 W…

VirtualBox上安装CentOS7

基础环境:宿主机是64位Windows10操作系统,通过无线网访问网络。 macOS可以以类似方式进行安装,不同之处见最后补充。 Step1 安装VirtualBox VirtualBox是一款免费、开源、高性能的虚拟机软件,可以跨平台运行,支持Wi…

突发,合肥一废品回收站发生火灾,富维AI神器助力防灾

昨晚,合肥一废品回收站突发火灾,火光冲天,烟雾蔓延。幸亏及时发现,消防人员迅速到场,控制了火势。这起事件让我们再次认识到火灾报警的重要性。而在这方面,北京富维图像公司的FIS智能图像识别系统就发挥了巨…

1+x中级网络运维实验题

任务 1: 设备命名 为了方便后期维护和故障定位及网络的规范性,需要对网络设备进行规范化命名。请根据 Figure 3-1 实验考试拓扑对设备进行命名。命名规则为:城市-设备的设置地点-设备的功能属性和序号-设备型号。例如:处于杭州校…