[filter-effects] A few more issues: 'in2', 'feSpecularLighting', CSS Comp. & Blend. modes

Since there seems to be a lot of discussion planned at the TPAC F2F for
filter effects, I want to add a few issues to the list:


1. 'in2'

  For 'feBlend' and 'feComposite' the spec says:

  in2 = "(see ‘in’ attribute)"
    The second input image to the compositing operation. This
    attribute can take on the same values as the ‘in’ attribute.

  I interpret this that 'in2' behaves like 'in', thus if 'in2'
  is not given and this is the first primitive, 'SourceGraphic'
  is used, if not given and this is not first primitive,
  the result of the previous filter is used.

  Inkscape, rsvg, and Opera (12.16) agree with this
  interpretation. Batik as well as 'validator.w3.org'
  says 'in2' is required.  Firefox and Chrome require
  'in2' to be defined.

  For an example, see:

http://tavmjong.free.fr//INKSCAPE/MANUAL/images/FILTERS/Filters_SolarFlare.svg


2. 'feSpecularLighting'

  The specification states:

  "Such a map is intended to be combined with a texture using
   the add term of the arithmetic ‘feComposite’ method.". It
   does not state that one is required to use it this way. The
   browsers disagree on how the filter is rendered if the
   compositing step is not done.

  ('Such a map' should be 'Such an image', I think.)


  Trivial, example:

  <filter id="emboss">
    <feColorMatrix type="luminanceToAlpha" />
    <feSpecularLighting lighting-color="#808080">
      <feDistantLight elevation="0"/>
    </feSpecularLighting>
  </filter>

  Compare "Specular Lighting" example in:

  http://tavmjong.free.fr/SVG/COLOR_INTERPOLATION/filter_interpolate.svg

  Inkscape, rsvg, Opera agree on rendering (outer square
  matches inner square). Firefox and Chrome agree (outer
  square does not match inner square). Batik can't render
  example.

  (Note: Chrome has a problem with 'feDiffuseLighting' primitive
  when interpolation is set to 'linearRGB'.) 


3. CSS Compositing and Blending modes.

  CSS Filters should extend 'feComposite' and 'feBlend' to include
  all the operators defined in Compositing and Blending Level 1.
  The new operators are trivial to implement once the existing
  operators in the basic filter primitives are implemented and
  thus there is no reason not to include them.


Tav

Received on Monday, 11 November 2013 20:51:44 UTC