diff --git a/talk/anti_aliasing_rasterization_samples_filled.png b/talk/anti_aliasing_rasterization_samples_filled.png new file mode 100644 index 0000000000000000000000000000000000000000..cbface127df6cadc3c70866a5173ee9434fdfaa9 Binary files /dev/null and b/talk/anti_aliasing_rasterization_samples_filled.png differ diff --git a/talk/strokemsaa.pdf b/talk/strokemsaa.pdf new file mode 100644 index 0000000000000000000000000000000000000000..22e02ae06e06328907945ee4db0644b56b913d9e Binary files /dev/null and b/talk/strokemsaa.pdf differ diff --git a/talk/strokemsaa.svg b/talk/strokemsaa.svg new file mode 100644 index 0000000000000000000000000000000000000000..2739612de2379eb64b5e82a2aae2817650701c76 --- /dev/null +++ b/talk/strokemsaa.svg @@ -0,0 +1,697 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!-- Created with Inkscape (http://www.inkscape.org/) --> + +<svg + width="42.700001mm" + height="20.200008mm" + viewBox="0 0 42.700001 20.200009" + version="1.1" + id="svg1" + inkscape:version="1.3.2 (091e20e, 2023-11-25)" + sodipodi:docname="strokemsaa.svg" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns="http://www.w3.org/2000/svg" + xmlns:svg="http://www.w3.org/2000/svg"> + <sodipodi:namedview + id="namedview1" + pagecolor="#ffffff" + bordercolor="#000000" + borderopacity="0.25" + inkscape:showpageshadow="2" + inkscape:pageopacity="0.0" + inkscape:pagecheckerboard="0" + inkscape:deskcolor="#d1d1d1" + inkscape:document-units="mm" + showgrid="true" + inkscape:zoom="1.7005726" + inkscape:cx="-107.61081" + inkscape:cy="114.37324" + inkscape:window-width="1712" + inkscape:window-height="1134" + inkscape:window-x="3250" + inkscape:window-y="699" + inkscape:window-maximized="0" + inkscape:current-layer="layer1"> + <inkscape:grid + id="grid1" + units="mm" + originx="-44.900003" + originy="-14.899998" + spacingx="0.99999998" + spacingy="1" + empcolor="#0099e5" + empopacity="0.30196078" + color="#0099e5" + opacity="0.14901961" + empspacing="5" + dotted="false" + gridanglex="30" + gridanglez="30" + visible="true" /> + </sodipodi:namedview> + <defs + id="defs1" /> + <g + inkscape:label="Layer 1" + inkscape:groupmode="layer" + id="layer1" + transform="translate(-44.899999,-14.899999)"> + <rect + style="fill:#ff0000;fill-opacity:0.25;stroke:none;stroke-width:0.2;stroke-linecap:square;stroke-dasharray:none;stroke-opacity:1" + id="rect8-4-0" + width="5" + height="4.9999995" + x="55" + y="15.000004" /> + <rect + style="fill:#ff0000;fill-opacity:0.25;stroke:none;stroke-width:0.2;stroke-linecap:square;stroke-dasharray:none;stroke-opacity:1" + id="rect8-4-0-7" + width="5" + height="4.9999995" + x="60" + y="25" /> + <rect + style="fill:#ff0000;fill-opacity:0.25;stroke:none;stroke-width:0.2;stroke-linecap:square;stroke-dasharray:none;stroke-opacity:1" + id="rect8-4" + width="5" + height="4.9999995" + x="45" + y="25.000002" /> + <rect + style="fill:#ff0000;fill-opacity:0.5;stroke:none;stroke-width:0.2;stroke-linecap:square;stroke-dasharray:none;stroke-opacity:1" + id="rect8" + width="5" + height="4.9999995" + x="45" + y="29.999998" /> + <path + style="fill:none;fill-opacity:1;stroke:#8cafff;stroke-width:0.2;stroke-linecap:square;stroke-dasharray:none;stroke-opacity:1" + d="m 45.710213,33.289789 10.97033,-16.798677 7.593399,10.628821" + id="path8" + sodipodi:nodetypes="ccc" /> + <path + style="fill:none;fill-opacity:0.132948;stroke:#8b8b8b;stroke-width:0.2;stroke-linecap:square;stroke-dasharray:none;stroke-opacity:1" + d="M 44.999999,14.999999 V 34.999998" + id="path1" /> + <path + style="fill:none;fill-opacity:0.132948;stroke:#8b8b8b;stroke-width:0.2;stroke-linecap:butt;stroke-dasharray:none;stroke-opacity:1" + d="M 50,14.999999 V 34.999998" + id="path2" /> + <path + style="fill:none;fill-opacity:0.132948;stroke:#8b8b8b;stroke-width:0.2;stroke-linecap:butt;stroke-dasharray:none;stroke-opacity:1" + d="M 55,14.999999 V 34.999998" + id="path3" /> + <path + style="fill:none;fill-opacity:0.132948;stroke:#8b8b8b;stroke-width:0.2;stroke-linecap:butt;stroke-dasharray:none;stroke-opacity:1" + d="M 60.000001,14.999999 V 34.999998" + id="path4" /> + <path + style="fill:none;fill-opacity:0.132948;stroke:#8b8b8b;stroke-width:0.2;stroke-linecap:square;stroke-dasharray:none;stroke-opacity:1" + d="M 65.000001,14.999999 V 34.999998" + id="path5" /> + <path + style="fill:none;fill-opacity:0.132948;stroke:#8b8b8b;stroke-width:0.2;stroke-linecap:square;stroke-dasharray:none;stroke-opacity:1" + d="M 65.000001,15 H 45.000002" + id="path1-3" /> + <path + style="fill:none;fill-opacity:0.132948;stroke:#8b8b8b;stroke-width:0.2;stroke-linecap:butt;stroke-dasharray:none;stroke-opacity:1" + d="M 65.000001,20.000001 H 45.000002" + id="path2-9" /> + <path + style="fill:none;fill-opacity:0.132948;stroke:#8b8b8b;stroke-width:0.2;stroke-linecap:butt;stroke-dasharray:none;stroke-opacity:1" + d="M 65.000001,25.000001 H 45.000002" + id="path3-9" /> + <path + style="fill:none;fill-opacity:0.132948;stroke:#8b8b8b;stroke-width:0.2;stroke-linecap:butt;stroke-dasharray:none;stroke-opacity:1" + d="M 65.000001,30.000001 H 45.000002" + id="path4-7" /> + <path + style="fill:none;fill-opacity:0.132948;stroke:#8b8b8b;stroke-width:0.2;stroke-linecap:square;stroke-dasharray:none;stroke-opacity:1" + d="M 65.000001,35.000001 H 45.000002" + id="path5-0" /> + <g + id="g8"> + <g + id="g6"> + <circle + style="fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.492711;stroke-linecap:butt;stroke-dasharray:none;stroke-opacity:1" + id="path6" + cx="47" + cy="30.710211" + r="0.28978923" /> + <circle + style="fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.492711;stroke-linecap:butt;stroke-dasharray:none;stroke-opacity:1" + id="path6-6" + cx="48" + cy="34.289787" + r="0.28978923" /> + <circle + style="fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.492711;stroke-linecap:butt;stroke-dasharray:none;stroke-opacity:1" + id="path6-2" + cx="49.289791" + cy="32" + r="0.28978923" /> + <circle + style="fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.492711;stroke-linecap:butt;stroke-dasharray:none;stroke-opacity:1" + id="path6-9" + cx="45.710213" + cy="33" + r="0.28978923" /> + </g> + <g + id="g7"> + <circle + style="fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.492711;stroke-linecap:butt;stroke-dasharray:none;stroke-opacity:1" + id="path6-7" + cx="52" + cy="30.710209" + r="0.28978923" /> + <circle + style="fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.492711;stroke-linecap:butt;stroke-dasharray:none;stroke-opacity:1" + id="path6-6-2" + cx="53" + cy="34.289787" + r="0.28978923" /> + <circle + style="fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.492711;stroke-linecap:butt;stroke-dasharray:none;stroke-opacity:1" + id="path6-2-3" + cx="54.289791" + cy="32" + r="0.28978923" /> + <circle + style="fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.492711;stroke-linecap:butt;stroke-dasharray:none;stroke-opacity:1" + id="path6-9-6" + cx="50.710213" + cy="33" + r="0.28978923" /> + </g> + <g + id="g6-1" + transform="translate(10.000001)"> + <circle + style="fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.492711;stroke-linecap:butt;stroke-dasharray:none;stroke-opacity:1" + id="path6-4" + cx="47" + cy="30.710211" + r="0.28978923" /> + <circle + style="fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.492711;stroke-linecap:butt;stroke-dasharray:none;stroke-opacity:1" + id="path6-6-7" + cx="48" + cy="34.289787" + r="0.28978923" /> + <circle + style="fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.492711;stroke-linecap:butt;stroke-dasharray:none;stroke-opacity:1" + id="path6-2-1" + cx="49.289791" + cy="32" + r="0.28978923" /> + <circle + style="fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.492711;stroke-linecap:butt;stroke-dasharray:none;stroke-opacity:1" + id="path6-9-3" + cx="45.710213" + cy="33" + r="0.28978923" /> + </g> + <g + id="g7-8" + transform="translate(10.000001)"> + <circle + style="fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.492711;stroke-linecap:butt;stroke-dasharray:none;stroke-opacity:1" + id="path6-7-4" + cx="52" + cy="30.710209" + r="0.28978923" /> + <circle + style="fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.492711;stroke-linecap:butt;stroke-dasharray:none;stroke-opacity:1" + id="path6-6-2-8" + cx="53" + cy="34.289787" + r="0.28978923" /> + <circle + style="fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.492711;stroke-linecap:butt;stroke-dasharray:none;stroke-opacity:1" + id="path6-2-3-0" + cx="54.289791" + cy="32" + r="0.28978923" /> + <circle + style="fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.492711;stroke-linecap:butt;stroke-dasharray:none;stroke-opacity:1" + id="path6-9-6-4" + cx="50.710213" + cy="33" + r="0.28978923" /> + </g> + </g> + <g + id="g8-2" + transform="translate(4.4958572e-7,-4.9999989)"> + <g + id="g6-6"> + <circle + style="fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.492711;stroke-linecap:butt;stroke-dasharray:none;stroke-opacity:1" + id="path6-94" + cx="47" + cy="30.710211" + r="0.28978923" /> + <circle + style="fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.492711;stroke-linecap:butt;stroke-dasharray:none;stroke-opacity:1" + id="path6-6-1" + cx="48" + cy="34.289787" + r="0.28978923" /> + <circle + style="fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.492711;stroke-linecap:butt;stroke-dasharray:none;stroke-opacity:1" + id="path6-2-37" + cx="49.289791" + cy="32" + r="0.28978923" /> + <circle + style="fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.492711;stroke-linecap:butt;stroke-dasharray:none;stroke-opacity:1" + id="path6-9-8" + cx="45.710213" + cy="33" + r="0.28978923" /> + </g> + <g + id="g7-83"> + <circle + style="fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.492711;stroke-linecap:butt;stroke-dasharray:none;stroke-opacity:1" + id="path6-7-8" + cx="52" + cy="30.710209" + r="0.28978923" /> + <circle + style="fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.492711;stroke-linecap:butt;stroke-dasharray:none;stroke-opacity:1" + id="path6-6-2-1" + cx="53" + cy="34.289787" + r="0.28978923" /> + <circle + style="fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.492711;stroke-linecap:butt;stroke-dasharray:none;stroke-opacity:1" + id="path6-2-3-5" + cx="54.289791" + cy="32" + r="0.28978923" /> + <circle + style="fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.492711;stroke-linecap:butt;stroke-dasharray:none;stroke-opacity:1" + id="path6-9-6-3" + cx="50.710213" + cy="33" + r="0.28978923" /> + </g> + <g + id="g6-1-5" + transform="translate(10.000001)"> + <circle + style="fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.492711;stroke-linecap:butt;stroke-dasharray:none;stroke-opacity:1" + id="path6-4-4" + cx="47" + cy="30.710211" + r="0.28978923" /> + <circle + style="fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.492711;stroke-linecap:butt;stroke-dasharray:none;stroke-opacity:1" + id="path6-6-7-3" + cx="48" + cy="34.289787" + r="0.28978923" /> + <circle + style="fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.492711;stroke-linecap:butt;stroke-dasharray:none;stroke-opacity:1" + id="path6-2-1-6" + cx="49.289791" + cy="32" + r="0.28978923" /> + <circle + style="fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.492711;stroke-linecap:butt;stroke-dasharray:none;stroke-opacity:1" + id="path6-9-3-5" + cx="45.710213" + cy="33" + r="0.28978923" /> + </g> + <g + id="g7-8-9" + transform="translate(10.000001)"> + <circle + style="fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.492711;stroke-linecap:butt;stroke-dasharray:none;stroke-opacity:1" + id="path6-7-4-5" + cx="52" + cy="30.710209" + r="0.28978923" /> + <circle + style="fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.492711;stroke-linecap:butt;stroke-dasharray:none;stroke-opacity:1" + id="path6-6-2-8-4" + cx="53" + cy="34.289787" + r="0.28978923" /> + <circle + style="fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.492711;stroke-linecap:butt;stroke-dasharray:none;stroke-opacity:1" + id="path6-2-3-0-9" + cx="54.289791" + cy="32" + r="0.28978923" /> + <circle + style="fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.492711;stroke-linecap:butt;stroke-dasharray:none;stroke-opacity:1" + id="path6-9-6-4-1" + cx="50.710213" + cy="33" + r="0.28978923" /> + </g> + </g> + <g + id="g8-4" + transform="translate(4.4958476e-7,-9.9999987)"> + <g + id="g6-18"> + <circle + style="fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.492711;stroke-linecap:butt;stroke-dasharray:none;stroke-opacity:1" + id="path6-8" + cx="47" + cy="30.710211" + r="0.28978923" /> + <circle + style="fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.492711;stroke-linecap:butt;stroke-dasharray:none;stroke-opacity:1" + id="path6-6-3" + cx="48" + cy="34.289787" + r="0.28978923" /> + <circle + style="fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.492711;stroke-linecap:butt;stroke-dasharray:none;stroke-opacity:1" + id="path6-2-5" + cx="49.289791" + cy="32" + r="0.28978923" /> + <circle + style="fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.492711;stroke-linecap:butt;stroke-dasharray:none;stroke-opacity:1" + id="path6-9-2" + cx="45.710213" + cy="33" + r="0.28978923" /> + </g> + <g + id="g7-2"> + <circle + style="fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.492711;stroke-linecap:butt;stroke-dasharray:none;stroke-opacity:1" + id="path6-7-6" + cx="52" + cy="30.710209" + r="0.28978923" /> + <circle + style="fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.492711;stroke-linecap:butt;stroke-dasharray:none;stroke-opacity:1" + id="path6-6-2-6" + cx="53" + cy="34.289787" + r="0.28978923" /> + <circle + style="fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.492711;stroke-linecap:butt;stroke-dasharray:none;stroke-opacity:1" + id="path6-2-3-7" + cx="54.289791" + cy="32" + r="0.28978923" /> + <circle + style="fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.492711;stroke-linecap:butt;stroke-dasharray:none;stroke-opacity:1" + id="path6-9-6-8" + cx="50.710213" + cy="33" + r="0.28978923" /> + </g> + <g + id="g6-1-4" + transform="translate(10.000001)"> + <circle + style="fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.492711;stroke-linecap:butt;stroke-dasharray:none;stroke-opacity:1" + id="path6-4-1" + cx="47" + cy="30.710211" + r="0.28978923" /> + <circle + style="fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.492711;stroke-linecap:butt;stroke-dasharray:none;stroke-opacity:1" + id="path6-6-7-7" + cx="48" + cy="34.289787" + r="0.28978923" /> + <circle + style="fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.492711;stroke-linecap:butt;stroke-dasharray:none;stroke-opacity:1" + id="path6-2-1-1" + cx="49.289791" + cy="32" + r="0.28978923" /> + <circle + style="fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.492711;stroke-linecap:butt;stroke-dasharray:none;stroke-opacity:1" + id="path6-9-3-8" + cx="45.710213" + cy="33" + r="0.28978923" /> + </g> + <g + id="g7-8-7" + transform="translate(10.000001)"> + <circle + style="fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.492711;stroke-linecap:butt;stroke-dasharray:none;stroke-opacity:1" + id="path6-7-4-8" + cx="52" + cy="30.710209" + r="0.28978923" /> + <circle + style="fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.492711;stroke-linecap:butt;stroke-dasharray:none;stroke-opacity:1" + id="path6-6-2-8-7" + cx="53" + cy="34.289787" + r="0.28978923" /> + <circle + style="fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.492711;stroke-linecap:butt;stroke-dasharray:none;stroke-opacity:1" + id="path6-2-3-0-7" + cx="54.289791" + cy="32" + r="0.28978923" /> + <circle + style="fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.492711;stroke-linecap:butt;stroke-dasharray:none;stroke-opacity:1" + id="path6-9-6-4-4" + cx="50.710213" + cy="33" + r="0.28978923" /> + </g> + </g> + <g + id="g8-5" + transform="translate(4.4958476e-7,-14.999999)"> + <g + id="g6-5"> + <circle + style="fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.492711;stroke-linecap:butt;stroke-dasharray:none;stroke-opacity:1" + id="path6-5" + cx="47" + cy="30.710211" + r="0.28978923" /> + <circle + style="fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.492711;stroke-linecap:butt;stroke-dasharray:none;stroke-opacity:1" + id="path6-6-8" + cx="48" + cy="34.289787" + r="0.28978923" /> + <circle + style="fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.492711;stroke-linecap:butt;stroke-dasharray:none;stroke-opacity:1" + id="path6-2-2" + cx="49.289791" + cy="32" + r="0.28978923" /> + <circle + style="fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.492711;stroke-linecap:butt;stroke-dasharray:none;stroke-opacity:1" + id="path6-9-9" + cx="45.710213" + cy="33" + r="0.28978923" /> + </g> + <g + id="g7-82"> + <circle + style="fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.492711;stroke-linecap:butt;stroke-dasharray:none;stroke-opacity:1" + id="path6-7-0" + cx="52" + cy="30.710209" + r="0.28978923" /> + <circle + style="fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.492711;stroke-linecap:butt;stroke-dasharray:none;stroke-opacity:1" + id="path6-6-2-7" + cx="53" + cy="34.289787" + r="0.28978923" /> + <circle + style="fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.492711;stroke-linecap:butt;stroke-dasharray:none;stroke-opacity:1" + id="path6-2-3-4" + cx="54.289791" + cy="32" + r="0.28978923" /> + <circle + style="fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.492711;stroke-linecap:butt;stroke-dasharray:none;stroke-opacity:1" + id="path6-9-6-85" + cx="50.710213" + cy="33" + r="0.28978923" /> + </g> + <g + id="g6-1-8" + transform="translate(10.000001)"> + <circle + style="fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.492711;stroke-linecap:butt;stroke-dasharray:none;stroke-opacity:1" + id="path6-4-3" + cx="47" + cy="30.710211" + r="0.28978923" /> + <circle + style="fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.492711;stroke-linecap:butt;stroke-dasharray:none;stroke-opacity:1" + id="path6-6-7-0" + cx="48" + cy="34.289787" + r="0.28978923" /> + <circle + style="fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.492711;stroke-linecap:butt;stroke-dasharray:none;stroke-opacity:1" + id="path6-2-1-62" + cx="49.289791" + cy="32" + r="0.28978923" /> + <circle + style="fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.492711;stroke-linecap:butt;stroke-dasharray:none;stroke-opacity:1" + id="path6-9-3-2" + cx="45.710213" + cy="33" + r="0.28978923" /> + </g> + <g + id="g7-8-5" + transform="translate(10.000001)"> + <circle + style="fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.492711;stroke-linecap:butt;stroke-dasharray:none;stroke-opacity:1" + id="path6-7-4-2" + cx="52" + cy="30.710209" + r="0.28978923" /> + <circle + style="fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.492711;stroke-linecap:butt;stroke-dasharray:none;stroke-opacity:1" + id="path6-6-2-8-2" + cx="53" + cy="34.289787" + r="0.28978923" /> + <circle + style="fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.492711;stroke-linecap:butt;stroke-dasharray:none;stroke-opacity:1" + id="path6-2-3-0-71" + cx="54.289791" + cy="32" + r="0.28978923" /> + <circle + style="fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.492711;stroke-linecap:butt;stroke-dasharray:none;stroke-opacity:1" + id="path6-9-6-4-5" + cx="50.710213" + cy="33" + r="0.28978923" /> + </g> + </g> + <rect + style="fill:#ff0000;fill-opacity:0.25;stroke:none;stroke-width:0.2;stroke-linecap:square;stroke-dasharray:none;stroke-opacity:1" + id="rect8-4-0-9" + width="5" + height="4.9999995" + x="77.5" + y="15.000011" /> + <rect + style="fill:#ff0000;fill-opacity:0.147493;stroke:none;stroke-width:0.2;stroke-linecap:square;stroke-dasharray:none;stroke-opacity:1" + id="rect8-4-0-7-7" + width="5" + height="4.9999995" + x="82.5" + y="25.000008" /> + <rect + style="fill:#ff0000;fill-opacity:0.174041;stroke:none;stroke-width:0.2;stroke-linecap:square;stroke-dasharray:none;stroke-opacity:1" + id="rect8-4-5" + width="5" + height="4.9999995" + x="67.5" + y="25.000008" /> + <rect + style="fill:#ff0000;fill-opacity:0.112094;stroke:none;stroke-width:0.2;stroke-linecap:square;stroke-dasharray:none;stroke-opacity:1" + id="rect8-4-5-4" + width="5" + height="4.9999995" + x="72.510696" + y="25.000008" /> + <rect + style="fill:#ff0000;fill-opacity:0.112094;stroke:none;stroke-width:0.2;stroke-linecap:square;stroke-dasharray:none;stroke-opacity:1" + id="rect8-4-5-4-6" + width="5" + height="4.9999995" + x="72.500008" + y="15.100006" /> + <rect + style="fill:#ff0000;fill-opacity:0.112094;stroke:none;stroke-width:0.2;stroke-linecap:square;stroke-dasharray:none;stroke-opacity:1" + id="rect8-4-5-4-1" + width="5" + height="4.9999995" + x="77.421394" + y="20.000004" /> + <rect + style="fill:#ff0000;fill-opacity:0.235988;stroke:none;stroke-width:0.2;stroke-linecap:square;stroke-dasharray:none;stroke-opacity:1" + id="rect8-6" + width="5" + height="4.9999995" + x="67.5" + y="30.000004" /> + <rect + style="fill:#ff0000;fill-opacity:0.235988;stroke:none;stroke-width:0.2;stroke-linecap:square;stroke-dasharray:none;stroke-opacity:1" + id="rect8-6-8" + width="5" + height="4.9999995" + x="72.599991" + y="19.900002" /> + <rect + style="fill:#ff0000;fill-opacity:0.235988;stroke:none;stroke-width:0.2;stroke-linecap:square;stroke-dasharray:none;stroke-opacity:1" + id="rect8-6-8-7" + width="5" + height="4.9999995" + x="82.400002" + y="20.000004" /> + <path + style="fill:none;fill-opacity:1;stroke:#8cafff;stroke-width:0.2;stroke-linecap:square;stroke-dasharray:none;stroke-opacity:1" + d="m 68.210212,33.289795 10.97033,-16.798677 7.593399,10.628821" + id="path8-5" + sodipodi:nodetypes="ccc" /> + <path + style="fill:none;fill-opacity:0.132948;stroke:#8b8b8b;stroke-width:0.2;stroke-linecap:square;stroke-dasharray:none;stroke-opacity:1" + d="M 67.499998,15.000005 V 35.000004" + id="path1-30" /> + <path + style="fill:none;fill-opacity:0.132948;stroke:#8b8b8b;stroke-width:0.2;stroke-linecap:butt;stroke-dasharray:none;stroke-opacity:1" + d="M 72.499999,15.000005 V 35.000004" + id="path2-4" /> + <path + style="fill:none;fill-opacity:0.132948;stroke:#8b8b8b;stroke-width:0.2;stroke-linecap:butt;stroke-dasharray:none;stroke-opacity:1" + d="M 77.499999,15.000005 V 35.000004" + id="path3-8" /> + <path + style="fill:none;fill-opacity:0.132948;stroke:#8b8b8b;stroke-width:0.2;stroke-linecap:butt;stroke-dasharray:none;stroke-opacity:1" + d="M 82.5,15.000005 V 35.000004" + id="path4-5" /> + <path + style="fill:none;fill-opacity:0.132948;stroke:#8b8b8b;stroke-width:0.2;stroke-linecap:square;stroke-dasharray:none;stroke-opacity:1" + d="M 87.5,15.000005 V 35.000004" + id="path5-5" /> + <path + style="fill:none;fill-opacity:0.132948;stroke:#8b8b8b;stroke-width:0.2;stroke-linecap:square;stroke-dasharray:none;stroke-opacity:1" + d="M 87.5,15.000006 H 67.500001" + id="path1-3-5" /> + <path + style="fill:none;fill-opacity:0.132948;stroke:#8b8b8b;stroke-width:0.2;stroke-linecap:butt;stroke-dasharray:none;stroke-opacity:1" + d="M 87.5,20.000007 H 67.500001" + id="path2-9-4" /> + <path + style="fill:none;fill-opacity:0.132948;stroke:#8b8b8b;stroke-width:0.2;stroke-linecap:butt;stroke-dasharray:none;stroke-opacity:1" + d="M 87.5,25.000007 H 67.500001" + id="path3-9-2" /> + <path + style="fill:none;fill-opacity:0.132948;stroke:#8b8b8b;stroke-width:0.2;stroke-linecap:butt;stroke-dasharray:none;stroke-opacity:1" + d="M 87.5,30.000007 H 67.500001" + id="path4-7-1" /> + <path + style="fill:none;fill-opacity:0.132948;stroke:#8b8b8b;stroke-width:0.2;stroke-linecap:square;stroke-dasharray:none;stroke-opacity:1" + d="M 87.5,35.000007 H 67.500001" + id="path5-0-9" /> + </g> +</svg> diff --git a/talk/talk.tex b/talk/talk.tex index 4115e17b195c4c10bfb3821ffb6aa27d13612a10..596376688a28f39bf9ffbca8c7a67caeb09a38b8 100644 --- a/talk/talk.tex +++ b/talk/talk.tex @@ -81,10 +81,45 @@ \url{https://issues.skia.org/issues/40043907}: Filled paths of width less than 1px defeat GPU anti-aliasing\\[5mm] \onslide<2->{ - Chrome vs. Inkscape: + Chrome vs. Inkscape:\\[5mm] \includegraphics[width=\linewidth]{chromevsinkscape.png} } \end{frame} +\begin{frame} + \frametitle{But why?} + + \begin{columns} + \begin{column}{0.4\textwidth} + \begin{itemize}[<+->] + \item Skia renders by tesselating 2D paths (turn into triangles) + \item Use 3D pipeline for rendering (rasterization of triangles) + \item MSAA for anti-aliasing + \item Thin paths can ``snake'' through the sample points + \item Use ``analytic anti-aliasing'' (compute exact overlap of path with pixel) + \item Difficult on GPU + \end{itemize} + \end{column} + \begin{column}{0.6\textwidth} + \only<1-2>{ + \includegraphics[width=\linewidth]{tess.pdf} + + \scriptsize{Source: \url{https://docs.rs/lyon_tessellation}} + }% + \only<3>{ + \includegraphics[width=.8\linewidth]{anti_aliasing_rasterization_samples_filled.png} + + \scriptsize{Source: \url{https://learnopengl.com/Advanced-OpenGL/Anti-Aliasing}} + }% + \only<4->{ + \includegraphics[width=\linewidth]{strokemsaa.pdf}\\[5mm] + \includegraphics[width=\linewidth]{chromevsinkscape.png} + } + \end{column} + \end{columns} + + +\end{frame} + \end{document} \ No newline at end of file diff --git a/talk/tess.pdf b/talk/tess.pdf new file mode 100644 index 0000000000000000000000000000000000000000..e92973cd204fdd496a2217c3ac5b9cf23a9e3ad3 Binary files /dev/null and b/talk/tess.pdf differ diff --git a/talk/test.svg b/talk/test.svg new file mode 100644 index 0000000000000000000000000000000000000000..be851412253777d36715cfe09e3cba17b3162a6b --- /dev/null +++ b/talk/test.svg @@ -0,0 +1,105 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<svg + viewBox="0 0 502.60001 262.39999" + height="262.39999" + width="502.60001" + version="1.1" + id="svg18" + sodipodi:docname="test.svg" + inkscape:version="1.3.2 (091e20e, 2023-11-25)" + inkscape:export-filename="tess.pdf" + inkscape:export-xdpi="96" + inkscape:export-ydpi="96" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns="http://www.w3.org/2000/svg" + xmlns:svg="http://www.w3.org/2000/svg"> + <defs + id="defs18" /> + <sodipodi:namedview + id="namedview18" + pagecolor="#ffffff" + bordercolor="#000000" + borderopacity="0.25" + inkscape:showpageshadow="2" + inkscape:pageopacity="0.0" + inkscape:pagecheckerboard="0" + inkscape:deskcolor="#d1d1d1" + inkscape:zoom="1.1066667" + inkscape:cx="181.62651" + inkscape:cy="-197.89157" + inkscape:window-width="1264" + inkscape:window-height="919" + inkscape:window-x="2743" + inkscape:window-y="424" + inkscape:window-maximized="0" + inkscape:current-layer="svg18" /> + <path + style="fill:none;stroke:#ff9955" + d="m 302.4,19.499998 186.8,11.2 -213.6,25.9 196.8,12.7 L 287.3,110.7 479.7,135.1 274.2,145.4 468.3,178.8 371,204.3 274.1,145.4" + id="path1" /> + <path + style="fill:#ffb380;stroke:none" + d="M 15.1,194.1 0,145.4 13,111 1.5,56.799998 l 26.7,-37.1 73.2,-19.19999971 114.4,30.39999971 -17,38 1.1,15.3 13.4,-8.1 14.8,6.8 -5.2,48.200002 -16.8,4.8 -11.4,43.5 -40.4,29.9 -31.3,-3 v 28.2 l 19,8.3 -44.2,19 -10.6,-25.1 9.9,-3.8 v -28.2 z" + id="path2" /> + <path + style="fill:#de8787;stroke:none" + d="M 62.4,81.899998 64.6,149.8 l 49.6,0.7 13.7,-22.9 -20.6,-3.8 -4.5,-44.200002 -17.5,-13.7 z" + id="path3" /> + <path + style="fill:#a02c2c;stroke:none" + d="m 64.74845,169.74089 61.08369,3.05419 -13.74383,15.27092 -33.59604,-3.05418 z" + id="path4" /> + <path + style="fill:#784421;stroke:none" + d="m 132.93475,74.434498 20.51653,4.85918 -5.39908,30.774802 -12.68786,-1.88968 z" + id="path5" /> + <path + style="fill:#784421;stroke:none" + d="m 34.4,110.8 9.4,-3.2 3.7,-30.700002 -13.2,8.6 z" + id="path6" /> + <path + style="fill:none;stroke:#ff9955;stroke-linecap:round;stroke-linejoin:round" + d="m 289.2,194.1 -15.1,-48.7 13,-34.4 -11.5,-54.200002 26.7,-37.1 73.2,-19.19999971 114.4,30.39999971 -17,38 1.2,15.3 13.2,-8 14.8,6.8 -5.2,48.200002 -16.8,4.8 -11.4,43.5 -40.4,29.9 -31.3,-3 v 28.2 l 19,8.3 -44.2,19 -10.6,-25.1 9.9,-3.8 v -28.2 z" + id="path7" /> + <path + style="fill:none;stroke:#de8787;stroke-linecap:round;stroke-linejoin:round" + d="m 336.5,81.899998 2.2,67.900002 49.6,0.7 13.7,-22.9 -20.6,-3.8 -4.5,-44.200002 -17.5,-13.7 z" + id="path8" /> + <path + style="fill:none;stroke:#a02c2c;stroke-linecap:round;stroke-linejoin:round" + d="m 338.8,169.7 61,3 -13.7,15.2 -33.5,-3 z" + id="path9" /> + <path + style="fill:none;stroke:#803300;stroke-linecap:round;stroke-linejoin:round" + d="m 407,74.399998 20.5,4.8 -5.3,30.700002 -12.6,-1.8 z" + id="path10" /> + <path + style="fill:none;stroke:#803300;stroke-linecap:round;stroke-linejoin:round" + d="m 308.5,110.8 9.4,-3.2 3.7,-30.700002 -13.2,8.6 z" + id="path11" /> + <path + style="fill:none;stroke:#803300;stroke-linecap:round;stroke-linejoin:round" + d="M 308.5,85.199998 317.8,107.4" + id="path12" /> + <path + style="fill:none;stroke:#de8787;stroke-linecap:round;stroke-linejoin:round" + d="m 336.8,82.099998 40.2,-2.5 -38.3,70.100002 42.6,-25.9 6.6,26.5" + id="path13" /> + <path + style="fill:none;stroke:#803300;stroke-linecap:round;stroke-linejoin:round" + d="M 427.4,79.199998 409.8,107.8" + id="path14" /> + <path + style="fill:none;stroke:#a02c2c;stroke-linecap:round;stroke-linejoin:round" + d="m 399.3,172.7 -46.7,12.2" + id="path15" /> + <path + style="fill:none;stroke:#ff9955;stroke-linecap:round;stroke-linejoin:round" + d="M 496.7,130.8 474.2,83.899998 479.9,135.6" + id="path16" /> + <path + style="fill:none;stroke:#ff9955;stroke-linecap:round;stroke-linejoin:round" + d="m 468.2,179 -71,27.1 -26.1,-1.7 25.3,30.1 -25.1,-1.7 44,10.3 -53.8,-6.1" + id="path17" /> +</svg>