2

私はthreejsが初めてで、このライブラリについて学びたいと思っています...しかし、私の意見では、ドキュメントはほとんどありません。

問題は次のとおりです。

私は SphereGeometry を持っており、マウス イベントを通じて対話性を持たせたいと考えています。「mouseover」および「mouseout」イベントに three.domevent.object3d.js を使用して、スケール プロパティを大きくしたり小さくしたりしています。しかし、何も起こらないため、マウスオーバーがトリガーされたときに球のマテリアルを変更することはできません。私のコードは次のとおりです。

    sphere.on('mouseover', function(event){
        event.target.scale.x *= 2;
        event.target.scale.y *= 2;
        event.target.scale.z *= 2;
        event.target.material.envMap = textureCube;
        event.target.material.combine = THREE.MixOperation;
        event.target.material.reflectivity = 0.15;
    }).on('mouseout', function(event){
        event.target.scale.x *= 0.5;
        event.target.scale.y *= 0.5;
        event.target.scale.z *= 0.5;
        event.target.material.envMap = null;
        event.target.material.combine = THREE.MixOperation;
        event.target.material.reflectivity = 0;
    });

textureCube は、skyboxMesh の jpeg の束で、そのコードは次のとおりです。

var r = "images/";
var urls = [ r + "px.jpg", r + "nx.jpg",
             r + "py.jpg", r + "ny.jpg",
             r + "pz.jpg", r + "nz.jpg" ];

textureCube = THREE.ImageUtils.loadTextureCube( urls );

どんな助けでも大歓迎です

ありがとう

4

1 に答える 1

2

マテリアルに環境マップを追加または削除する場合は、追加する必要があります

material.needsUpdate = true;

「物事を更新する方法」のドキュメントをご覧ください:https ://threejs.org/docs/index.html#manual/en/introduction/How-to-update-things

three.domevent.object3d.jsはライブラリの一部ではないので、コメントすることはできません。

three.js r.52

于 2012-10-30T13:36:52.207 に答える