3

STLLoader.js を使用してコンポーネントを描画しています。すべてのコンポーネントは 1 つの定義された色で適切にレンダリングされますが、実際のコンポーネントのようには見えません。

ここに画像の説明を入力

上の画像は、STLLoader.js (バイナリ STL ファイルを使用) を使用した私の three.js 実装です。この形式はコンポーネントの色をサポートしていると読んだからです。

以下の画像は、私の Windows ソフトウェアの 1 つをレンダリングしたもので、そこで 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ファイルを読み取るためのコードがありません。

4

2 に答える 2

0

通常、STEP ファイルには BREP ジオメトリが含まれており、BREP をメッシュに変換するには CAD カーネルが必要です。CAD カーネルについては BRL-CAD、FreeCAD、pythonOCC、OCE/OCCT、メッシュの変換については meshlab をご覧ください。

于 2015-01-23T20:19:05.863 に答える