8

私は自分の世界でのメッシュの位置を追跡しているモデル マトリックスを持っています。and への呼び出しごとに、対応するglRotate()andへの呼び出しがあり、正しく動作しているように見えます。glTranslate()modelMatrix.rotate()modelMatrix.translate()

ここで、各モデルに関連付けられた境界ボックスを更新する必要があります。私はlibGDXフレームワークで作業しており、ここBoundingBoxにあるクラスには、バウンディングボックスにマトリックスを適用できるようにするメソッドがありますが、値が正しく更新されていないため、私が試している方法かもしれませんそれを適用します。何か案は?mul()

これが私の関連コードです:

gl.glPushMatrix();

// Set the model matrix to the identity matrix
modelMatrix.idt();

// Update the orbit value of this model
orbit = (orbit + ORBIT_SPEED * delta) % 360;
gl.glRotatef(orbit, 1.0f, 1.0f, 0);

// Update the model matrix rotation
modelMatrix.rotate(1.0f, 1.0f, 0, orbit);

// Move the model to it's specified radius
gl.glTranslatef(0, 0, -ORBIT_DISTANCE);

// Update the model matrix translation
modelMatrix.translate(0, 0, -ORBIT_DISTANCE);

// Update the bounding box
boundingBox.mul(modelMatrix);

if (GameState.DEBUG)
{
    renderBoundingBox(gl, delta);
}

// Bind the texture and draw
texture.bind();
mesh.render(GL10.GL_TRIANGLES);

gl.glPopMatrix();
4

1 に答える 1