- From: Anthony Grasso <anthony.grasso@cisra.canon.com.au>
- Date: Tue, 09 Feb 2010 17:17:02 +1100
- To: www-svg@w3.org
- CC: cyril.concolato@telecom-paristech.fr
- Message-ID: <4B70FDDE.1000906@cisra.canon.com.au>
Diagrams to go with the email. Anthony Grasso wrote: > Hi SVG WG, > > Firstly, thank you to Cyril for the valuable feedback provided. Please > see my comments below. > > Cyril Concolato wrote: >> Hi Anthony, >> >> Here are some comments. >> >> In your wording you use the term 'initially'. I think I understand >> what it means but I would prefer if you would say something like: >> "before any transformation is applied to the gradient". >> > > Agreed. The suggested wording has been used in the new draft of the > proposed wording (end of email). > >> You also mention the magnitude of the normal. I don't understand what >> it means and how it is used. To me, it is sufficient to say that the >> normal is perpendicular, we don't even need to say the direction +90° >> or -90°. It does not matter. >> > > True. The part about the magnitude of the normal has been removed. > >> Concerning the order between object transforms and gradient >> transforms, are you sure about it? I thought it was first apply >> gradient transforms because they apply to all reference of the >> gradients, then object transforms. If you look at SVG 1.1 [1], you'll >> find: >> "[The gradientTransform] transformation matrix is post-multiplied to >> (i.e., inserted to the right of) any previously defined >> transformations, including the implicit transformation necessary to >> convert from object bounding box units to user space." >> > > Right again. The wording has been adjusted accordingly to match what it > is currently written in the standard. > >> Concerning the position of the text. I think the first two sentences >> "The angle ... vector." only apply to linear gradients because of the >> notion of gradient vector. For the rest of the paragraph, it's fine to >> put it in the introduction. >> > > A gradient normal is useful when calculating skews on radial gradients > as it provides the tangent at each colour point on the gradient. Please > see the attached diagrams. > > The revised wording of the first paragraph in the proposed text now reads: > > [[ > The angle of the color transitions along the gradient vector is defined > by the gradient normal. Before any transforms are applied to the > gradient or its referencing objects, the gradient normal is > perpendicular with the gradient vector. If an object references a > gradient, conceptually the object should take a copy of the gradient > vector and gradient normal and treat it as part of its own geometry. Any > transformations applied to the object geometry also apply to the copied > gradient vector and gradient normal. Any gradient transforms that are > specified on the reference gradient are applied before any object > transformations are applied to the gradient. > ]] > > > Please advise before the next telcon if there is any more wording that > needs to be adjusted or if any other changes need to be made. > > Erik, can we add this issue to the next telcon agenda please. > > > Thanks, > > Anthony > >> Regards, >> >> Cyril >> >> [1] >> http://www.w3.org/TR/SVG11/pservers.html#LinearGradientTransformAttribute >> >> Le 04/02/2010 05:58, Anthony Grasso a écrit : >>> Hi SVG WG, >>> >>> In relation to the discussion on "gradient userSpaceOnUse" [1] and the >>> investigation I did on "how authoring tools apply object transforms to >>> gradients" [2], I have devised some wording to put in (possibly) current >>> and future SVG specifications. >>> >>> I propose adding the following wording and diagrams for the different >>> parts in the gradient section: >>> >>> Wording to be placed after the first paragraph of the introduction for >>> gradients [3] (in SVG Tiny 1.2) >>> >>> [[ >>> The angle of the color transitions along the gradient vector is defined >>> by the gradient normal (see diagram below). Initially, the gradient >>> normal is perpendicular with the gradient vector and is the same >>> magnitude as the gradient vector. If an object references a gradient, >>> conceptually the object should take a copy of the gradient vector and >>> gradient normal and treat it as part of its own geometry. Any >>> transformations applied to the object geometry also apply to the copied >>> gradient vector and gradient normal. Any gradient transforms that are >>> specified on the reference gradient are applied after object >>> transformations have been applied but prior to rendering. >>> ]] >>> >>> >>> The wording in the last sentence of the second last paragraph for >>> gradientUnits attribute [4] should be reworded to: >>> >>> [[ >>> When the object's bounding box is not square, the gradient normal which >>> is initially perpendicular to the gradient vector within object bounding >>> box space shall render non-perpendicular relative to the gradient vector >>> in user space. This transformation is due to application of the >>> non-uniform scaling transformation from bounding box space to user >>> space. >>> ]] >>> >>> >>> >>> Note that this wording is a first draft and open to discussion. To my >>> understand of the issue, there are some implementations that have an >>> alternative method of applying transforms and thus producing a different >>> result. I can sympathise that this wording is potentially contentious, >>> but given that gradients are an integral part of any graphics language, >>> a consensus must be reached on this issue so all implementations will >>> produce the same result. >>> >>> Cheers, >>> >>> Anthony >>> >>> >>> [1] http://lists.w3.org/Archives/Public/www-svg/2010Jan/0000.html >>> [2] >>> http://lists.w3.org/Archives/Public/public-svg-wg/2010JanMar/0035.html >>> [3] http://www.w3.org/TR/SVGTiny12/painting.html#Gradients >>> [4] >>> http://www.w3.org/TR/SVGTiny12/painting.html#LinearGradientUnitsAttribute >>> >> >> >
Attachments
- image/png attachment: gradient_radial_vector_and_normal.png
- image/png attachment: gradient_radial_vector_and_normal_skew.png
Received on Tuesday, 9 February 2010 06:17:40 UTC