Unity Community


Results 1 to 5 of 5

  1. Location
    Paris
    Posts
    3,730

    Negative X scaling = nearly half the fps

    Hello,

    I have to make a feature where a full skinned Mesh can be mirrored in X axis.
    But I'm witnessing a severe perf loss when I use this localScale(-1, 1, 1), jumping from 17 ms average frametime to 24 ms ...
    The skinned mesh has 2 box colliders / rigid bodies attached to it.

    I just set that X axis inversion once, do nothing else, and then bam the Fps goes down as long as it is -1. When I switch scale back to 1, everything returns to nice Fps.

    Profiler says that the CPU is the cause of slowing down the overall.

    Is there a way not to have perf loss ?

    Thank you

  2. Volunteer Moderator



    Location
    Copenhagen
    Posts
    5,297
    Create the mirrorred character in your 3d app and freeze the transformations.


  3. Location
    Paris
    Posts
    3,730
    Quote Originally Posted by aNTeNNa trEE
    Create the mirrorred character in your 3d app and freeze the transformations.
    Thanks, so this means that perf loss is how things work, and that there is no way not to avoid them ?

    Jeez ... my FBX size will be huge


  4. Location
    Paris
    Posts
    3,730
    Hello again, one thing I can't understand : why is this negative scaling much more CPU consuming than other transforms ?

  5. Director for Support



    Location
    Unity HQ/UK
    Posts
    1,383
    Guys,

    If you are comparing a negative scale to no scale at all (I guess I mean the identity scale) then it is possible that you are asking the CPU to do some work to perform the scale. If an object is not being scaled I imagine it is sent down some fast path submission.

    Your scale is non-uniform (only affects the x-component of each vertex) and non-uniform scales really mess with matrix operations. Translation and rotation both preserve the shape of an object. Uniform scales do too, but non-uniform scales stretch geometry. Imagine a scale of (2, 1, 1). This ability to mess with the shape of an object is what causes non-uniform scales to require some slower submission path. You might say that a scale of (-1,1,1) is not messing with the shape of your object, but in fact it is turning your object inside out.

    Glad you are finding the profiler helpful!

    Regards,
    Graham

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •