Wo ist das Problem ???



  • Also, ich habe hier ein Ausschnitt aus der Engine, die ich am basteln bin:

    // Translationen
    void Object::setPos(float x,float y,float z){
     this->mxWorld._41 = x; // xPos
     this->mxWorld._42 = y; // yPos
     this->mxWorld._43 = z; // zPos
    }
    
    // Skalierungen
    void Object::setSize(float w,float h,float t){
     this->mxWorld._11 = w; // width
     this->mxWorld._22 = h; // height
     this->mxWorld._33 = t; // tide
    }
    
    // Rotationen um die X Achse (ap: angle of pitch)
    void Object::rotX(float ap){
     this->mxWorld._22 *= cosf(ap);
     this->mxWorld._23 += sinf(ap);
     this->mxWorld._32 += -sinf(ap);
     this->mxWorld._33 *= cosf(ap);
    }
    
    // Rotationen um die Y Achse (ay: angle of yaw)
    void Object::rotY(float ay){
     this->mxWorld._11 *= cosf(ay);
     this->mxWorld._13 += -sinf(ay);
     this->mxWorld._31 += sinf(ay);
     this->mxWorld._33 *= cosf(ay);
    }
    
    // Rotationen um die Z Achse (ar: angle of roll)
    void Object::rotZ(float ar){
     this->mxWorld._11 *= cosf(ar);
     this->mxWorld._12 += sinf(ar);
     this->mxWorld._21 += -sinf(ar);
     this->mxWorld._22 *= cosf(ar);
    }
    
    void Object::set(void){
     this->pDev->SetTransform(D3DTS_WORLD,this->mxWorld);
    }
    

    Auf diese Weise funktoniert alles Reibungslos, also, wieso funktioniert das bei der Kamera nicht auch so einfach ???

    Gruss Ishildur

    [ Dieser Beitrag wurde am 19.01.2003 um 23:27 Uhr von Ishildur editiert. ]



  • Die Modellmatrix verwandelt Koordinaten relativ zum Modell in absolute Weltkoordinaten. Die Kameramatrix verwandelt Weltkoordinaten in Koordinaten relativ zur Kamera. Klar, dass das nicht das gleiche sein kann!


Anmelden zum Antworten