Timing and Memory Statistics
| Int.(ms) | Imp.(ms) | Remesh(ms) | Tex.(ms) | Emb.(ms) |
Spider | 3150 | 0.30 | 22230 | 0.14 | 0.02 |
Spider(S) | 755 | 0.25 | 2483 | 3.62 | 0.01 |
Bunny | 1268 | 0.71 | 27261 | 0.14 | 0.03 |
Jacket | 192 | 0.45 | 1053 | 0.15 | 0.01 |
Lego | 76 | 0.46 | 2670 | 0.11 | 0.01 |
Cloth | 13984 | 0.99 | 117761 | 0.13 | 0.07 |
Zebra | 7964 | 0.48 | 87831 | 0.10 | 0.04 |
Tigress | 4464 | 0.45 | 44268 | 0.16 | 0.02 |
● This shows the timing statistics when using our algorithm for Spiderman, Spiderman using stroking paths, Stanford bunny, Sonic of Jacket, Lego, Tiger Cloth, Zebra, and Tigress.
Int. denotes the stage of path intersection and segment, Imp. denotes the stage of path implicitization, Remesh denotes the stage of constrained retriangulation, Tex. denotes the stage of coloring texture construction, and Emb. denotes the stage of embedding coloring information.
| Org. | Ours | Loop's | Resolution | Mem.(MB) |
Spider | 2584 | 33236 | 38774 | 820 X 820 | (2.10,2.02) |
Spider(S) | 2584 | 7884 | 13328 | 320 X 320 | (0.39,0.39) |
Bunny | 69630 | 88667 | 1621953 | 340 X 340 X 3 | (2.99,2.99) |
Jacket | 2168 | 9951 | 19188 | 350 X 250 | (0.34,0.33) |
Lego | 19034 | 29853 | 98130 | 160 X 160 X 2 | (0.69,0.68) |
Cloth | 175118 | 216455 | 3763921 | 790 X 790 | (6.85,6.85) |
Zebra | 40310 | 89861 | 207695 | 926 X 926 | (3.54,3.53) |
Tigress | 5688 | 34781 | 98018 | 724 X 724 | (1.73,1.73) |
● This shows the memory usage statistics for both vector-based embedment and raster texturing for Spiderman, Spiderman using stroking paths, Stanford bunny, Sonic of Jacket, Lego, Tiger Cloth, Zebra, and Tigress.
Org. is the number of triangles in the original mesh, Ours is the number of triangles in the retriangulated mesh using our algorithm, Loop's is the number of triangles in the retriangulated mesh using Loop's method,
Resolution is the resolution of the corresponding rasterization texture, and Mem. is the memory usage for the raster texturing and our embedded shading techniques.
For raster texturing, the required memory usage contains the texture images and original mesh including vertex positions, normals, and texture coordinates, and face indices.
For our shading, the required memory usage contains the retriagulated mesh, embedded coloring and stroking information, and coloring texture in GPU for the model.
| Fragment(ms) | Geometry(ms) | Normal(FPS) | Zoom In(FPS) | Zoom Out(FPS) |
Ours | Loop's | Ours | Loop's | Ours | Loop's |
Spider | 1.4 | 0 | 448 | 99 | 84 | 48 | 756 | 308 |
Spider(S) | 1.05 | 7.7 | 151 | 56 | 67 | 19 | 223 | 78 |
Bunny | 4.7 | 4 | 149 | 19 | 73 | 7 | 174 | 37 |
Jacket | 1.2 | 0.7 | 223 | 56 | 52 | 24 | 496 | 87 |
Lego | 0.75 | 0 | 101 | 33 | 44 | 21 | 198 | 88 |
Cloth | 0.75 | 9.8 | 56 | 9 | 34 | 6 | 73 | 11 |
Zebra | 0.75 | 0 | 371 | 69 | 109 | 47 | 794 | 204 |
Tigress | 0.75 | 0 | 307 | 35 | 70 | 12 | 469 | 83 |
● This shows the timing statistics for Spiderman, Spiderman using stroking paths, Stanford bunny, Sonic of Jacket, Lego, Tiger Cloth, Zebra, and Tigress.
Fragment is the timing in (ms) required to shade a texturing object with the coloring pixel shader,
Geomtry is the timing in (ms) required to shade a texturing object with the stroking geometry shader,
Normal is the overall frame rate for shading an object when viewing it fully,
Zoom In is the overall frame rate for shading an object when zooming in to view parts of the model, and
Zoom Out is the overall frame rate for shading an object when zooming out to have the model occupy half of the window.
Ours is the frame rate for shading with our algorithm and Loop's is the frame rate for shading with our implemented Loop's algorithm with antialiasing.
Please notice the frame rate is measured when turning off the GPU antialiasing function.
Compare to Nehab2008
| Plane(Nehab's) | Plane(Ours) |
Normal | Zoom | Mem.(MB) | Normal | Zoom | Mem.(MB) |
Butterfly | 35 | 18 | 9 | 71 | 68 | 13 |
Dancer | 65 | 17 | 6 | 86 | 69 | 11 |
Skater | 52 | 18 | 8 | 87 | 70 | 12 |
Lion | 56 | 18 | 8 | 73 | 66 | 11 |
Tiger | 45 | 18 | 10 | 67 | 47 | 19 |
● This shows the timing statistics in FPS when comparing our algorithm with Nehab's algorithm using the data set and code posted in their paper.
All data is collected in the resolution of 1920x1080 with the GPU antialiasing function turning on.
Normal and Zoom are the view of having the entire object fitting inside the screen and zooming view of the details.
Plane denotes texturing a plane and Cylinder denotes texturing a cylinder.
Ours denotes the use of our algorithm and Nehab's denote the use of the one proposed by Nehab.
Antialiasing can largely reduce the frame rate. For example, shading the Butterfly plane with Nehab's algorithm on plane has a frame rate of 250/35 without/with antialiasing.
Compare to Loop2005
SpiderMan
| oriTris. | reTris. | Ce.(Mem) | It.(Mem) | Memory(MB) |
Layer1 | 2584 | 4728 | 424(0.06) | 12912(1.08) | 1.14 |
Layer2 | 2584 | 31462 | 6608(0.87) | 24854(2.09) | 2.96 |
Layer3 | 2584 | 2584 | 0(0.00) | 7752(0.65) | 0.65 |
Total | | 38774 | 7032(0.93) | 45518(3.82) | 4.75 |
● This shows the comparison with our algorithm and the method of Loop's for Spiderman.
oriTris. denotes the number of triangles of original mesh, reTris. denotes the number of triangles of the retriangulated mesh, Ce. denotes the number of curve embedded triangles of the retriangulated mesh, It. denotes the number of interior triangles of the retriangulated mesh, and Memory denotes the memory usage each layer.
Bunny
| oriTris. | reTris. | Ce.(Mem) | It.(Mem) | Memory(MB) |
Layer1 | 69630 | 70457 | 140(0.02) | 70317(5.91) | 5.93 |
Layer2 | 69630 | 70606 | 142(0.02) | 70464(5.92) | 5.94 |
Layer3 | 69630 | 70725 | 257(0.03) | 70468(5.92) | 5.95 |
Layer4 | 69630 | 70278 | 116(0.02) | 70162(5.89) | 5.91 |
Layer5 | 69630 | 70237 | 139(0.02) | 70098(5.89) | 5.91 |
Layer6 | 69630 | 70859 | 241(0.03) | 70618(5.93) | 5.96 |
Layer7 | 69630 | 69936 | 86(0.01) | 69850(5.87) | 5.88 |
Layer8 | 69630 | 70082 | 123(0.02) | 69959(5.88) | 5.90 |
Layer9 | 69630 | 73018 | 721(0.10) | 72297(6.07) | 6.17 |
Layer10 | 69630 | 71058 | 314(0.04) | 70744(5.94) | 5.98 |
Layer11 | 69630 | 71591 | 413(0.05) | 71178(5.98) | 6.03 |
Layer12 | 69630 | 70084 | 41(0.01) | 70043(5.88) | 5.89 |
Layer13 | 69630 | 72872 | 832(0.11) | 72040(6.05) | 6.16 |
Layer14 | 69630 | 69702 | 14(0.00) | 69688(5.85) | 5.85 |
Layer15 | 69630 | 69736 | 18(0.00) | 69718(5.86) | 5.86 |
Layer16 | 69630 | 69867 | 64(0.01) | 69803(5.86) | 5.87 |
Layer17 | 69630 | 70083 | 95(0.01) | 69988(5.88) | 5.89 |
Layer18 | 69630 | 69861 | 51(0.01) | 69810(5.86) | 5.87 |
Layer19 | 69630 | 70172 | 46(0.01) | 70126(5.89) | 5.90 |
Layer20 | 69630 | 70022 | 92(0.01) | 69930(5.87) | 5.88 |
Layer21 | 69630 | 69962 | 28(0.00) | 69934(5.87) | 5.87 |
Layer22 | 69630 | 70766 | 132(0.02) | 70634(5.93) | 5.95 |
Layer23 | 69630 | 69979 | 115(0.02) | 69864(5.87) | 5.89 |
Total | | 1621953 | 4220(0.56) | 1617733(135) | 136 |
● This shows the comparison with our algorithm and the method of Loop's for Stanford bunny.
oriTris. denotes the number of triangles of original mesh, reTris. denotes the number of triangles of the retriangulated mesh, Ce. denotes the number of curve embedded triangles of the retriangulated mesh, It. denotes the number of interior triangles of the retriangulated mesh, and Memory denotes the memory usage each layer.
Sonic
| oriTris. | reTris. | Ce.(Mem) | It.(Mem) | Memory(MB) |
Layer1 | 2168 | 2390 | 50(0.01) | 2340(0.19) | 0.20 |
Layer2 | 2168 | 2978 | 187(0.02) | 2791(0.24) | 0.26 |
Layer3 | 2168 | 3302 | 260(0.03) | 3042(0.26) | 0.29 |
Layer4 | 2168 | 2725 | 142(0.02) | 2583(0.22) | 0.24 |
Layer5 | 2168 | 3058 | 235(0.03) | 2823(0.24) | 0.27 |
Layer6 | 2168 | 2433 | 63(0.01) | 2370(0.20) | 0.21 |
Layer7 | 2168 | 2302 | 31(0.00) | 2271(0.19) | 0.19 |
Total | | 19188 | 968(0.13) | 18220(1.53) | 1.66 |
● This shows the comparison with our algorithm and the method of Loop's for Sonic of Jacket.
oriTris. denotes the number of triangles of original mesh, reTris. denotes the number of triangles of the retriangulated mesh, Ce. denotes the number of curve embedded triangles of the retriangulated mesh, It. denotes the number of interior triangles of the retriangulated mesh, and Memory denotes the memory usage each layer.
Lego
| oriTris. | reTris. | Ce.(Mem) | It.(Mem) | Memory(MB) |
Layer1 | 19034 | 19034 | 0(0.00) | 19034(1.60) | 1.60 |
Layer2 | 19034 | 20240 | 256(0.03) | 19984(1.68) | 1.71 |
Layer3 | 19034 | 19538 | 112(0.02) | 19426(1.63) | 1.65 |
Layer4 | 19034 | 19106 | 24(0.00) | 19082(1.60) | 1.60 |
Layer5 | 19034 | 20212 | 239(0.03) | 19973(1.68) | 1.71 |
Total | | 98130 | 631(0.08) | 97499(8.19) | 8.27 |
● This shows the comparison with our algorithm and the method of Loop's for Lego.
oriTris. denotes the number of triangles of original mesh, reTris. denotes the number of triangles of the retriangulated mesh, Ce. denotes the number of curve embedded triangles of the retriangulated mesh, It. denotes the number of interior triangles of the retriangulated mesh, and Memory denotes the memory usage each layer.
Tiger Cloth
| oriTris. | reTris. | Ce.(Mem) | It.(Mem) | Memory(MB) |
Layer1 | 175118 | 179042 | 554(0.07) | 178488(15.0) | 15.1 |
Layer2 | 175118 | 176343 | 129(0.02) | 176214(14.8) | 14.8 |
Layer3 | 175118 | 176818 | 199(0.03) | 176619(14.8) | 14.8 |
Layer4 | 175118 | 176820 | 190(0.03) | 176630(14.8) | 14.8 |
Layer5 | 175118 | 176882 | 195(0.03) | 176687(14.8) | 14.8 |
Layer6 | 175118 | 176852 | 191(0.03) | 176661(14.8) | 14.8 |
Layer7 | 175118 | 176887 | 204(0.03) | 176683(14.8) | 14.8 |
Layer8 | 175118 | 176587 | 140(0.02) | 176447(14.8) | 14.8 |
Layer9 | 175118 | 176481 | 127(0.02) | 176354(14.8) | 14.8 |
Layer10 | 175118 | 176621 | 168(0.02) | 176453(14.8) | 14.8 |
Layer11 | 175118 | 177039 | 201(0.03) | 176838(14.9) | 14.9 |
Layer12 | 175118 | 176485 | 146(0.02) | 176339(14.8) | 14.8 |
Layer13 | 175118 | 176406 | 140(0.02) | 176266(14.8) | 14.8 |
Layer14 | 175118 | 176302 | 109(0.01) | 176193(14.8) | 14.8 |
Layer15 | 175118 | 186155 | 2291(0.30) | 183864(15.4) | 15.7 |
Layer16 | 175118 | 181490 | 1006(0.13) | 180484(15.2) | 15.3 |
Layer17 | 175118 | 175963 | 114(0.02) | 175849(14.8) | 14.8 |
Layer18 | 175118 | 177044 | 410(0.05) | 176634(14.8) | 14.9 |
Layer19 | 175118 | 175673 | 82(0.01) | 175591(14.7) | 14.7 |
Layer20 | 175118 | 175388 | 30(0.00) | 175358(14.7) | 14.7 |
Layer21 | 175118 | 216643 | 6463(0.85) | 210180(17.7) | 18.6 |
Total | | 3763921 | 13089(1.73) | 3750832(315) | 317 |
● his shows the comparison with our algorithm and the method of Loop's for Tiger Cloth.
oriTris. denotes the number of triangles of original mesh, reTris. denotes the number of triangles of the retriangulated mesh, Ce. denotes the number of curve embedded triangles of the retriangulated mesh, It. denotes the number of interior triangles of the retriangulated mesh, and Memory denotes the memory usage each layer.
Zebra
| oriTris. | reTris. | Ce.(Mem) | It.(Mem) | Memory(MB) |
Layer1 | 40310 | 78738 | 3196(0.42) | 75542(6.35) | 6.77 |
Layer2 | 40310 | 82737 | 3377(0.45) | 79360(6.67) | 7.12 |
Layer3 | 40310 | 46220 | 923(0.12) | 45297(3.80) | 3.92 |
Total | | 207695 | 7496(0.99) | 200199(16.8) | 17.8 |
● This shows the comparison with our algorithm and the method of Loop's for Zebra.
oriTris. denotes the number of triangles of original mesh, reTris. denotes the number of triangles of the retriangulated mesh, Ce. denotes the number of curve embedded triangles of the retriangulated mesh, It. denotes the number of interior triangles of the retriangulated mesh, and Memory denotes the memory usage each layer.
Tigress
| oriTris. | reTris. | Ce.(Mem) | It.(Mem) | Memory(MB) |
Layer1 | 5688 | 14744 | 1936(0.26) | 12808(1.08) | 1.34 |
Layer2 | 5688 | 10437 | 1086(0.14) | 9351(0.79) | 0.93 |
Layer3 | 5688 | 8340 | 747(0.10) | 7593(0.64) | 0.74 |
Layer4 | 5688 | 15332 | 2175(0.29) | 13157(1.11) | 1.40 |
Layer5 | 5688 | 8170 | 501(0.07) | 7669(0.64) | 0.71 |
Layer6 | 5688 | 12276 | 1347(0.18) | 10929(0.92) | 1.10 |
Layer7 | 5688 | 8861 | 546(0.07) | 8315(0.70) | 0.77 |
Layer8 | 5688 | 7362 | 117(0.02) | 7245(0.61) | 0.63 |
Layer9 | 5688 | 6520 | 120(0.02) | 6400(0.54) | 0.56 |
Layer10 | 5688 | 5976 | 44(0.01) | 5932(0.50) | 0.51 |
Total | | 98018 | 8619(1.14) | 89399(7.51) | 8.65 |
● This shows the comparison with our algorithm and the method of Loop's for Tigress.
oriTris. denotes the number of triangles of original mesh, reTris. denotes the number of triangles of the retriangulated mesh, Ce. denotes the number of curve embedded triangles of the retriangulated mesh, It. denotes the number of interior triangles of the retriangulated mesh, and Memory denotes the memory usage each layer.