Search Unity

Is Renderer.localToWorldMatrix wrong, if object was set a scale?

Discussion in 'Shaders' started by L-lee, Aug 11, 2020.

  1. L-lee

    L-lee

    Joined:
    Dec 11, 2019
    Posts:
    3
    I need draw something by CommandBuffer.DrawProcedural, and I set parameters according to document. Everything was great until object was set a scale. Some shapes were drawn in wrong position, and some shapes were drawn in correct position. If I set their parent's scale to (1, 1, 1), everything is ok!
    So I need draw correctly for everything. Have any resolvent?

    Code (CSharp):
    1. var render = GetComponent<Renderer>();
    2. command.DrawProcedural(render.localToWorldMatrix, drawMaterial, 0, MeshTopology.Points, degradedQuadsBuffer.count);
    Snipaste_2020-08-11_20-17-56.png
    Snipaste_2020-08-11_20-00-01.png
     
  2. L-lee

    L-lee

    Joined:
    Dec 11, 2019
    Posts:
    3
    I use SkinnedMeshRenderer.BakeMesh to get dynamic mesh data. Maybe SkinnedMeshRenderer.BakeMesh make it wrong?
     
  3. L-lee

    L-lee

    Joined:
    Dec 11, 2019
    Posts:
    3
    OK, I find the problem is SkinnedMeshRenderer.BakeMesh. It will bake mesh with scale, so I must find method to solve it.