godotengine / godotengine/godot
RemoteTransform3D will drift scale very slowly when "Update Scale" is _unchecked_.
- Dominant language
- C++
- Stars
- 117k
- Forks
- 26.8k
- PR merge metrics
- PR metrics pending
Description
### Tested versions
4.5 & 4.6
### System information
Godot v4.6.stable - Windows 11 (build 26100) - Multi-window, 2 monitors - Vulkan (Forward+) - dedicated NVIDIA GeForce RTX 4090 (NVIDIA; 32.0.15.7216) - 13th Gen Intel(R) Core(TM) i9-13900K (32 threads) - 63.78 GiB memory
### Issue description
I have RemoteTransform3D nodes attached to a Skeleton with animations on it. The animations make lots of small rotations in a loop. It has "Update Global", "Update Position" and importantly, "Update Remote" checked while "Update Scale" is _unchecked_.
The object RemoteTransform3D is updating will very slowly drift its scale away from [1,1,1] over time due to very small floating point precision error accumulation from the rotation-without-scale.
### Steps to reproduce
Create a remote transform that rotates a cube without updating scale.
Results:
- Over about 5-10 minutes you will see very small errors accumulate on the target object:
Expectation: the target objects scale should remain fixed over time.
This will eventually trigger endless error warnings in the console from Jolt if the target object is a collision object or contains a collision object. Each axis will drift ever so slightly and when they are far enough off the error check will start logging.
### Minimal reproduction project (MRP)
N/A
Contributor guide
Research direction
Start with the RemoteTransform3D implementation and reproduce the reported rotating-cube setup with Update Scale unchecked, as described in the issue. No source file, test, or minimal reproduction project is provided; done means the target scale remains fixed during prolonged rotation and the reported downstream warnings no longer occur.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- cpp, godot
- Domain
- computer-graphics, game-dev
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100