Description:
Expected Behavior:
Moving, appearing, or disappearing objects should trigger optimized shadow recalculations without significant FPS drops. Player movement should not cause excessive shadow draws.
Actual Behavior:
When any object moves (e.g., doors, wheels, or parts), shadows undergo intensive recalculations, spiking draw counts to 5,000–6,000 (≈1B triangles) and halving FPS. This occurs even during trivial movements (e.g., resizing parts in Studio) and persists for 3+ seconds per object. Notably, avatar movement only causes 200–300 draws, demonstrating optimization feasibility.
Where It Occurs:
In-game: All moving objects (scripted/animated parts, physics-based parts).
Roblox Studio: Object manipulation via tools/scripts, or even hovering the mouse in the viewport.
Examples:
- Our game: Wheel of Fortune script caused 6K draws; a single rotating part consumed 6K draw counts.
- Popular games like Doors: Draws spike to 1,500, capping FPS at 120.
Reproducible in minimal scenes (see attached file).
shadowsPlace.rbxl (938.4 KB)
When It Occurs:
First observed during map scripting phase (Summer 2025, July/August).
Triggers 100% of the time on object movement/appearance (requires a scene with lighting/geometry for clear observation).
Reproduction Steps:
1 - Open Roblox Studio and create new place (basic settings: Realistic (Future) graphics its all).
2 - Insert 16+ PointLight objects (with shadows = true) and 50+ assets (e.g., PBR boxes, shelves, barrels, or other geometry).
3 - Create a physics/script-driven movable part within a lit area.
4 - Press Shift + Ctrl + F2 and navigate to Draw Counts > Shadows.
Observe: Shadow draws spike to 800–1,000+ (test-dependent), causing 30–40% FPS drops (up to 100% in complex scenes).