Ejemplo n.º 1
0
        //TODO: lots! These presets need work.

        /// <summary>
        /// Reset and Configure SoftBody settings for some general preset values.  Can use as a starting point before optimization.
        /// </summary>
        /// <param name="preset"></param>
        public void ResetToSoftBodyPresets(SBSettingsPresets preset)
        {
            sBpresetSelect            = preset; //save last applied preset
            totalMass                 = 10f;
            scale                     = Vector3.one;
            fromFaces                 = true;
            bframe                    = true;
            bvolume                   = false;
            generateClusters          = false;
            bendingConstraintDistance = 2;
            randomizeConstraints      = true;
            config                    = new SBConfig();
            sBMaterial                = new SBMaterial();

            switch (preset)
            {
            case SBSettingsPresets.Default:
                //reset itself
                break;

            case SBSettingsPresets.Cloth:
                fromFaces = false;
                bvolume   = false;
                bframe    = false;
                sBMaterial.LinearStiffness = 0.5f;

                break;

            case SBSettingsPresets.Rope:
                config.PositionIterations  = 20;
                sBMaterial.LinearStiffness = 0.5f;
                bendingConstraintDistance  = 0;
                randomizeConstraints       = false;
                fromFaces = false;
                bframe    = false;
                bvolume   = false;

                break;

            case SBSettingsPresets.ConvexHull:

                break;

            case SBSettingsPresets.Pressurized:
                sBMaterial.LinearStiffness = 0.1f;
                config.DynamicFriction     = 1;
                config.Damping             = 0.001f; // fun factor...
                config.Pressure            = 2500;
                fromFaces = true;
                break;

            case SBSettingsPresets.Aerodynamic:
                config.Lift      = 0.004f;
                config.Drag      = 0.0003f;
                config.aeroModel = AeroModel.VertexTwoSided;
                break;

            case SBSettingsPresets.Volume:

                sBMaterial.LinearStiffness = 0.45f;
                config.VolumeConversation  = 20;
                totalMass = 50f;
                fromFaces = true;
                bvolume   = true;
                bframe    = false;



                break;

            case SBSettingsPresets.ShapeMatching:
                sBMaterial.LinearStiffness = 0.5f;
                config.DynamicFriction     = 0.5f;
                config.PoseMatching        = 0.05f;
                config.PositionIterations  = 10;

                randomizeConstraints = true;
                totalMass            = 100f;
                fromFaces            = true;
                bvolume = false;
                bframe  = true;

                break;


            case SBSettingsPresets.ropeStick:
                config.AnchorHardness       = 0.7f;
                config.ClusterIterations    = 4;
                config.RigidContactHardness = 0.1f;
                config.DynamicFriction      = 0.2f;
                config.Drag                    = 0f;
                config.DriftIterations         = 0;
                config.Damping                 = 0.005f;
                config.KineticContactHardness  = 0.1f;
                config.Lift                    = 0;
                config.PoseMatching            = 0;
                config.MaxVolume               = 1.0f;
                config.PositionIterations      = 1;
                config.Pressure                = 0;
                config.SoftKineticImpulseSplit = 0.5f;
                config.SoftRigidImpulseSplit   = 0.5f;
                config.SoftSoftImpulseSplit    = 0.5f;
                config.Shr = 1f;
                config.SoftKineticHardness      = 1f;
                config.SoftRigidHardness        = 0.1f;
                config.SoftSoftHardness         = 0.5f;
                config.Timescale                = 1;
                config.VolumeConversation       = 0f;
                config.VelocityCorrectionFactor = 1f;
                config.VelocityIterations       = 0;

                sBMaterial.LinearStiffness  = 1.0f;
                sBMaterial.AngularStiffness = 1.0f;
                sBMaterial.VolumeStiffness  = 1.0f;

                bframe           = false;
                fromFaces        = false;
                bvolume          = false;
                generateClusters = false;
                totalMass        = 0.01f;

                break;

            default:
                break;
            }
        }
