【问题标题】:.obj Texture and Color Not Showing in Three.js.obj 纹理和颜色未在 Three.js 中显示
【发布时间】:2020-12-12 18:19:27
【问题描述】:

由于某种原因,当我将 .obj 和 .mtl 中的新模型添加到我的 three.js 代码中时,无论原始颜色或纹理是什么,颜色都会变为白色。以下是负责猪模型的代码的sn-p:

// pigmodel
            var objLoader = new OBJLoader();
            var mtlLoader = new MTLLoader();
            function loadpigmodel( x, y, z, ang, scale ) {

                mtlLoader.setPath( './images/' );
                mtlLoader.load( 'Pig1.mtl', function ( loadedMesh ) {

                    objLoader.setMaterials( loadedMesh );
                    objLoader.load( './images/Pig1.obj', function ( object ) {

                        switch ( scale ) {

                            case 'big':
                                object.scale.set( 100, 100, 100 );
                                break;
                            case 'small':
                                object.scale.set( 90, 90, 90 );
                                break;
                            default:

                        }

上面的代码模拟了一个带有一些堆肥箱的猪圈。如您所见,代码中显示的猪是白色的,尽管它应该是粉红色的。栅栏也应该是木质的,但是,它也是白色的。pig model image

我们怀疑变白的东西的 mtl 文件有问题。完整代码和 mtl 文件包含在此 hyperlink 中。

【问题讨论】:

    标签: javascript html css three.js


    【解决方案1】:

    Pig1.obj 中你有usemtl Pig1(使用材料Pig1),它假设在Pig1.mtl 的某处有一个声明newmtl Pig1(新材料Pig1),但是当你检查那个文件时,没有这样的材料,只有newmtl pigskin

    解决方案:

    • 打开Pig1.mtl
    • newmtl pigskin 更改为newmtl Pig1

    或者在你的 obj 文件中将 usemtl 更改为 pigskin,以让你更快乐。

    【讨论】:

    • 不知什么原因,我改了之后,猪还是白的。但是,堆肥箱的 .mtl 文件可以正常工作。
    • 请停止滥用 java-3d 标签。
    猜你喜欢
    • 2020-04-17
    • 2011-08-06
    • 2016-03-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-01-18
    • 2018-08-02
    • 1970-01-01
    相关资源
    最近更新 更多