示例#1
0
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() );
}
示例#2
0
// ************************************************************
// 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);
  
}
示例#3
0
RTMaterial ColorShaderGradient::shade(float u, float v, RTMaterial m) {



  m.setDiffColor(RTColor(v,0,0));
  
  return m;

}
示例#4
0
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() );
}
示例#5
0
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();

}
示例#6
0
RTAppearance::RTAppearance()
{
	color = RTColor();
	opacity = 1;
}