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!