BENCHMARK: segmented vs skinned

I’m not a fan of benchmarks as they’re rarely real world but in my case I needed to know how to rig these particular object of which there will be a lot so I ran some tests.

Test:
400 object
418 polys
1 diffuse texture no light (1 call each object)

  • skinned: 4 bones 1 influence 1 merged geometry
  • segmented: 3 parts parented to the same bones
  • segmented NOBONE: 3 parts parented to each other
  • animation starts activated for 10 seconds, then goes dormant for 10 seconds then goes back active expect 3 fps values for each of the 3 rigs
    These ran compiled at Good quality 800x600 on intel quad core 2.6 + 5GB + Radeon x1900 … and paused a syslogd :slight_smile:

TEST1:
all parented to a static GO

  • skinned: 39 → 47 → 42
  • segmented: 37 → 57 → 40
  • segmented NOBONE: 43 → 62 → 46 **

all parented to a rotating GO

  • skinned: 30 → 32 → 32 **
  • segmented: 24 → 24 → 26
  • segmented NOBONE: 28 → 30 → 32

You can expand on this bench.

var thingToMultiply: Transform;
var number : int;
var rows:int;
var width: float;
var length : float;
var rotate : boolean;

function Start()
{
	for (var i = 0; i< number; i++)
	{
		var column = Mathf.Floor(i / rows);
		var instance = Instantiate ( thingToMultiply, transform.position + Vector3 (width*column,0,i%rows*length),Quaternion.identity);
		instance.parent = transform;
	}
	BroadcastMessage ("Debugging",null,SendMessageOptions.DontRequireReceiver);
}

function LateUpdate()
{
	if (rotate) transform.Rotate (0,100*Time.deltaTime,0);
}

[/quote]

Is it possible in your scenario to combine the miniature objects in the skinned case? Since they have joints attached, you might want to consider combining them.

I think that would be a more fair test, since that is where skinning really gets it’s advantages

it’s the case skinned are combined - i corrected the description to make that part clear.