Play Solo: Motors can cause rendering bugs

This is a really odd bug, and has been present for 9 months (Contacted info@roblox, they said they’d forward; who knows what happened with that).

The parts can expand, defy Lighting, stretch; ect. But, they will still interact properly with Other parts. Dragging a model with these parts show’s their true form.

This bug was found by multiplying the default character’s offsets by 2 (Adding .1 also worked).
Merely generating 1s or 2s for the offsets caused this bug.

Making the C0/C1 simplifed (Just the Position), parts would not render at all.

Steps to repro:
[ol]
[li]Use Motors[/li]
[li]Set the C0/C1 in an absurd manner. (Could be at random).[/li]
[li]Use Play Solo (Or just “Play”)[/li]
[/ol]

How it should look (Server):
External Media

How it looks in local testing (Play solo):

Some of the original code is intact, but a few scripts were added to demonstrate the bug.

Characters use Motor6D, do they not?

All motors break. That has nothing to do with it, it’d be very odd if it had.

You are setting CFrame rotation matrices whose determinant is greater than 1.

That is not okay. Why are you doing this. What are you trying to do?

local RightShoulder = Instance.new("Motor")
RightShoulder.Name = "Right Shoulder"
RightShoulder.Part0 = Torso
RightShoulder.Part1 = Character["Right Arm"]
RightShoulder.C0 = CFrame.new(2, 1, 0, 0, 0, 2, 0, 2, -0, -2, 0, 0)
RightShoulder.C1 = CFrame.new(-1, 1, 0, 0, 0, 2, 0, 2, -0, -2, 0, 0)
RightShoulder.Parent = Torso

Never do this.

You are basically saying that

RightShoulder.C0 = CFrame.new(2, 1, 0, 0, 0, 2, 0, 2, -0, -2, 0, 0)
     [0, 0,  2]
R1 = [0, 2, -0]
     [-2, 0, 0]

is your rotation matrix, which has a determinant > 1. This causes reality to warp in creepy ways, enlarging your parts.

Rotation Matrices

I did note it was an old place, but good for future reference.

I had just multiplied the default offsets for players 9 months back when I was experimenting with larger characters, didn’t really think of the impact.

Also:

The reason we do check these Det of the matrix for you is because if we had to run a det math operation every time someone changed a CFrame, you would enjoy a lovely slow-motion game most of the time.

[quote] Also:

The reason we do check these Det of the matrix for you is because if we had to run a det math operation every time someone changed a CFrame, you would enjoy a lovely slow-motion game most of the time. [/quote]

Slow-motion games can be cool though :wink:

[size=2]However, that should be its own thread.[/size]