// --- Methods inherited from Texmap --- RGBA Water::EvalColor(ShadeContext& sc) { float d; float q[3]; Point3 p, dp; if (gbufID) sc.SetGBufferID(gbufID); xyzGen->GetXYZ(sc, p, dp); q[0] = p.x; q[1] = p.y; q[2] = p.z; d = ScalarWave(q); if (d>1.0f) d = 1.0f; // If we have sub-texmaps and they are enabled, get the colors from // the sub-texmaps, otherwise get them from the color swatch RGBA c0 = (mapOn[0]&&subTex[0]) ? subTex[0]->EvalColor(sc): col[0]; RGBA c1 = (mapOn[1]&&subTex[1]) ? subTex[1]->EvalColor(sc): col[1]; Col24 c; Col24 col1 = Col24FromColor(c0); Col24 col2 = Col24FromColor(c1); lerp_color(&c, &col1, &col2, d); return ColorFromCol24(c); }
// --- Methods inherited from Texmap --- RGBA Smoke::EvalColor(ShadeContext& sc) { float d; Point3 p, dp; if (gbufID) sc.SetGBufferID(gbufID); xyzGen->GetXYZ(sc, p, dp); if (size == 0.0f) size = 1.0f; d = SmokeFunc(p/size, iter); // If we have sub-texmaps and they are enabled, get the colors from // the sub-texmaps, otherwise get them from the color swatch RGBA c0 = (mapOn[0]&&subTex[0]) ? subTex[0]->EvalColor(sc): col[0]; RGBA c1 = (mapOn[1]&&subTex[1]) ? subTex[1]->EvalColor(sc): col[1]; Col24 c; Col24 col1 = Col24FromColor(c0); Col24 col2 = Col24FromColor(c1); lerp_color(&c, &col1, &col2, d); return ColorFromCol24(c); }
// --- Methods inherited from Texmap --- RGBA Stucco::EvalColor(ShadeContext& sc) { float f; Point3 p, dp; if (gbufID) sc.SetGBufferID(gbufID); xyzGen->GetXYZ(sc, p, dp); if (size == 0.0f) size = 0.0001f; p /= size; float scl = compscl(dp, size); f = Func(p, scl); // If we have sub-texmaps and they are enabled, get the colors from // the sub-texmaps, otherwise get them from the color swatch RGBA c0 = (mapOn[0]&&subTex[0]) ? subTex[0]->EvalColor(sc): col[0]; RGBA c1 = (mapOn[1]&&subTex[1]) ? subTex[1]->EvalColor(sc): col[1]; Col24 c; Col24 col1 = Col24FromColor(c0); Col24 col2 = Col24FromColor(c1); lerp_color(&c, &col1, &col2, f); return ColorFromCol24(c); }