x


Physic Material Friction Combine Mode lack of documentation?

Tested stuff:

There were 2 objects with different Physic Materials: A, B

A moved on B acting as ground

In each case only!! the Friction Combine Mode was changed

FCM - Friction Combine Mode

DST - distance travelled over time T

The combine modes in order(the numbers between the parentheseses below correspond to these):

  1. Average
  2. Multiply
  3. Minimum
  4. Maximum

  1. A.FCM = Multiply(2); B.FCM = Multiply(2) | DST = DST1
  2. A.FCM = Average(1); B.FCM = Multiply(2) | DST = DST1
  3. A.FCM = Multiply(2); B.FCM = Average(1) | DST = DST1
  4. A.FCM = Average(1); B.FCM = Average(1) | DST = DST2

    // DST changed => Multiply(2) overwrote Average(1) in case 2. and 3.

  5. A.FCM = Minimum(3); B.FCM = Multiply(2) | DST = DST3

    // DST changed => Minimum(3) overwrote Multiply(2)

  6. A.FCM = Multiply(2); B.FCM = Minimum(3) | DST = DST3
  7. A.FCM = Minimum(3); B.FCM = Minimum(3) | DST = DST3

I sincerely think I'm right that the cause is the combine modes' order where later ones have higher priority and thus overwrite the ones with lower priority and the friction value used as the friction value for the friction between the 2 colliding objects is determined by this single combine mode.

My problem is that I haven't heard anyone mention this and the bigger problem is that even now after a quick(too quick) googling I didn't find any mention of this.

To make it so that noone may say that this should've gone to the forum instead let me make a few simple questions out of all this.

Am I right? Why haven't I found any mention of this phenomenon? Should one know this off the cuff?

more ▼

asked Oct 08 '10 at 05:38 PM

matyicsapo gravatar image

matyicsapo
659 12 15 27

This isn't anything that would be sent to the forum because it's asking about a specific Unity implementation rather than a subjective opinions about something. Wouldn't it just be simpler to ask "How does the Physic Material Friction Combine Mode work?" and then simply elaborated on your experiment and question?

Oct 08 '10 at 05:58 PM skovacs1

well yeah you're right - thanks, really; hopefully next time I won't forget this part

Oct 08 '10 at 06:05 PM matyicsapo
(comments are locked)
10|3000 characters needed characters left

1 answer: sort voted first

This is undocumented functionality.

From my tests, the friction combine mode used uses the largest PhysicMaterialCombine in the PhysicMaterialCombine enumeration of the two materials.

The enumeration is something like:

enum PhysicMaterialCombine {
    Average = 0,
    Multiply = 1,
    Minumum = 2,
    Maximum = 3
};

and the combination function for let's say dynamic friction would be something like:

var dynamicFriction : float = object1.collider.material.dynamicFriction;
switch((PhysicMaterialCombine)
        Mathf.Max(object1.collider.material.frictionCombine,
                 object2.collider.material.frictionCombine)) {
    case PhysicMaterialCombine.Average:
        dynamicFriction += object2.collider.material.dynamicFriction;
        dynamicFriction /= 2.0;
        break;
    case PhysicMaterialCombine.Multiply:
        dynamicFriction *= object2.collider.material.dynamicFriction;
        break;
    case PhysicMaterialCombine.Minumum:
        dynamicFriction = Mathf.Min(dynamicFriction,
                                    object2.collider.material.dynamicFriction);
        break;
    case PhysicMaterialCombine.Maximum:
        dynamicFriction = Mathf.Max(dynamicFriction,
                                    object2.collider.material.dynamicFriction);
        break;
}

I believe it is also the same for the bounceCombine.

more ▼

answered Oct 08 '10 at 06:28 PM

skovacs1 gravatar image

skovacs1
10k 11 25 91

now that's very clear :D, thanks

Oct 08 '10 at 06:36 PM matyicsapo
(comments are locked)
10|3000 characters needed characters left
Your answer
toggle preview:

Up to 2 attachments (including images) can be used with a maximum of 524.3 kB each and 1.0 MB total.

Follow this question

By Email:

Once you sign in you will be able to subscribe for any updates here

By RSS:

Answers

Answers and Comments

Topics:

x1879
x64
x58
x21
x18

asked: Oct 08 '10 at 05:38 PM

Seen: 1333 times

Last Updated: Oct 08 '10 at 05:38 PM