Thursday, June 18, 2009

something fishy

Parece que hay algo raro con 3delight.

Les dejo el link del post: http://www.3delight.com/en/modules/PunBB/viewtopic.php?id=1519 [Point based approximate: very long rendertime].

Friday, June 12, 2009

bent normals

occlusion y bent normals estan relacionadas. Ambos se calculan al mismo tiempo y es posible calcularlos cuando usamos raytracing o cuando usamos point clouds y la diferencia que tenemos es la misma que con occlusion (grano con raytracing dependiente del numero de samples por ejemplo).

Este resultado no es igual a calcular N (pero se pueden usar ambos en compuesto). Y el renderearlo/calcularlo es opcional y dependiente del proyecto. Hay mucha discusión entre su utilidad. Personalmente, es poca la utilidad para reiluminar (como difusos/rims) y siempre termina controlando otras partes del compuesto.

surface bentnormals (
string ptcfile = "";

)
{
extern normal N;
extern point P;

extern vector I;
float bleeding;
vector bentNormal;
vector Nn = normalize (N);

if (ptcfile != "")
{
bleeding = occlusion(P, Nn, 0, "pointbased", 1, "filename", ptcfile, "environmentdir", bentNormal, "clamp", 1, "sortbleeding",1);
}
else
{
bleeding = occlusion(P, Nn, 128, "environmentdir", bentNormal);
}

Ci = color(normalize(vtransform("world",bentNormal)));
//cambiar dependiendo al espacio que se necesite

}


Originalmente, jc iba a subir esto, pero le quite el source y sus notas ;)

Notas:
  • En el código, estamos calculando bent normals en world space. Aqui podemos usar "current" (que es "camera" con 3delight).

Friday, June 5, 2009