|
![](/i/fill.gif) |
I'm used to pigment pattern based on 3D data (a.k.a 3D procedural pattern).
They usually take as input a 3D vector, performs their black magic and
returns a single float between 0 and 1, then this float is used against
the ramp to get another float (default ramp being linear, a.k.a no
change) and finally the float is used to compute the interpolation from
a map. So far, so good...
Two days ago, I get an idea: what if the colour of the point was
directly computed from the 3D vector... well in fact, what if the colour
was just the 3D vector. It does not make too much interest with a
position vector, but I was then thinking about either the ray direction
or the normal (it can be made available, that's not the problem here).
Illustrating with only the normal, I was just thinking first of
color.x = abs(normal.x)
color.y = abs(normal.y)
color.z = abs(normal.z)
Thus, a sphere would be colored two red,green and blue spots each at the
pole with smooth transition to a dark grey of eight spots, while a
rotating cube would get
homogeneous colour for each face...
Of course, that could be only the first step before a more complex
operation based on three map (one map per component, as well as one ramp
per component).
Kind of something like
<3D info> --> <x,y,z> --> average(mapx(rampx(x)), mapy(rampy(y)),
mapz(rampz))
instead of the traditional pattern
<3D info> --> v --> map(ramp(v))
So far, It won't be a pattern as we know it (so a name might be needed,
and any suggestion is welcome), but is there any interest for the concept ?
Or can it already be done with the actual feature and there is therefore
no need to patch ?
Post a reply to this message
|
![](/i/fill.gif) |