Ejemplo n.º 2
0
        //TODO: lots! These presets need work.

        /// <summary>
        /// Reset and Configure SoftBody settings for some general preset values.  Can use as a starting point before optimization.
        /// </summary>
        /// <param name="preset"></param>
        public void ResetToSoftBodyPresets(SBSettingsPresets preset)
        {
            sBpresetSelect            = preset; //save last applied preset
            totalMass                 = 10f;
            scale                     = Vector3.one;
            fromFaces                 = true;
            bframe                    = true;
            bvolume                   = false;
            generateClusters          = false;
            bendingConstraintDistance = 2;
            randomizeConstraints      = true;
            config                    = new SBConfig();
            sBMaterial                = new SBMaterial();

            switch (preset)
            {
            case SBSettingsPresets.Default:
                //reset itself
                break;

            case SBSettingsPresets.Cloth:
                fromFaces      = false;
                bvolume        = false;
                bframe         = false;
                sBMaterial.LST = 0.5f;

                break;

            case SBSettingsPresets.Rope:
                config.PIterations        = 20;
                sBMaterial.LST            = 0.5f;
                bendingConstraintDistance = 0;
                randomizeConstraints      = false;
                fromFaces = false;
                bframe    = false;
                bvolume   = false;

                break;

            case SBSettingsPresets.ConvexHull:

                break;

            case SBSettingsPresets.Pressurized:
                sBMaterial.LST = 0.1f;
                config.DF      = 1;
                config.DP      = 0.001f; // fun factor...
                config.PR      = 2500;
                fromFaces      = true;
                break;

            case SBSettingsPresets.Aerodynamic:
                config.LF        = 0.004f;
                config.DG        = 0.0003f;
                config.aeroModel = AeroModel.VTwoSided;
                break;

            case SBSettingsPresets.Volume:

                sBMaterial.LST = 0.45f;
                config.VC      = 20;
                totalMass      = 50f;
                fromFaces      = true;
                bvolume        = true;
                bframe         = false;



                break;

            case SBSettingsPresets.ShapeMatching:
                sBMaterial.LST     = 0.5f;
                config.DF          = 0.5f;
                config.MT          = 0.05f;
                config.PIterations = 10;

                randomizeConstraints = true;
                totalMass            = 100f;
                fromFaces            = true;
                bvolume = false;
                bframe  = true;

                break;


            case SBSettingsPresets.ropeStick:
                config.Ahr         = 0.7f;
                config.CIterations = 4;
                config.Chr         = 0.1f;
                config.DF          = 0.2f;
                config.DG          = 0f;
                config.DIterations = 0;
                config.DP          = 0.005f;
                config.Khr         = 0.1f;
                config.LF          = 0;
                config.MT          = 0;
                config.MaxVolume   = 1.0f;
                config.PIterations = 1;
                config.PR          = 0;
                config.SKSplitCL   = 0.5f;
                config.SRSplitCL   = 0.5f;
                config.SSSplitCL   = 0.5f;
                config.Shr         = 1f;
                config.SkhrCL      = 1f;
                config.SrhrCL      = 0.1f;
                config.SshrCL      = 0.5f;
                config.Timescale   = 1;
                config.VC          = 0f;
                config.Vcf         = 1f;
                config.Viterations = 0;

                sBMaterial.LST = 1.0f;
                sBMaterial.AST = 1.0f;
                sBMaterial.VST = 1.0f;

                bframe           = false;
                fromFaces        = false;
                bvolume          = false;
                generateClusters = false;
                totalMass        = 0.01f;

                break;

            default:
                break;
            }
        }
Ejemplo n.º 3
0
        //TODO: lots! These presets need work.
        /// <summary>
        /// Reset and Configure SoftBody settings for some general preset values.  Can use as a starting point before optimization.
        /// </summary>
        /// <param name="preset"></param>
        public void ResetToSoftBodyPresets(SBSettingsPresets preset)
        {
            sBpresetSelect = preset;  //save last applied preset
            totalMass = 10f;
            scale = Vector3.one;
            fromFaces = true;
            bframe = true;
            bvolume = false;
            generateClusters = false;
            bendingConstraintDistance = 2;
            randomizeConstraints = true;
            config = new SBConfig();
            sBMaterial = new SBMaterial();

            switch (preset)
            {
                case SBSettingsPresets.Default:
                    //reset itself
                    break;
                case SBSettingsPresets.Cloth:
                    fromFaces = false;
                    bvolume = false;
                    bframe = false;
                    sBMaterial.LST = 0.5f;

                    break;
                case SBSettingsPresets.Rope:
                    config.PIterations = 20;
                    sBMaterial.LST = 0.5f;
                    bendingConstraintDistance = 0;
                    randomizeConstraints = false;
                    fromFaces = false;
                    bframe = false;
                    bvolume = false;

                    break;
                case SBSettingsPresets.ConvexHull:

                    break;

                case SBSettingsPresets.Pressurized:
                    sBMaterial.LST = 0.1f;
                    config.DF = 1;
                    config.DP = 0.001f; // fun factor...
                    config.PR = 2500;
                    fromFaces = true;
                    break;

                case SBSettingsPresets.Aerodynamic:
                    config.LF = 0.004f;
                    config.DG = 0.0003f;
                    config.aeroModel = AeroModel.VTwoSided;
                    break;
                case SBSettingsPresets.Volume:

                    sBMaterial.LST = 0.45f;
                    config.VC = 20;
                    totalMass = 50f;
                    fromFaces = true;
                    bvolume = true;
                    bframe = false;

                    break;
                case SBSettingsPresets.ShapeMatching:
                    sBMaterial.LST = 0.5f;
                    config.DF = 0.5f;
                    config.MT = 0.05f;
                    config.PIterations = 10;

                    randomizeConstraints = true;
                    totalMass = 100f;
                    fromFaces = true;
                    bvolume = false;
                    bframe = true;

                    break;

                case SBSettingsPresets.ropeStick:
                    config.Ahr = 0.7f;
                    config.CIterations = 4;
                    config.Chr = 0.1f;
                    config.DF = 0.2f;
                    config.DG = 0f;
                    config.DIterations = 0;
                    config.DP = 0.005f;
                    config.Khr = 0.1f;
                    config.LF = 0;
                    config.MT = 0;
                    config.MaxVolume = 1.0f;
                    config.PIterations = 1;
                    config.PR = 0;
                    config.SKSplitCL = 0.5f;
                    config.SRSplitCL = 0.5f;
                    config.SSSplitCL = 0.5f;
                    config.Shr = 1f;
                    config.SkhrCL = 1f;
                    config.SrhrCL = 0.1f;
                    config.SshrCL = 0.5f;
                    config.Timescale = 1;
                    config.VC = 0f;
                    config.Vcf = 1f;
                    config.Viterations = 0;

                    sBMaterial.LST = 1.0f;
                    sBMaterial.AST = 1.0f;
                    sBMaterial.VST = 1.0f;

                    bframe = false;
                    fromFaces = false;
                    bvolume = false;
                    generateClusters = false;
                    totalMass = 0.01f;

                    break;
                default:
                    break;
            }
        }
