Re: type of feFunc*

Hello Olaf,

 The proposed changes have been made and can be seen at

http://dev.w3.org/SVG/profiles/1.1F2/publish/filters.html#feComponentTransferElement

 I've made a few comments inline below.

    Tav


On Tue, 2010-12-07 at 12:55 +0100, Dr. Olaf Hoffmann wrote:
> Tavmjong Bah:
> > Hello Olaf,
> 
> Hello,
> >
> >  I have been tasked with responding to your email of 13 Jun 2010
> > concerning the definition of the attribute type for the elements feFunc*
> > defined in:
> >
> > http://www.w3.org/TR/SVG11/filters.html#feComponentTransferTypeAttribute
> >
> >
> > (ISSUE-2338: http://www.w3.org/Graphics/SVG/WG/track/issues/2338 ).
> >
> >  My proposed rewording of this section follows. Please let me know if
> > this rewording is satisfactory (your original email is at the bottom).
> >
> >      Thanks,
> >
> >      Tav
> >
> 
> To resume, the changes are basically:
> a) use consequently n instead of undefined N - this is obviously ok
> b) add something useful for the case C = 1 - this looks ok as well
> Comments on two minor issues see below inline.
> 
> 
> The remaing question/problem indeed applies to several filter definitions.
> I think, it is not mentioned at all that one has to transform
> colours like '#abcdef' to three values, all from the interval [0, 1].
> Missing this (because other chapters of SVG use other notations than
> channels for colours), the formulas in this chapter are a little bit confusing
> and it takes some time to guess, how to apply them.
> But to explain this or vocabulary like 'transparent black' is
> more an issue for the introduction, not for a specific filter section.

I agree, it seems that different parts have different authors and
therefore different styles. We should pay closer attention these issues
in 1.2/2.0.

> So - ok for this section.
> If someone could have a critical look on undefined vocabulary
> like the relation of colour values to colour channels and something
> like 'transparent black' could improve the understandability of the
> filter chapter even more ;o) 
> Does really no implementor have problems with this, or is it possible
> that some missing vocabulary could have been the source of some
> implementation bugs in the past? ;o)

Certainly there are bugs in filters as implemented in Inkscape due to
confusing text. Hopefully the more serious problems have been addressed
with changes in text and/or new tests.

> > ==================================================
> >
> > type = "identity | table | discrete | linear | gamma"
> >
> > Indicates the type of component transfer function. The type of
> > function determines the applicability of the other attributes.
> >
> > In the following, C is the initial component
> 
> of what? 
> For example for feFuncA it represents value of the alpha channel?
> For feFuncR it represents the red colour channel value...

I made a small addition here. Note that the definition of the feFuncX's
are defined earlier in the section.

> > , C' is the remapped  
> > component; both in the closed interval [0, 1].
> >
> > * For identity:
> >
> >     C' = C
> >
> > * For table, the function is defined by linear interpolation between
> >   values given in the attribute ‘tableValues’.  The table has n+1
> >   values (i.e., v_0 to v_n) specifying the start and end values for
> >   n evenly sized interpolation regions. Interpolations use the
> >   following formula:
> >
> >     For a value C < 1 find k such that:
> >
> >       k/n <= C < (k+1)/n
> >
> >       The result C' is given by:
> >
> >       C' = v_k + (C - k/n)*n * (v_k+1 - v_k)
> >
> >     If C = 1 then C' = v_n.
> >
> > * For discrete, the function is defined by the step function defined
> >   by attribute ‘tableValues’, which provides a list of n values (i.e.,
> >   v0 to v_n-1) in order to identify a step function consisting of n
> >   steps of the same width. The step function is defined by the
> >   following formula:
> >
> >     For a value C < 1 find k such that:
> >
> >       k/n <= C < (k+1)/n
> >
> >       The result C' is given by:
> >
> >       C' = vk
> 
> should be
> C' = v_k
> in your notation?

Yes.

> >
> >     If C = 1 then C' = v_n-1.
> >
> > * For linear, the function is defined by the following linear equation:
> >
> >     C' = slope * C + intercept
> >
> > * For gamma, the function is defined by the following exponential
> > function:
> >
> >     C' = amplitude * pow(C, exponent) + offset
> >
> >
> 
> Best wishes
> 
> Olaf
> 

Received on Wednesday, 8 December 2010 15:42:35 UTC