added diffuse / ambient obj parsing

This commit is contained in:
Jannick van Ballegooijen
2016-05-12 12:17:56 +02:00
parent 049fb28ffc
commit 11f07b154b
7 changed files with 289 additions and 1 deletions
+5 -1
View File
@@ -153,12 +153,16 @@ void configureOpenGL()
GLfloat mat_specular[] = { 1.0, 1.0, 1.0, 1.0 };
GLfloat mat_shininess[] = { 50.0 };
GLfloat light_position[] = { 30.0, 30.0, 30.0, 0.0 };
GLfloat light_diffuse[] = { 1.7, 1.7, 1.7, 1.0 };
GLfloat light_ambient[] = { 1.7, 1.7, 1.7, 1.0 };
glClearColor(0.0, 0.0, 0.0, 0.0);
glShadeModel(GL_SMOOTH);
glMaterialfv(GL_FRONT, GL_SPECULAR, mat_specular);
glMaterialfv(GL_FRONT, GL_SHININESS, mat_shininess);
glLightfv(GL_LIGHT0, GL_POSITION, light_position);
glLightfv(GL_LIGHT0, GL_DIFFUSE, light_diffuse);
glLightfv(GL_LIGHT0, GL_AMBIENT, light_ambient);
glEnable(GL_LIGHTING);
glEnable(GL_LIGHT0);
@@ -170,5 +174,5 @@ void configureOpenGL()
void loadModels()
{
models.push_back(new Model("models/ship/shipA_OBJ.obj"));
models.push_back(new Model("models/ship/Zwaard.obj"));
}
+13
View File
@@ -129,6 +129,15 @@ void Model::draw()
glEnable(GL_TEXTURE_2D);
materials[g->materialIndex]->texture->bind();
}
else
{
glDisable(GL_TEXTURE_2D);
float color[4] = { 1, 0, 0, 1 };
memcpy(color, materials[g->materialIndex]->diffuseColor.v, 3 * sizeof(float));
glMaterialfv(GL_FRONT_AND_BACK, GL_DIFFUSE, color);
glMaterialfv(GL_FRONT_AND_BACK, GL_AMBIENT, color);
}
glBegin(GL_TRIANGLES);
for (auto &f : g->faces)
@@ -193,6 +202,10 @@ void Model::loadMaterialFile(std::string fileName, std::string dirName)
currentMaterial->hasTexture = true;
currentMaterial->texture = new Texture(dirName + "/" + params[1]);
}
else if (params[0] == "kd")
{
currentMaterial->diffuseColor = Vec3f(atof(params[1].c_str()), atof(params[2].c_str()), atof(params[3].c_str()));
}
else
std::cout << "Didn't parse " << params[0] << " in material file" << std::endl;
}
+3
View File
@@ -35,6 +35,9 @@ private:
std::string name;
Texture* texture;
bool hasTexture;
Vec3f diffuseColor;
};
class ObjGroup
Binary file not shown.

After

Width:  |  Height:  |  Size: 58 KiB

