关于 threejs 加载fbx 材质是黑色 没有贴图 的问题

材质是黑色的原因不是丢贴图,也不是颜色错了,而是发光通道的问题,默认用的材质 MeshPhongMaterial 或者fbx自己有指定 MeshLambertMaterial 

这时候我也不知道为什么如果不开发光通道你的材质就会黑....

把发光颜色 强度 贴图 都换掉

直接贴代码

        function _ChangeMaterialEmissive(parent) {
            parent.traverse(function (obj) {
                if(obj instanceof THREE.Mesh){
                    obj.material.emissive=new THREE.Color(1,1,1);
                    obj.material.emissiveIntensity=1;
                    obj.material.emissiveMap=obj.material.map;
                }
            });
        }

在你加载成功后用这个func走一下

这样贴图颜色应该就对了....

至于接收光照我是没怎么尝试~~希望有大佬能说下,欢迎留言~~~

  • 6
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 26
    评论
### 回答1: three.js是一个用于在网页上创建3D图形和动画的JavaScript库。它提供了丰富的功能和工具,使开发人员能够轻松地创建交互式、高质量的3D场景。 FBX(Filmbox)是一种用于交换和管理3D数字内容的文件格式。它是由Autodesk开发的,并且被广泛用于游戏开发、虚拟现实、电影制作等领域。FBX文件可以包含3D模型、动画、纹理、材质等内容,可以在不同的3D软件之间进行导入和导出。 在three.js中,可以使用FBXLoader来加载和显示FBX文件。FBXLoader是一个three.js的扩展,它可以解析FBX文件,并将其转换为three.js可以理解和渲染的对象。 加载FBX文件的过程通常包括以下步骤:首先,需要创建一个场景对象和渲染器对象来显示3D场景;然后,使用FBXLoader加载FBX文件,并将其添加到场景中;最后,根据需要,可以对加载的3D模型进行进一步的操作和处理,例如添加动画、改变材质等。 通过使用three.jsFBXLoader,开发人员可以方便地在网页上展示和操作复杂的3D模型和动画。无论是创建虚拟现实应用程序、设计交互式游戏还是制作电影特效,使用three.jsFBXLoader都可以提供强大的工具和功能。 ### 回答2: Three.js是一个基于WebGL技术的开源JavaScript库,用于实现3D图形渲染。它提供了丰富的功能和API,使开发者能够轻松地创建和展示复杂的3D场景。 FBX是一种常用的3D模型文件格式,由Autodesk公司开发。它支持将图形、动画、材质和其他与3D相关的数据保存到一个文件中,以便在3D设计软件和游戏引擎中进行交互和共享。 three.js提供了在页面中加载和显示FBX文件的功能。使用three.jsFBXLoader,我们可以通过简单的几行代码将FBX模型导入到我们的WebGL场景中。 首先,我们需要在页面中引入three.jsFBXLoader的JavaScript文件。然后,我们可以使用FBXLoader加载FBX文件,并在加载完成后将其添加到场景中。加载过程中,我们可以使用回调函数来处理加载进度和错误信息。 加载FBX文件后,我们可以根据需要对模型进行各种操作。例如,我们可以改变其位置、旋转、缩放,或者应用材质和纹理。我们还可以为模型添加动画,并在场景中播放。 three.js还提供了许多其他功能,如相机控制、光照、阴影、碰撞检测等,使我们能够创建更加逼真和互动的3D场景。 总之,通过使用three.jsFBXLoader,我们可以轻松加载和展示FBX文件,并在WebGL场景中进行各种3D渲染和操作。这为开发者提供了强大的工具,帮助他们在网页中实现高质量的3D图形效果。 ### 回答3: three.js fbx是指在使用three.js库进行渲染和展示3D模型时,可以使用FBX文件格式进行模型的导入和加载。 在three.js中,FBX是一种常用的3D模型文件格式,可以包含模型的几何形状、纹理贴图、动画、材质等信息。通过加载FBX文件,我们可以将3D模型导入到three.js的场景中进行显示和交互。 使用three.js加载FBX文件非常简单,只需添加相应的加载器并指定文件路径,然后通过回调函数获取加载完成后的模型对象。 首先,我们需要在HTML文档中引入three.js库和FBX加载器的脚本文件。然后,创建一个three.js场景和相机。接下来,创建一个FBX加载器,并通过加载器的load()方法加载FBX文件。在加载完成后的回调函数中,我们可以获取到包含模型信息的对象,然后将其添加到场景中。 使用three.js fbx时,还可以对加载的模型进行一些进一步的操作和处理。例如,我们可以对模型进行平移、旋转、缩放等变换操作,也可以给模型添加动画、光照和材质等效果。 总而言之,通过three.js fbx,我们可以方便地加载和渲染3D模型,为网页增加更丰富的视觉效果。
评论 26
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

懵懵爸爸

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值