Ejemplo n.º 4
0
        //TODO: lots! These presets need work.
        /// <summary>
        /// Reset and Configure SoftBody settings for some general preset values.  Can use as a starting point before optimization.
        /// </summary>
        /// <param name="preset"></param>
        public void ResetToSoftBodyPresets(SBSettingsPresets preset)
        {
            sBpresetSelect = preset;  //save last applied preset
            totalMass = 10f;
            scale = Vector3.one;
            fromFaces = true;
            bframe = true;
            bvolume = false;
            generateClusters = false;
            bendingConstraintDistance = 2;
            randomizeConstraints = true;
            config = new SBConfig();
            sBMaterial = new SBMaterial();

            switch (preset)
            {
                case SBSettingsPresets.Default:
                    //reset itself
                    break;
                case SBSettingsPresets.Cloth:
                    fromFaces = false;
                    bvolume = false;
                    bframe = false;
                    sBMaterial.LinearStiffness = 0.5f;

                    break;
                case SBSettingsPresets.Rope:
                    config.PositionIterations = 20;
                    sBMaterial.LinearStiffness = 0.5f;
                    bendingConstraintDistance = 0;
                    randomizeConstraints = false;
                    fromFaces = false;
                    bframe = false;
                    bvolume = false;

                    break;
                case SBSettingsPresets.ConvexHull:

                    break;

                case SBSettingsPresets.Pressurized:
                    sBMaterial.LinearStiffness = 0.1f;
                    config.DynamicFriction = 1;
                    config.Damping = 0.001f; // fun factor...
                    config.Pressure = 2500;
                    fromFaces = true;
                    break;

                case SBSettingsPresets.Aerodynamic:
                    config.Lift = 0.004f;
                    config.Drag = 0.0003f;
                    config.aeroModel = AeroModel.VertexTwoSided;
                    break;
                case SBSettingsPresets.Volume:

                    sBMaterial.LinearStiffness = 0.45f;
                    config.VolumeConversation = 20;
                    totalMass = 50f;
                    fromFaces = true;
                    bvolume = true;
                    bframe = false;

                    break;
                case SBSettingsPresets.ShapeMatching:
                    sBMaterial.LinearStiffness = 0.5f;
                    config.DynamicFriction = 0.5f;
                    config.PoseMatching = 0.05f;
                    config.PositionIterations = 10;

                    randomizeConstraints = true;
                    totalMass = 100f;
                    fromFaces = true;
                    bvolume = false;
                    bframe = true;

                    break;

                case SBSettingsPresets.ropeStick:
                    config.AnchorHardness = 0.7f;
                    config.ClusterIterations = 4;
                    config.RigidContactHardness = 0.1f;
                    config.DynamicFriction = 0.2f;
                    config.Drag = 0f;
                    config.DriftIterations = 0;
                    config.Damping = 0.005f;
                    config.KineticContactHardness = 0.1f;
                    config.Lift = 0;
                    config.PoseMatching = 0;
                    config.MaxVolume = 1.0f;
                    config.PositionIterations = 1;
                    config.Pressure = 0;
                    config.SoftKineticImpulseSplit = 0.5f;
                    config.SoftRigidImpulseSplit = 0.5f;
                    config.SoftSoftImpulseSplit = 0.5f;
                    config.Shr = 1f;
                    config.SoftKineticHardness = 1f;
                    config.SoftRigidHardness = 0.1f;
                    config.SoftSoftHardness = 0.5f;
                    config.Timescale = 1;
                    config.VolumeConversation = 0f;
                    config.VelocityCorrectionFactor = 1f;
                    config.VelocityIterations = 0;

                    sBMaterial.LinearStiffness = 1.0f;
                    sBMaterial.AngularStiffness = 1.0f;
                    sBMaterial.VolumeStiffness = 1.0f;

                    bframe = false;
                    fromFaces = false;
                    bvolume = false;
                    generateClusters = false;
                    totalMass = 0.01f;

                    break;
                default:
                    break;
            }
        }