Polygon rendering levels using RasterOverlay

@Kevin_Ring

Hello, I use UCesiumGeoJsonDocumentRasterOverlay to create the effect of overlaying points, lines, and polygons. The implementation in C++ code is as follows:

    // create overlay Component
    UCesiumGeoJsonDocumentRasterOverlay* drapingOverLayComponent =        NewObject<UCesiumGeoJsonDocumentRasterOverlay>(
        m_pCesiumTerrain3DTileset,
        FName("DrapingComponent"),
        RF_Transactional);

    drapingOverLayComponent->Source = ECesiumGeoJsonDocumentRasterOverlaySource::FromDocument;
    drapingOverLayComponent->MaterialLayerKey = TEXT("Draping");
    drapingOverLayComponent->MipLevels = 0;
    drapingOverLayComponent->SetActive(true);
    drapingOverLayComponent->OnComponentCreated();
    m_pCesiumTerrain3DTileset->AddInstanceComponent(drapingOverLayComponent);
    
    // create Collection
    CesiumVectorData::GeoJsonFeatureCollection Collection;

    // Add Polygon
    AddPolygonFeatures(*Draping.DrapingData, Collection);

    // update document
    auto Document = std::make_shared<CesiumVectorData::GeoJsonDocument>(
        CesiumVectorData::GeoJsonObject{ std::move(Collection) },
        std::vector<CesiumVectorData::VectorDocumentAttribution>());
    
    m_pRasterOverlay->GeoJsonDocument = Document;

    if (m_pRasterOverlay->IsActive())
    {
        m_pRasterOverlay->Refresh();
    }

    void AddPolygonFeatures(const FGISDrapingData& DrapingData, CesiumVectorData::GeoJsonFeatureCollection& Collection)
    {
        for (const FGISDrapingPolygon& Polygon : DrapingData.Polygons)
        {
            CesiumVectorData::GeoJsonPolygon NativePolygon;
            NativePolygon.coordinates.emplace_back();
            NativePolygon.coordinates.back().reserve(Positions.Num());
            for (const FPosition3d& Position : Positions)
            {
                NativePolygon.coordinates.back().emplace_back(ToNativePosition(Position));
            }
            NativePolygon.style = ToNativeStyle(Polygon.Style);
            Collection.features.emplace_back(MakeFeature(CesiumVectorData::GeoJsonObject{ std::move(NativePolygon) }));
        }
    }

I have created the same elements multiple times (with consistent color, graphic shape, and addition order).The order I add them every time is: red, yellow, green, blue, and white,but the displayed results are different.

What is the reason, may I ask ? Thank you!