LibGDX - rotacja obiektu ModelInstance

0

Witam,

Mam pewien problem z nadaniem rotacji obiektowi, którym się poruszam za pomocą klawiszy W (przód) i S (tył). Przyciskami A i D będę się posługiwał w tym celu.

public void render() {
        ...
        
        if(Gdx.input.isKeyPressed(Keys.A))
        {
            Vector3 vec2 = new Vector3(xSz+100, ySz, zSz+100);
            //matrix.setToRotation(vec, angle++);            
            instance.transform.setToRotation(vec, vec2);
            //instance.transform.            
        }

        ...

        vec.set(xSz, ySz, zSz);
        instance.transform.setToTranslation(vec);
        modelBatch.begin(cam);
            modelBatch.render(instance, lights);
            modelBatch.render(instanceField, lights);
        modelBatch.end();
        batch.setProjectionMatrix(camera.combined);
    }

instance - obiekt poruszany,
instanceField - przestrzeń po której się poruszamy,
Vector3 vec - wektor, posiadający współrzędne obiektu,
Vector3 vec2 - inny wektor, który miał mi pomóc, ale pomimo licznych prób, nie udało się :(
cam - to oczywiście kamera, która wpatruje się w obiekt, ale nie podąża za nim - to postaram się rozwikłać później.

Do rotacji używałem metod znajdujących się w obiekcie instance.transform.* - są 4 setToRotation() oraz 4 rotate(). Jedyne co mi się udało zrobić to obracać kamerą dokoła własnej osi, NIE obiektu, wpatrując się przy tym w obiekt - cam.rotate(matrix);
Ktoś zdolny jest mi dokładnie wytłumaczyć na czym polega problem i której funkcji powinienem użyć do obracania obiektu? Nie pogardziłbym też jakimiś konkretnymi informacjami na temat obiektu Matrix4 - do czego służy itd. Doczytałem, że odopwiada za 'matrycę'(może rendering, ale w jaki sposób i po co?) i nie może zawierać mniej niż 16 zmiennych(punktów) float (4x4).

Za odpowiedź i pomoc z góry wielkie dzięki. :)

0

Przyciskami A i D będę się posługiwał w celu nadania rotacji.*

1 użytkowników online, w tym zalogowanych: 0, gości: 1