+134
View File
@@ -0,0 +1,134 @@
newmtl initialShadingGroup
illum 4
Kd 0.22 0.22 0.22
Ka 0.00 0.00 0.00
Tf 1.00 1.00 1.00
Ni 1.00
newmtl lambert2SG
illum 4
Kd 0.50 0.32 0.25
Ka 0.00 0.00 0.00
Tf 1.00 1.00 1.00
Ni 1.00
newmtl lambert3SG
illum 4
Kd 0.45 0.45 0.45
Ka 0.00 0.00 0.00
Tf 1.00 1.00 1.00
Ni 1.00
newmtl lambert4SG
illum 4
Kd 0.12 0.12 0.12
Ka 0.00 0.00 0.00
Tf 1.00 1.00 1.00
Ni 1.00
newmtl lambert5SG
illum 4
Kd 0.10 0.05 0.02
Ka 0.00 0.00 0.00
Tf 1.00 1.00 1.00
Ni 1.00
newmtl pasted__lambert3SG
illum 4
Kd 0.45 0.45 0.45
Ka 0.00 0.00 0.00
Tf 1.00 1.00 1.00
Ni 1.00
newmtl pasted__lambert4SG
illum 4
Kd 0.12 0.12 0.12
Ka 0.00 0.00 0.00
Tf 1.00 1.00 1.00
Ni 1.00
newmtl pasted__lambert4SG1
illum 4
Kd 0.12 0.12 0.12
Ka 0.00 0.00 0.00
Tf 1.00 1.00 1.00
Ni 1.00
newmtl pasted__lambert4SG2
illum 4
Kd 0.00 0.00 0.00
Ka 0.00 0.00 0.00
Tf 1.00 1.00 1.00
map_Kd ZWAARD.png
Ni 1.00
newmtl pasted__lambert5SG
illum 4
Kd 0.10 0.05 0.02
Ka 0.00 0.00 0.00
Tf 1.00 1.00 1.00
Ni 1.00
newmtl pasted__lambert5SG1
illum 4
Kd 0.10 0.05 0.02
Ka 0.00 0.00 0.00
Tf 1.00 1.00 1.00
Ni 1.00
newmtl pasted__lambert5SG2
illum 4
Kd 0.00 0.00 0.00
Ka 0.00 0.00 0.00
Tf 1.00 1.00 1.00
map_Kd HANDVAT.png
Ni 1.00
newmtl pasted__pasted__lambert4SG
illum 4
Kd 0.12 0.12 0.12
Ka 0.00 0.00 0.00
Tf 1.00 1.00 1.00
Ni 1.00
newmtl pasted__pasted__lambert4SG1
illum 4
Kd 0.12 0.12 0.12
Ka 0.00 0.00 0.00
Tf 1.00 1.00 1.00
Ni 1.00
newmtl pasted__pasted__lambert4SG2
illum 4
Kd 0.12 0.12 0.12
Ka 0.00 0.00 0.00
Tf 1.00 1.00 1.00
Ni 1.00
newmtl pasted__pasted__lambert4SG3
illum 4
Kd 0.12 0.12 0.12
Ka 0.00 0.00 0.00
Tf 1.00 1.00 1.00
Ni 1.00
newmtl pasted__pasted__lambert5SG
illum 4
Kd 0.10 0.05 0.02
Ka 0.00 0.00 0.00
Tf 1.00 1.00 1.00
Ni 1.00
newmtl pasted__pasted__lambert5SG1
illum 4
Kd 0.10 0.05 0.02
Ka 0.00 0.00 0.00
Tf 1.00 1.00 1.00
Ni 1.00
newmtl pasted__pasted__lambert5SG2
illum 4
Kd 0.10 0.05 0.02
Ka 0.00 0.00 0.00
Tf 1.00 1.00 1.00
Ni 1.00
newmtl pasted__pasted__lambert5SG3
illum 4
Kd 0.10 0.05 0.02
Ka 0.00 0.00 0.00
Tf 1.00 1.00 1.00
Ni 1.00
newmtl pasted__pasted__pasted__lambert4SG
illum 4
Kd 0.12 0.12 0.12
Ka 0.00 0.00 0.00
Tf 1.00 1.00 1.00
Ni 1.00
newmtl pasted__pasted__pasted__lambert5SG
illum 4
Kd 0.10 0.05 0.02
Ka 0.00 0.00 0.00
Tf 1.00 1.00 1.00
Ni 1.00
Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

