Monday, August 17, 2009

glossy reflections

Después de un proyecto mas en el estudio, estoy modificando algunos shaders que tenía pendientes. Principalmente convertir la sección de point clouds a un attributo mas, en lugar de a través de luces ambientales :)

Y parte de esa modificación incluye en algunas partes glossy reflections usando el mismo point cloud que uso para radiance.

Este código esta en el foro de 3delight, y se basa en indirectdiffuse con un ángulo de menos de 90 grados.

surface
ptc_glossyReflection (
string filename = "", sides = "front";
float clampbleeding = 1, sortbleeding = 1,
maxdist = 10, falloff = 0, falloffmode = 0,
coneangle = 0.2,
samplebase = 0.0, bias = 0.01,
maxsolidangle = 0.1;
)
{
normal Nn = normalize(N);
vector refl = reflect(I, Nn);
color irr;

irr = indirectdiffuse(P, refl, 0, "pointbased", 1, "filename", filename,
"hitsides", sides, "clamp", clampbleeding,
"sortbleeding", sortbleeding,
"maxdist", maxdist, "falloff", falloff,
"falloffmode", falloffmode,
"coneangle", radians (coneangle),
"samplebase", samplebase, "bias", bias,
"maxsolidangle", maxsolidangle);

Ci = irr;
}

No comments: