Three.js 导入FBX模型 时 加载GTA 贴图问题

最近在学习three.js的时候 ,发现按照官网的例子导入FBX模型,模型显示黑色 ,没有材质显示。故特此记录解决方法

	1.引入FBXLoader 与 TGALoader 
import { FBXLoader } from 'three/examples/jsm/loaders/FBXLoader
import { TGALoader } from 'three/examples/jsm/loaders/TGALoader   
const   fbxloader =new   FBXLoader()
fbxloader.load('fbx模型路径',(fbx)=>{
console.log(fbx)   //打印fbx信息

//遍历fbx  根据name的不同加载不同的图片
fbx.traverse((child)=>{
		if(child.isMesh){  
			//此处更新fbx 模型的贴图信息 ,需要在引入GTALoader.js
		        const   tgaloader=new TGALoader()
					if(child.name ==='Face_001'){
						 tgaloader.load('name对应的贴图文件',(texture)=>{
						//模型使用新的贴图纹理
						texture.needsUpdate=true
						child.material.map =texture
						
                        })
                    }	
				
//==============替换多个贴图需要进行多个判断 ,有点繁琐 ! fbxloader.js源码 不支持tga  ,也没有在源码上更改 ,只能这样子先处理了 !

        }

})


})

小插曲
在使用 vue3的时候 我定义了 一个全局变量 !但是我在渲染的时候 这个变量还没有被初始化 ,没有对应的方法,导致报错! 这里我是用 **?.**这个 运算符 解决问题

   let  mixer =ref(null)
   //代码赋值

	//渲染调用
	animate=()=>{
		mixer.update?.(clock.getDelta())  
		//这个运算符 表示 如果存在下面的属性或者方法 才调用  ,不会出现警告
   }
animate()
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值