Three.jsでの基本的なColladaの読み込み

コード

three.jsとcolladaローダーを使用してcolladaファイルを読み込もうとしています。three.jsのドキュメントを活用していますが、ファイルを画面に表示できないようです。私が達成したいのは、アニメーションを必要としない、シーンへのcolladaファイルの非常に基本的なインポートです。私が受け取っているエラーは次のとおりです。

未処理のSurfaceprop:format_hint
タイプlookatの変換を変換できません

XHR出力は.daeファイルの100%の負荷を示しており、ブラウザーで保存されたファイルの場所を参照してXMLとして表示できます。現在、IISでmimeタイプをapplication / xmlに設定しています。

これが私の現在のコードです。私は何が欠けていますか?:

<!DOCTYPE html>
<html lang="en">
<head>
    <title>three.js webgl - loaders - collada loader</title>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, user-scalable=no, minimum-scale=1.0, maximum-scale=1.0">
    <script src="scripts/three.min.js"></script>
    <script src="scripts/ColladaLoader.js"></script>
    <script src="scripts/jquery-2.1.4.min.js"></script>
    <script src="scripts/bootstrap.min.js"></script>
    <link href="css/bootstrap.min.css" rel="stylesheet" />
</head>

<body>
    <h1>Box Example</h1>
    <p>This example loads an collada file</p>

    <div id="webGL-container"></div>

    <script>
        var scene = new THREE.Scene();
        var camera = new THREE.PerspectiveCamera(75, window.innerWidth / window.innerHeight, 0.1, 1000);
        var renderer = new THREE.WebGLRenderer();

        renderer.setClearColor(0xff0000);
        renderer.setSize(window.innerWidth, window.innerHeight);

        camera.position.x = 40;
        camera.position.y = 40;
        camera.position.z = 40;

        // instantiate a loader
        var loader = new THREE.ColladaLoader();

        loader.load(
            // resource URL
            'models/box.dae',

            // Function when resource is loaded
            function (collada) {
                scene.add(collada.scene);
            },
            // Function called when download progresses
            function (xhr) {
                console.log((xhr.loaded / xhr.total * 100) + '% loaded');
            }
        );

        camera.lookAt(scene.position);

        renderer.render(scene, camera);
        $("#webGL-container").append(renderer.domElement);
    </script>
</body>
</html>

提供されたアドバイスによると、ここにバージョン2があります。

    var scene;;
    var camera;
    var renderer;
    var loader;

    function init() {
    scene = new THREE.Scene();
    camera = new THREE.PerspectiveCamera(75, window.innerWidth / window.innerHeight, 0.1, 1000);
    renderer = new THREE.WebGLRenderer();


    renderer.setClearColor();
    renderer.setSize(window.innerWidth, window.innerHeight);

    camera.position.x = 40;
    camera.position.y = 40;
    camera.position.z = 40;

    // instantiate a loader
    loader = new THREE.ColladaLoader();


        loader.load(
            // resource URL
            'models/box.dae',

            // Function when resource is loaded
            function (collada) {
                scene.add(collada.scene);
            },
            // Function called when download progresses
            function (xhr) {
                console.log((xhr.loaded / xhr.total * 100) + '% loaded');
            }
        );

        camera.lookAt(scene.position);
        $("#webGL-container").append(renderer.domElement);

    };



    function animate() {
        requestAnimationFrame(animate);

        renderer.render(scene, camera);
    }

    init();
    animate();

更新3:コアの.DAEファイルをレンダリングすることができましたが、テクスチャがありません(現在、ボックスはすべて黒で表示されています)。

    var scene;
    var camera;
    var renderer;
    var box;

    // instantiate a loader
    var loader = new THREE.ColladaLoader();
    loader.options.convertUpAxis = true;
    loader.load('models//box.dae', function (collada) {

        box = collada.scene;

        box.traverse(function (child) {

            if (child instanceof THREE.SkinnedMesh) {

                var animation = new THREE.Animation(child, child.geometry.animation);
                animation.play();

            }
        });

        box.scale.x = box.scale.y = box.scale.z = .2;
        box.updateMatrix();

        init();
        animate();
    });


    function init() {
        scene = new THREE.Scene();
        camera = new THREE.PerspectiveCamera(75, window.innerWidth / window.innerHeight, 0.1, 1000);
        renderer = new THREE.WebGLRenderer();

        renderer.setClearColor(0xdddddd);
        renderer.setSize(window.innerWidth, window.innerHeight);

        scene.add(box);

        camera.position.x = 40;
        camera.position.y = 40;
        camera.position.z = 40;

        camera.lookAt(scene.position);
    }

    function animate() {
        requestAnimationFrame(animate);
        renderer.render(scene, camera);
        $("#webGL-container").append(renderer.domElement);
    }
gaitat

