fake miniature filter
Moritz Moeller
realritz at virtualritz.com
Sun Jan 11 17:42:20 CET 2009
Boudewijn,
> That's basically what a bumpmap filter in Krita or Gimp does, isn't it? Take a
> layer (or mask, both are nodes) and use it to determine modifications in
> another layer or mask. I think I already finished porting the bumpmap filter
> this summer, so there's an example ready for anyone who wants to implement
> such a filter.
I guess my comment was more meant along the lines of: this should be
available on a lower level and the developer of a filter not have to
care about it much.
Basically, the developer should choose, for each parameter their filter
exposes, if the parameter is constant or varying.
In the latter case, the filter needs to call a function to obtain the
resp. local value of a parameter, at each position filtered.
Where this value comes from, ultimately, the developer does not need to
know. This is managed by the application elsewhere.
In a good system such a parameter query function would be overloaded to
support feeding just the parameter's name/id, optionally position,
optionally four positions (returns a filtered value of the parameter
over that area) and optionally a filter type (uses that filter to filter
the value).
See the texture() shadeop in the RenderMan shading language.
Then there should be functions to get derivatives of the parameter in x
& y direction (see the du() dv() functions and the dPdu and dPdv
variables in the RenderMan shading language).
For bump mapping you probably needed to calculate a lot of this yourself
already. It would be good to expose this in a high level API.
I certainly dunno how much work the current API requires to be that
"high level".
If that stuff is already supported, ignore my comment. :)
Beers,
Moritz
More information about the kimageshop
mailing list