TEST(RTMaterial, shouldSupportAddition) { RTMaterial m1; m1.setKTransparency(0.1); m1.setShininess(0.2); m1.setDiffColor(RTColor(0,0.1,0.2)); m1.setSpecColor(RTColor(0,0.1,0.2)); m1.setAmbColor(RTColor(0,0.1,0.2)); m1.setEmissColor(RTColor(0,0.1,0.2)); RTMaterial m2; m2.setKTransparency(0.3); m2.setShininess(0.2); m2.setDiffColor(RTColor(0,0.1,0.2)); m2.setSpecColor(RTColor(0,0.1,0.2)); m2.setAmbColor(RTColor(0,0.1,0.2)); m2.setEmissColor(RTColor(0,0.1,0.2)); m1 += m2; DOUBLES_EQUAL( 0.4, m1.getKTransparency(), 0.00001 ); DOUBLES_EQUAL( 0.4, m1.getShininess(), 0.00001 ); COLOR_EQUAL(0, 51, 102, m1.getDiffColor() ); COLOR_EQUAL(0, 51, 102, m1.getSpecColor() ); COLOR_EQUAL(0, 51, 102, m1.getAmbColor() ); COLOR_EQUAL(0, 51, 102, m1.getEmissColor() ); }
// ************************************************************ // get color at UV coord. RTColor RTTexture::GetPixelColor(int x, int y) { int iPos = y*3*iWidth + x*3; return RTColor((GLfloat) pixels[iPos + RED_OFS] / (GLfloat) 255.0f, (GLfloat) pixels[iPos + GREEN_OFS] / (GLfloat) 255.0f, (GLfloat) pixels[iPos + BLUE_OFS] / (GLfloat) 255.0f); }
RTMaterial ColorShaderGradient::shade(float u, float v, RTMaterial m) { m.setDiffColor(RTColor(v,0,0)); return m; }
TEST(RTMaterial, shouldSupportMultiplication) { RTMaterial m1; m1.setKTransparency(0.1); m1.setShininess(0.2); m1.setDiffColor(RTColor(0,0.1,0.2)); m1.setSpecColor(RTColor(0,0.1,0.2)); m1.setAmbColor(RTColor(0,0.1,0.2)); m1.setEmissColor(RTColor(0,0.1,0.2)); m1 *= 0.5; DOUBLES_EQUAL( 0.05, m1.getKTransparency(), 0.00001 ); DOUBLES_EQUAL( 0.1, m1.getShininess(), 0.00001 ); COLOR_EQUAL(0, 12, 25, m1.getDiffColor() ); COLOR_EQUAL(0, 12, 25, m1.getSpecColor() ); COLOR_EQUAL(0, 12, 25, m1.getAmbColor() ); COLOR_EQUAL(0, 12, 25, m1.getEmissColor() ); }
void OBJScene::setScene(char *filename) { std::vector<tinyobj::shape_t> tinyshapes; std::string err = tinyobj::LoadObj(tinyshapes, filename, "Scenes/obj/"); printf("%s\n", err.c_str()); this->camera = Camera( Vector(15, 15, -10), Vector(-0.8,-0.8, 0.5), 0, Vector(0,1,0), M_PI/2 ); this->lights.push_back(Light( POINT, Vector(20, 5, 0), Vector(0,0,1), RTColor(1,1,1), 0, 0 )); //this->camera = Camera( // Vector(275,270,-260), // Vector(0,0,1), // 0, // Vector(0,1,0), // M_PI/2 //); // //this->lights.push_back(Light( // POINT, // Vector(270,500,270), // Vector(0,0,1), // RTColor(1,1,1), // 0, // 0 //)); setObjects(tinyshapes); Scene::setScene(); }
RTAppearance::RTAppearance() { color = RTColor(); opacity = 1; }