<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<!--======================================================================-->
<!--= Copyright 2000, 2002 World Wide Web Consortium, (Massachusetts =-->
<!--= Institute of Technology, Institut National de Recherche en =-->
<!--= Informatique et en Automatique, Keio University). All Rights =-->
<!--= Reserved. See http://www.w3.org/Consortium/Legal/. =-->
<!--======================================================================-->
<!-- =====================================================================-->
<!-- -->
<!-- filters-dispMap-BE-16.svg -->
<!-- renamed for 1.1 suite to filters-displace-01-f.svg -->
<!-- -->
<!-- Test which verifies the basic facilities of feDisplacementMap. -->
<!-- -->
<!-- Author: Peter Graffagnino 15-Aug-2000 -->
<!-- 1.1 revision by Thomas DeWeese 5-Feb-2002 -->
<!-- -->
<!-- History: -->
<!-- 15-Aug-2000, pgraff created. -->
<!-- 29-Aug-2000, LH=" corrected DOCTYPE" fix BE number. -->
<!-- 29-Aug-2000, pgraff fixed another occurance of BE-00 -->
<!-- -->
<!--======================================================================-->
<!--======================================================================-->
<!--= Note. After October 2000, revision history is kept as CVS 'commit' =-->
<!--= log messages, and therefore is no longer in the preceding preamble.=-->
<!--======================================================================-->
<svg version="1.1" baseProfile="full" id="svg-root" width="100%" height="100%"
xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink" >
<SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/">
<OperatorScript version="$Revision: 1.6 $" testname="filters-displace-01-f.svg">
<Paragraph>
Verify the basic capability to handle the feDisplacementMap filter
node. Six images should appear in 2 rows of 3. On the left in each
row a test image of a checker board is displayed. In the middle
column is the displacement map. In the right-hand column is the
result. All displacement maps are generated as png files with gamma
1.0 and must be interpreted linearly for the proper geometric
displacement to occur.
</Paragraph>
<Paragraph>
The top row tests a displacement map which displaces each pixel by an
amount equivalent to a rotation of 20 degrees around the center of the
image. A blue reference rectangle is drawn on the result using an svg
transform attribute to mimick the same 20 degree rotation. The edges
of the blue rectangle should be parallel to the grid lines in the
displaced image. Distortion of the grid pattern such that the grid
lines are slightly curved is indicative of improper gamma handling in
the viewer.
</Paragraph>
<Paragraph>
The bottom row tests a displacement map which distorts the image
spherically. The rendered image should match the reference image. In
particular the center of the distorted image should be on a gridpoint.
</Paragraph>
<Paragraph>
In addition to feDisplacementMap, this test uses the 'feImage' and
'rect' elements. Figure labeling uses the text element. The
reference blue rectangle uses fill, fill-opacity, and transform.
</Paragraph>
</OperatorScript>
</SVGTestCase>
<title id="test-title">filters-displace-01-f</title>
<desc id="test-desc">Test which verifies the basic facilities of feDisplacementMap.</desc>
<!--===============================================================-->
<!--Content of Test Case follows... ==============-->
<!--===============================================================-->
<g id="test-body-content">
<defs>
<filter id="DispMapChecker" filterUnits="objectBoundingBox"
x="0" y="0" width="1" height="1">
<feImage xlink:href="resources/DisplaceChecker.png"/>
</filter>
<filter id="RotateMap" filterUnits="objectBoundingBox"
x="0" y="0" width="1" height="1">
<feImage xlink:href="resources/rotate20.png"/>
</filter>
<filter id="SphereMap" filterUnits="objectBoundingBox"
x="0" y="0" width="1" height="1">
<feImage xlink:href="resources/sphere.png"/>
</filter>
<filter id="RotateMapTest" filterUnits="objectBoundingBox"
x="0" y="0" width="1" height="1">
<feImage result="Map" xlink:href="resources/rotate20.png"/>
<feImage result="Texture" xlink:href="resources/DisplaceChecker.png"/>
<feDisplacementMap in="Texture" in2="Map" scale="64"
xChannelSelector="R" yChannelSelector="G"/>
</filter>
<filter id="SphereMapTest" filterUnits="objectBoundingBox"
x="0" y="0" width="1" height="1">
<feImage result="Map" xlink:href="resources/sphere.png"/>
<feImage result="Texture" xlink:href="resources/DisplaceChecker.png"/>
<feDisplacementMap in="Texture" in2="Map" scale="64"
xChannelSelector="R" yChannelSelector="G"/>
</filter>
</defs>
<g font-family="Arial" font-size="12" text-anchor="middle">
<rect x="15" y="15" width="128" height="128"
filter="url(#DispMapChecker)" />
<rect x="20" y="115" width="118" height="20" fill="#DDD"/>
<text x="79" y="130">Checkerboard Image</text>
<rect x="158" y="15" width="128" height="128"
filter="url(#RotateMap)" />
<rect x="163" y="112" width="118" height="30" fill="#DDD"/>
<text><tspan x="222" y="125">Displacement Map</tspan>
<tspan x="222" y="138">(20 deg. rotation)</tspan></text>
<rect x="301" y="15" width="128" height="128"
filter="url(#RotateMapTest)" />
<rect x="-1" y="-1" width="2" height="2"
transform="translate(365,79) rotate(20) scale(32)"
fill="blue" fill-opacity="0.5" />
<text><tspan x="365" y="160">Result</tspan>
<tspan x="365" y="172">(overlayed with 20 deg.</tspan>
<tspan x="365" y="184">rotated blue rectangle)</tspan></text>
<rect x="15" y="158" width="128" height="128"
filter="url(#DispMapChecker)" />
<rect x="20" y="258" width="118" height="20" fill="#DDD"/>
<text x="79" y="273">Checkerboard Image</text>
<rect x="158" y="158" width="128" height="128"
filter="url(#SphereMap)" />
<rect x="163" y="255" width="118" height="30" fill="#DDD"/>
<text><tspan x="222" y="268">Displacement Map</tspan>
<tspan x="222" y="283">(spherical distortion)</tspan></text>
<rect x="301" y="200" width="128" height="128"
filter="url(#SphereMapTest)" />
<text x="365" y="345">Result</text>
</g>
</g>
<text id="revision" x="10" y="340" font-size="40" stroke="none" fill="black">$Revision: 1.6 $</text>
<rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000000"/>
</svg>