繁体   English   中英

STL文件阅读器问题

[英]STL file reader issues

我正在使用STLLoader.js来绘制组件。 使用一种定义的颜色正确渲染每个组件,但这看起来不像真实世界的组件。

在此输入图像描述

上面的图像是我使用STLLoader.js(使用二进制STL文件)的我的three.js实现,因为我已经读过这种格式支持组件的颜色。

下面的图像呈现我的一个Windows软件,在那里我使用了Step文件。 我想渲染组件与下图中的外观相同,因此它看起来像一个真实世界的组件。

在此输入图像描述

有没有办法在three.js中获得正确的彩色输出? 我搜索了很多但没有办法实现它。 请帮助我前进。

        var loader = new THREE.STLLoader();
        loader.addEventListener( 'load', function ( event ) {               
            var material = new THREE.MeshPhongMaterial( { color: 0x75D3DC, ambient: 0x75D3DC, specular: 0x75D3DC, shininess: 200/*, vertexColors: THREE.VertexColors */} );

            var mesh = new THREE.Mesh( geometry, material );
            mesh.position.x = x - boardMaxX + w/2 ;
            mesh.position.y = - 5 ;
            mesh.position.z = z - boardMaxY + h/2 ;

            mesh.rotation.set( (rotation * Math.PI / 180.0), 0, 0 );

            mesh.scale.set(2, 2, 2);

            mesh.castShadow = true;
            mesh.receiveShadow = true;
            board.add(mesh);
            objects.push( mesh );

            i = i + 5;
            componenetDraw(componentArray[i] * scaleX, -7, componentArray[i + 1] * scaleY, componentArray[i + 2], componentArray[i + 4]);
        } );

    loader.load( fileName );
    }

以上代码用于读取STL文件。 但我没有读取STEP文件的代码。

STEP文件通常包含BREP几何,您需要CAD内核将BREP转换为网格。 查看用于CAD内核的BRL-CAD,FreeCAD,pythonOCC和OCE / OCCT,以及用于转换网格的meshlab。

您需要选择一种文件格式,允许指定每个三角形集的颜色,而不仅仅是每个网格。 据我所知,这适用于vrml,可以通过FreeCAD导出。

另一个想法是将您的零件分成多个,并将每个颜色区域导出为单色网格。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM