Changes between Initial Version and Version 1 of Ticket #15350, comment 3


Ignore:
Timestamp:
May 31, 2024, 12:09:44 PM (17 months ago)
Author:
Tom Goddard

Legend:

Unmodified
Added
Removed
Modified
  • Ticket #15350, comment 3

    initial v1  
    1 Crash was in call to C++ connected_pieces(triangle_array).  Surface triangles were from a very large map 960 x 960 x 960 so almost 1 Gvoxels.  The triangle array has vertex indices that are int32.  The indices into the triangle array are int32.  So if we get over 2 billion (2**31) length triangle array, or about 670 million (= 2/3 billion) triangles it is going to crash.  My guess is that was what happened.  The triangle array indexing should use int64.
     1Crash was in call to C++ connected_pieces(triangle_array).  Surface triangles were from a very large map 960 x 960 x 960 so almost 1 Gvoxels.  The triangle array has vertex indices that are int32.  The indices into the triangle array are int32.  So if we get over 2 billion (pow(2,31)) length triangle array, or about 670 million (= 2/3 billion) triangles it is going to crash.  My guess is that was what happened.  The triangle array indexing should use int64.  There are typically twice as many triangles as vertices (each vertex belongs to ~6 triangles), so this crash would be at about 335 million vertices.  That seems possible with a 1 Gvoxel map.