Can try this too, however I think this goes deeper...
I have applied a checker-texture to the base object and
scaled the UVs differently via per-instance parameter and code
Code:
if(Param *p=obj.findParam("TexScale")) texScale=p.asVec2();
mesh->texScale(texScale);
and all end up the same... But still different as if I do
Code:
if(Param *p=base->findParam("TexScale")) texScale=p.asVec2();
mesh->texScale(texScale);
which also makes all of them look the same, but exactly like they should
based on the parameters in the base object params.
I logged the output of each individual texScale. They are all different,
however they all still look identical as if they are set to the exact same parameter values,
but they aren't and in my mind they shouldn't.
EDIT: The first original problem seems solved.
It came down to a combination of things you mentioned.
I need to declutter the code first to get a better overview ...
but basically it came down to this:
Code:
_matrix = obj.matrixFinal().normalize();
_scaledMatrix = _matrix;
_scaledMatrix.scaleOrnL(scale);
actor.create(*phys, 1, scale);
actor.matrix(_scaledMatrix);
mesh->draw(_scaledMatrix);
Seems a bit convoluted, but seems to work.
Funny thing is when I draw actor.matrix() everything still is the same size,
but the collisions still are correct (individual sizes) with the solution above.
Not sure how that works, but hey.
And I think I will open up an extra thread for this UV-texture scaling-thing
when I can't find a solution for this tomorrow.