当前位置: 首页 > news >正文

threejs 大场景下,对小模型进行贴图处理

接上篇小模型的删除☞threeJS 大模型中对小模型进行删除-CSDN博客

针对已有模型,根据数据状态进行贴图处理,例如:机房内电脑告警状态、电脑开关机状态下的不同状态贴图等

示例模型还是以丛林小屋为例:针对该模型中的树干进行贴图处理

原图

贴图后,忽略红色丑树干,只是增强演示效果

找模型的小tip

第一步加载完模型后,查看下模型的结构,可以打印下object的子模型

输出结果:

大概知道这个模型由哪些子模型组成,这个模型没有group的概念,只有简单的mesh组成,根据实际的业务需求,模型名称可能有一定的约束规范,例如id之类。

我们以name为‘BTree_BrichTree_0’为例,进行大模型中的对其删除操作;具体代码如下

    // 贴图的方法,设置全局变量screenMaterial, 对其材质赋值loadTexture() {const img = require('@/assets/img/threeImg/pop-item-red.png'); // 贴图路径const textureLoader = new THREE.TextureLoader();textureLoader.load(img, texture => {this.screenMaterial = new THREE.MeshStandardMaterial({ map: texture });});},

selectedObject.material = this.screenMaterial; // 敲黑板,划重点 

单个模型的情况下,直接对其进行 material 进行赋值即可,亲测有效

const name = 'BTree_BrichTree_0';
const selectedObject = object.getObjectByName(name);
selectedObject.material = this.screenMaterial; // 敲黑板,划重点

模型组的场景,对其进行children遍历,进行材质重新赋值

for (let i = selectedObject.children.length - 1; i >= 0; i--) {const child = selectedObject.children[i];if (child instanceof THREE.Mesh && child.name.indexOf(name) !== -1 && child.material.map) {child.material = this.screenMaterial;}
}

http://www.lryc.cn/news/308406.html

相关文章:

  • 云畅科技携手飞腾打造智慧园区信创低代码综合解决方案
  • Dell R730 2U服务器实践1:开机管理
  • 『大模型笔记』Sora:探索大型视觉模型的前世今生、技术内核及未来趋势
  • python中的字符串处理
  • java之servlet
  • 重推请求之curl和fiddler
  • 基于redis实现【最热搜索】和【最近搜索】功能
  • 1.2 debug的六种指令的使用,四个通用寄存器
  • C# OpenVINO Crack Seg 裂缝分割 裂缝检测
  • 前后端项目-part03
  • Java 1.8 docker 镜像制作
  • python中自定义报错
  • part1:sora技术
  • RK3568平台开发系列讲解(基础篇)文件私有数据
  • 跨时钟信号处理方法
  • OD(13)之Mermaid饼图和象限图
  • 基于springboot+vue的智能无人仓库管理系统
  • 图神经网络实战——图论
  • 【PHP进阶】Rabbitmq的实际使用
  • 如何解决机器视觉高速图像处理软件的加密需求?
  • Linux的条件变量
  • 【Python笔记-设计模式】状态模式
  • Pytorch 复习总结 5
  • Codeforces Round 930 (Div. 2)
  • c语言求平方与倒数序列的部分和
  • Vue-4
  • 【Acwing】差分矩阵
  • Linux系统加固:如何有效管理系统账号
  • 在Windows中安装PyTorch
  • 助力智能化农田作物除草,基于YOLOv7【tiny/l/x】不同系列参数模型开发构建农田作物场景下玉米苗、杂草检测识别分析系统