+134
View File
@@ -0,0 +1,134 @@
newmtl initialShadingGroup
illum 4
Kd 0.22 0.22 0.22
Ka 0.00 0.00 0.00
Tf 1.00 1.00 1.00
Ni 1.00
newmtl lambert2SG
illum 4
Kd 0.50 0.32 0.25
Ka 0.00 0.00 0.00
Tf 1.00 1.00 1.00
Ni 1.00
newmtl lambert3SG
illum 4
Kd 0.45 0.45 0.45
Ka 0.00 0.00 0.00
Tf 1.00 1.00 1.00
Ni 1.00
newmtl lambert4SG
illum 4
Kd 0.12 0.12 0.12
Ka 0.00 0.00 0.00
Tf 1.00 1.00 1.00
Ni 1.00
newmtl lambert5SG
illum 4
Kd 0.10 0.05 0.02
Ka 0.00 0.00 0.00
Tf 1.00 1.00 1.00
Ni 1.00
newmtl pasted__lambert3SG
illum 4
Kd 0.45 0.45 0.45
Ka 0.00 0.00 0.00
Tf 1.00 1.00 1.00
Ni 1.00
newmtl pasted__lambert4SG
illum 4
Kd 0.12 0.12 0.12
Ka 0.00 0.00 0.00
Tf 1.00 1.00 1.00
Ni 1.00
newmtl pasted__lambert4SG1
illum 4
Kd 0.12 0.12 0.12
Ka 0.00 0.00 0.00
Tf 1.00 1.00 1.00
Ni 1.00
newmtl pasted__lambert4SG2
illum 4
Kd 0.00 0.00 0.00
Ka 0.00 0.00 0.00
Tf 1.00 1.00 1.00
map_Kd ZWAARD.png
Ni 1.00
newmtl pasted__lambert5SG
illum 4
Kd 0.10 0.05 0.02
Ka 0.00 0.00 0.00
Tf 1.00 1.00 1.00
Ni 1.00
newmtl pasted__lambert5SG1
illum 4
Kd 0.10 0.05 0.02
Ka 0.00 0.00 0.00
Tf 1.00 1.00 1.00
Ni 1.00
newmtl pasted__lambert5SG2
illum 4
Kd 0.00 0.00 0.00
Ka 0.00 0.00 0.00
Tf 1.00 1.00 1.00
map_Kd HANDVAT.png
Ni 1.00
newmtl pasted__pasted__lambert4SG
illum 4
Kd 0.12 0.12 0.12
Ka 0.00 0.00 0.00
Tf 1.00 1.00 1.00
Ni 1.00
newmtl pasted__pasted__lambert4SG1
illum 4
Kd 0.12 0.12 0.12
Ka 0.00 0.00 0.00
Tf 1.00 1.00 1.00
Ni 1.00
newmtl pasted__pasted__lambert4SG2
illum 4
Kd 0.12 0.12 0.12
Ka 0.00 0.00 0.00
Tf 1.00 1.00 1.00
Ni 1.00
newmtl pasted__pasted__lambert4SG3
illum 4
Kd 0.12 0.12 0.12
Ka 0.00 0.00 0.00
Tf 1.00 1.00 1.00
Ni 1.00
newmtl pasted__pasted__lambert5SG
illum 4
Kd 0.10 0.05 0.02
Ka 0.00 0.00 0.00
Tf 1.00 1.00 1.00
Ni 1.00
newmtl pasted__pasted__lambert5SG1
illum 4
Kd 0.10 0.05 0.02
Ka 0.00 0.00 0.00
Tf 1.00 1.00 1.00
Ni 1.00
newmtl pasted__pasted__lambert5SG2
illum 4
Kd 0.10 0.05 0.02
Ka 0.00 0.00 0.00
Tf 1.00 1.00 1.00
Ni 1.00
newmtl pasted__pasted__lambert5SG3
illum 4
Kd 0.10 0.05 0.02
Ka 0.00 0.00 0.00
Tf 1.00 1.00 1.00
Ni 1.00
newmtl pasted__pasted__pasted__lambert4SG
illum 4
Kd 0.12 0.12 0.12
Ka 0.00 0.00 0.00
Tf 1.00 1.00 1.00
Ni 1.00
newmtl pasted__pasted__pasted__lambert5SG
illum 4
Kd 0.10 0.05 0.02
Ka 0.00 0.00 0.00
Tf 1.00 1.00 1.00
Ni 1.00