564 lines
17 KiB
XML
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->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->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->particle_stateB -->
|
|
<!-- shader->write -->
|
|
<!-- simulationA -->
|
|
<!-- shader->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->clear_plane -->
|
|
<!-- clear -->
|
|
<!-- clear_input->clear -->
|
|
<!-- vertex_bufferB -->
|
|
<!-- clear_plane->vertex_bufferB -->
|
|
<!-- plane -->
|
|
<!-- clear_plane->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->particle_stateC -->
|
|
<!-- particle_stateA->simulationA -->
|
|
<!-- particle_stateB->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->particle_stateD -->
|
|
<!-- particle_stateC->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->simulationB -->
|
|
<g
|
|
id="edge11"
|
|
class="edge">
|
|
<title
|
|
id="title30">particle_stateC:src->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->colorbufferA -->
|
|
<!-- particle_stateD->vertex_bufferB -->
|
|
<!-- colorbufferB -->
|
|
<!-- colorbufferA->colorbufferB -->
|
|
<!-- colorbufferC -->
|
|
<!-- colorbufferB->colorbufferC -->
|
|
<!-- particle -->
|
|
<!-- vertex_bufferB->particle -->
|
|
<!-- clear->colorbufferA -->
|
|
<!-- plane->colorbufferB -->
|
|
<!-- particle->colorbufferC -->
|
|
<!-- simulationA->particle_stateB -->
|
|
<g
|
|
id="edge10"
|
|
class="edge">
|
|
<title
|
|
id="title40">simulationA:e->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->simulationB -->
|
|
<!-- simulationB->particle_stateD -->
|
|
<g
|
|
id="edge12"
|
|
class="edge">
|
|
<title
|
|
id="title42">simulationB:e->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->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>
|