首页 > 其他分享 >120. gltf工厂模型设置发光描边

120. gltf工厂模型设置发光描边

时间:2024-11-05 09:20:41浏览次数:5  
标签:const 描边 render OutlinePass selectedObjects 120 outlinePass EffectComposer gltf

1.引入扩展库

具体参考13.1节讲解

// 引入后处理扩展库EffectComposer.js
import { EffectComposer } from 'three/addons/postprocessing/EffectComposer.js';
// 引入渲染器通道RenderPass
import { RenderPass } from 'three/addons/postprocessing/RenderPass.js';
// 引入OutlinePass通道
import { OutlinePass } from 'three/addons/postprocessing/OutlinePass.js';

2.设置后期处理通道

具体参考13.1和13.2节讲解

注意outlinePass.selectedObjects先不用设置,后面通过UI按钮鼠标事件触发的的函数设置。

// 创建后处理对象EffectComposer,WebGL渲染器作为参数
const composer = new EffectComposer(renderer);
const renderPass = new RenderPass(scene, camera);
composer.addPass(renderPass);

// 创建OutlinePass通道
const v2 = new THREE.Vector2(window.innerWidth, window.innerHeight);
const outlinePass = new OutlinePass(v2, scene, camera);
// outlinePass.selectedObjects = [mesh];
outlinePass.visibleEdgeColor.set(0x00ffff);
outlinePass.edgeThickness = 4;
outlinePass.edgeStrength = 6;
composer.addPass(outlinePass);

3.渲染循环执行EffectComposer.render()

// 渲染循环
function render() {
    composer.render();
    // renderer.render(scene, camera);
    requestAnimationFrame(render);
}
render();

4. UI界面控制outlinePass.selectedObjects

用于和3D场景交互的UI按钮,具体参考课件中index.html文件中HTML和CSS代码。

<div id="A" class="bu">设备A</div>
<div id="B" class="bu" style="margin-left: 10px;">设备B</div>

通过UI按钮控制,哪个模型添加发光描边效果

document.getElementById('A').addEventListener('click',function(){
    const A = model.getObjectByName ('设备A');
    outlinePass.selectedObjects = [A];
})
document.getElementById('B').addEventListener('click',function(){
    const B = model.getObjectByName ('设备B');
    outlinePass.selectedObjects = [B];
})

标签:const,描边,render,OutlinePass,selectedObjects,120,outlinePass,EffectComposer,gltf
From: https://blog.csdn.net/Miller777_/article/details/143500192

相关文章

  • 1209. 回形方阵
    1209.回形方阵问题描述输入 n 打印回形方阵。输入一个整数 n (0<n<10)输出一个方阵,每个数字的场宽为 2样例输入8输出8888888888888888887777777777777778876666666666666788765555555555......
  • glTF
    glTF™(GLTransmissionFormat)isaroyalty-freespecificationfortheefficienttransmissionandloadingof3Dscenesandmodelsbyapplications.glTFminimizesboththesizeof3Dassets,andtheruntimeprocessingneededtounpackandusethoseassets.......
  • win10系统提示msvcp120.dll丢失如何解决(总五种方法)
    msvcr120.dll是一个关键的动态链接库(DLL)文件,对于Windows操作系统中的许多应用程序至关重要。它是MicrosoftVisualC++2013RedistributablePackage的一部分,提供了运行时环境所需的库文件,确保使用VisualC++2013编译的应用程序能够在没有开发环境的系统上运行。msvcr120.dl......
  • 找不到msvcp120.dll,无法继续执行代码的五种解决方法一步一步指南
    msvcp120.dll是MicrosoftVisualC++2013运行时库的一部分,属于动态链接库(DLL)文件的一种。这个文件是MicrosoftVisualC++RedistributablePackage的一个组件,对于许多基于Windows操作系统的应用程序正常运行至关重要。msvcp120.dll包含了C++标准库的实现,使得开发者......
  • msvcr120.dll丢失的5种解决方法,msvcr120.dll丢失一键分享
    msvcr120.dll是一个关键的动态链接库(DLL)文件,对于Windows操作系统中的许多应用程序至关重要。它是MicrosoftVisualC++2013RedistributablePackage的一部分,提供了运行时环境所需的库文件,确保使用VisualC++2013编译的应用程序能够在没有开发环境的系统上运行。msvcr120.dl......
  • msvcp120.dll文件丢失的解决方法(总五种方法)
    msvcp120.dll是MicrosoftVisualC++2013运行时库的一部分,属于动态链接库(DLL)文件的一种。这个文件是MicrosoftVisualC++RedistributablePackage的一个组件,对于许多基于Windows操作系统的应用程序正常运行至关重要。msvcp120.dll包含了C++标准库的实现,使得开发者......
  • pta 7-120 右上方
    题解:#include<stdio.h>#include<string.h>intmain(){intt;scanf("%d",&t);while(t--){intn;scanf("%d",&n);inta[n][n];memset(a,0,sizeof(a));//初始化数组a的值为0i......
  • ACWing1207_大臣的旅费(bfs)
    有一些自己的理解不知道大家能不能看懂1207.大臣的旅费-AcWing题库高质量的算法题库https://www.acwing.com/problem/content/1209/很久以前,TT 王国空前繁荣。为了更好地管理国家,王国修建了大量的快速路,用于连接首都和王国内的各大城市。为节省经费,TT 国的大臣们经过......
  • AI预测体彩排3采取888=3策略+和值012路或胆码测试10月31日升级新模型预测第120弹
            经过100多期的测试,当然有很多彩友也一直在观察我每天发的预测结果,得到了一个非常有价值的信息,那就是9码定位的命中率非常高,已到达90%的命中率,这给喜欢打私菜的朋友提供了极高价值的预测结果~当然了,大部分菜友还是走的正常渠道,因此,得想办法进行缩水,尽可能少的缩......
  • 2024-2025-120241425《计算机基础与程序设计》第五周学习总结
    2024-2025-120241425《计算机基础与程序设计》第五周学习总结作业信息这个作业属于哪个课程2024-2025-1-计算机基础与程序设计这个作业要求在哪里https://edu.cnblogs.com/campus/besti/2024-2025-1-CFAP/homework/13268这个作业的目标Pep/9虚拟机机器语言与汇编......