r500/diagrams/simplified_particle_data_flow_split.svg
2025-11-13 10:56:28 -06:00

564 lines
17 KiB
XML

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Generated by graphviz version 12.2.1 (20241206.2353)
-->
<!-- Pages: 1 -->
<svg
width="414.87pt"
height="152.91658pt"
viewBox="0 0 414.87 152.8295"
version="1.1"
id="svg42"
sodipodi:docname="simplified_particle_data_flow_split.svg"
inkscape:version="1.4 (e7c3feb100, 2024-10-09)"
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="defs42" />
<sodipodi:namedview
id="namedview42"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:showpageshadow="2"
inkscape:pageopacity="0.0"
inkscape:pagecheckerboard="0"
inkscape:deskcolor="#d1d1d1"
inkscape:document-units="pt"
inkscape:zoom="1.6025057"
inkscape:cx="201.55935"
inkscape:cy="141.65316"
inkscape:window-width="2048"
inkscape:window-height="1124"
inkscape:window-x="0"
inkscape:window-y="0"
inkscape:window-maximized="1"
inkscape:current-layer="graph0" />
<g
id="graph0"
class="graph"
transform="translate(-17.109999,401.93205)">
<polygon
fill="#ffffff"
stroke="none"
points="473,-434.75 473,4 -4,4 -4,-434.75 "
id="polygon1"
transform="matrix(0.86974843,0,0,0.34852783,20.588993,-250.45698)" />
<text
text-anchor="start"
x="147.09796"
y="-315.17871"
font-family="Helvetica, Arial, sans-serif"
font-size="14px"
id="text18-9-3"
style="font-size:10px;line-height:0;fill:#ff21e0;fill-opacity:1"><tspan
sodipodi:role="line"
x="147.09796"
y="-315.17871"
style="font-size:8px;line-height:1;text-align:center;text-anchor:middle;fill:#ff21e0;fill-opacity:1"
id="tspan8">multiple</tspan><tspan
sodipodi:role="line"
x="147.09796"
y="-307.17871"
style="font-size:8px;line-height:1;text-align:center;text-anchor:middle;fill:#ff21e0;fill-opacity:1"
id="tspan9">texture</tspan><tspan
sodipodi:role="line"
x="147.09796"
y="-299.17871"
style="font-size:8px;line-height:1;text-align:center;text-anchor:middle;fill:#ff21e0;fill-opacity:1"
id="tspan7">samples</tspan></text>
<text
text-anchor="start"
x="304.98917"
y="-321.75287"
font-family="Helvetica, Arial, sans-serif"
font-size="14px"
id="text18-9-3-5"
style="font-size:10px;line-height:0"><tspan
sodipodi:role="line"
id="tspan44-6-3"
x="304.98917"
y="-321.75287"
style="line-height:1.25;text-align:center;text-anchor:middle" /><tspan
sodipodi:role="line"
x="304.98917"
y="-312.05438"
style="font-size:8px;line-height:1;text-align:center;text-anchor:middle;fill:#ff00db;fill-opacity:1"
id="tspan2-6">multiple</tspan><tspan
sodipodi:role="line"
x="304.98917"
y="-304.05438"
style="font-size:8px;line-height:1;text-align:center;text-anchor:middle;fill:#ff00db;fill-opacity:1"
id="tspan3">render</tspan><tspan
sodipodi:role="line"
x="304.98917"
y="-296.05438"
style="font-size:8px;line-height:1;text-align:center;text-anchor:middle;fill:#ff00db;fill-opacity:1"
id="tspan4">targets</tspan></text>
<!-- read -->
<g
id="node1"
class="node"
transform="translate(-1.8720682,29.953092)">
<title
id="title1">read</title>
<text
text-anchor="start"
x="71.853073"
y="-419.13019"
font-family="Helvetica, Arial, sans-serif"
font-weight="bold"
font-size="14px"
id="text1"
style="line-height:0"><tspan
style="line-height:1.25;text-align:center;text-anchor:middle"
sodipodi:role="line"
id="tspan1"
x="71.853073"
y="-419.13019">read buffer</tspan><tspan
sodipodi:role="line"
x="71.853073"
y="-405.23322"
id="tspan52"
style="font-size:10px;line-height:1.25;text-align:center;text-anchor:middle">(texture samples)</tspan></text>
</g>
<!-- shader -->
<g
id="node3"
class="node"
transform="translate(-1.8720682,29.953092)">
<title
id="title2">shader</title>
<text
text-anchor="start"
x="177.18303"
y="-410.23785"
font-family="Helvetica, Arial, sans-serif"
font-weight="bold"
font-size="14px"
id="text2">fragment shader</text>
</g>
<!-- read&#45;&gt;shader -->
<!-- particle_stateA -->
<polygon
fill="none"
stroke="#000000"
points="107.36,-367 107.36,-315.5 17.11,-315.5 17.11,-367 "
id="polygon3" />
<text
text-anchor="start"
x="61.174942"
y="-344.71234"
font-family="Helvetica, Arial, sans-serif"
font-size="14px"
id="text3"><tspan
sodipodi:role="line"
id="tspan42"
x="61.174942"
y="-344.71234"
style="text-align:center;text-anchor:middle">particle state</tspan><tspan
sodipodi:role="line"
id="tspan43"
x="61.174942"
y="-327.21234"
style="font-size:10px;text-align:center;text-anchor:middle">(position, age)</tspan></text>
<polygon
fill="#76ee00"
stroke="none"
points="124.86,-367 124.86,-341.25 107.36,-341.25 107.36,-367 "
id="polygon4" />
<polygon
fill="none"
stroke="#000000"
points="124.86,-367 124.86,-341.25 107.36,-341.25 107.36,-367 "
id="polygon5" />
<text
text-anchor="start"
x="112.36"
y="-348.70001"
font-family="Helvetica, Arial, sans-serif"
font-size="14px"
id="text5">a</text>
<polygon
fill="#c1cdcd"
stroke="none"
points="124.86,-341.25 124.86,-315.5 107.36,-315.5 107.36,-341.25 "
id="polygon6" />
<polygon
fill="none"
stroke="#000000"
points="124.86,-341.25 124.86,-315.5 107.36,-315.5 107.36,-341.25 "
id="polygon7" />
<text
text-anchor="start"
x="112.36"
y="-322.95001"
font-family="Helvetica, Arial, sans-serif"
font-size="14px"
id="text7">b</text>
<!-- read&#45;&gt;particle_stateA -->
<!-- write -->
<g
id="node2"
class="node"
transform="translate(-1.8720687,25.272921)">
<title
id="title7">write</title>
<text
text-anchor="start"
x="389.26624"
y="-414.45001"
font-family="Helvetica, Arial, sans-serif"
font-weight="bold"
font-size="14px"
id="text8"
style="line-height:0"><tspan
style="line-height:1.25;text-align:center;text-anchor:middle"
sodipodi:role="line"
id="tspan2"
x="389.26624"
y="-414.45001">write buffer</tspan><tspan
sodipodi:role="line"
x="389.26624"
y="-400.55304"
id="tspan55"
style="font-size:10px;line-height:1.25;text-align:center;text-anchor:middle">(render targets)</tspan></text>
</g>
<!-- particle_stateB -->
<polygon
fill="#c1cdcd"
stroke="none"
points="345.48,-367 345.48,-341.25 327.98,-341.25 327.98,-367 "
id="polygon8" />
<polygon
fill="none"
stroke="#000000"
points="345.48,-367 345.48,-341.25 327.98,-341.25 327.98,-367 "
id="polygon9" />
<text
text-anchor="start"
x="332.98001"
y="-348.70001"
font-family="Helvetica, Arial, sans-serif"
font-size="14px"
id="text9">a</text>
<polygon
fill="none"
stroke="#000000"
points="431.98,-367 431.98,-315.5 345.48,-315.5 345.48,-367 "
id="polygon10" />
<text
text-anchor="start"
x="389.54495"
y="-344.71234"
font-family="Helvetica, Arial, sans-serif"
font-size="14px"
id="text10"><tspan
sodipodi:role="line"
id="tspan48"
x="389.54495"
y="-344.71234"
style="text-align:center;text-anchor:middle">particle state</tspan><tspan
sodipodi:role="line"
id="tspan49"
x="389.54495"
y="-327.21234"
style="font-size:10px;text-align:center;text-anchor:middle">(position, age)</tspan></text>
<polygon
fill="#76ee00"
stroke="none"
points="345.48,-341.25 345.48,-315.5 327.98,-315.5 327.98,-341.25 "
id="polygon11" />
<polygon
fill="none"
stroke="#000000"
points="345.48,-341.25 345.48,-315.5 327.98,-315.5 327.98,-341.25 "
id="polygon12" />
<text
text-anchor="start"
x="332.98001"
y="-322.95001"
font-family="Helvetica, Arial, sans-serif"
font-size="14px"
id="text12">b</text>
<!-- write&#45;&gt;particle_stateB -->
<!-- shader&#45;&gt;write -->
<!-- simulationA -->
<!-- shader&#45;&gt;simulationA -->
<!-- clear_input -->
<g
id="node4"
class="node">
<title
id="title13">clear_input</title>
</g>
<!-- clear_plane -->
<g
id="node5"
class="node">
<title
id="title14">clear_plane</title>
</g>
<!-- clear_input&#45;&gt;clear_plane -->
<!-- clear -->
<!-- clear_input&#45;&gt;clear -->
<!-- vertex_bufferB -->
<!-- clear_plane&#45;&gt;vertex_bufferB -->
<!-- plane -->
<!-- clear_plane&#45;&gt;plane -->
<!-- particle_stateC -->
<polygon
fill="none"
stroke="#000000"
points="107.36,-220 17.11,-220 17.11,-271.5 107.36,-271.5 "
id="polygon18"
transform="translate(0,-29.953092)" />
<text
text-anchor="start"
x="61.174942"
y="-279.16544"
font-family="Helvetica, Arial, sans-serif"
font-size="14px"
id="text18"><tspan
sodipodi:role="line"
id="tspan44"
x="61.174942"
y="-279.16544"
style="text-align:center;text-anchor:middle">particle state</tspan><tspan
sodipodi:role="line"
id="tspan45"
x="61.174942"
y="-261.66544"
style="font-size:10px;text-align:center;text-anchor:middle">(velocity, random)</tspan></text>
<polygon
fill="#c1cdcd"
stroke="none"
points="124.86,-245.75 107.36,-245.75 107.36,-271.5 124.86,-271.5 "
id="polygon19"
style="fill:#76ee00;fill-opacity:1"
transform="translate(0,-29.953092)" />
<polygon
fill="none"
stroke="#000000"
points="124.86,-245.75 107.36,-245.75 107.36,-271.5 124.86,-271.5 "
id="polygon20"
transform="translate(0,-29.953092)" />
<text
text-anchor="start"
x="112.36"
y="-283.15308"
font-family="Helvetica, Arial, sans-serif"
font-size="14px"
id="text20">a</text>
<polygon
fill="#76ee00"
stroke="none"
points="124.86,-220 107.36,-220 107.36,-245.75 124.86,-245.75 "
id="polygon21"
style="fill:#c1cdcd;fill-opacity:1"
transform="translate(0,-29.953092)" />
<polygon
fill="none"
stroke="#000000"
points="124.86,-220 107.36,-220 107.36,-245.75 124.86,-245.75 "
id="polygon22"
transform="translate(0,-29.953092)" />
<text
text-anchor="start"
x="112.36"
y="-257.40308"
font-family="Helvetica, Arial, sans-serif"
font-size="14px"
id="text22">b</text>
<!-- particle_stateA&#45;&gt;particle_stateC -->
<!-- particle_stateA&#45;&gt;simulationA -->
<!-- particle_stateB&#45;&gt;particle_stateC -->
<!-- particle_stateD -->
<polygon
fill="#c1cdcd"
stroke="none"
points="345.48,-245.75 327.98,-245.75 327.98,-271.5 345.48,-271.5 "
id="polygon25"
transform="translate(0,-29.953092)" />
<polygon
fill="none"
stroke="#000000"
points="345.48,-245.75 327.98,-245.75 327.98,-271.5 345.48,-271.5 "
id="polygon26"
transform="translate(0,-29.953092)" />
<text
text-anchor="start"
x="332.98001"
y="-283.15308"
font-family="Helvetica, Arial, sans-serif"
font-size="14px"
id="text26">a</text>
<polygon
fill="none"
stroke="#000000"
points="431.98,-220 345.48,-220 345.48,-271.5 431.98,-271.5 "
id="polygon27"
transform="translate(0,-29.953092)" />
<text
text-anchor="start"
x="389.54495"
y="-279.16544"
font-family="Helvetica, Arial, sans-serif"
font-size="14px"
id="text27"><tspan
sodipodi:role="line"
id="tspan46"
x="389.54495"
y="-279.16544"
style="text-align:center;text-anchor:middle">particle state</tspan><tspan
sodipodi:role="line"
id="tspan47"
x="389.54495"
y="-261.66544"
style="font-size:10px;text-align:center;text-anchor:middle">(velocity, random)</tspan></text>
<polygon
fill="#76ee00"
stroke="none"
points="345.48,-220 327.98,-220 327.98,-245.75 345.48,-245.75 "
id="polygon28"
transform="translate(0,-29.953092)" />
<polygon
fill="none"
stroke="#000000"
points="345.48,-220 327.98,-220 327.98,-245.75 345.48,-245.75 "
id="polygon29"
transform="translate(0,-29.953092)" />
<text
text-anchor="start"
x="332.98001"
y="-257.40308"
font-family="Helvetica, Arial, sans-serif"
font-size="14px"
id="text29">b</text>
<!-- particle_stateB&#45;&gt;particle_stateD -->
<!-- particle_stateC&#45;&gt;clear_input -->
<!-- simulationB -->
<g
id="node18"
class="node"
transform="translate(-0.46801706,-62.246269)">
<title
id="title29">simulationB</title>
<ellipse
fill="none"
stroke="#000000"
cx="225.98"
cy="-245.75"
rx="57.549999"
ry="33.444565"
id="ellipse29" />
<text
text-anchor="middle"
x="226.44801"
y="-249.21233"
font-family="Helvetica, Arial, sans-serif"
font-size="14px"
id="text30"><tspan
sodipodi:role="line"
id="tspan59"
x="226.44801"
y="-249.21233">particle</tspan><tspan
sodipodi:role="line"
x="226.44801"
y="-231.71233"
id="tspan60">simulation</tspan></text>
</g>
<!-- particle_stateC&#45;&gt;simulationB -->
<g
id="edge11"
class="edge">
<title
id="title30">particle_stateC:src-&gt;simulationB:w</title>
<path
fill="none"
stroke="#000000"
d="m 124.86,-288.57809 c 15.28,0 30.65,4.73266 41.4,1.24266"
id="path30"
sodipodi:nodetypes="cc" />
<polygon
fill="#000000"
stroke="#000000"
points="156.52,-247.51 166.93,-245.53 157.56,-240.58 "
id="polygon30"
transform="translate(9.2200015,-43.290434)" />
</g>
<!-- colorbufferA -->
<!-- particle_stateD&#45;&gt;colorbufferA -->
<!-- particle_stateD&#45;&gt;vertex_bufferB -->
<!-- colorbufferB -->
<!-- colorbufferA&#45;&gt;colorbufferB -->
<!-- colorbufferC -->
<!-- colorbufferB&#45;&gt;colorbufferC -->
<!-- particle -->
<!-- vertex_bufferB&#45;&gt;particle -->
<!-- clear&#45;&gt;colorbufferA -->
<!-- plane&#45;&gt;colorbufferB -->
<!-- particle&#45;&gt;colorbufferC -->
<!-- simulationA&#45;&gt;particle_stateB -->
<g
id="edge10"
class="edge">
<title
id="title40">simulationA:e-&gt;particle_stateB:dst</title>
<path
fill="none"
stroke="#000000"
d="m 279.77796,-319.13241 c 15.74,0 24.86204,-14.25759 36.06204,-10.81759"
id="path40"
sodipodi:nodetypes="cc" />
<polygon
fill="#000000"
stroke="#000000"
points="315.09,-326.53 316.07,-333.46 325.48,-328.59 "
id="polygon40" />
</g>
<!-- simulationA&#45;&gt;simulationB -->
<!-- simulationB&#45;&gt;particle_stateD -->
<g
id="edge12"
class="edge">
<title
id="title42">simulationB:e-&gt;particle_stateD:dst</title>
<path
fill="none"
stroke="#000000"
d="m 277.22486,-293.32 c 15.74,0 27.78307,27.05096 38.98307,30.49096"
id="path42"
sodipodi:nodetypes="cc" />
<polygon
fill="#000000"
stroke="#000000"
points="315.09,-231.03 316.07,-237.96 325.48,-233.09 "
id="polygon42"
transform="translate(0.6279318,-28.33404)" />
</g>
<g
id="edge9-9"
class="edge"
transform="translate(-1,-0.005)">
<title
id="title22">particle_stateA:src-&gt;simulationA:w</title>
<path
fill="none"
stroke="#000000"
d="m 125.86,-354.12 c 15.28,0 30.34764,18.67423 41.09764,22.16423"
id="path22"
sodipodi:nodetypes="cc" />
<polygon
fill="#000000"
stroke="#000000"
points="166.93,-341.47 156.52,-339.49 157.56,-346.42 "
id="polygon23-3"
transform="rotate(34.394355,144.22934,-321.43324)" />
</g>
</g>
</svg>