Merge MMSYS 16
This commit is contained in:
parent
b59a5b394b
commit
2370d41471
Binary file not shown.
Before Width: | Height: | Size: 503 KiB After Width: | Height: | Size: 472 KiB |
Binary file not shown.
After Width: | Height: | Size: 1.2 MiB |
Binary file not shown.
After Width: | Height: | Size: 1.1 MiB |
Binary file not shown.
After Width: | Height: | Size: 1.2 MiB |
Binary file not shown.
After Width: | Height: | Size: 1.1 MiB |
File diff suppressed because it is too large
Load Diff
|
@ -0,0 +1,420 @@
|
||||||
|
x y1 y2
|
||||||
|
50 0.131942 0.238320
|
||||||
|
100 0.205725 0.356426
|
||||||
|
150 0.242529 0.399903
|
||||||
|
200 0.278507 0.436995
|
||||||
|
250 0.303498 0.470774
|
||||||
|
300 0.326138 0.501938
|
||||||
|
350 0.345066 0.530680
|
||||||
|
400 0.366400 0.557247
|
||||||
|
450 0.380507 0.581496
|
||||||
|
500 0.397580 0.603497
|
||||||
|
550 0.412134 0.623504
|
||||||
|
600 0.421523 0.641811
|
||||||
|
650 0.428828 0.659131
|
||||||
|
700 0.434932 0.675321
|
||||||
|
750 0.441448 0.690581
|
||||||
|
800 0.449477 0.705094
|
||||||
|
850 0.459193 0.718605
|
||||||
|
900 0.465525 0.731273
|
||||||
|
950 0.473074 0.743392
|
||||||
|
1000 0.480954 0.755044
|
||||||
|
1050 0.487500 0.766290
|
||||||
|
1100 0.492953 0.777063
|
||||||
|
1150 0.497089 0.787407
|
||||||
|
1200 0.501430 0.797337
|
||||||
|
1250 0.507154 0.806836
|
||||||
|
1300 0.510778 0.815817
|
||||||
|
1350 0.517049 0.824390
|
||||||
|
1400 0.521230 0.832663
|
||||||
|
1450 0.522772 0.840678
|
||||||
|
1500 0.524264 0.848443
|
||||||
|
1550 0.526208 0.855931
|
||||||
|
1600 0.529293 0.863128
|
||||||
|
1650 0.532167 0.869959
|
||||||
|
1700 0.534288 0.876448
|
||||||
|
1750 0.539359 0.882622
|
||||||
|
1800 0.543343 0.888526
|
||||||
|
1850 0.546010 0.894202
|
||||||
|
1900 0.548814 0.899647
|
||||||
|
1950 0.552221 0.904834
|
||||||
|
2000 0.556037 0.909772
|
||||||
|
2050 0.560241 0.914487
|
||||||
|
2100 0.565780 0.918977
|
||||||
|
2150 0.570375 0.923214
|
||||||
|
2200 0.573157 0.927178
|
||||||
|
2250 0.578510 0.930889
|
||||||
|
2300 0.584053 0.934271
|
||||||
|
2350 0.593370 0.937358
|
||||||
|
2400 0.601812 0.940252
|
||||||
|
2450 0.617184 0.943003
|
||||||
|
2500 0.624025 0.945608
|
||||||
|
2550 0.630036 0.948090
|
||||||
|
2600 0.637701 0.950440
|
||||||
|
2650 0.646357 0.952698
|
||||||
|
2700 0.653498 0.954861
|
||||||
|
2750 0.665690 0.956936
|
||||||
|
2800 0.675088 0.958936
|
||||||
|
2850 0.686781 0.960854
|
||||||
|
2900 0.686909 0.962623
|
||||||
|
2950 0.687540 0.964227
|
||||||
|
3000 0.687849 0.965722
|
||||||
|
3050 0.688321 0.967139
|
||||||
|
3100 0.693394 0.968524
|
||||||
|
3150 0.694474 0.969839
|
||||||
|
3200 0.705058 0.971154
|
||||||
|
3250 0.708841 0.972438
|
||||||
|
3300 0.710565 0.973670
|
||||||
|
3350 0.720899 0.974870
|
||||||
|
3400 0.725468 0.976020
|
||||||
|
3450 0.731085 0.977133
|
||||||
|
3500 0.736501 0.978201
|
||||||
|
3550 0.738313 0.979218
|
||||||
|
3600 0.743687 0.980205
|
||||||
|
3650 0.752294 0.981191
|
||||||
|
3700 0.754119 0.982101
|
||||||
|
3750 0.757645 0.983005
|
||||||
|
3800 0.758436 0.983841
|
||||||
|
3850 0.759179 0.984663
|
||||||
|
3900 0.762766 0.985485
|
||||||
|
3950 0.767053 0.986257
|
||||||
|
4000 0.768039 0.986997
|
||||||
|
4050 0.768951 0.987736
|
||||||
|
4100 0.770770 0.988425
|
||||||
|
4150 0.773462 0.989082
|
||||||
|
4200 0.782674 0.989740
|
||||||
|
4250 0.784454 0.990392
|
||||||
|
4300 0.791198 0.990968
|
||||||
|
4350 0.800382 0.991543
|
||||||
|
4400 0.805439 0.992118
|
||||||
|
4450 0.806450 0.992688
|
||||||
|
4500 0.810880 0.993181
|
||||||
|
4550 0.812841 0.993674
|
||||||
|
4600 0.813789 0.994167
|
||||||
|
4650 0.817104 0.994660
|
||||||
|
4700 0.821348 0.995153
|
||||||
|
4750 0.823234 0.995582
|
||||||
|
4800 0.825861 0.995993
|
||||||
|
4850 0.829420 0.996404
|
||||||
|
4900 0.832822 0.996815
|
||||||
|
4950 0.839297 0.997170
|
||||||
|
5000 0.842057 0.997499
|
||||||
|
5050 0.845612 0.997827
|
||||||
|
5100 0.850905 0.998082
|
||||||
|
5150 0.854108 0.998329
|
||||||
|
5200 0.857518 0.998575
|
||||||
|
5250 0.859906 0.998817
|
||||||
|
5300 0.862068 0.998981
|
||||||
|
5350 0.863851 0.999145
|
||||||
|
5400 0.865889 0.999310
|
||||||
|
5450 0.868748 0.999474
|
||||||
|
5500 0.875016 0.999637
|
||||||
|
5550 0.879465 0.999719
|
||||||
|
5600 0.884537 0.999801
|
||||||
|
5650 0.891037 0.999883
|
||||||
|
5700 0.894935 0.999965
|
||||||
|
5750 0.899050 1.000000
|
||||||
|
5800 0.906692 1.000000
|
||||||
|
5850 0.914201 1.000000
|
||||||
|
5900 0.919515 1.000000
|
||||||
|
5950 0.925242 1.000000
|
||||||
|
6000 0.931547 1.000000
|
||||||
|
6050 0.936965 1.000000
|
||||||
|
6100 0.943933 1.000000
|
||||||
|
6150 0.948192 1.000000
|
||||||
|
6200 0.952154 1.000000
|
||||||
|
6250 0.959043 1.000000
|
||||||
|
6300 0.965127 1.000000
|
||||||
|
6350 0.969322 1.000000
|
||||||
|
6400 0.971877 1.000000
|
||||||
|
6450 0.974122 1.000000
|
||||||
|
6500 0.975494 1.000000
|
||||||
|
6550 0.977028 1.000000
|
||||||
|
6600 0.979805 1.000000
|
||||||
|
6650 0.980725 1.000000
|
||||||
|
6700 0.982934 1.000000
|
||||||
|
6750 0.984247 1.000000
|
||||||
|
6800 0.984938 1.000000
|
||||||
|
6850 0.986581 1.000000
|
||||||
|
6900 0.987715 1.000000
|
||||||
|
6950 0.988011 1.000000
|
||||||
|
7000 0.988596 1.000000
|
||||||
|
7050 0.989161 1.000000
|
||||||
|
7100 0.989237 1.000000
|
||||||
|
7150 0.989559 1.000000
|
||||||
|
7200 0.989738 1.000000
|
||||||
|
7250 0.990027 1.000000
|
||||||
|
7300 0.990590 1.000000
|
||||||
|
7350 0.991285 1.000000
|
||||||
|
7400 0.991809 1.000000
|
||||||
|
7450 0.992369 1.000000
|
||||||
|
7500 0.992830 1.000000
|
||||||
|
7550 0.993457 1.000000
|
||||||
|
7600 0.993936 1.000000
|
||||||
|
7650 0.994172 1.000000
|
||||||
|
7700 0.994531 1.000000
|
||||||
|
7750 0.994823 1.000000
|
||||||
|
7800 0.995125 1.000000
|
||||||
|
7850 0.995492 1.000000
|
||||||
|
7900 0.995688 1.000000
|
||||||
|
7950 0.995964 1.000000
|
||||||
|
8000 0.996158 1.000000
|
||||||
|
8050 0.996327 1.000000
|
||||||
|
8100 0.996432 1.000000
|
||||||
|
8150 0.996633 1.000000
|
||||||
|
8200 0.996780 1.000000
|
||||||
|
8250 0.996848 1.000000
|
||||||
|
8300 0.996981 1.000000
|
||||||
|
8350 0.997045 1.000000
|
||||||
|
8400 0.997114 1.000000
|
||||||
|
8450 0.997242 1.000000
|
||||||
|
8500 0.997315 1.000000
|
||||||
|
8550 0.997366 1.000000
|
||||||
|
8600 0.997487 1.000000
|
||||||
|
8650 0.997601 1.000000
|
||||||
|
8700 0.997656 1.000000
|
||||||
|
8750 0.997775 1.000000
|
||||||
|
8800 0.997900 1.000000
|
||||||
|
8850 0.997944 1.000000
|
||||||
|
8900 0.998108 1.000000
|
||||||
|
8950 0.998161 1.000000
|
||||||
|
9000 0.998217 1.000000
|
||||||
|
9050 0.998389 1.000000
|
||||||
|
9100 0.998480 1.000000
|
||||||
|
9150 0.998672 1.000000
|
||||||
|
9200 0.998779 1.000000
|
||||||
|
9250 0.998879 1.000000
|
||||||
|
9300 0.998945 1.000000
|
||||||
|
9350 0.999020 1.000000
|
||||||
|
9400 0.999121 1.000000
|
||||||
|
9450 0.999205 1.000000
|
||||||
|
9500 0.999285 1.000000
|
||||||
|
9550 0.999412 1.000000
|
||||||
|
9600 0.999463 1.000000
|
||||||
|
9650 0.999499 1.000000
|
||||||
|
9700 0.999551 1.000000
|
||||||
|
9750 0.999589 1.000000
|
||||||
|
9800 0.999625 1.000000
|
||||||
|
9850 0.999643 1.000000
|
||||||
|
9900 0.999655 1.000000
|
||||||
|
9950 0.999689 1.000000
|
||||||
|
10000 0.999694 1.000000
|
||||||
|
10050 0.999698 1.000000
|
||||||
|
10100 0.999827 1.000000
|
||||||
|
10150 0.999870 1.000000
|
||||||
|
10200 0.999875 1.000000
|
||||||
|
10250 0.999875 1.000000
|
||||||
|
10300 0.999877 1.000000
|
||||||
|
10350 0.999878 1.000000
|
||||||
|
10400 0.999880 1.000000
|
||||||
|
10450 0.999880 1.000000
|
||||||
|
10500 0.999993 1.000000
|
||||||
|
10550 0.999993 1.000000
|
||||||
|
10600 0.999993 1.000000
|
||||||
|
10650 1.000000 1.000000
|
||||||
|
10700 1.000000 1.000000
|
||||||
|
10750 1.000000 1.000000
|
||||||
|
10800 1.000000 1.000000
|
||||||
|
10850 1.000000 1.000000
|
||||||
|
10900 1.000000 1.000000
|
||||||
|
10950 1.000000 1.000000
|
||||||
|
11000 1.000000 1.000000
|
||||||
|
11050 1.000000 1.000000
|
||||||
|
11100 1.000000 1.000000
|
||||||
|
11150 1.000000 1.000000
|
||||||
|
11200 1.000000 1.000000
|
||||||
|
11250 1.000000 1.000000
|
||||||
|
11300 1.000000 1.000000
|
||||||
|
11350 1.000000 1.000000
|
||||||
|
11400 1.000000 1.000000
|
||||||
|
11450 1.000000 1.000000
|
||||||
|
11500 1.000000 1.000000
|
||||||
|
11550 1.000000 1.000000
|
||||||
|
11600 1.000000 1.000000
|
||||||
|
11650 1.000000 1.000000
|
||||||
|
11700 1.000000 1.000000
|
||||||
|
11750 1.000000 1.000000
|
||||||
|
11800 1.000000 1.000000
|
||||||
|
11850 1.000000 1.000000
|
||||||
|
11900 1.000000 1.000000
|
||||||
|
11950 1.000000 1.000000
|
||||||
|
12000 1.000000 1.000000
|
||||||
|
12050 1.000000 1.000000
|
||||||
|
12100 1.000000 1.000000
|
||||||
|
12150 1.000000 1.000000
|
||||||
|
12200 1.000000 1.000000
|
||||||
|
12250 1.000000 1.000000
|
||||||
|
12300 1.000000 1.000000
|
||||||
|
12350 1.000000 1.000000
|
||||||
|
12400 1.000000 1.000000
|
||||||
|
12450 1.000000 1.000000
|
||||||
|
12500 1.000000 1.000000
|
||||||
|
12550 1.000000 1.000000
|
||||||
|
12600 1.000000 1.000000
|
||||||
|
12650 1.000000 1.000000
|
||||||
|
12700 1.000000 1.000000
|
||||||
|
12750 1.000000 1.000000
|
||||||
|
12800 1.000000 1.000000
|
||||||
|
12850 1.000000 1.000000
|
||||||
|
12900 1.000000 1.000000
|
||||||
|
12950 1.000000 1.000000
|
||||||
|
13000 1.000000 1.000000
|
||||||
|
13050 1.000000 1.000000
|
||||||
|
13100 1.000000 1.000000
|
||||||
|
13150 1.000000 1.000000
|
||||||
|
13200 1.000000 1.000000
|
||||||
|
13250 1.000000 1.000000
|
||||||
|
13300 1.000000 1.000000
|
||||||
|
13350 1.000000 1.000000
|
||||||
|
13400 1.000000 1.000000
|
||||||
|
13450 1.000000 1.000000
|
||||||
|
13500 1.000000 1.000000
|
||||||
|
13550 1.000000 1.000000
|
||||||
|
13600 1.000000 1.000000
|
||||||
|
13650 1.000000 1.000000
|
||||||
|
13700 1.000000 1.000000
|
||||||
|
13750 1.000000 1.000000
|
||||||
|
13800 1.000000 1.000000
|
||||||
|
13850 1.000000 1.000000
|
||||||
|
13900 1.000000 1.000000
|
||||||
|
13950 1.000000 1.000000
|
||||||
|
14000 1.000000 1.000000
|
||||||
|
14050 1.000000 1.000000
|
||||||
|
14100 1.000000 1.000000
|
||||||
|
14150 1.000000 1.000000
|
||||||
|
14200 1.000000 1.000000
|
||||||
|
14250 1.000000 1.000000
|
||||||
|
14300 1.000000 1.000000
|
||||||
|
14350 1.000000 1.000000
|
||||||
|
14400 1.000000 1.000000
|
||||||
|
14450 1.000000 1.000000
|
||||||
|
14500 1.000000 1.000000
|
||||||
|
14550 1.000000 1.000000
|
||||||
|
14600 1.000000 1.000000
|
||||||
|
14650 1.000000 1.000000
|
||||||
|
14700 1.000000 1.000000
|
||||||
|
14750 1.000000 1.000000
|
||||||
|
14800 1.000000 1.000000
|
||||||
|
14850 1.000000 1.000000
|
||||||
|
14900 1.000000 1.000000
|
||||||
|
14950 1.000000 1.000000
|
||||||
|
15000 1.000000 1.000000
|
||||||
|
15050 1.000000 1.000000
|
||||||
|
15100 1.000000 1.000000
|
||||||
|
15150 1.000000 1.000000
|
||||||
|
15200 1.000000 1.000000
|
||||||
|
15250 1.000000 1.000000
|
||||||
|
15300 1.000000 1.000000
|
||||||
|
15350 1.000000 1.000000
|
||||||
|
15400 1.000000 1.000000
|
||||||
|
15450 1.000000 1.000000
|
||||||
|
15500 1.000000 1.000000
|
||||||
|
15550 1.000000 1.000000
|
||||||
|
15600 1.000000 1.000000
|
||||||
|
15650 1.000000 1.000000
|
||||||
|
15700 1.000000 1.000000
|
||||||
|
15750 1.000000 1.000000
|
||||||
|
15800 1.000000 1.000000
|
||||||
|
15850 1.000000 1.000000
|
||||||
|
15900 1.000000 1.000000
|
||||||
|
15950 1.000000 1.000000
|
||||||
|
16000 1.000000 1.000000
|
||||||
|
16050 1.000000 1.000000
|
||||||
|
16100 1.000000 1.000000
|
||||||
|
16150 1.000000 1.000000
|
||||||
|
16200 1.000000 1.000000
|
||||||
|
16250 1.000000 1.000000
|
||||||
|
16300 1.000000 1.000000
|
||||||
|
16350 1.000000 1.000000
|
||||||
|
16400 1.000000 1.000000
|
||||||
|
16450 1.000000 1.000000
|
||||||
|
16500 1.000000 1.000000
|
||||||
|
16550 1.000000 1.000000
|
||||||
|
16600 1.000000 1.000000
|
||||||
|
16650 1.000000 1.000000
|
||||||
|
16700 1.000000 1.000000
|
||||||
|
16750 1.000000 1.000000
|
||||||
|
16800 1.000000 1.000000
|
||||||
|
16850 1.000000 1.000000
|
||||||
|
16900 1.000000 1.000000
|
||||||
|
16950 1.000000 1.000000
|
||||||
|
17000 1.000000 1.000000
|
||||||
|
17050 1.000000 1.000000
|
||||||
|
17100 1.000000 1.000000
|
||||||
|
17150 1.000000 1.000000
|
||||||
|
17200 1.000000 1.000000
|
||||||
|
17250 1.000000 1.000000
|
||||||
|
17300 1.000000 1.000000
|
||||||
|
17350 1.000000 1.000000
|
||||||
|
17400 1.000000 1.000000
|
||||||
|
17450 1.000000 1.000000
|
||||||
|
17500 1.000000 1.000000
|
||||||
|
17550 1.000000 1.000000
|
||||||
|
17600 1.000000 1.000000
|
||||||
|
17650 1.000000 1.000000
|
||||||
|
17700 1.000000 1.000000
|
||||||
|
17750 1.000000 1.000000
|
||||||
|
17800 1.000000 1.000000
|
||||||
|
17850 1.000000 1.000000
|
||||||
|
17900 1.000000 1.000000
|
||||||
|
17950 1.000000 1.000000
|
||||||
|
18000 1.000000 1.000000
|
||||||
|
18050 1.000000 1.000000
|
||||||
|
18100 1.000000 1.000000
|
||||||
|
18150 1.000000 1.000000
|
||||||
|
18200 1.000000 1.000000
|
||||||
|
18250 1.000000 1.000000
|
||||||
|
18300 1.000000 1.000000
|
||||||
|
18350 1.000000 1.000000
|
||||||
|
18400 1.000000 1.000000
|
||||||
|
18450 1.000000 1.000000
|
||||||
|
18500 1.000000 1.000000
|
||||||
|
18550 1.000000 1.000000
|
||||||
|
18600 1.000000 1.000000
|
||||||
|
18650 1.000000 1.000000
|
||||||
|
18700 1.000000 1.000000
|
||||||
|
18750 1.000000 1.000000
|
||||||
|
18800 1.000000 1.000000
|
||||||
|
18850 1.000000 1.000000
|
||||||
|
18900 1.000000 1.000000
|
||||||
|
18950 1.000000 1.000000
|
||||||
|
19000 1.000000 1.000000
|
||||||
|
19050 1.000000 1.000000
|
||||||
|
19100 1.000000 1.000000
|
||||||
|
19150 1.000000 1.000000
|
||||||
|
19200 1.000000 1.000000
|
||||||
|
19250 1.000000 1.000000
|
||||||
|
19300 1.000000 1.000000
|
||||||
|
19350 1.000000 1.000000
|
||||||
|
19400 1.000000 1.000000
|
||||||
|
19450 1.000000 1.000000
|
||||||
|
19500 1.000000 1.000000
|
||||||
|
19550 1.000000 1.000000
|
||||||
|
19600 1.000000 1.000000
|
||||||
|
19650 1.000000 1.000000
|
||||||
|
19700 1.000000 1.000000
|
||||||
|
19750 1.000000 1.000000
|
||||||
|
19800 1.000000 1.000000
|
||||||
|
19850 1.000000 1.000000
|
||||||
|
19900 1.000000 1.000000
|
||||||
|
19950 1.000000 1.000000
|
||||||
|
20000 1.000000 1.000000
|
||||||
|
20050 1.000000 1.000000
|
||||||
|
20100 1.000000 1.000000
|
||||||
|
20150 1.000000 1.000000
|
||||||
|
20200 1.000000 1.000000
|
||||||
|
20250 1.000000 1.000000
|
||||||
|
20300 1.000000 1.000000
|
||||||
|
20350 1.000000 1.000000
|
||||||
|
20400 1.000000 1.000000
|
||||||
|
20450 1.000000 1.000000
|
||||||
|
20500 1.000000 1.000000
|
||||||
|
20550 1.000000 1.000000
|
||||||
|
20600 1.000000 1.000000
|
||||||
|
20650 1.000000 1.000000
|
||||||
|
20700 1.000000 1.000000
|
||||||
|
20750 1.000000 1.000000
|
||||||
|
20800 1.000000 1.000000
|
||||||
|
20850 1.000000 1.000000
|
||||||
|
20900 1.000000 1.000000
|
||||||
|
20950 1.000000 1.000000
|
|
@ -0,0 +1,145 @@
|
||||||
|
x,y,r,g
|
||||||
|
0,0,0,0
|
||||||
|
0,1,0.07894736842105263,0
|
||||||
|
0,2,0.18421052631578946,0
|
||||||
|
0,3,0,0
|
||||||
|
0,4,0.02631578947368421,0
|
||||||
|
0,5,0.02631578947368421,0
|
||||||
|
0,6,0,0
|
||||||
|
0,7,0.02631578947368421,0
|
||||||
|
0,8,0,0
|
||||||
|
0,9,0.13157894736842105,0
|
||||||
|
0,10,0.2894736842105263,0
|
||||||
|
0,11,0.2631578947368421,0
|
||||||
|
1,0,0,0
|
||||||
|
1,1,0,0
|
||||||
|
1,2,0.10526315789473684,0
|
||||||
|
1,3,0.15789473684210525,0
|
||||||
|
1,4,0.18421052631578946,0
|
||||||
|
1,5,0.02631578947368421,0
|
||||||
|
1,6,0,0
|
||||||
|
1,7,0.07894736842105263,0
|
||||||
|
1,8,0.02631578947368421,0
|
||||||
|
1,9,0.05263157894736842,0
|
||||||
|
1,10,0.05263157894736842,0
|
||||||
|
1,11,0.05263157894736842,0
|
||||||
|
2,0,0,0
|
||||||
|
2,1,0.02631578947368421,0
|
||||||
|
2,2,0,0
|
||||||
|
2,3,0.5,1
|
||||||
|
2,4,0.02631578947368421,0
|
||||||
|
2,5,0.02631578947368421,0
|
||||||
|
2,6,0.02631578947368421,0
|
||||||
|
2,7,0.07894736842105263,0
|
||||||
|
2,8,0.02631578947368421,0
|
||||||
|
2,9,0.07894736842105263,0
|
||||||
|
2,10,0.07894736842105263,0
|
||||||
|
2,11,0.05263157894736842,0
|
||||||
|
3,0,0,0
|
||||||
|
3,1,0.05263157894736842,0
|
||||||
|
3,2,0.07894736842105263,0
|
||||||
|
3,3,0,0
|
||||||
|
3,4,0.4473684210526316,1
|
||||||
|
3,5,0.02631578947368421,0
|
||||||
|
3,6,0.13157894736842105,0
|
||||||
|
3,7,0.02631578947368421,0
|
||||||
|
3,8,0,0
|
||||||
|
3,9,0.07894736842105263,0
|
||||||
|
3,10,0,0
|
||||||
|
3,11,0.13157894736842105,0
|
||||||
|
4,0,0,0
|
||||||
|
4,1,0,0
|
||||||
|
4,2,0.02631578947368421,0
|
||||||
|
4,3,0.15789473684210525,0
|
||||||
|
4,4,0,0
|
||||||
|
4,5,0.3157894736842105,0
|
||||||
|
4,6,0.21052631578947367,0
|
||||||
|
4,7,0.05263157894736842,0
|
||||||
|
4,8,0,0
|
||||||
|
4,9,0.07894736842105263,0
|
||||||
|
4,10,0,0
|
||||||
|
4,11,0.10526315789473684,0
|
||||||
|
5,0,0,0
|
||||||
|
5,1,0.10526315789473684,0
|
||||||
|
5,2,0,0
|
||||||
|
5,3,0.05263157894736842,0
|
||||||
|
5,4,0.13157894736842105,0
|
||||||
|
5,5,0,0
|
||||||
|
5,6,0.13157894736842105,0
|
||||||
|
5,7,0.05263157894736842,0
|
||||||
|
5,8,0.15789473684210525,0
|
||||||
|
5,9,0.02631578947368421,0
|
||||||
|
5,10,0.02631578947368421,0
|
||||||
|
5,11,0.02631578947368421,0
|
||||||
|
6,0,0,0
|
||||||
|
6,1,0.15789473684210525,0
|
||||||
|
6,2,0.10526315789473684,0
|
||||||
|
6,3,0,0
|
||||||
|
6,4,0,0
|
||||||
|
6,5,0.10526315789473684,0
|
||||||
|
6,6,0,0
|
||||||
|
6,7,0.05263157894736842,0
|
||||||
|
6,8,0.21052631578947367,0
|
||||||
|
6,9,0.13157894736842105,0
|
||||||
|
6,10,0,0
|
||||||
|
6,11,0,0
|
||||||
|
7,0,0,0
|
||||||
|
7,1,0.07894736842105263,0
|
||||||
|
7,2,0.05263157894736842,0
|
||||||
|
7,3,0.02631578947368421,0
|
||||||
|
7,4,0.07894736842105263,0
|
||||||
|
7,5,0.07894736842105263,0
|
||||||
|
7,6,0.10526315789473684,0
|
||||||
|
7,7,0,0
|
||||||
|
7,8,0.07894736842105263,0
|
||||||
|
7,9,0.02631578947368421,0
|
||||||
|
7,10,0.02631578947368421,0
|
||||||
|
7,11,0.05263157894736842,0
|
||||||
|
8,0,0,0
|
||||||
|
8,1,0,0
|
||||||
|
8,2,0.10526315789473684,0
|
||||||
|
8,3,0.02631578947368421,0
|
||||||
|
8,4,0.02631578947368421,0
|
||||||
|
8,5,0.18421052631578946,0
|
||||||
|
8,6,0.15789473684210525,0
|
||||||
|
8,7,0,0
|
||||||
|
8,8,0,0
|
||||||
|
8,9,0.21052631578947367,0
|
||||||
|
8,10,0.07894736842105263,0
|
||||||
|
8,11,0.07894736842105263,0
|
||||||
|
9,0,0,0
|
||||||
|
9,1,0.07894736842105263,0
|
||||||
|
9,2,0.10526315789473684,0
|
||||||
|
9,3,0.02631578947368421,0
|
||||||
|
9,4,0,0
|
||||||
|
9,5,0,0
|
||||||
|
9,6,0.07894736842105263,0
|
||||||
|
9,7,0.15789473684210525,0
|
||||||
|
9,8,0.13157894736842105,0
|
||||||
|
9,9,0,0
|
||||||
|
9,10,0.21052631578947367,0
|
||||||
|
9,11,0.07894736842105263,0
|
||||||
|
10,0,0,0
|
||||||
|
10,1,0.02631578947368421,0
|
||||||
|
10,2,0.10526315789473684,0
|
||||||
|
10,3,0.07894736842105263,0
|
||||||
|
10,4,0.05263157894736842,0
|
||||||
|
10,5,0.02631578947368421,0
|
||||||
|
10,6,0,0
|
||||||
|
10,7,0.02631578947368421,0
|
||||||
|
10,8,0.23684210526315788,0
|
||||||
|
10,9,0.07894736842105263,0
|
||||||
|
10,10,0,0
|
||||||
|
10,11,0.10526315789473684,0
|
||||||
|
11,0,0,0
|
||||||
|
11,1,0.18421052631578946,0
|
||||||
|
11,2,0.13157894736842105,0
|
||||||
|
11,3,0.13157894736842105,0
|
||||||
|
11,4,0.10526315789473684,0
|
||||||
|
11,5,0.02631578947368421,0
|
||||||
|
11,6,0,0
|
||||||
|
11,7,0.13157894736842105,0
|
||||||
|
11,8,0.02631578947368421,0
|
||||||
|
11,9,0.05263157894736842,0
|
||||||
|
11,10,0.07894736842105263,0
|
||||||
|
11,11,0,0
|
|
@ -0,0 +1,301 @@
|
||||||
|
x y1 y2
|
||||||
|
0.200000 0.097503 0.088315
|
||||||
|
0.400000 0.098452 0.089165
|
||||||
|
0.600000 0.099034 0.090621
|
||||||
|
0.800000 0.100106 0.092772
|
||||||
|
1.000000 0.100838 0.094922
|
||||||
|
1.200000 0.101238 0.097089
|
||||||
|
1.400000 0.101550 0.100406
|
||||||
|
1.600000 0.102436 0.103554
|
||||||
|
1.800000 0.102910 0.106919
|
||||||
|
2.000000 0.104166 0.109929
|
||||||
|
2.200000 0.107001 0.113048
|
||||||
|
2.400000 0.109256 0.115971
|
||||||
|
2.600000 0.110241 0.117648
|
||||||
|
2.800000 0.112081 0.119653
|
||||||
|
3.000000 0.114065 0.121677
|
||||||
|
3.200000 0.116259 0.123945
|
||||||
|
3.400000 0.119361 0.126972
|
||||||
|
3.600000 0.121551 0.129572
|
||||||
|
3.800000 0.122457 0.131866
|
||||||
|
4.000000 0.123988 0.134376
|
||||||
|
4.200000 0.126454 0.136586
|
||||||
|
4.400000 0.127992 0.138646
|
||||||
|
4.600000 0.129511 0.141414
|
||||||
|
4.800000 0.131718 0.144400
|
||||||
|
5.000000 0.133976 0.147408
|
||||||
|
5.200000 0.135513 0.149806
|
||||||
|
5.400000 0.137142 0.152585
|
||||||
|
5.600000 0.140108 0.155569
|
||||||
|
5.800000 0.142978 0.158312
|
||||||
|
6.000000 0.145508 0.160951
|
||||||
|
6.200000 0.148907 0.163685
|
||||||
|
6.400000 0.151869 0.166592
|
||||||
|
6.600000 0.154380 0.170802
|
||||||
|
6.800000 0.157392 0.174862
|
||||||
|
7.000000 0.159646 0.178034
|
||||||
|
7.200000 0.161659 0.180889
|
||||||
|
7.400000 0.163192 0.184679
|
||||||
|
7.600000 0.165012 0.188733
|
||||||
|
7.800000 0.166310 0.192799
|
||||||
|
8.000000 0.167388 0.196648
|
||||||
|
8.200000 0.168361 0.201017
|
||||||
|
8.400000 0.169410 0.205993
|
||||||
|
8.600000 0.170686 0.211084
|
||||||
|
8.800000 0.171687 0.215472
|
||||||
|
9.000000 0.173009 0.220458
|
||||||
|
9.200000 0.174207 0.225169
|
||||||
|
9.400000 0.175031 0.229032
|
||||||
|
9.600000 0.176437 0.232202
|
||||||
|
9.800000 0.178460 0.235026
|
||||||
|
10.000000 0.180627 0.237295
|
||||||
|
10.200000 0.183367 0.240108
|
||||||
|
10.400000 0.186384 0.243486
|
||||||
|
10.600000 0.188322 0.246454
|
||||||
|
10.800000 0.190915 0.248796
|
||||||
|
11.000000 0.192824 0.250949
|
||||||
|
11.200000 0.194175 0.253685
|
||||||
|
11.400000 0.195554 0.256795
|
||||||
|
11.600000 0.199937 0.259664
|
||||||
|
11.800000 0.201944 0.262481
|
||||||
|
12.000000 0.203812 0.265244
|
||||||
|
12.200000 0.205396 0.268898
|
||||||
|
12.400000 0.206717 0.272740
|
||||||
|
12.600000 0.207413 0.275419
|
||||||
|
12.800000 0.208152 0.277734
|
||||||
|
13.000000 0.209075 0.280773
|
||||||
|
13.200000 0.209607 0.283977
|
||||||
|
13.400000 0.210143 0.287101
|
||||||
|
13.600000 0.211108 0.290366
|
||||||
|
13.800000 0.211847 0.293515
|
||||||
|
14.000000 0.212243 0.296769
|
||||||
|
14.200000 0.213087 0.299976
|
||||||
|
14.400000 0.213616 0.302717
|
||||||
|
14.600000 0.214302 0.305465
|
||||||
|
14.800000 0.215149 0.307978
|
||||||
|
15.000000 0.215892 0.310081
|
||||||
|
15.200000 0.217069 0.312668
|
||||||
|
15.400000 0.219095 0.315512
|
||||||
|
15.600000 0.220902 0.317561
|
||||||
|
15.800000 0.221939 0.320237
|
||||||
|
16.000000 0.223176 0.322628
|
||||||
|
16.200000 0.225046 0.324867
|
||||||
|
16.400000 0.226490 0.327345
|
||||||
|
16.600000 0.227185 0.330391
|
||||||
|
16.800000 0.228230 0.332416
|
||||||
|
17.000000 0.230113 0.334231
|
||||||
|
17.200000 0.230828 0.336941
|
||||||
|
17.400000 0.233200 0.340406
|
||||||
|
17.600000 0.234337 0.344316
|
||||||
|
17.800000 0.236028 0.347395
|
||||||
|
18.000000 0.239351 0.350385
|
||||||
|
18.200000 0.241067 0.353339
|
||||||
|
18.400000 0.242239 0.356479
|
||||||
|
18.600000 0.244004 0.359210
|
||||||
|
18.800000 0.245358 0.361768
|
||||||
|
19.000000 0.246510 0.363749
|
||||||
|
19.200000 0.247763 0.365858
|
||||||
|
19.400000 0.248786 0.367674
|
||||||
|
19.600000 0.250194 0.369398
|
||||||
|
19.800000 0.251096 0.371366
|
||||||
|
20.000000 0.251690 0.373385
|
||||||
|
20.200000 0.252760 0.375526
|
||||||
|
20.400000 0.253619 0.377828
|
||||||
|
20.600000 0.254491 0.380114
|
||||||
|
20.800000 0.255894 0.382473
|
||||||
|
21.000000 0.256917 0.384404
|
||||||
|
21.200000 0.258110 0.385675
|
||||||
|
21.400000 0.259289 0.387245
|
||||||
|
21.600000 0.260389 0.389327
|
||||||
|
21.800000 0.261689 0.391639
|
||||||
|
22.000000 0.263026 0.394407
|
||||||
|
22.200000 0.264725 0.396658
|
||||||
|
22.400000 0.267235 0.398696
|
||||||
|
22.600000 0.269488 0.400432
|
||||||
|
22.800000 0.271635 0.402434
|
||||||
|
23.000000 0.274004 0.404633
|
||||||
|
23.200000 0.276234 0.407167
|
||||||
|
23.400000 0.277387 0.409267
|
||||||
|
23.600000 0.278104 0.411109
|
||||||
|
23.800000 0.278957 0.413462
|
||||||
|
24.000000 0.280005 0.415360
|
||||||
|
24.200000 0.281500 0.417986
|
||||||
|
24.400000 0.282248 0.420244
|
||||||
|
24.600000 0.282840 0.422534
|
||||||
|
24.800000 0.284264 0.424607
|
||||||
|
25.000000 0.285127 0.426298
|
||||||
|
25.200000 0.286189 0.427968
|
||||||
|
25.400000 0.287795 0.429578
|
||||||
|
25.600000 0.288808 0.431127
|
||||||
|
25.800000 0.290111 0.433761
|
||||||
|
26.000000 0.291812 0.436558
|
||||||
|
26.200000 0.293006 0.439091
|
||||||
|
26.400000 0.294112 0.441927
|
||||||
|
26.600000 0.295166 0.444808
|
||||||
|
26.800000 0.297193 0.447370
|
||||||
|
27.000000 0.298580 0.450142
|
||||||
|
27.200000 0.300218 0.452402
|
||||||
|
27.400000 0.301624 0.455114
|
||||||
|
27.600000 0.303793 0.457539
|
||||||
|
27.800000 0.304811 0.459427
|
||||||
|
28.000000 0.305401 0.461453
|
||||||
|
28.200000 0.305993 0.463215
|
||||||
|
28.400000 0.306566 0.464894
|
||||||
|
28.600000 0.307121 0.466308
|
||||||
|
28.800000 0.307988 0.467434
|
||||||
|
29.000000 0.309297 0.468577
|
||||||
|
29.200000 0.310065 0.470151
|
||||||
|
29.400000 0.310849 0.471488
|
||||||
|
29.600000 0.311914 0.472803
|
||||||
|
29.800000 0.313185 0.474673
|
||||||
|
30.000000 0.314149 0.475856
|
||||||
|
30.200000 0.314920 0.477171
|
||||||
|
30.400000 0.315501 0.479592
|
||||||
|
30.600000 0.316245 0.481980
|
||||||
|
30.800000 0.317181 0.485422
|
||||||
|
31.000000 0.317727 0.487838
|
||||||
|
31.200000 0.318091 0.489523
|
||||||
|
31.400000 0.318770 0.491526
|
||||||
|
31.600000 0.319236 0.493325
|
||||||
|
31.800000 0.319707 0.495433
|
||||||
|
32.000000 0.320356 0.497587
|
||||||
|
32.200000 0.321022 0.499542
|
||||||
|
32.400000 0.321769 0.501288
|
||||||
|
32.600000 0.322224 0.502722
|
||||||
|
32.800000 0.323040 0.503949
|
||||||
|
33.000000 0.324225 0.505222
|
||||||
|
33.200000 0.325689 0.506290
|
||||||
|
33.400000 0.326490 0.507350
|
||||||
|
33.600000 0.327039 0.508887
|
||||||
|
33.800000 0.327471 0.510496
|
||||||
|
34.000000 0.328007 0.511455
|
||||||
|
34.200000 0.328648 0.512538
|
||||||
|
34.400000 0.329275 0.513873
|
||||||
|
34.600000 0.329868 0.515596
|
||||||
|
34.800000 0.330697 0.517648
|
||||||
|
35.000000 0.331593 0.519788
|
||||||
|
35.200000 0.332025 0.521564
|
||||||
|
35.400000 0.332886 0.523140
|
||||||
|
35.600000 0.333676 0.524824
|
||||||
|
35.800000 0.334364 0.526479
|
||||||
|
36.000000 0.335636 0.527580
|
||||||
|
36.200000 0.336511 0.528415
|
||||||
|
36.400000 0.337418 0.529290
|
||||||
|
36.600000 0.338301 0.530663
|
||||||
|
36.800000 0.339170 0.532125
|
||||||
|
37.000000 0.340562 0.533335
|
||||||
|
37.200000 0.341569 0.534586
|
||||||
|
37.400000 0.342588 0.535723
|
||||||
|
37.600000 0.343646 0.537357
|
||||||
|
37.800000 0.344250 0.539198
|
||||||
|
38.000000 0.345600 0.540550
|
||||||
|
38.200000 0.346874 0.541728
|
||||||
|
38.400000 0.347969 0.542815
|
||||||
|
38.600000 0.348918 0.544138
|
||||||
|
38.800000 0.350681 0.545336
|
||||||
|
39.000000 0.352598 0.546381
|
||||||
|
39.200000 0.354173 0.547146
|
||||||
|
39.400000 0.355891 0.548101
|
||||||
|
39.600000 0.357380 0.549355
|
||||||
|
39.800000 0.358859 0.550491
|
||||||
|
40.000000 0.360160 0.551519
|
||||||
|
40.200000 0.361323 0.552797
|
||||||
|
40.400000 0.363119 0.554266
|
||||||
|
40.600000 0.364269 0.555537
|
||||||
|
40.800000 0.365443 0.556571
|
||||||
|
41.000000 0.366789 0.557678
|
||||||
|
41.200000 0.368127 0.558670
|
||||||
|
41.400000 0.369385 0.559548
|
||||||
|
41.600000 0.370063 0.560449
|
||||||
|
41.800000 0.371340 0.561790
|
||||||
|
42.000000 0.372450 0.563915
|
||||||
|
42.200000 0.373622 0.566647
|
||||||
|
42.400000 0.374693 0.569275
|
||||||
|
42.600000 0.376288 0.571004
|
||||||
|
42.800000 0.377496 0.572581
|
||||||
|
43.000000 0.379432 0.574225
|
||||||
|
43.200000 0.381727 0.575702
|
||||||
|
43.400000 0.382813 0.576852
|
||||||
|
43.600000 0.384065 0.577723
|
||||||
|
43.800000 0.384869 0.578758
|
||||||
|
44.000000 0.385669 0.579743
|
||||||
|
44.200000 0.386363 0.580671
|
||||||
|
44.400000 0.387027 0.581695
|
||||||
|
44.600000 0.387808 0.582935
|
||||||
|
44.800000 0.388667 0.584143
|
||||||
|
45.000000 0.389902 0.585377
|
||||||
|
45.200000 0.391123 0.587146
|
||||||
|
45.400000 0.392796 0.589772
|
||||||
|
45.600000 0.394203 0.591433
|
||||||
|
45.800000 0.394920 0.592806
|
||||||
|
46.000000 0.395631 0.594099
|
||||||
|
46.200000 0.396501 0.595159
|
||||||
|
46.400000 0.397414 0.596667
|
||||||
|
46.600000 0.398494 0.598406
|
||||||
|
46.800000 0.399236 0.600088
|
||||||
|
47.000000 0.400161 0.601838
|
||||||
|
47.200000 0.401429 0.603664
|
||||||
|
47.400000 0.402608 0.605485
|
||||||
|
47.600000 0.403520 0.607148
|
||||||
|
47.800000 0.404343 0.608493
|
||||||
|
48.000000 0.405009 0.609595
|
||||||
|
48.200000 0.405578 0.611539
|
||||||
|
48.400000 0.406122 0.613060
|
||||||
|
48.600000 0.406758 0.614969
|
||||||
|
48.800000 0.407346 0.616701
|
||||||
|
49.000000 0.408071 0.618002
|
||||||
|
49.200000 0.408686 0.618920
|
||||||
|
49.400000 0.409120 0.619814
|
||||||
|
49.600000 0.410161 0.620999
|
||||||
|
49.800000 0.410735 0.622160
|
||||||
|
50.000000 0.412381 0.623502
|
||||||
|
50.200000 0.413658 0.625015
|
||||||
|
50.400000 0.415368 0.626299
|
||||||
|
50.600000 0.416405 0.627531
|
||||||
|
50.800000 0.417115 0.628789
|
||||||
|
51.000000 0.418355 0.630495
|
||||||
|
51.200000 0.419826 0.631440
|
||||||
|
51.400000 0.420414 0.632182
|
||||||
|
51.600000 0.420999 0.632895
|
||||||
|
51.800000 0.421503 0.633788
|
||||||
|
52.000000 0.422068 0.634506
|
||||||
|
52.200000 0.423113 0.635104
|
||||||
|
52.400000 0.424586 0.635770
|
||||||
|
52.600000 0.425544 0.636204
|
||||||
|
52.800000 0.426422 0.636636
|
||||||
|
53.000000 0.427180 0.637123
|
||||||
|
53.200000 0.428695 0.637688
|
||||||
|
53.400000 0.430087 0.639010
|
||||||
|
53.600000 0.431815 0.640361
|
||||||
|
53.800000 0.433445 0.641679
|
||||||
|
54.000000 0.435073 0.643095
|
||||||
|
54.200000 0.436661 0.644524
|
||||||
|
54.400000 0.437781 0.645809
|
||||||
|
54.600000 0.438688 0.647127
|
||||||
|
54.800000 0.439581 0.648371
|
||||||
|
55.000000 0.440405 0.649450
|
||||||
|
55.200000 0.442192 0.650736
|
||||||
|
55.400000 0.443996 0.652181
|
||||||
|
55.600000 0.445176 0.653517
|
||||||
|
55.800000 0.446202 0.655100
|
||||||
|
56.000000 0.447057 0.656265
|
||||||
|
56.200000 0.448194 0.657582
|
||||||
|
56.400000 0.449148 0.658616
|
||||||
|
56.600000 0.450208 0.659328
|
||||||
|
56.800000 0.451604 0.659835
|
||||||
|
57.000000 0.454157 0.660488
|
||||||
|
57.200000 0.455229 0.661104
|
||||||
|
57.400000 0.456171 0.661798
|
||||||
|
57.600000 0.456948 0.662449
|
||||||
|
57.800000 0.457787 0.663459
|
||||||
|
58.000000 0.458755 0.664760
|
||||||
|
58.200000 0.460129 0.665886
|
||||||
|
58.400000 0.461360 0.666987
|
||||||
|
58.600000 0.462152 0.668349
|
||||||
|
58.800000 0.463101 0.669528
|
||||||
|
59.000000 0.463959 0.670408
|
||||||
|
59.200000 0.464698 0.671044
|
||||||
|
59.400000 0.465239 0.672217
|
||||||
|
59.600000 0.466235 0.672912
|
||||||
|
59.800000 0.467269 0.673920
|
||||||
|
60.000000 0.468214 0.674896
|
|
@ -0,0 +1,42 @@
|
||||||
|
x y1 y2 y3 y4
|
||||||
|
0.200000 0.889581 0.889581 0.883875 0.883875
|
||||||
|
0.400000 0.822990 0.804362 0.816495 0.802203
|
||||||
|
0.600000 0.768693 0.721021 0.772181 0.737774
|
||||||
|
0.800000 0.720731 0.747439 0.762793 0.772253
|
||||||
|
1.000000 0.742206 0.832912 0.789958 0.834533
|
||||||
|
1.200000 0.741835 0.888810 0.797801 0.878941
|
||||||
|
1.400000 0.731434 0.923145 0.803429 0.908167
|
||||||
|
1.600000 0.735275 0.939933 0.819414 0.923704
|
||||||
|
1.800000 0.754039 0.949945 0.833776 0.931834
|
||||||
|
2.000000 0.785546 0.957122 0.843764 0.935207
|
||||||
|
2.200000 0.820066 0.959134 0.853350 0.934015
|
||||||
|
2.400000 0.840687 0.951022 0.853754 0.928547
|
||||||
|
2.600000 0.861316 0.944366 0.859652 0.923801
|
||||||
|
2.800000 0.882207 0.944223 0.870047 0.926294
|
||||||
|
3.000000 0.892006 0.941559 0.879164 0.924395
|
||||||
|
3.200000 0.900703 0.942249 0.891144 0.926068
|
||||||
|
3.400000 0.905867 0.941565 0.899868 0.927974
|
||||||
|
3.600000 0.906904 0.939598 0.906014 0.929866
|
||||||
|
3.800000 0.909777 0.939078 0.910110 0.931273
|
||||||
|
4.000000 0.907791 0.935486 0.914661 0.933482
|
||||||
|
4.200000 0.913644 0.939438 0.920929 0.938426
|
||||||
|
4.400000 0.915343 0.939563 0.923379 0.938178
|
||||||
|
4.600000 0.914039 0.945504 0.931422 0.942895
|
||||||
|
4.800000 0.920530 0.953427 0.937857 0.947798
|
||||||
|
5.000000 0.917773 0.952371 0.939319 0.949186
|
||||||
|
5.200000 0.919745 0.953392 0.939354 0.945735
|
||||||
|
5.400000 0.911881 0.953402 0.939284 0.945776
|
||||||
|
5.600000 0.908520 0.954670 0.939114 0.946492
|
||||||
|
5.800000 0.908134 0.955773 0.939707 0.948384
|
||||||
|
6.000000 0.910121 0.954719 0.939651 0.947648
|
||||||
|
6.200000 0.911236 0.949753 0.939142 0.944922
|
||||||
|
6.400000 0.912929 0.944804 0.939281 0.942679
|
||||||
|
6.600000 0.910526 0.938247 0.937674 0.937747
|
||||||
|
6.800000 0.904275 0.931704 0.943682 0.940304
|
||||||
|
7.000000 0.912392 0.939617 0.943977 0.941335
|
||||||
|
7.200000 0.915407 0.941206 0.945584 0.946185
|
||||||
|
7.400000 0.900928 0.925309 0.937256 0.936830
|
||||||
|
7.600000 0.916198 0.937781 0.947332 0.947727
|
||||||
|
7.800000 0.911115 0.931691 0.948137 0.948504
|
||||||
|
8.000000 0.913798 0.933111 0.948431 0.949578
|
||||||
|
8.200000 0.919887 0.936522 0.949719 0.949874
|
|
@ -0,0 +1,22 @@
|
||||||
|
x y1 y2 y3 y4
|
||||||
|
0.200000 0.950692 0.938604
|
||||||
|
0.400000 0.911496 0.915609
|
||||||
|
0.600000 0.873069 0.883516
|
||||||
|
0.800000 0.891625 0.880703
|
||||||
|
1.000000 0.955981 0.917125
|
||||||
|
1.200000 0.971645 0.935734
|
||||||
|
1.400000 0.978446 0.949339
|
||||||
|
1.600000 0.983482 0.956628
|
||||||
|
1.800000 0.986659 0.958936
|
||||||
|
2.000000 0.988570 0.959737
|
||||||
|
2.200000 0.988408 0.959168
|
||||||
|
2.400000 0.984885 0.963382
|
||||||
|
2.600000 0.984272 0.965259
|
||||||
|
2.800000 0.984852 0.972164
|
||||||
|
3.000000 0.983217 0.975857
|
||||||
|
3.200000 0.981318 0.979839
|
||||||
|
3.400000 0.980826 0.981861
|
||||||
|
3.600000 0.980634 0.982370
|
||||||
|
3.800000 0.980676 0.983634
|
||||||
|
4.000000 0.979625 0.984202
|
||||||
|
4.200000 0.981657 0.985465
|
|
@ -0,0 +1,42 @@
|
||||||
|
x y1 y2 y3 y4
|
||||||
|
0.200000 0.841697 0.850612 0.843036 0.840792
|
||||||
|
0.400000 0.764677 0.761115 0.762456 0.759129
|
||||||
|
0.600000 0.690720 0.686256 0.709340 0.700445
|
||||||
|
0.800000 0.655230 0.696092 0.694157 0.720723
|
||||||
|
1.000000 0.656620 0.746683 0.712589 0.777020
|
||||||
|
1.200000 0.652107 0.794245 0.717405 0.821236
|
||||||
|
1.400000 0.646750 0.841142 0.725727 0.861457
|
||||||
|
1.600000 0.651272 0.870864 0.736937 0.887062
|
||||||
|
1.800000 0.661459 0.892918 0.746380 0.904522
|
||||||
|
2.000000 0.679333 0.908470 0.755865 0.915694
|
||||||
|
2.200000 0.696017 0.915827 0.763613 0.920893
|
||||||
|
2.400000 0.705119 0.908318 0.764571 0.912646
|
||||||
|
2.600000 0.711162 0.900380 0.765982 0.904986
|
||||||
|
2.800000 0.722124 0.897375 0.769455 0.900842
|
||||||
|
3.000000 0.731558 0.892189 0.772406 0.896492
|
||||||
|
3.200000 0.744708 0.890398 0.776895 0.894936
|
||||||
|
3.400000 0.758078 0.888678 0.780811 0.892576
|
||||||
|
3.600000 0.769000 0.886149 0.782373 0.889367
|
||||||
|
3.800000 0.780642 0.884082 0.782336 0.885339
|
||||||
|
4.000000 0.794191 0.881932 0.787780 0.883530
|
||||||
|
4.200000 0.809721 0.887779 0.797321 0.887849
|
||||||
|
4.400000 0.823563 0.891592 0.808694 0.890361
|
||||||
|
4.600000 0.834614 0.895438 0.819831 0.895120
|
||||||
|
4.800000 0.839714 0.901879 0.829065 0.899486
|
||||||
|
5.000000 0.838900 0.901809 0.832960 0.899695
|
||||||
|
5.200000 0.837800 0.901474 0.833591 0.897413
|
||||||
|
5.400000 0.836819 0.901112 0.836936 0.897131
|
||||||
|
5.600000 0.836688 0.902678 0.841655 0.898419
|
||||||
|
5.800000 0.835827 0.906221 0.845287 0.900476
|
||||||
|
6.000000 0.836400 0.907692 0.850107 0.902835
|
||||||
|
6.200000 0.837139 0.905174 0.853277 0.902926
|
||||||
|
6.400000 0.838070 0.901179 0.853221 0.899731
|
||||||
|
6.600000 0.837262 0.897714 0.854615 0.896867
|
||||||
|
6.800000 0.836261 0.893868 0.856965 0.893729
|
||||||
|
7.000000 0.843714 0.896162 0.857931 0.898542
|
||||||
|
7.200000 0.847238 0.898740 0.860850 0.901023
|
||||||
|
7.400000 0.835570 0.883061 0.854456 0.893703
|
||||||
|
7.600000 0.846320 0.889552 0.857841 0.897609
|
||||||
|
7.800000 0.841058 0.881047 0.861676 0.897775
|
||||||
|
8.000000 0.845205 0.882172 0.862028 0.895988
|
||||||
|
8.200000 0.844636 0.878967 0.863343 0.894120
|
|
@ -0,0 +1,14 @@
|
||||||
|
const fs = require('fs');
|
||||||
|
const step = 50;
|
||||||
|
|
||||||
|
let input = fs.readFileSync('cdf-full.dat', 'utf-8')
|
||||||
|
.split('\n')
|
||||||
|
.map((x) => x.split(' '));
|
||||||
|
|
||||||
|
let output = [];
|
||||||
|
|
||||||
|
for (let i = 0; i < input.length; i += step) {
|
||||||
|
output.push(input[i]);
|
||||||
|
}
|
||||||
|
|
||||||
|
fs.writeFileSync('cdf.dat', output.map((x) => x.join(' ')).join('\n'));
|
|
@ -30,7 +30,7 @@ Indeed, geometry segments have close to a similar number of faces; their size is
|
||||||
For texture segments, the size is usually much smaller than the geometry segments but also varies a lot, as between two successive resolutions the number of pixels is divided by 4.
|
For texture segments, the size is usually much smaller than the geometry segments but also varies a lot, as between two successive resolutions the number of pixels is divided by 4.
|
||||||
|
|
||||||
Finally, for each texture segment $s^{T}$, the MPD stores the \textit{MSE} (mean square error) of the image and resolution, relative to the highest resolution (by default, triangles are filled with its average color).
|
Finally, for each texture segment $s^{T}$, the MPD stores the \textit{MSE} (mean square error) of the image and resolution, relative to the highest resolution (by default, triangles are filled with its average color).
|
||||||
Offline parameters are stored in the MPD as shown in Listing 1\todo{fix reference}.
|
Offline parameters are stored in the MPD as shown in Listing~\ref{listing:MPD}.
|
||||||
|
|
||||||
\subsubsection{Online parameters}
|
\subsubsection{Online parameters}
|
||||||
In addition to the offline parameters stored in the MPD file for each segment, view-dependent parameters are computed at navigation time.
|
In addition to the offline parameters stored in the MPD file for each segment, view-dependent parameters are computed at navigation time.
|
||||||
|
@ -84,7 +84,7 @@ Algorithm~\ref{algorithm:nextsegment} details how our DASH client makes decision
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
\begin{algorithm}
|
\begin{algorithm}[th]
|
||||||
\SetKwInOut{Input}{input}
|
\SetKwInOut{Input}{input}
|
||||||
\SetKwInOut{Output}{output}
|
\SetKwInOut{Output}{output}
|
||||||
\Input{Current index $i$, time $t_i$, viewpoint $v(t_i)$, buffer of already downloaded \texttt{segments} $\mathcal{B}_i$, MPD}
|
\Input{Current index $i$, time $t_i$, viewpoint $v(t_i)$, buffer of already downloaded \texttt{segments} $\mathcal{B}_i$, MPD}
|
||||||
|
|
|
@ -30,7 +30,7 @@ We consider a face to be large if its area in 3D is more than $a+3\sigma$, where
|
||||||
In our example, it selects the 5 largest faces that represent $15\%$ of the total face area.
|
In our example, it selects the 5 largest faces that represent $15\%$ of the total face area.
|
||||||
We thus obtain a decomposition of the NVE into adaptation sets that partitions the geometry of the scene into a small adaptation set containing the larger faces of the model, and smaller adaptation sets containing the remaining faces.
|
We thus obtain a decomposition of the NVE into adaptation sets that partitions the geometry of the scene into a small adaptation set containing the larger faces of the model, and smaller adaptation sets containing the remaining faces.
|
||||||
|
|
||||||
We store the spatial location of each adaptation set, characterized by the coordinates of its bounding box, in the MPD file as the supplementary property of the adaptation set in the form of ``\textit{$x_{\min}$, width, $y_{\min}$, height, $z_{\min}$, depth}'' (as shown in Listing 1).
|
We store the spatial location of each adaptation set, characterized by the coordinates of its bounding box, in the MPD file as the supplementary property of the adaptation set in the form of ``\textit{$x_{\min}$, width, $y_{\min}$, height, $z_{\min}$, depth}'' (as shown in Listing~\ref{listing:MPD}).
|
||||||
This information is used by the client to implement a view-dependent streaming (Section~\ref{sec:dashclientspec}).
|
This information is used by the client to implement a view-dependent streaming (Section~\ref{sec:dashclientspec}).
|
||||||
|
|
||||||
\subsubsection{Texture Management}
|
\subsubsection{Texture Management}
|
||||||
|
@ -57,15 +57,13 @@ For an adaptation set containing texture, each representation contains a single
|
||||||
In our example, from the full-size image, we generate successive resolutions by dividing both height and width by 2, stopping when the image size is less or equal to $64\times 64$.
|
In our example, from the full-size image, we generate successive resolutions by dividing both height and width by 2, stopping when the image size is less or equal to $64\times 64$.
|
||||||
Figure~\ref{fig:textures} illustrates the use of the textures against the rendering using a single, average color per face.
|
Figure~\ref{fig:textures} illustrates the use of the textures against the rendering using a single, average color per face.
|
||||||
|
|
||||||
\begin{figure}
|
\begin{figure}[th]
|
||||||
\centering
|
\centering
|
||||||
\begin{subfigure}[b]{\textwidth}
|
\begin{subfigure}[b]{0.45\textwidth}
|
||||||
\includegraphics[width=1\textwidth]{assets/dash-3d/average-color/full-res.png}
|
\includegraphics[width=1\textwidth]{assets/dash-3d/average-color/full-res.png}
|
||||||
\caption{With full resolution textures}
|
\caption{With full resolution textures}
|
||||||
\vspace{0.3cm}
|
|
||||||
\end{subfigure}
|
\end{subfigure}
|
||||||
|
\begin{subfigure}[b]{0.45\textwidth}
|
||||||
\begin{subfigure}[b]{\textwidth}
|
|
||||||
\includegraphics[width=1\textwidth]{assets/dash-3d/average-color/no-res.png}
|
\includegraphics[width=1\textwidth]{assets/dash-3d/average-color/no-res.png}
|
||||||
\caption{With average colors}
|
\caption{With average colors}
|
||||||
\end{subfigure}
|
\end{subfigure}
|
||||||
|
@ -80,11 +78,11 @@ Thus, the first segment contains the biggest faces and the last one the smallest
|
||||||
In addition to the selected faces, a segment stores all face vertices and attributes so that each segment is independent.
|
In addition to the selected faces, a segment stores all face vertices and attributes so that each segment is independent.
|
||||||
For textures, each representation contains a single segment.
|
For textures, each representation contains a single segment.
|
||||||
|
|
||||||
\begin{figure}
|
\begin{figure}[th]
|
||||||
\lstinputlisting[%
|
\lstinputlisting[%
|
||||||
language=XML,
|
language=XML,
|
||||||
caption={MPD description of a geometry adaptation set, and a texture adaptation set.},
|
caption={MPD description of a geometry adaptation set, and a texture adaptation set.},
|
||||||
label=geometry-as-example,
|
label=listing:MPD,
|
||||||
emph={%
|
emph={%
|
||||||
MPD,
|
MPD,
|
||||||
Period,
|
Period,
|
||||||
|
@ -99,6 +97,6 @@ For textures, each representation contains a single segment.
|
||||||
SegmentURL,
|
SegmentURL,
|
||||||
Viewpoint
|
Viewpoint
|
||||||
}
|
}
|
||||||
]{assets/dash-3d/geometry-as.xml}\label{listing:MPD}
|
]{assets/dash-3d/geometry-as.xml}
|
||||||
\end{figure}
|
\end{figure}
|
||||||
|
|
||||||
|
|
|
@ -11,9 +11,10 @@ The converted model has 387,551 vertices and 552,118 faces.
|
||||||
Table~\ref{table:size} gives some general information about the model.
|
Table~\ref{table:size} gives some general information about the model.
|
||||||
We partition the geometry into a k-$d$ tree until the leafs have less than 10000 faces, which gives us 64 adaptation sets, plus one containing the large faces.
|
We partition the geometry into a k-$d$ tree until the leafs have less than 10000 faces, which gives us 64 adaptation sets, plus one containing the large faces.
|
||||||
|
|
||||||
\begin{table}
|
\begin{table}[th]
|
||||||
\centering
|
\centering
|
||||||
\begin{tabular}{ll}
|
\begin{tabular}{ll}
|
||||||
|
\toprule
|
||||||
\textbf{Files} & \textbf{Size} \\ \midrule
|
\textbf{Files} & \textbf{Size} \\ \midrule
|
||||||
3DS Max & 55 MB \\
|
3DS Max & 55 MB \\
|
||||||
OBJ file & 62 MB\\
|
OBJ file & 62 MB\\
|
||||||
|
@ -67,7 +68,7 @@ The second streaming policy that we run is the one we proposed in equation (\ref
|
||||||
We have also analyzed the effect of grouping the faces in geometry segments of an adaptation set based on their 3D area.
|
We have also analyzed the effect of grouping the faces in geometry segments of an adaptation set based on their 3D area.
|
||||||
Finally, we try several bandwidth parameters to study how our system can adapt to varying network conditions.
|
Finally, we try several bandwidth parameters to study how our system can adapt to varying network conditions.
|
||||||
|
|
||||||
\begin{table}
|
\begin{table}[th]
|
||||||
\centering
|
\centering
|
||||||
\begin{tabular}{@{}ll@{}}
|
\begin{tabular}{@{}ll@{}}
|
||||||
\toprule
|
\toprule
|
||||||
|
@ -82,7 +83,7 @@ Finally, we try several bandwidth parameters to study how our system can adapt t
|
||||||
\end{table}
|
\end{table}
|
||||||
|
|
||||||
\subsection{Experimental Results}
|
\subsection{Experimental Results}
|
||||||
\begin{figure}
|
\begin{figure}[th]
|
||||||
\centering
|
\centering
|
||||||
\begin{tikzpicture}
|
\begin{tikzpicture}
|
||||||
\begin{axis}[
|
\begin{axis}[
|
||||||
|
@ -113,7 +114,7 @@ The octree partitions content into non-homogeneous adaptation sets; as a result,
|
||||||
Figure~\ref{fig:preparation} shows that the system seems to be slightly less efficient with an Octree than with a $k$-d tree based partition, but this result is not significant.
|
Figure~\ref{fig:preparation} shows that the system seems to be slightly less efficient with an Octree than with a $k$-d tree based partition, but this result is not significant.
|
||||||
For the remaining experiments, partitioning is based on a $k$-d tree.
|
For the remaining experiments, partitioning is based on a $k$-d tree.
|
||||||
|
|
||||||
\begin{figure}
|
\begin{figure}[th]
|
||||||
\centering
|
\centering
|
||||||
\begin{tikzpicture}
|
\begin{tikzpicture}
|
||||||
\begin{axis}[
|
\begin{axis}[
|
||||||
|
@ -137,7 +138,7 @@ For the remaining experiments, partitioning is based on a $k$-d tree.
|
||||||
\addlegendentry{\scriptsize Offline only}
|
\addlegendentry{\scriptsize Offline only}
|
||||||
\end{axis}
|
\end{axis}
|
||||||
\end{tikzpicture}
|
\end{tikzpicture}
|
||||||
\caption{Impact of the segment utility metric on the rendering qualit with a 5Mbps bandwidth.\label{fig:utility}}
|
\caption{Impact of the segment utility metric on the rendering quality with a 5Mbps bandwidth.\label{fig:utility}}
|
||||||
\end{figure}
|
\end{figure}
|
||||||
|
|
||||||
Figure~\ref{fig:utility} displays how a utility metric should take advantage of both offline and online features.
|
Figure~\ref{fig:utility} displays how a utility metric should take advantage of both offline and online features.
|
||||||
|
@ -145,7 +146,7 @@ The experiments consider $k$-d tree cell for adaptation sets and the proposed st
|
||||||
We observe that a purely offline utility metric leads to poor PSNR results.
|
We observe that a purely offline utility metric leads to poor PSNR results.
|
||||||
An online-only utility improves the results, as it takes the user viewing frustum into consideration, but still, the proposed utility (in Section~\ref{subsec:utility}) performs better.
|
An online-only utility improves the results, as it takes the user viewing frustum into consideration, but still, the proposed utility (in Section~\ref{subsec:utility}) performs better.
|
||||||
|
|
||||||
\begin{figure}
|
\begin{figure}[th]
|
||||||
\centering
|
\centering
|
||||||
\begin{tikzpicture}
|
\begin{tikzpicture}
|
||||||
\begin{axis}[
|
\begin{axis}[
|
||||||
|
@ -185,7 +186,7 @@ In contrast, our proposed streaming policy adapts to an increasing bandwidth by
|
||||||
In fact, an interesting feature of our proposed streaming policy is that it adapts the geometry-texture compromise to the bandwidth. The textures represent 57.3\% of the total amount of downloaded bytes at 2.5 Mbps, and 70.2\% at 10 Mbps.
|
In fact, an interesting feature of our proposed streaming policy is that it adapts the geometry-texture compromise to the bandwidth. The textures represent 57.3\% of the total amount of downloaded bytes at 2.5 Mbps, and 70.2\% at 10 Mbps.
|
||||||
In other words, our system tends to favor geometry segments when the bandwidth is low, and favor texture segments when the bandwidth increases.
|
In other words, our system tends to favor geometry segments when the bandwidth is low, and favor texture segments when the bandwidth increases.
|
||||||
|
|
||||||
\begin{figure}
|
\begin{figure}[th]
|
||||||
\centering
|
\centering
|
||||||
\begin{tikzpicture}
|
\begin{tikzpicture}
|
||||||
\begin{axis}[
|
\begin{axis}[
|
||||||
|
@ -210,7 +211,7 @@ In other words, our system tends to favor geometry segments when the bandwidth i
|
||||||
\caption{Impact of the streaming policy (greedy vs.\ proposed) with a 5 Mbps bandwidth.}\label{fig:greedyweakness}
|
\caption{Impact of the streaming policy (greedy vs.\ proposed) with a 5 Mbps bandwidth.}\label{fig:greedyweakness}
|
||||||
\end{figure}
|
\end{figure}
|
||||||
|
|
||||||
\begin{table}
|
\begin{table}[th]
|
||||||
\centering
|
\centering
|
||||||
\begin{tabular}{@{}p{2.5cm}p{0.7cm}p{0.7cm}p{0.7cm}p{0.3cm}p{0.7cm}p{0.7cm}p{0.7cm}@{}}
|
\begin{tabular}{@{}p{2.5cm}p{0.7cm}p{0.7cm}p{0.7cm}p{0.3cm}p{0.7cm}p{0.7cm}p{0.7cm}@{}}
|
||||||
\toprule
|
\toprule
|
||||||
|
@ -225,12 +226,13 @@ In other words, our system tends to favor geometry segments when the bandwidth i
|
||||||
\caption{Average PSNR, Greedy vs. Proposed\label{table:greedyVsproposed}}
|
\caption{Average PSNR, Greedy vs. Proposed\label{table:greedyVsproposed}}
|
||||||
\end{table}
|
\end{table}
|
||||||
|
|
||||||
\begin{table}
|
\begin{table}[th]
|
||||||
\centering
|
\centering
|
||||||
\renewcommand{\arraystretch}{1.2}
|
\renewcommand{\arraystretch}{1.2}
|
||||||
\begin{tabular}{@{}cccc@{}}
|
\begin{tabular}{@{}cccc@{}}
|
||||||
\textbf{Resolutions} & \textbf{2.5 Mbps} & \textbf{5 Mbps} & \textbf{10 Mbps} \\
|
|
||||||
\toprule
|
\toprule
|
||||||
|
\textbf{Resolutions} & \textbf{2.5 Mbps} & \textbf{5 Mbps} & \textbf{10 Mbps} \\
|
||||||
|
\midrule
|
||||||
1 & 5.7\% vs 1.4\% & 6.3\% vs 1.4\% & 6.17\% vs 1.4\% \\
|
1 & 5.7\% vs 1.4\% & 6.3\% vs 1.4\% & 6.17\% vs 1.4\% \\
|
||||||
2 & 10.9\% vs 8.6\% & 13.3\% vs 7.8\% & 14.0\% vs 8.3\%\\
|
2 & 10.9\% vs 8.6\% & 13.3\% vs 7.8\% & 14.0\% vs 8.3\%\\
|
||||||
3 & 15.3\% vs 28.6\% & 20.1\% vs 24.3\% & 20.9\% vs 22.5\% \\
|
3 & 15.3\% vs 28.6\% & 20.1\% vs 24.3\% & 20.9\% vs 22.5\% \\
|
||||||
|
|
|
@ -0,0 +1,55 @@
|
||||||
|
% This file is temporary. It's meant to be here while we are working on the
|
||||||
|
% plan, to make changing it easier. Once it has more or less converged, this
|
||||||
|
% file will be deleted, leaving place of a tree structure to make editing to
|
||||||
|
% content easier.
|
||||||
|
|
||||||
|
\part{3D Content Preparation}
|
||||||
|
|
||||||
|
\chapter{The challenges of managing 3D content}
|
||||||
|
|
||||||
|
\section{State of the art}
|
||||||
|
|
||||||
|
\begin{itemize}
|
||||||
|
\item Google Maps
|
||||||
|
\item Sketchfab
|
||||||
|
\end{itemize}
|
||||||
|
|
||||||
|
\section{System needs}
|
||||||
|
|
||||||
|
\subsection{Streaming}
|
||||||
|
|
||||||
|
Correctly managing the bandwidth to download the right content
|
||||||
|
|
||||||
|
\written{MMSys 16, ACMMM 18}
|
||||||
|
|
||||||
|
\subsection{Rendering}
|
||||||
|
|
||||||
|
Correctly managing the data on the client to perform an efficient rendering
|
||||||
|
|
||||||
|
\missing{everything}
|
||||||
|
|
||||||
|
\subsection{Server}
|
||||||
|
|
||||||
|
Avoiding as much as possible server-side computations
|
||||||
|
|
||||||
|
\written{MMSys 16, ACMMM 18}
|
||||||
|
|
||||||
|
\input{dash-3d/main.tex}
|
||||||
|
|
||||||
|
\part{3D Interaction}
|
||||||
|
|
||||||
|
\chapter{The challenges of 3D interaction}
|
||||||
|
|
||||||
|
\section{Degrees of freedom}
|
||||||
|
|
||||||
|
\section{Desktop / Mobile}
|
||||||
|
|
||||||
|
\written{MMSys 16, ACMMM 18, ACMMM 19 Demo}
|
||||||
|
|
||||||
|
\section{SoA}
|
||||||
|
|
||||||
|
\section{QoE / Interaction}
|
||||||
|
|
||||||
|
\written{MMSys 16}
|
||||||
|
|
||||||
|
\input{system-bookmarks/main}
|
56
src/plan.tex
56
src/plan.tex
|
@ -1,55 +1,3 @@
|
||||||
% This file is temporary. It's meant to be here while we are working on the
|
\input{preliminary-work/main}
|
||||||
% plan, to make changing it easier. Once it has more or less converged, this
|
\input{dash-3d/main}
|
||||||
% file will be deleted, leaving place of a tree structure to make editing to
|
|
||||||
% content easier.
|
|
||||||
|
|
||||||
\part{3D Content Preparation}
|
|
||||||
|
|
||||||
\chapter{The challenges of managing 3D content}
|
|
||||||
|
|
||||||
\section{State of the art}
|
|
||||||
|
|
||||||
\begin{itemize}
|
|
||||||
\item Google Maps
|
|
||||||
\item Sketchfab
|
|
||||||
\end{itemize}
|
|
||||||
|
|
||||||
\section{System needs}
|
|
||||||
|
|
||||||
\subsection{Streaming}
|
|
||||||
|
|
||||||
Correctly managing the bandwidth to download the right content
|
|
||||||
|
|
||||||
\written{MMSys 16, ACMMM 18}
|
|
||||||
|
|
||||||
\subsection{Rendering}
|
|
||||||
|
|
||||||
Correctly managing the data on the client to perform an efficient rendering
|
|
||||||
|
|
||||||
\missing{everything}
|
|
||||||
|
|
||||||
\subsection{Server}
|
|
||||||
|
|
||||||
Avoiding as much as possible server-side computations
|
|
||||||
|
|
||||||
\written{MMSys 16, ACMMM 18}
|
|
||||||
|
|
||||||
\input{dash-3d/main.tex}
|
|
||||||
|
|
||||||
\part{3D Interaction}
|
|
||||||
|
|
||||||
\chapter{The challenges of 3D interaction}
|
|
||||||
|
|
||||||
\section{Degrees of freedom}
|
|
||||||
|
|
||||||
\section{Desktop / Mobile}
|
|
||||||
|
|
||||||
\written{MMSys 16, ACMMM 18, ACMMM 19 Demo}
|
|
||||||
|
|
||||||
\section{SoA}
|
|
||||||
|
|
||||||
\section{QoE / Interaction}
|
|
||||||
|
|
||||||
\written{MMSys 16}
|
|
||||||
|
|
||||||
\input{system-bookmarks/main}
|
\input{system-bookmarks/main}
|
||||||
|
|
|
@ -0,0 +1,231 @@
|
||||||
|
\section{Impact of 3D Bookmarks on Navigation}\label{sec:3dnavigation}
|
||||||
|
|
||||||
|
We now describe an experiment that we conducted on 51 participants, with two goals in mind.
|
||||||
|
First, we want to measure the impact of 3D bookmarks on navigation within an NVE\@.
|
||||||
|
Second, we want to collect traces from the users so that we can replay them for reproducible experiments for comparing streaming strategies in Section 4.
|
||||||
|
|
||||||
|
\subsection{Our NVE}
|
||||||
|
To ease the deployment of our experiments to users in distributed locations on a crowdsourcing platform, we implement a simple Web-based NVE client using THREE.js\footnote{http://threejs.org}.
|
||||||
|
The NVE server is implemented with node.js\footnote{http://nodejs.org}.
|
||||||
|
The NVE server streams a 3D scene to the client; the client renders the scene as the 3D content are received.
|
||||||
|
|
||||||
|
The user can navigate within the NVE in the following way; he/she can translate the camera using the arrow keys along four directions: forward, backward, to the left, and to the right.
|
||||||
|
Alternatively, the keys W, A, S and D can also be used for the same actions.
|
||||||
|
This choice was inspired by 3D video games, which often use these keys in conjunction with the
|
||||||
|
mouse to move an avatar.
|
||||||
|
The virtual camera can rotate in four different directions using the keys I, K, J and L.
|
||||||
|
The user can also rotate the camera by dragging the mouse in the desired direction.
|
||||||
|
Finally, following the UI of popular 3D games, we also give users the possibility to lock their pointer and use their mouse as a virtual camera.
|
||||||
|
The mouse movement controls the camera rotation.
|
||||||
|
The user can always choose to lock the pointer, or unlock it using the escape key.
|
||||||
|
The interface also includes a button to reset the camera back to the starting position in the scene.
|
||||||
|
|
||||||
|
\begin{figure}[th]
|
||||||
|
\centering
|
||||||
|
\begin{subfigure}[b]{0.45\textwidth}
|
||||||
|
\includegraphics[width=\textwidth]{assets/preliminary-work/bookmarks/camera-bookmark.png}
|
||||||
|
\caption{Viewport display of a bookmark}
|
||||||
|
\end{subfigure}
|
||||||
|
\begin{subfigure}[b]{0.45\textwidth}
|
||||||
|
\includegraphics[width=\textwidth]{assets/preliminary-work/bookmarks/arrow-bookmark.png}
|
||||||
|
\caption{Arrow display of a bookmark}
|
||||||
|
\end{subfigure}
|
||||||
|
|
||||||
|
\begin{subfigure}[b]{0.45\textwidth}
|
||||||
|
\includegraphics[width=\textwidth]{assets/preliminary-work/bookmarks/arrow-bookmark-with-preview.png}
|
||||||
|
\caption{A preview is shown when the mouse hovers over a bookmark}
|
||||||
|
\end{subfigure}
|
||||||
|
\begin{subfigure}[b]{0.45\textwidth}
|
||||||
|
\includegraphics[width=\textwidth]{assets/preliminary-work/bookmarks/arrow-bookmark.png}
|
||||||
|
\caption{A coin is hidden behind the curtain\newline}
|
||||||
|
\end{subfigure}
|
||||||
|
\caption{3D bookmarks propose to move to a new viewpoint; when the user clicks on the bookmark, his viewpoint moves to the indicated viewpoint.}\label{fig:bookmark}
|
||||||
|
\end{figure}
|
||||||
|
|
||||||
|
|
||||||
|
\subsection{3D Bookmarks}
|
||||||
|
Our NVE supports 3D bookmarks.
|
||||||
|
A 3D bookmark, or bookmark for short, is simply a fixed camera location (in 3D space), a view direction, and a focal.
|
||||||
|
Bookmarks visible from the user's current viewpoint are shown as 3D objects in the scene.
|
||||||
|
Figure~\ref{fig:bookmark} depicts some bookmarks from our NVE\@.
|
||||||
|
|
||||||
|
The user can click on a bookmark object to automatically move and align its viewpoint to that of the bookmark.
|
||||||
|
The movement follows a Hermite curve joining the current viewpoint to the viewpoint of the bookmark.
|
||||||
|
The tangent of the curve is the view direction.
|
||||||
|
The user can hover the mouse pointer over a bookmark object to see a thumbnail view of the 3D scene as seen from the bookmark.
|
||||||
|
(Figure~\ref{fig:bookmark}, bottom left).
|
||||||
|
|
||||||
|
In our work, we consider two different possibilities for displaying bookmarks: viewports (Figure~\ref{fig:bookmark} top left) and arrows (Figure~\ref{fig:bookmark} top right).
|
||||||
|
A viewport is displayed as a pyramid where the top corresponds to the optical center of its viewpoint and the base corresponds to its image plane.
|
||||||
|
The arrows are view dependent.
|
||||||
|
The bottom of the arrow turns towards the current position, to better visualize the relative position of the bookmark.
|
||||||
|
|
||||||
|
Bookmarks allow the user to achieve a large movement within the 3D environment using a single action (a mouse click).
|
||||||
|
Since bookmarks are part of the scene, they are visible only when not hidden by other objects from the scene.
|
||||||
|
We chose size and colors that are salient enough to be easily seen, but not too large to limit the occlusion of regions within the scene.
|
||||||
|
When reaching the bookmark, the corresponding arrow or viewport is not visible anymore, and subsequently will appear in a different color, to indicate that it has been clicked (similar to Web links).
|
||||||
|
|
||||||
|
\subsection{User Study}\label{sec:userstudy}
|
||||||
|
|
||||||
|
We now describe in details our experimental setup and the user study that we conducted on 3D navigation.
|
||||||
|
|
||||||
|
\subsubsection{Models}
|
||||||
|
We use four 3D scenes (one for the tutorial and three for the actual experiments) that represent recreated scenes from a famous video game.
|
||||||
|
Those models are light (a few thousand of triangles per model) and are sent before the experiment starts.
|
||||||
|
We keep the models small so that users can perform the task with acceptable latency from any country using a decent Internet connection.
|
||||||
|
Our NVE does not actually stream the 3D content for these experiments, in order to avoid unreliable conditions caused by the network bandwidth variation, which might affect how the users interact.
|
||||||
|
|
||||||
|
\subsubsection{Task design}
|
||||||
|
Since we are interested in studying how efficiently users navigate in the 3D scene, we ask our participants to complete a task that forces them to visit, at least partially, various regions in the scene.
|
||||||
|
To this end, we hide a set of 8 coins on the scene: participants are asked to collect the coins by clicking on them.
|
||||||
|
In order to avoid any bias due to the coins position, we predefined 50 possible coin locations all around the scene, and randomly select 8 out of these 50 positions each time a new participant starts the experiment.
|
||||||
|
|
||||||
|
\subsubsection{Experiment}
|
||||||
|
Participants are first presented with an initial screen to collect some preliminary information: age, gender, the last time they played 3D video games, and self-rated 3D gaming skills. We ask those questions because we believe that someone who is used to play 3D video games should browse the scene more easily, and thus, may not need to use our bookmarks.
|
||||||
|
|
||||||
|
Then, the participants go through a tutorial to learn how the UI works, and how to complete the task.
|
||||||
|
The different interactions (keyboard navigation, mouse navigation, bookmarks interaction) are progressively introduced to participants, and the tutorial finishes once the participant completes an easy version of the task.
|
||||||
|
The tutorial is always performed on the same scene.
|
||||||
|
|
||||||
|
Then, each participant has to complete the task three times.
|
||||||
|
Each task is performed on a different scene, with a different interface.
|
||||||
|
Three interfaces are used.
|
||||||
|
A \NoReco{} interface lets the participant navigates without any bookmarks.
|
||||||
|
The other two interfaces allow a participant to move using bookmarks displayed as viewports (denoted as \Viewports) and arrows (denoted as \Arrows) respectively.
|
||||||
|
|
||||||
|
The coins are chosen randomly, based on the coin configurations that were used by previous participants: if another participant has done an experiment with a certain set of coins, on a certain scene, with a certain type of bookmarks, the current participant will do the experiment with the same set of coins, on the same scene, but with a different type of bookmarks.
|
||||||
|
This policy allows us to limit the bias that could be caused by coin locations.
|
||||||
|
|
||||||
|
Once a participant has found all coins, a button is shown on the interface to let the participant move to the next step.
|
||||||
|
Alternatively, this button may appear one minute after the sixth coin was found.
|
||||||
|
This means that a user is authorized to move on without completing the task, in order to avoid potential frustration caused by not finding the remaining two coins.
|
||||||
|
|
||||||
|
After completing the three tasks, the participants have to answer a set of questions about their experience with the bookmarks (we refer to the bookmarks as \textit{recommendations} in the experiments).
|
||||||
|
Table~\ref{t:questions} shows the list of questions.
|
||||||
|
|
||||||
|
\begin{table}[th]
|
||||||
|
\centering
|
||||||
|
\begin{tabular}{lll}
|
||||||
|
\toprule
|
||||||
|
& Questions & Answers \\
|
||||||
|
\midrule
|
||||||
|
1 & What was the difficulty level WITHOUT recommendation? & 3.04 / 5 $\pm0.31$ (99\% confidence interval) \\
|
||||||
|
2 & What was the difficulty level WITH recommendation? & 2.15 / 5 $\pm0.30$ (99\% confidence interval) \\
|
||||||
|
3 & Did the recommendations help you to find the coins? & 42 Yes, 5 No\\
|
||||||
|
4 & Did the recommendations help you to browse the scene? & 49 Yes, 2 No\\
|
||||||
|
5 & Do you think recommendations can be helpful? & 49 Yes, 2 No\\
|
||||||
|
6 & Which recommendation style do you prefer and why? & 32 \Arrows, 7 \Viewports\\
|
||||||
|
7 & Did you enjoy this? & 36 Yes, 3 No\\
|
||||||
|
\bottomrule
|
||||||
|
\end{tabular}
|
||||||
|
\caption{List of questions in the questionnaire and summary of answers.}\label{t:questions}
|
||||||
|
\end{table}
|
||||||
|
|
||||||
|
\textbf{Participants}.
|
||||||
|
The participants were recruited on microworkers.com, a crowdsourcing website.
|
||||||
|
There were 51 participants (36 men and 15 women), who are in average 30.44 years old.
|
||||||
|
|
||||||
|
\subsection{Experimental Results}\label{sec:qoeresults}
|
||||||
|
|
||||||
|
We now present the results from our user study, focusing on whether bookmarks help users navigating the 3D scene.
|
||||||
|
|
||||||
|
\subsubsection{Questionnaire}
|
||||||
|
We had 51 responses to the Questionnaire.
|
||||||
|
The answers are summarized in Table~\ref{t:questions}.
|
||||||
|
Note that not all questions were answered by all participants.
|
||||||
|
|
||||||
|
The participants seem to find the task to be of average difficulty (3.04/5) when they have no bookmarks to help their navigation.
|
||||||
|
They judge the task to be easier in average (2.15/5) with bookmarks, which indicates that bookmarks ease the completion of the task.
|
||||||
|
|
||||||
|
Almost all users (49 out of 51) think the bookmarks are useful for browsing the scene, and most users (42 out of 51) think bookmarks are also useful to complete the given task.
|
||||||
|
This is slightly in contradiction with our setup; even if coins may appear in some bookmarked viewpoints (which is normal since the viewpoints have been chosen to get the most complete coverage of the scene), most of the time no coin is visible in a given bookmark, and there are always coins that are invisible from all bookmarks.
|
||||||
|
|
||||||
|
The strongest result is that almost all users (49 out of 51) find bookmarks to be helpful.
|
||||||
|
In addition, users seem to have a preference for \Arrows{} against \Viewports{} (32 against 7).
|
||||||
|
|
||||||
|
\subsubsection{Analysis of Interactions}
|
||||||
|
|
||||||
|
\begin{table}[th]
|
||||||
|
\centering
|
||||||
|
\begin{tabular}{ccccc}
|
||||||
|
\toprule
|
||||||
|
\textbf{BM type} & \textbf{\#Exp} & \textbf{Mean \# coins} & \textbf{\# completed} & \textbf{Mean time} \\
|
||||||
|
\midrule
|
||||||
|
\NoReco{} & 51 & 7.08 & 18 & 4 min 16 s \\
|
||||||
|
\Arrows{} & 51 & 7.39 & 27 & 2 min 33 s \\
|
||||||
|
\Viewports{} & 51 & 7.51 & 30 & 2 min 16 s \\
|
||||||
|
\bottomrule
|
||||||
|
\end{tabular}
|
||||||
|
\caption{Analysis of the sessions length and users success by type of bookmarks}\label{tab:sessions}
|
||||||
|
\end{table}
|
||||||
|
|
||||||
|
Table~\ref{tab:sessions} shows basic statistics on task completion given the type of bookmarks that were provided to the participants.
|
||||||
|
|
||||||
|
First, we can see that without bookmarks, only a little bit more than a third of the users are able to complete the task, i.e.\ find all 8 coins.
|
||||||
|
In average, these users find just above 7 coins, and spend 4 minutes and 16 seconds to do it.
|
||||||
|
|
||||||
|
Interestingly, and regardless of the bookmark type, users who have bookmarks complete the task more than half of the time, and spend in average significantly less time to complete the task: 2 minutes and 16 seconds using \Viewports{} and 2 minutes and 33 seconds using \Arrows.
|
||||||
|
Although \Viewports{} seem to help users a little bit more in completing the task than \Arrows{}, the performance difference between both types of bookmarks is not significant enough to conclude on which type of bookmarks is best.
|
||||||
|
|
||||||
|
The difference between an interface with bookmarks and without bookmarks, however, is very clear.
|
||||||
|
Users tend to complete the task more efficiently using bookmarks: more users actually finish the task, and it takes them half the time to do so.
|
||||||
|
We computed 99\% confidence intervals on the results introduced in Table~\ref{tab:sessions}.
|
||||||
|
We found that the difference in mean number of coins collected with and without bookmarks is not high enough to be statistically significant: we would need more experiments to reach the significance.
|
||||||
|
The mean time spent on the task however is statistically significant.
|
||||||
|
|
||||||
|
\begin{table}[th]
|
||||||
|
\centering
|
||||||
|
\begin{tabular}{cccc}
|
||||||
|
\toprule
|
||||||
|
\textbf{BM type} & \textbf{Total distance} & \textbf{Distance to a bookmark} & \textbf{Ratio} \\
|
||||||
|
\midrule
|
||||||
|
\NoReco{} & 610.80 & 0 & 0\% \\
|
||||||
|
\Arrows{} & 586.30 & 369.77 & 63\% \\
|
||||||
|
\Viewports{} & 546.96 & 332.72 & 61 \% \\
|
||||||
|
\bottomrule
|
||||||
|
\end{tabular}
|
||||||
|
\caption{Analysis of the length of the paths by type of bookmarks}\label{tab:paths-length}
|
||||||
|
\end{table}
|
||||||
|
|
||||||
|
Table~\ref{tab:paths-length} presents the length of the paths traveled by users in the scenes.
|
||||||
|
Although users tend to spend less time on the tasks when they do not have bookmarks, they travel pretty much the same distance as without bookmarks.
|
||||||
|
As a consequence, they visit the scene faster in average with bookmarks, than without bookmarks.
|
||||||
|
The table shows that this higher speed is due to the bookmarks, as more than 60\% of the distance traveled by users with bookmarks happens when users click on bookmarks and fly to the destination.
|
||||||
|
|
||||||
|
\subsubsection{Discussion}
|
||||||
|
|
||||||
|
In the previous paragraphs, we have shown how bookmarks are well perceived by users (looking at the questionnaire answers).
|
||||||
|
We also showed that users tend to be more efficient in completing the task when they have bookmarks than when they do not.
|
||||||
|
|
||||||
|
We can say that bookmarks have a positive effect on navigation within the 3D scene, but since users move, on average, twice as fast, it might have a negative impact on the streaming of objects to the client.
|
||||||
|
|
||||||
|
\begin{figure}[th]
|
||||||
|
\centering
|
||||||
|
\begin{tikzpicture}
|
||||||
|
\begin{axis}[
|
||||||
|
xlabel=Time (in s),
|
||||||
|
ylabel=Percentage of the scene queried,
|
||||||
|
no markers,
|
||||||
|
width=\tikzwidth,
|
||||||
|
height=\tikzheight,
|
||||||
|
cycle list name=mystyle,
|
||||||
|
legend pos=south east,
|
||||||
|
xmin=0,
|
||||||
|
ymin=0,
|
||||||
|
]
|
||||||
|
|
||||||
|
\addplot table [y=y1, x=x]{assets/preliminary-work/discovery.dat};
|
||||||
|
\addlegendentry{Without bookmarks}
|
||||||
|
\addplot table [y=y2, x=x]{assets/preliminary-work/discovery.dat};
|
||||||
|
\addlegendentry{With bookmarks}
|
||||||
|
|
||||||
|
\end{axis}
|
||||||
|
\end{tikzpicture}
|
||||||
|
\caption{Comparison of the triangles queried after a certain time}\label{fig:triangles-curve}
|
||||||
|
\end{figure}
|
||||||
|
|
||||||
|
Figure~\ref{fig:triangles-curve} shows a CDF of the percentage of 3D mesh triangles in the scene that have been queried by users after a certain time. We plotted this same curve for users with and without bookmarks.
|
||||||
|
As expected, the fact that the users can browse the scene significantly quicker with bookmarks reflects on the demand on the 3D content.
|
||||||
|
Users need more triangles more quickly, which either leads to more demand on network bandwidth, or if the bandwidth is kept constant, leads to fewer objects being displayed.
|
||||||
|
In the next section, we introduce experiments based on our user study traces that show how the rendering is affected by the presence of bookmarks and how to improve it.
|
||||||
|
|
|
@ -0,0 +1,6 @@
|
||||||
|
\chapter{Preliminary work}
|
||||||
|
\newcommand{\NoReco}{\textsf{NoBM \xspace}}
|
||||||
|
\newcommand{\Viewports}{\textsf{VP \xspace}}
|
||||||
|
\newcommand{\Arrows}{\textsf{Ar \xspace}}
|
||||||
|
\input{preliminary-work/bookmarks-impact}
|
||||||
|
\input{preliminary-work/streaming}
|
|
@ -0,0 +1,320 @@
|
||||||
|
\section{Impact of 3D Bookmarks on Streaming}\label{s:system}
|
||||||
|
|
||||||
|
\subsection{3D Model Streaming}
|
||||||
|
|
||||||
|
In this section, we describe our implementation of a 3D model streaming policy in our simulation.
|
||||||
|
Note that the policy is different from that we used for the crowdsourcing experiments.
|
||||||
|
Recall that in the crowdsourcing experiments, we load all the 3D content before the participants begin to navigate to remove bias due to different network conditions.
|
||||||
|
Here, we implemented a streaming version, which we expect an actual NVE will use.
|
||||||
|
|
||||||
|
The 3D content we used are textured mesh --- coded in \texttt{obj} file format.
|
||||||
|
As such, the data we used in our experiments are made of several components.
|
||||||
|
The geometry consists of (i) a list of vertices and (ii) a list of faces, and the texture consists of (i) a list of materials, (ii) a list of texture coordinates, and (iii) a set of texture images.
|
||||||
|
In the crowdsourcing experiment, we keep the model small since the goal is to study the user interaction.
|
||||||
|
To increase the size of the model, while keeping the same 3D scene, we subdivide each triangle three times, successively, thereby multiplying the total number of triangles in the scene by 64.
|
||||||
|
We do this to simulate a reasonable use case with large 3D scenes.
|
||||||
|
Table~\ref{tab:modelsize} shows that material and texture amount at most for $3.6\%$ of the geometry, which justifies this choice.
|
||||||
|
|
||||||
|
When a client starts loading the Web page containing the 3D model, the server first sends the list of materials and the texture files.
|
||||||
|
Then, the server periodically sends a fixed size chunk that indifferently encapsulates vertices, texture coordinates, or faces.
|
||||||
|
A \textit{vertex} is coded with three floats and an integer ($x$, $y$, and $z$ coordinates and the index of the vertex), a \textit{texture coordinate} with two floats and an integer (the $x$ and $y$ coordinates on the image and the index of the texture coordinate), and a face with eight integers (the index of each vertex, the index of each texture coordinate, the index of the face and the number of the corresponding material).
|
||||||
|
Consequently, given the Javascript implementation of integers and floats, we approximate each vertex and each texture coordinate to take up 32 bytes, and each face takes up 96 bytes.
|
||||||
|
|
||||||
|
\begin{table}[th]
|
||||||
|
\centering
|
||||||
|
\begin{tabular}{lccc}
|
||||||
|
\toprule
|
||||||
|
\textbf{Scene} & \textbf{Material} & \textbf{Images} & \textbf{Geometry} \\
|
||||||
|
\midrule
|
||||||
|
Scene 1 & 8 KB & 72 KB & 8.48 MB \\
|
||||||
|
Scene 2 & 302 KB & 8 KB & 8.54 MB \\
|
||||||
|
Scene 3 & 16 KB & 92 KB & 5.85 MB \\
|
||||||
|
\bottomrule
|
||||||
|
\end{tabular}
|
||||||
|
\caption{Respective sizes of materials, textures (images) and geometries for the three scenes used in the user study.}\label{tab:modelsize}
|
||||||
|
\end{table}
|
||||||
|
|
||||||
|
During playback, the client periodically (every 200 ms in our implementation) sends to the server its current position and camera orientation.
|
||||||
|
The server computes a sorted list of relevant faces: first the server performs frustum culling to compute the list of faces that intersect with the client's viewing frustum.
|
||||||
|
Then, it performs backface culling to discard the faces whose normals point towards the same direction as the client's camera orientation.
|
||||||
|
The server then sorts the filtered faces according to their distance to the camera.
|
||||||
|
Finally, the server incrementally fills in chunks with these ordered faces.
|
||||||
|
If a face depends on a vertex or a texture coordinate that has not yet been sent, the vertex or the texture coordinate is added to the chunk as well.
|
||||||
|
When the chunk is full, the server sends it.
|
||||||
|
Both client and server algorithms are detailed in algorithms~\ref{streaming-algorithm-client} and~\ref{streaming-algorithm-server}.
|
||||||
|
The chunk size is set according to the bandwidth limit of the server.
|
||||||
|
Note that the server may send faces that are occluded and not visible to the client, since determining visibility requires additional computation.
|
||||||
|
|
||||||
|
\begin{algorithm}[th]
|
||||||
|
\While{streaming is not finished}{%
|
||||||
|
Receive chunk from the server\;
|
||||||
|
Add the faces from the chunk to the model\;
|
||||||
|
Update the camera (by 200ms)\;
|
||||||
|
Compute the rendering and evaluate the quality\;
|
||||||
|
Send the position of the camera to the server\;
|
||||||
|
}
|
||||||
|
\caption{Client slide algorithm\label{streaming-algorithm-client}}
|
||||||
|
\end{algorithm}
|
||||||
|
|
||||||
|
\begin{algorithm}[th]
|
||||||
|
\While{streaming is not finished}{%
|
||||||
|
Receive position of the camera from the client\;
|
||||||
|
Compute the list of triangles to send and sort them\;
|
||||||
|
Send a chunk of a certain amount of triangles\;
|
||||||
|
}
|
||||||
|
\caption{Server side algorithm\label{streaming-algorithm-server}}
|
||||||
|
\end{algorithm}
|
||||||
|
|
||||||
|
In the following, we shall denote this streaming policy \textsf{culling}; in Figures~\ref{fig:click-1250} and~\ref{fig:click-625} streaming using \textsf{culling} only is denoted \textsf{C-only}.
|
||||||
|
|
||||||
|
\subsection{3D Bookmarks}
|
||||||
|
|
||||||
|
We have seen (Figure~\ref{fig:triangles-curve}) that navigation with bookmarks is more demanding on the bandwidth.
|
||||||
|
We want to exploit bookmarks to improve the user's quality of experience. For this purpose, we propose two streaming policies based on offline computation of the relevance of 3D content to bookmarked viewpoints.
|
||||||
|
|
||||||
|
\subsubsection{Visibility Determination for 3D Bookmarks}
|
||||||
|
|
||||||
|
A bookmarked viewpoint is more likely to be accessed, compared to other arbitrary viewpoint in the 3D scene.
|
||||||
|
We exploit this fact to perform some pre-computation on the 3D content visible from the bookmarked viewpoint.
|
||||||
|
|
||||||
|
Recall that \textsf{culling} does not consider occlusion of the faces.
|
||||||
|
Furthermore, it prioritizes the faces according to distance from the camera, and does not consider the actual contribution of the faces to the rendered 2D images.
|
||||||
|
Ideally, we should prioritize the faces that occupy a bigger area in the 2D rendered images.
|
||||||
|
Computing this, however, requires rendering the scene at the server, and measuring the area of each face.
|
||||||
|
It is not scalable to compute this for every viewpoint requested by the client.
|
||||||
|
|
||||||
|
However, we can pre-render the bookmarked viewpoints, since the number of bookmarks is limited, their viewpoints are known in advance, and they are likely to be accessed.
|
||||||
|
For each bookmark, we render offline the scene using a single color per triangle.
|
||||||
|
Once rendered, we scan the output image to find the visible triangles (based on the color) and sort them by decreasing projected area.
|
||||||
|
This technique is also used by~\cite{chengwei}.
|
||||||
|
Thus, when the user clicks on a 3D bookmark, this pre-computed list of faces is used by the server, and only visible faces are sent in decreasing order of contributions to the rendered image.
|
||||||
|
|
||||||
|
For the three scenes that we used in the experiment, we can reduce the number of triangles sent by 60\% (over all bookmarks).
|
||||||
|
This reduction is as high as 85.7\% for one particular bookmark (from 26,886 culled triangles to 3,853 culled and visible triangles).
|
||||||
|
|
||||||
|
To illustrate the impact of sorting by projected area of faces, Figure~\ref{fig:sortedtri} shows the quality improvement gained by sending the precomputed visible triangles prioritized by projected areas, compared to using culling only prioritized by distance.
|
||||||
|
The curve shows the average quality over all bookmarks over all scenes, for a given number of triangles received.
|
||||||
|
The quality is measured by the ratio of correctly rendered pixels, comparing the fully and correctly rendered image (when all 3D content is available) and the rendered image (when content is partially available).
|
||||||
|
We sample one pixel every 100 rows and every 100 columns to compute this value.
|
||||||
|
The figure shows that, to obtain 90\% of correctly displayed samples, we require 1904 triangles instead of 5752 triangles, about 1/3 savings.
|
||||||
|
|
||||||
|
In what follows, we will refer to this streaming policy as \textsf{visible}.
|
||||||
|
|
||||||
|
\begin{figure}[th]
|
||||||
|
\centering
|
||||||
|
\begin{tikzpicture}
|
||||||
|
\begin{axis}[
|
||||||
|
xlabel=Number of Triangles Received,
|
||||||
|
ylabel=Quality of rendering,
|
||||||
|
no markers,
|
||||||
|
width=\tikzwidth,
|
||||||
|
height=\tikzheight,
|
||||||
|
cycle list name=mystyle,
|
||||||
|
legend pos=south east,
|
||||||
|
xmin=0,
|
||||||
|
xmax=21000,
|
||||||
|
ymin=0,
|
||||||
|
ymax=1.1
|
||||||
|
]
|
||||||
|
|
||||||
|
\addplot table [y=y1, x=x]{assets/preliminary-work/cdf.dat};
|
||||||
|
\addlegendentry{Culling}
|
||||||
|
\addplot table [y=y2, x=x]{assets/preliminary-work/cdf.dat};
|
||||||
|
\addlegendentry{Precomputation}
|
||||||
|
|
||||||
|
\end{axis}
|
||||||
|
\end{tikzpicture}
|
||||||
|
\caption{Comparison of rendered image quality (average on all bookmarks and starting position): the triangles are sorted offline (dotted curve), or sorted online by distance to the viewpoint (solid curve).}\label{fig:sortedtri}
|
||||||
|
\end{figure}
|
||||||
|
|
||||||
|
\subsubsection{Prefetching by Predicting the Next Bookmark Clicked}
|
||||||
|
|
||||||
|
We can now use the precomputed, visibility-based streaming of 3D content for the bookmarks to reduce the amount of traffic needed.
|
||||||
|
Next, we propose to prefetch the 3D content from the bookmarks.
|
||||||
|
Any efficient prefetching policy needs to accurately predict users' actions.
|
||||||
|
|
||||||
|
As shown, users tend to visit the bookmarked viewpoints more often than others, except the initial viewpoint.
|
||||||
|
It is thus natural to try to prefetch the 3D content of the bookmarks.
|
||||||
|
|
||||||
|
\begin{figure}[th]
|
||||||
|
\centering
|
||||||
|
\DTLloaddb[noheader=false]{mat1}{assets/preliminary-work/click-probability.dat}
|
||||||
|
\begin{tikzpicture}[scale=0.75]
|
||||||
|
\DTLforeach*{mat1}{\x=x, \y=y, \r=r, \g=g}{%
|
||||||
|
\draw[fill=Grey] (\x,\y) circle (\r);
|
||||||
|
}
|
||||||
|
\foreach \x in {0,...,11}
|
||||||
|
\draw (\x, -10pt) node[anchor=north] {\x};
|
||||||
|
\foreach \y in {0,...,11}
|
||||||
|
\draw (-10pt, \y) node[anchor=east] {\y};
|
||||||
|
\draw (5.5, -40pt) node {Previous recommendation clicked};
|
||||||
|
\draw (-40pt,5.5) node[rotate=90] {Next recommendation clicked};
|
||||||
|
\draw[step=1.0,black,thin,dashed] (0,0) grid (11,11);
|
||||||
|
\end{tikzpicture}
|
||||||
|
\caption{Probability distribution of `next clicked bookmark' for Scene 1 (computed from the 33 users with bookmarks). Numbering corresponds to 0 for initial viewport and 11 bookmarks; the size of the disk at $(i,j)$ is proportional to the probability of clicking bookmark $j$ after $i$.}\label{fig:mat1}
|
||||||
|
\end{figure}
|
||||||
|
|
||||||
|
Figure~\ref{fig:mat1} shows the probability of visiting a bookmark (vertical axis) given that another bookmark has been visited (horizontal axis).
|
||||||
|
This figure shows that users tend to follow similar paths when consuming bookmarks.
|
||||||
|
Thus, we hypothesize that prefetching along those paths would lead to better image quality and lower discovery latency.
|
||||||
|
|
||||||
|
We use the following prefetching policy in this paper.
|
||||||
|
We divide each chunk sent by the server into two parts.
|
||||||
|
The first part is used to fetch the content from the current viewpoint, using the \textsf{culling} streaming policy.
|
||||||
|
The second part is used to prefetch content from the bookmarks, according to their likelihood of being clicked next.
|
||||||
|
We use the probabilities displayed in Figure~\ref{fig:mat1} to determine the size of each part.
|
||||||
|
Each bookmark $B$ has a probability $p(B|B_{prev})$ of being clicked next, considering that $B_{prev}$ was the last clicked bookmark.
|
||||||
|
We assign to each bookmark $p(B|B_{prev})/2$ of the chunk to prefetch the corresponding data.
|
||||||
|
We use the \textsf{visible} policy to determine which data should be sent for a bookmark.
|
||||||
|
|
||||||
|
We denote this combination as \textsf{V-PP}, for Prefetching based on Prediction using \textsf{visible} policy.
|
||||||
|
|
||||||
|
\begin{figure}[th]
|
||||||
|
\centering
|
||||||
|
\begin{tikzpicture}
|
||||||
|
\draw [fill=LightCoral] (0,0) rectangle (5,1);
|
||||||
|
\node at (2.5,0.5) {Furstum / backface culling};
|
||||||
|
\draw [fill=Khaki] (5,0) rectangle (6.5,1);
|
||||||
|
\node at (5.75,0.5) {$B_i$};
|
||||||
|
\draw [fill=SandyBrown] (6.5,0) rectangle (7,1);
|
||||||
|
\node at (6.75,0.5) {$B_j$};
|
||||||
|
\draw [fill=LightGreen] (7,0) rectangle (10,1);
|
||||||
|
\node at (8.5,0.5) {$B_k$};
|
||||||
|
\end{tikzpicture}
|
||||||
|
\caption{Example of how a chunk can be divided into fetching what is needed to display the current viewport (culling), and prefetching three recommendations according to their probability of being visited next.}\label{fig:prefetchedchunk}
|
||||||
|
\end{figure}
|
||||||
|
|
||||||
|
\subsubsection{Fetching Destination Bookmark}
|
||||||
|
|
||||||
|
An alternate method to benefit from the precomputing visible triangles at the bookmark, is to fetch 3D content during the ``fly-to'' transition to reach the destination.
|
||||||
|
Indeed, as specified in Section~\ref{sec:3dnavigation}, moving to a bookmarked viewpoint is not instantaneous, but rather takes a small amount of time to smoothly move the user camera from its initial position towards the bookmark.
|
||||||
|
This transition usually takes from 1 to 2 seconds, depending on how far the current user camera position is from the bookmark.
|
||||||
|
|
||||||
|
When the user clicks on the bookmark, the client fetches the visible vertices from the destination viewpoint, with all the available bandwidth.
|
||||||
|
So, during the transition time, the server no longer does \textsf{culling}, but the whole chunk is used for fetching following \textsf{visible} policy.
|
||||||
|
|
||||||
|
The immediate drawback of this policy is that on the way to the bookmark, the user perception of the scene will be degraded because of the lack of data for the viewpoints in transition.
|
||||||
|
On the bright side, no time is lost to prefetch bookmarks that will never be consumed, because we fetch only when we are sure that the user has clicked on a bookmark.
|
||||||
|
This way, when the user is not clicking on bookmarks, we can use the entire bandwidth for the current viewpoint and get as many triangles as possible to improve the current viewpoint.
|
||||||
|
We call this method \textsf{V-FD}, since we are Fetching the 3D data from the Destination using \textsf{visible} policy.
|
||||||
|
|
||||||
|
\subsection{Comparing Streaming Policies}
|
||||||
|
|
||||||
|
In order to determine which policy to use, we replay the traces from the user study while simulating different streaming policies.
|
||||||
|
The first point we are interested in is which streaming policy leads to the lower discovery latency and better image quality for the user: \textsf{culling} (no prefetching), \textsf{V-PP} (prefetching based on probability of accessing bookmarks), or \textsf{V-FD} (no prefetching, but fetch the destination during fly-to transition) or combining both \textsf{V-PP} and \textsf{V-FD} (\textsf{V-PP+FD}).
|
||||||
|
|
||||||
|
\begin{figure}[th]
|
||||||
|
\centering
|
||||||
|
\begin{tikzpicture}
|
||||||
|
\begin{axis}[
|
||||||
|
xlabel=Time (in s),
|
||||||
|
ylabel=Quality of rendering,
|
||||||
|
no markers,
|
||||||
|
cycle list name=mystyle,
|
||||||
|
width=\tikzwidth,
|
||||||
|
height=\tikzheight,
|
||||||
|
legend pos=south east,
|
||||||
|
ymin=0.6,
|
||||||
|
ymax=1.01,
|
||||||
|
xmin=0,
|
||||||
|
xmax=8.1
|
||||||
|
]
|
||||||
|
\addplot table [y=y1, x=x]{assets/preliminary-work/evaluation/click-curves-local-1250.dat};
|
||||||
|
\addlegendentry{C only}
|
||||||
|
\addplot table [y=y3, x=x]{assets/preliminary-work/evaluation/click-curves-local-1250.dat};
|
||||||
|
\addlegendentry{V-PP}
|
||||||
|
\addplot table [y=y2, x=x]{assets/preliminary-work/evaluation/click-curves-local-1250.dat};
|
||||||
|
\addlegendentry{V-FD}
|
||||||
|
\addplot table [y=y4, x=x]{assets/preliminary-work/evaluation/click-curves-local-1250.dat};
|
||||||
|
\addlegendentry{V-PP+FD}
|
||||||
|
\end{axis}
|
||||||
|
\end{tikzpicture}
|
||||||
|
\caption{Average percentage of the image pixels that are correctly rendered against time, for all users with bookmarks, and using a bandwidth (BW) of 1 Mbps. The origin, $t=0$, is the time of the first click on a bookmark. Each curve corresponds to a streaming policy.}\label{fig:click-1250}
|
||||||
|
\end{figure}
|
||||||
|
|
||||||
|
Figure~\ref{fig:click-1250} compares the quality of the view of a user after his/her first click on a bookmark.
|
||||||
|
The ratio of pixels correctly displayed is computed in the client algorithm, see also algorithm~\ref{streaming-algorithm-client}.
|
||||||
|
In this figure we use a bandwidth of 1 Mbps.
|
||||||
|
The solid curve corresponds to the \textsf{culling} policy.
|
||||||
|
Clicking on a bookmark generates a user path with less spatial locality, causing a large drop in visual quality that is only compensated after 4 seconds.
|
||||||
|
During the first second, the camera moves from the current viewport to the bookmarked viewport.
|
||||||
|
|
||||||
|
When the data has been prefetched according to the probability of the bookmark to be clicked, the drop in quality is less visible (\textsf{V-PP} curve).
|
||||||
|
However, by benefiting from the precomputation of visible triangles and ordering of the important triangles in a bookmark (\textsf{V-FD}) the drop in quality is still there, but is very short (approximately four times shorter than for \textsf{culling}).
|
||||||
|
This drop in quality is happening during the transition on the path.
|
||||||
|
More quantitatively, with a $1$ Mbps bandwidth, 3 seconds are necessary after the click to recover $90\%$ of correct pixels.
|
||||||
|
|
||||||
|
\begin{figure}[th]
|
||||||
|
\centering
|
||||||
|
\begin{tikzpicture}
|
||||||
|
\begin{axis}[
|
||||||
|
xlabel=Time (in s),
|
||||||
|
ylabel=Quality of rendering,
|
||||||
|
no markers,
|
||||||
|
cycle list name=mystyle,
|
||||||
|
width=\tikzwidth,
|
||||||
|
height=\tikzheight,
|
||||||
|
legend pos=south east,
|
||||||
|
ymin=0.6,
|
||||||
|
ymax=1.01,
|
||||||
|
xmin=0,
|
||||||
|
xmax=8.1
|
||||||
|
]
|
||||||
|
\addplot table [y=y1, x=x]{assets/preliminary-work/evaluation/click-curves-local-625.dat};
|
||||||
|
\addlegendentry{C only}
|
||||||
|
\addplot table [y=y3, x=x]{assets/preliminary-work/evaluation/click-curves-local-625.dat};
|
||||||
|
\addlegendentry{V-PP}
|
||||||
|
\addplot table [y=y2, x=x]{assets/preliminary-work/evaluation/click-curves-local-625.dat};
|
||||||
|
\addlegendentry{V-FD}
|
||||||
|
\addplot table [y=y4, x=x]{assets/preliminary-work/evaluation/click-curves-local-625.dat};
|
||||||
|
\addlegendentry{V-PP+FD}
|
||||||
|
\end{axis}
|
||||||
|
\end{tikzpicture}
|
||||||
|
\caption{Average percentage of the image pixels that are correctly rendered against time --for all users with bookmarks, and using a bandwidth (BW) of 0.5 Mbps. The origin, $t=0$, is the time of the first click on a bookmark. Each curve corresponds to a streaming policy.}\label{fig:click-625}
|
||||||
|
\end{figure}
|
||||||
|
|
||||||
|
\begin{figure}[th]
|
||||||
|
\centering
|
||||||
|
\begin{tikzpicture}
|
||||||
|
\begin{axis}[
|
||||||
|
xlabel=Time (in s),
|
||||||
|
ylabel=Quality of rendering,
|
||||||
|
no markers,
|
||||||
|
cycle list name=mystyle,
|
||||||
|
width=\tikzwidth,
|
||||||
|
height=\tikzheight,
|
||||||
|
legend pos=south east,
|
||||||
|
ymin=0.6,
|
||||||
|
ymax=1.01,
|
||||||
|
xmin=0,
|
||||||
|
xmax=4.5
|
||||||
|
]
|
||||||
|
\addplot table [y=y1, x=x]{assets/preliminary-work/evaluation/click-curves-local-2500.dat};
|
||||||
|
\addlegendentry{V-FD}
|
||||||
|
\addplot table [y=y2, x=x]{assets/preliminary-work/evaluation/click-curves-local-2500.dat};
|
||||||
|
\addlegendentry{V-PP-FD}
|
||||||
|
\end{axis}
|
||||||
|
\end{tikzpicture}
|
||||||
|
\caption{Same curve as Figures~\ref{fig:click-1250} and~\ref{fig:click-625}, for comparing streaming policies \textsf{V-FD} alone and \textsf{V-PP+FD}. BW=2Mbps}\label{fig:2MB}
|
||||||
|
\end{figure}
|
||||||
|
|
||||||
|
|
||||||
|
Figure~\ref{fig:click-625} showed the results of the same experiment with 0.5 Mbps bandwidth. Here, it takes 4 to 5 seconds to recover $85\%$ of the pixels with \textsf{culling} and \textsf{V-PP}, against 1.5 second for recovering $90\%$ with \textsf{V-FD}.
|
||||||
|
Combining both strategies (\textsf{V-PP+FD} leads to the best quality.
|
||||||
|
|
||||||
|
At 1 Mbps bandwidth, \textsf{V-PP} penalizes the quality, as the curve \textsf{V-PP-FD}) leads to a lower quality image than \textsf{V-FD} alone.
|
||||||
|
This effect is even stronger when the bandwidth is set to 2 Mbps (Figure~\ref{fig:2MB}).
|
||||||
|
Both streaming strategies based on the pre-computation of the ordering improves the image quality.
|
||||||
|
We see here, that \textsf{V-FD} has a greater impact than \textsf{V-PP}. Here, \textsf{V-PP} may prefetch content that eventually may not be used, whereas \textsf{V-FD} only sends relevant 3D content (knowing which bookmark has been just clicked).
|
||||||
|
|
||||||
|
We present only the results after the first click.
|
||||||
|
For subsequent clicks, we found that other factors came into play and thus, it is hard to analyze the impact of the various streaming policies.
|
||||||
|
For instance, a user may revisit a previously visited bookmark, or the bookmarks may overlap.
|
||||||
|
If the users click on a subsequent bookmark after a long period, then more content would have been fetched for this user, making comparisons difficult.
|
||||||
|
|
||||||
|
To summarize, we found that exploiting the fact that bookmarked viewpoints are frequently visited to precompute the visible faces and sort them according to projected areas can lead to significant improvement in image quality after a user interaction (clicking on a bookmark).
|
||||||
|
This alone can lead to 60\% less triangles being sent, with 1/3 of the triangles sufficient to ensure 90\% of pixels correctly rendered, compared to doing frustum/backface culling.
|
||||||
|
If we fetch these precomputed faces of the destination viewpoint this way immediately after the click, during the ``fly-to'' transition, then we can already significantly improve the quality without any prefetching.
|
||||||
|
Prefetching helps if the bandwidth is low, and fewer triangles can be downloaded during this transition.
|
||||||
|
The network conditions play a minimum role in this key message --- bookmarking allows precomputation of an ordered list of visible faces, and this holds regardless of the underlying network condition (except for non-interesting extreme cases, such as negligible bandwidth or abundance of bandwidth).
|
||||||
|
|
|
@ -1,13 +1,2 @@
|
||||||
\chapter{System bookmarks}
|
\chapter{System bookmarks}
|
||||||
|
|
||||||
\section{Bookmark interaction}
|
|
||||||
|
|
||||||
\unpublished{MMSys 18}
|
|
||||||
|
|
||||||
\section{QoS improvement with bookmarks}
|
|
||||||
|
|
||||||
\written{MMSys 16}
|
|
||||||
|
|
||||||
\unpublished{MMSys 18}
|
|
||||||
|
|
||||||
\input{system-bookmarks/user-study}
|
\input{system-bookmarks/user-study}
|
||||||
|
|
Loading…
Reference in New Issue