我有兩個模型實例modelInstance1
和modelInstance2
。libGDX 3D以下和麪向對象
modelInstance1 - position Vector3(0,0,0)
modelInstance2 - position Vector3(10,10,10)
我該怎麼辦將modelInstance1旋轉到modelInstance2並在更新方法中移動此方向?答案後
問:
我試圖APLY答案基本xoppa魔方教程和東西是不好的。請問有什麼不對?
@Override
public void create() {
environment = new Environment();
environment.set(new ColorAttribute(ColorAttribute.AmbientLight, 0.4f, 0.4f, 0.4f, 1f));
environment.add(new DirectionalLight().set(0.8f, 0.8f, 0.8f, -1f, -0.8f, -0.2f));
modelBatch = new ModelBatch();
cam = new PerspectiveCamera(67, Gdx.graphics.getWidth(), Gdx.graphics.getHeight());
cam.position.set(10f, 10f, 10f);
cam.lookAt(0,0,0);
cam.near = 1f;
cam.far = 300f;
cam.update();
ModelBuilder modelBuilder = new ModelBuilder();
model = modelBuilder.createBox(5f, 5f, 10f,
new Material(ColorAttribute.createDiffuse(Color.GREEN)),
Usage.Position | Usage.Normal);
instance1 = new ModelInstance(model);
instance2 = new ModelInstance(model);
instance2.transform.translate(10,0,10);
camController = new CameraInputController(cam);
Gdx.input.setInputProcessor(camController);
}
渲染和更新方法。
@Override
public void render() {
Vector3 position1 = new Vector3(), position2 = new Vector3(), direction = new Vector3();
instance1.transform.getTranslation(position1);
instance2.transform.getTranslation(position2);
direction = (position2).sub(position1).nor();
instance1.transform.setToRotation(direction, Vector3.X);
instance2.transform.translate(0.05f, 0, 0.05f).rotate(0, 1, 0, 10*Gdx.graphics.getDeltaTime()).translate(0, 0, 0);
camController.update();
Gdx.gl.glViewport(0, 0, Gdx.graphics.getWidth(), Gdx.graphics.getHeight());
Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT | GL20.GL_DEPTH_BUFFER_BIT);
modelBatch.begin(cam);
modelBatch.render(instance1, environment);
modelBatch.render(instance2, environment);
modelBatch.end();
}
我試圖改變setToRotate方法:
instance1.transform.setToLookAt(position1, position2, new Vector3(0,1,0));
但同樣的問題..
對「跟隨」的約束是什麼? – cfrick 2014-10-31 14:31:00
將modelInstance1旋轉到modelInstance2並移動此方向。 – 2014-10-31 14:41:33
您是否嘗試過將第一個modelInstance的矩陣乘以指向第二個的lookAtMatrix? – TheWhiteLlama 2014-10-31 15:27:42