Knowledge

Marching cubes

Source 📝

137:
to solve the interior ambiguities, which is based on the Asymptotic Decider. Later, in 2003, Nielson proved that Chernyaev's lookup table is complete and can represent all the possible behaviors of the trilinear interpolant, and Lewiner et al. proposed an implementation to the algorithm. Also in 2003 Lopes and Brodlie extended the tests proposed by Natarajan. In 2013, Custodio et al. noted and corrected algorithmic inaccuracies that compromised the topological correctness of the mesh generated by the Marching Cubes 33 algorithm proposed by Chernyaev.
120:
Marching Cubes presented discontinuities and topological issues. Given a cube of the grid, a face ambiguity occurs when its face vertices have alternating signs. That is, the vertices of one diagonal on this face are positive and the vertices on the other are negative. Observe that in this case, the signs of the face vertices are insufficient to determine the correct way to triangulate the isosurface. Similarly, an interior ambiguity occurs when the signs of the cube vertices are insufficient to determine the correct
141: 20: 128:
incomplete, and that certain Marching Cubes cases allow multiple triangulations. Durst's 'additional reference' was to an earlier, more efficient (see de Araujo) isosurface polygonization algorithm by Wyvill, Wyvill and McPheeters. Later, Nielson and Hamann in 1991 observed the existence of ambiguities in the interpolant behavior on the face of the cube. They proposed a test called
254: 191:, in order to circumvent the patent as well as solve a minor ambiguity problem of marching cubes with some cube configurations. The patent expired in 2005, and it is now legal for the graphics community to use it without royalties since more than the 20 years have passed from its issue date (December 1, 1987). 160:
This is done by creating an index to a precalculated array of 256 possible polygon configurations (2=256) within the cube, by treating each of the 8 scalar values as a bit in an 8-bit integer. If the scalar's value is higher than the iso-value (i.e., it is inside the surface) then the appropriate bit
136:
The Marching Cubes 33, proposed by Chernyaev in 1995, is one of the first isosurface extraction algorithms intended to preserve the topology of the trilinear interpolant. In his work, Chernyaev extends to 33 the number of cases in the triangulation lookup table. He then proposes a different approach
132:
to correctly track the interpolant on the faces of the cube. In fact, as observed by Natarajan in 1994, this ambiguity problem also occurs inside the cube. In his work, the author proposed a disambiguation test based on the interpolant critical points, and added four new cases to the Marching Cubes
127:
The popularity of the Marching Cubes and its widespread adoption resulted in several improvements in the algorithm to deal with the ambiguities and to correctly track the behavior of the interpolant. Durst in 1988 was the first to note that the triangulation table proposed by Lorensen and Cline was
119:
The first published version of the algorithm exploited rotational and reflective symmetry and also sign changes to build the table with 15 unique cases. However, due to the existence of ambiguities in the trilinear interpolant behavior in the cube faces and interior, the meshes extracted by the
133:
triangulation table (subcases of the cases 3, 4, 6 and 7). At this point, even with all the improvements proposed to the algorithm and its triangulation table, the meshes generated by the Marching Cubes still had topological incoherencies.
112:, can easily be identified because the sample values at the cube vertices must span the target isosurface value. For each cube containing a section of the isosurface, a triangular mesh that approximates the behavior of the 153:
The algorithm proceeds through the scalar field, taking eight neighbor locations at a time (thus forming an imaginary cube), then determining the polygon(s) needed to represent the part of the
252:, Cline, Harvey & Lorensen, William, "System and method for the display of surface structures contained within the interior region of a solid body", issued 1987-12-01 164:
Finally each vertex of the generated polygons is placed on the appropriate position along the cube's edge by linearly interpolating the two scalar values that are connected by that edge.
161:
is set to one, while if it is lower (outside), it is set to zero. The final value, after all eight scalars are checked, is the actual index to the polygon indices array.
541:
Lewiner, Thomas; Lopes, Hélio; Vieira, Antônio Wilson; Tavares, Geovan (January 2003). "Efficient Implementation of Marching Cubes' Cases with Topological Guarantees".
90: 628:
Custodio, Lis; Etiene, Tiago; Pesco, Sinesio; Silva, Claudio (November 2013). "Practical considerations on Marching Cubes 33 topological correctness".
171:
of the scalar field at each grid point is also the normal vector of a hypothetical isosurface passing from that point. Therefore, these normals may be
479:
Marching Cubes 33 : construction of topologically correct isosurfaces : presented at GRAPHICON '95, Saint-Petersburg, Russia, 03-07.07.1995
94: 500: 187:
An implementation of the marching cubes algorithm was patented as United States Patent 4,710,876. Another similar algorithm was developed, called
841: 585: 767:
Montani, Claudio; Scateni, Riccardo; Scopigno, Roberto (1994). "A modified look-up table for implicit disambiguation of Marching cubes".
175:
along the edges of each cube to find the normals of the generated vertices which are essential for shading the resulting mesh with some
930: 317:
de Araujo, Bruno; Lopes, Daniel; Jepp, Pauline; Jorge, Joaquim; Wyvill, Brian (2015). "A Survey on Implicit Surface Polygonization".
77:
or other metasurfaces. The marching cubes algorithm is meant to be used for 3-D; the 2-D version of this algorithm is called the
207:
Lorensen, William E.; Cline, Harvey E. (1 August 1987). "Marching cubes: A high resolution 3D surface construction algorithm".
1068: 813: 404: 749: 1042: 701:
Lorensen, W. E.; Cline, Harvey E. (1987). "Marching cubes: A high resolution 3d surface construction algorithm".
1073: 1027: 923: 431:
Natarajan, B. K. (January 1994). "On generating topologically consistent isosurfaces from uniform samples".
104:
The premise of the algorithm is to divide the input volume into a discrete set of cubes. By assuming linear
898: 1007: 732:
Nielson, G.M.; Hamann, B. (1991). "The asymptotic decider: Resolving the ambiguity in marching cubes".
387:
Nielson, G.M.; Hamann, B. (1991). "The asymptotic decider: Resolving the ambiguity in marching cubes".
70: 66: 880: 642: 1078: 986: 916: 849: 715: 221: 101:. At General Electric they worked on a way to efficiently visualize data from CT and MRI devices. 113: 157:
that passes through this cube. The individual polygons are then fused into the desired surface.
1037: 875: 710: 637: 216: 991: 121: 105: 62: 352:
Wyvill, Geoff; Wyvill, Brian; McPheeters, Craig (1986). "Data structures for soft objects".
172: 8: 1022: 1012: 981: 688: 683: 188: 857: 586:"Improving the robustness and accuracy of the marching cubes algorithm for isosurfacing" 819: 784: 755: 663: 566: 494: 456: 410: 369: 334: 299: 176: 129: 1047: 809: 745: 655: 558: 482: 448: 400: 291: 35: 788: 759: 414: 373: 338: 303: 885: 823: 801: 776: 737: 720: 667: 647: 608: 600: 570: 554: 550: 523: 440: 392: 361: 326: 281: 226: 124:, i.e., when multiple triangulations are possible for the same cube configuration. 98: 78: 73:
scan data images, and special effects or 3-D modelling with what is usually called
460: 939: 866:
Newman, Timothy S.; Yi, Hong (2006). "A survey of the marching cubes algorithm".
805: 741: 396: 46: 889: 651: 604: 527: 249: 1062: 960: 947: 832: 659: 562: 486: 452: 295: 1032: 955: 54: 286: 269: 965: 724: 230: 796:
Nielson, G.M.; Junwon Sung (1997). "Interval volume tetrahedrization".
780: 613: 444: 365: 154: 109: 50: 74: 38: 19: 330: 140: 168: 42: 908: 61:). The applications of this algorithm are mainly concerned with 248: 58: 540: 24: 23:
Head and cerebral structures (hidden) extracted from 150
627: 593:
IEEE Transactions on Visualization and Computer Graphics
516:
IEEE Transactions on Visualization and Computer Graphics
316: 766: 351: 27:
slices using marching cubes (about 150,000 triangles)
45:
proceedings by Lorensen and Cline, for extracting a
850:"Introductory description with additional graphics" 798:
Proceedings. Visualization '97 (Cat. No. 97CB36155)
795: 1060: 144:The originally published 15 cube configurations 108:, each cube, which contains a piece of a given 862:. Some of the early history of Marching Cubes. 270:"Re: Additional reference to "marching cubes"" 924: 731: 700: 386: 206: 200: 583: 499:: CS1 maint: multiple names: authors list ( 57:(the elements of which are sometimes called 514:Nielson, G.M. (2003). "On marching cubes". 244: 242: 240: 931: 917: 896: 879: 714: 641: 612: 481:. CERN. Computing and Networks Division. 430: 285: 220: 865: 839: 237: 139: 18: 899:"Specializing visualization algorithms" 830: 513: 1061: 912: 267: 472: 470: 426: 424: 938: 116:in the interior cube is generated. 13: 476: 97:as a result of their research for 53:from a three-dimensional discrete 14: 1090: 694: 467: 421: 182: 621: 584:Lopes, A.; Brodlie, K. (2003). 577: 534: 268:Dürst, Martin J. (1988-10-01). 89:The algorithm was developed by 555:10.1080/10867651.2003.10487582 507: 380: 345: 310: 274:ACM SIGGRAPH Computer Graphics 261: 209:ACM SIGGRAPH Computer Graphics 1: 1028:Principles of Grid Generation 1069:Computer graphics algorithms 734:Proceeding Visualization '91 389:Proceeding Visualization '91 148: 7: 677: 16:Computer graphics algorithm 10: 1095: 833:"Overview and source code" 806:10.1109/VISUAL.1997.663886 742:10.1109/VISUAL.1991.175782 477:V., Chernyaev, E. (1995). 397:10.1109/visual.1991.175782 194: 84: 1000: 974: 946: 890:10.1016/j.cag.2006.07.021 652:10.1016/j.cag.2013.04.004 605:10.1109/tvcg.2003.1175094 543:Journal of Graphics Tools 528:10.1109/TVCG.2003.1207437 250:US granted US4710876A 987:Parallel mesh generation 630:Computers & Graphics 106:reconstruction filtering 41:, published in the 1987 1008:Chew's second algorithm 868:Computers and Graphics 145: 63:medical visualizations 28: 992:Stretched grid method 703:ACM Computer Graphics 319:ACM Computing Surveys 287:10.1145/378267.378271 143: 122:surface triangulation 114:trilinear interpolant 22: 1074:3D computer graphics 800:. pp. 221–228. 1038:Ruppert's algorithm 1023:Marching tetrahedra 1013:Image-based meshing 982:Laplacian smoothing 769:The Visual Computer 725:10.1145/37402.37422 689:Marching tetrahedra 684:Image-based meshing 433:The Visual Computer 354:The Visual Computer 231:10.1145/37402.37422 189:marching tetrahedra 91:William E. Lorensen 842:"GameDev overview" 781:10.1007/BF01900830 736:. pp. 83–91. 445:10.1007/bf01900699 391:. pp. 83–91. 366:10.1007/BF01900346 177:illumination model 146: 130:Asymptotic Decider 29: 1056: 1055: 1048:Unstructured grid 815:978-0-8186-8262-9 325:(4): 60:1–60:39. 36:computer graphics 1086: 933: 926: 919: 910: 909: 905: 903: 893: 883: 861: 858:"Marching Cubes" 853: 845: 836: 827: 792: 763: 728: 718: 672: 671: 645: 625: 619: 618: 616: 590: 581: 575: 574: 538: 532: 531: 511: 505: 504: 498: 490: 474: 465: 464: 428: 419: 418: 384: 378: 377: 349: 343: 342: 314: 308: 307: 289: 265: 259: 258: 257: 253: 246: 235: 234: 224: 204: 99:General Electric 93:(1946-2019) and 79:marching squares 1094: 1093: 1089: 1088: 1087: 1085: 1084: 1083: 1079:Mesh generation 1059: 1058: 1057: 1052: 996: 970: 942: 940:Mesh generation 937: 901: 897:Stephan Diehl. 881:10.1.1.413.7458 856: 848: 816: 752: 697: 680: 675: 643:10.1.1.361.3074 626: 622: 588: 582: 578: 539: 535: 512: 508: 492: 491: 475: 468: 429: 422: 407: 385: 381: 350: 346: 331:10.1145/2732197 315: 311: 266: 262: 255: 247: 238: 205: 201: 197: 185: 151: 95:Harvey E. Cline 87: 17: 12: 11: 5: 1092: 1082: 1081: 1076: 1071: 1054: 1053: 1051: 1050: 1045: 1040: 1035: 1030: 1025: 1020: 1018:Marching cubes 1015: 1010: 1004: 1002: 998: 997: 995: 994: 989: 984: 978: 976: 972: 971: 969: 968: 963: 958: 952: 950: 944: 943: 936: 935: 928: 921: 913: 907: 906: 894: 874:(5): 854–879. 863: 854: 846: 840:Matthew Ward. 837: 828: 814: 793: 775:(6): 353–355. 764: 750: 729: 716:10.1.1.545.613 709:(4): 163–169. 696: 695:External links 693: 692: 691: 686: 679: 676: 674: 673: 636:(7): 840–850. 620: 576: 533: 522:(3): 283–297. 506: 466: 420: 406:978-0818622458 405: 379: 360:(4): 227–234. 344: 309: 260: 236: 222:10.1.1.545.613 215:(4): 163–169. 198: 196: 193: 184: 181: 150: 147: 86: 83: 47:polygonal mesh 32:Marching cubes 15: 9: 6: 4: 3: 2: 1091: 1080: 1077: 1075: 1072: 1070: 1067: 1066: 1064: 1049: 1046: 1044: 1041: 1039: 1036: 1034: 1031: 1029: 1026: 1024: 1021: 1019: 1016: 1014: 1011: 1009: 1006: 1005: 1003: 999: 993: 990: 988: 985: 983: 980: 979: 977: 973: 967: 964: 962: 961:Triangle mesh 959: 957: 954: 953: 951: 949: 948:Types of mesh 945: 941: 934: 929: 927: 922: 920: 915: 914: 911: 900: 895: 891: 887: 882: 877: 873: 869: 864: 859: 855: 851: 847: 843: 838: 834: 831:Paul Bourke. 829: 825: 821: 817: 811: 807: 803: 799: 794: 790: 786: 782: 778: 774: 770: 765: 761: 757: 753: 751:9780818622458 747: 743: 739: 735: 730: 726: 722: 717: 712: 708: 704: 699: 698: 690: 687: 685: 682: 681: 669: 665: 661: 657: 653: 649: 644: 639: 635: 631: 624: 615: 610: 606: 602: 598: 594: 587: 580: 572: 568: 564: 560: 556: 552: 548: 544: 537: 529: 525: 521: 517: 510: 502: 496: 488: 484: 480: 473: 471: 462: 458: 454: 450: 446: 442: 438: 434: 427: 425: 416: 412: 408: 402: 398: 394: 390: 383: 375: 371: 367: 363: 359: 355: 348: 340: 336: 332: 328: 324: 320: 313: 305: 301: 297: 293: 288: 283: 279: 275: 271: 264: 251: 245: 243: 241: 232: 228: 223: 218: 214: 210: 203: 199: 192: 190: 183:Patent issues 180: 178: 174: 170: 165: 162: 158: 156: 142: 138: 134: 131: 125: 123: 117: 115: 111: 107: 102: 100: 96: 92: 82: 81:algorithm. 80: 76: 72: 68: 64: 60: 56: 52: 48: 44: 40: 37: 33: 26: 21: 1043:Tessellation 1033:Regular grid 1017: 956:Polygon mesh 871: 867: 797: 772: 768: 733: 706: 702: 633: 629: 623: 596: 592: 579: 546: 542: 536: 519: 515: 509: 478: 439:(1): 52–62. 436: 432: 388: 382: 357: 353: 347: 322: 318: 312: 277: 273: 263: 212: 208: 202: 186: 173:interpolated 166: 163: 159: 152: 135: 126: 118: 103: 88: 55:scalar field 31: 30: 966:Volume mesh 614:10316/12925 549:(2): 1–15. 1063:Categories 280:(5): 243. 155:isosurface 110:isosurface 51:isosurface 876:CiteSeerX 711:CiteSeerX 660:0097-8493 638:CiteSeerX 599:: 16–29. 563:1086-7651 495:cite book 487:897851506 453:0178-2789 296:0097-8930 217:CiteSeerX 149:Algorithm 75:metaballs 39:algorithm 789:31316542 760:35739150 678:See also 415:35739150 374:18993002 339:14395359 304:36741734 169:gradient 65:such as 43:SIGGRAPH 1001:Related 975:Methods 824:5575097 668:1930192 571:6195034 195:Sources 85:History 878:  822:  812:  787:  758:  748:  713:  666:  658:  640:  569:  561:  485:  461:526698 459:  451:  413:  403:  372:  337:  302:  294:  256:  219:  59:voxels 49:of an 902:(PDF) 820:S2CID 785:S2CID 756:S2CID 664:S2CID 589:(PDF) 567:S2CID 457:S2CID 411:S2CID 370:S2CID 335:S2CID 300:S2CID 34:is a 810:ISBN 746:ISBN 656:ISSN 559:ISSN 501:link 483:OCLC 449:ISSN 401:ISBN 292:ISSN 167:The 69:and 886:doi 802:doi 777:doi 738:doi 721:doi 648:doi 609:hdl 601:doi 551:doi 524:doi 441:doi 393:doi 362:doi 327:doi 282:doi 227:doi 71:MRI 25:MRI 1065:: 884:. 872:30 870:. 818:. 808:. 783:. 773:10 771:. 754:. 744:. 719:. 707:21 705:. 662:. 654:. 646:. 634:37 632:. 607:. 595:. 591:. 565:. 557:. 545:. 518:. 497:}} 493:{{ 469:^ 455:. 447:. 437:11 435:. 423:^ 409:. 399:. 368:. 356:. 333:. 323:47 321:. 298:. 290:. 278:22 276:. 272:. 239:^ 225:. 213:21 211:. 179:. 67:CT 932:e 925:t 918:v 904:. 892:. 888:: 860:. 852:. 844:. 835:. 826:. 804:: 791:. 779:: 762:. 740:: 727:. 723:: 670:. 650:: 617:. 611:: 603:: 597:9 573:. 553:: 547:8 530:. 526:: 520:9 503:) 489:. 463:. 443:: 417:. 395:: 376:. 364:: 358:2 341:. 329:: 306:. 284:: 233:. 229::

Index


MRI
computer graphics
algorithm
SIGGRAPH
polygonal mesh
isosurface
scalar field
voxels
medical visualizations
CT
MRI
metaballs
marching squares
William E. Lorensen
Harvey E. Cline
General Electric
reconstruction filtering
isosurface
trilinear interpolant
surface triangulation
Asymptotic Decider

isosurface
gradient
interpolated
illumination model
marching tetrahedra
CiteSeerX
10.1.1.545.613

Text is available under the Creative Commons Attribution-ShareAlike License. Additional terms may apply.