0

複数のモデルで 1 つのオブジェクトを表示するシーンがあります。各モデルは、可変状態でオブジェクトを表示します。複数のモデルを切り替えるスライダーがあります。私の問題は、ユーザーがビューを回転させて別のモデルに変更すると、回転が失われ、新しいモデルが最初のカメラ/ビューポートの位置に表示されることです。したがって、新しいモデルで現在のカメラ変換を強制するにはどうすればよいですか?

$("#slider").change(function(){
  var i = $('#slider')[0].value;
  myscene.models = new Array();
  myscene.add(mymodels[i]);
  myscene.defineBuffers(mymodels[i]);
  myscene.render();
});

ありがとう、エル

4

2 に答える 2

1

それは PhiloGL と呼ばれていませんか?レビューのためにコードを共有してください - 状態を共有、保存、および復元する方法。WebGL では、変換を明示的に保存/復元する必要があります。

于 2014-02-25T09:08:32.793 に答える
0

必要なのは、新しいモデルの変換を更新することだと思います。これを試してください:

var copyTransformations = function (target, src) {
    target.position = src.position;
    target.scale = src.scale;
    target.rotation = src.rotation;
    target.update(); // if you call the update for the target model in another place, but before the render will work to
};

copyTransformations(newModel, oldModel);
于 2014-02-25T13:51:42.417 に答える