|
@@ -618,6 +618,9 @@ Model3D::Model3D()
|
|
|
textur = 0;
|
|
|
skelett = 0;
|
|
|
animations = new RCArray< AnimationData >();
|
|
|
+ ambientFactor = 1.f;
|
|
|
+ diffusFactor = 0.f;
|
|
|
+ specularFactor = 0.f;
|
|
|
}
|
|
|
|
|
|
// Destruktor
|
|
@@ -667,6 +670,12 @@ void Model3D::setModelDaten( Model3DData * data )
|
|
|
skelett = skelett->release();
|
|
|
model = data;
|
|
|
skelett = model->copySkelett();
|
|
|
+ if( model )
|
|
|
+ {
|
|
|
+ this->ambientFactor = model->getAmbientFactor();
|
|
|
+ this->specularFactor = model->getSpecularFactor();
|
|
|
+ this->diffusFactor = model->getDiffusFactor();
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
// Setzt die zum Zeichnen zu benutzenden Texturen
|
|
@@ -678,6 +687,27 @@ void Model3D::setModelTextur( Model3DTextur * txt )
|
|
|
textur = txt;
|
|
|
}
|
|
|
|
|
|
+// Git den Factor an, mit dem das umgebungslicht (textur farbe) multipliziert wird
|
|
|
+// f: der neue Faktor (von 0 bis 1, ambient + specular + diffuse = 1)
|
|
|
+void Framework::Model3D::setAmbientFactor( float f )
|
|
|
+{
|
|
|
+ this->ambientFactor = f;
|
|
|
+}
|
|
|
+
|
|
|
+// Git den Factor an, mit dem die Lichtfarbe von Lichtquellen multipliziert wird
|
|
|
+// f: der neue Faktor (von 0 bis 1, ambient + specular + diffuse = 1)
|
|
|
+void Framework::Model3D::setDiffusFactor( float f )
|
|
|
+{
|
|
|
+ diffusFactor = f;
|
|
|
+}
|
|
|
+
|
|
|
+// Git den Factor an, mit dem das umgebungslicht (textur farbe) multipliziert wird
|
|
|
+// f: der neue Faktor (von 0 bis 1, ambient + specular + diffuse = 1)
|
|
|
+void Framework::Model3D::setSpecularFactor( float f )
|
|
|
+{
|
|
|
+ specularFactor = f;
|
|
|
+}
|
|
|
+
|
|
|
// Errechnet die Matrizen aller Knochen des Skeletts des Models
|
|
|
// viewProj: Die miteinander multiplizierten Kameramatrizen
|
|
|
// matBuffer: Ein Array mit Matrizen, der gefüllt werden soll
|
|
@@ -858,19 +888,19 @@ int Model3D::getDatenId() const
|
|
|
// Git den Factor an, mit dem das umgebungslicht (textur farbe) multipliziert wird
|
|
|
float Model3D::getAmbientFactor() const
|
|
|
{
|
|
|
- return model ? model->getAmbientFactor() : 0.f;
|
|
|
+ return ambientFactor;
|
|
|
}
|
|
|
|
|
|
// Git den Factor an, mit dem die Lichtfarbe von Lichtquellen multipliziert wird
|
|
|
float Model3D::getDiffusFactor() const
|
|
|
{
|
|
|
- return model ? model->getDiffusFactor() : 0.f;
|
|
|
+ return diffusFactor;
|
|
|
}
|
|
|
|
|
|
// Git den Factor an, mit dem die Reflektion von Lichtquellen multipliziert wird
|
|
|
float Model3D::getSpecularFactor() const
|
|
|
{
|
|
|
- return model ? model->getSpecularFactor() : 0.f;
|
|
|
+ return specularFactor;
|
|
|
}
|
|
|
|
|
|
// Gibt die Anzahl an Vertices zurück
|