javascriptの非同期ロードを実行しています。呼び出すrenderer.render()と、モデルがまだダウンロードされていないため、シーンはまだ空です。持っているコードをinit()関数に入れてから、関数を作成animate()して次のように呼び出します。

function animate() {
    requestAnimationFrame( animate );
    renderer.render( scene, camera );
}

init();
animate();

変数、、sceneグローバルcamerarendererする必要があります。

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

Three.jsクロスオリジンエラー関連するColladaファイルテクスチャの読み込み

分類Dev

JasmineとThree.jsのジオメトリの非同期読み込み

分類Dev

Three.jsとクロスドメイン画像の読み込み

分類Dev

Three.js + Angular:テクスチャの読み込みに失敗する

分類Dev

three.js fontloaderは未定義のgenerateshapesを読み込めません

分類Dev

Three.jsで読み込まれた.obj-modelsのnullチェックを回避する

分類Dev

THREE.jsのシーンへのオブジェクトの読み込みをキャンセルする

分類Dev

Javascript Three.Js GLTFの読み込みは、他のGLTFビューアと比較して非常に遅い

分類Dev

three.jsでアニメーションを読み込めません

分類Dev

Three.js画像を読み込む前に背景を削除する

分類Dev

three.jsのバイナリローダーによるオブジェクトの読み込みが機能していません

分類Dev

three.jsの読み込みが2分を超えてクラッシュする問題を修正する方法

分類Dev

Three.js - Drag Collada Files

分類Dev

three.js; 未定義のプロパティ「位置」を読み取れず、理由がわからない

分類Dev

Three.jsを使用して3DモデルがMapboxに読み込まれない

分類Dev

Reactのthree.js-THREE.ShaderTerrainがない

分類Dev

ホバーthree.jsでのみ色を変更します

分類Dev

ホバーthree.jsでのみ色を変更します

分類Dev

Three.js:底がz = 0のオブジェクトを追加する組み込みの方法

分類Dev

スプライトが読み込まれていません-Three.JS

分類Dev

フォントを一度だけ読み込む方法は? (TS / Three.JS)

分類Dev

Three.js THREE.Projectorは、

分類Dev

Three.js-複数のマテリアルオブジェクトを読み込もうとしています

分類Dev

THREE.jsのParametricBufferGeometry

分類Dev

Three.jsの例

分類Dev

JS : 画像の読み込み

分類Dev

Three.jsは、1つのオブジェクトのzbufferへの書き込みを抑制します

分類Dev

ElasticSearchでの積極的な読み込み

分類Dev

Three.js Collada-dispose()とメモリの解放(ガベージコレクション)の適切な方法は何ですか?

Related 関連記事

  1. 1

    Three.jsクロスオリジンエラー関連するColladaファイルテクスチャの読み込み

  2. 2

    JasmineとThree.jsのジオメトリの非同期読み込み

  3. 3

    Three.jsとクロスドメイン画像の読み込み

  4. 4

    Three.js + Angular:テクスチャの読み込みに失敗する

  5. 5

    three.js fontloaderは未定義のgenerateshapesを読み込めません

  6. 6

    Three.jsで読み込まれた.obj-modelsのnullチェックを回避する

  7. 7

    THREE.jsのシーンへのオブジェクトの読み込みをキャンセルする

  8. 8

    Javascript Three.Js GLTFの読み込みは、他のGLTFビューアと比較して非常に遅い

  9. 9

    three.jsでアニメーションを読み込めません

  10. 10

    Three.js画像を読み込む前に背景を削除する

  11. 11

    three.jsのバイナリローダーによるオブジェクトの読み込みが機能していません

  12. 12

    three.jsの読み込みが2分を超えてクラッシュする問題を修正する方法

  13. 13

    Three.js - Drag Collada Files

  14. 14

    three.js; 未定義のプロパティ「位置」を読み取れず、理由がわからない

  15. 15

    Three.jsを使用して3DモデルがMapboxに読み込まれない

  16. 16

    Reactのthree.js-THREE.ShaderTerrainがない

  17. 17

    ホバーthree.jsでのみ色を変更します

  18. 18

    ホバーthree.jsでのみ色を変更します

  19. 19

    Three.js:底がz = 0のオブジェクトを追加する組み込みの方法

  20. 20

    スプライトが読み込まれていません-Three.JS

  21. 21

    フォントを一度だけ読み込む方法は? (TS / Three.JS)

  22. 22

    Three.js THREE.Projectorは、

  23. 23

    Three.js-複数のマテリアルオブジェクトを読み込もうとしています

  24. 24

    THREE.jsのParametricBufferGeometry

  25. 25

    Three.jsの例

  26. 26

    JS : 画像の読み込み

  27. 27

    Three.jsは、1つのオブジェクトのzbufferへの書き込みを抑制します

  28. 28

    ElasticSearchでの積極的な読み込み

  29. 29

    Three.js Collada-dispose()とメモリの解放(ガベージコレクション)の適切な方法は何ですか?

ホットタグ

アーカイブ