|
Donde las isosuperficies usan funciones implícitas del tipo F(x,y,z)=0, los objetos paramétricos usan un conjunto de ecuaciones expresadas en forma de parámetro que localizan los puntos sobre la superficie, x(u,v), y(u,v), z(u,v). Cada par de valores para u y v dan un único punto <x,y,z> en el espacio tridimensional.
Los objetos paramétricos no son objetos sólidos, son huecos, como un delgado caparazón.
Su sintaxis es:
parametric { function { FUNCTION_ITEMS }, function { FUNCTION_ITEMS }, function { FUNCTION_ITEMS } <u1,v1>, <u2,v2> [contained_by { SPHERE | BOX }] [max_gradient FLOAT_VALUE] [accuracy FLOAT_VALUE] [precompute DEPTH, VarList] }Los valores paramétricos por defecto son:
accuracy : 0.001La primera función calcula el valor de la x de la superficie, la segunda el de la y y la tercera el valor de la z. Se permite cualquier función cuyo resultado sea un valor en coma flotante.
<u1,v1>,<u2,v2> son los límites del
espacio(u,v), en el cual la superficie tiene que ser
calculada.
contained_by { ... } El 'objeto' contained_by limita el
área donde POV-Ray toma muestras para la superficie generada por
la función. Este receptáculo puede ser una esfera o una
caja, ambos usan la sintaxis estándar de POV-Ray. Si no se
especifica ninguna de ellas, se usará por defecto box
{<-1,-1,-1>, <1,1,1>}.
max_gradient, no es realmente la máxima pendiente.
Es la máxima cuantía de todas las seis derivadas
parciales en el rango especificado para u y v. Esto es, si tomamos dx/du,
dx/dv, dy/du, dy/dv, dz/du,
y dz/dv y las calculamos sobre el rango total, el max_gradient
es el máximo de los valores absolutos de todos estos valores.
accuracy El valor por defecto es 0.001. Valores más
pequeños producen superficies más exactas, pero
toman más tiempo de trazado.
precompute puede aumentar la velocidad de trazado de las superficies paramétricas. Simplemente divide las superficies paramétricas en trozos más pequeños (2^depth) y precomputa el rango de las variables (x,y,z) que especificamos después de depth. El valor máximo de depth es 20. Valores altos de depth pueden producir matrices que usan una gran cantidad de memoria, tomando mucho tiempo para procesar y trazar la escena. Si declaramos una superficie paramétrica con la palabra clave precompute y la usamos dos veces, todas las matrices permanecen en memoria una única vez.
Ejemplo, una esfera de radio unidad:
parametric { function { sin(u)*cos(v) } function { sin(u)*sin(v) } function { cos(u) } <0,0>, <2*pi,pi> contained_by { sphere{0, 1.1} } max_gradient ?? accuracy 0.0001 precompute 10 x,y,z pigment {rgb 1} }
|