bool AddSubmeshMaterials(ref TexBlend_t texBlend, int num, int max)
                {
                    var blend = texBlend;

                    for (int i = 0; i < num; ++i)
                    {
                        if (!AddSubmeshTexture(ref blend, _materials[i], max))
                        {
                            return(false);
                        }
                    }
                    texBlend = blend;
                    return(true);
                }
                Vector4 SetMaterialBlendFactor(Vector4 blendFactor, TexBlend_t blend, int m, float frac)
                {
                    if (blend.x == m)
                    {
                        blendFactor.x = frac;
                        return(blendFactor);
                    }

                    if (blend.y == m)
                    {
                        blendFactor.y = frac;
                        return(blendFactor);
                    }

                    if (blend.z == m)
                    {
                        blendFactor.z = frac;
                        return(blendFactor);
                    }

                    blendFactor.w = frac;
                    return(blendFactor);
                }
                Vector4 GetTriVertTexBlendFactor(TexBlend_t blend, int layer, int v0)
                {
                    var num = 0;

                    AddVertexMaterials(layer, v0, ref num);

                    float total = 0f;

                    for (int i = 0; i < num; ++i)
                    {
                        total += _matrefcounts[i];
                    }

                    var blendFactor = Vector4.zero;

                    for (int i = 0; i < num; ++i)
                    {
                        var frac = _matrefcounts[i] / total;
                        blendFactor = SetMaterialBlendFactor(blendFactor, blend, _materials[i], frac);
                    }

                    return(blendFactor);
                }
                static bool AddSubmeshTexture(ref TexBlend_t blend, int material, int max)
                {
                    if (max > 0)
                    {
                        if (blend.count < 1)
                        {
                            blend.x     = material;
                            blend.count = 1;
                            return(true);
                        }
                        if (blend.x == material)
                        {
                            return(true);
                        }
                        ;

                        if (max > 1)
                        {
                            if (blend.count < 2)
                            {
                                blend.y     = material;
                                blend.count = 2;
                                return(true);
                            }
                            if (blend.y == material)
                            {
                                return(true);
                            }

                            if (max > 2)
                            {
                                if (blend.count < 3)
                                {
                                    blend.z     = material;
                                    blend.count = 3;
                                    return(true);
                                }
                                if (blend.z == material)
                                {
                                    return(true);
                                }

                                if (max > 3)
                                {
                                    if (blend.count < 4)
                                    {
                                        blend.w     = material;
                                        blend.count = 4;
                                        return(true);
                                    }
                                    if (blend.w == material)
                                    {
                                        return(true);
                                    }
                                }
                            }
                        }
                    }

                    return(false);
                }