5 hours ago
(This post was last modified: 5 hours ago by josemendez.)
(6 hours ago)hariedo Wrote: While whittling down my test scene, I found that it occurs whenever all ropes are outside the camera's culling frustum. It stops as soon as any rope's bounds return to the camera's frustum.
This doesn't happen in the Obi sample scene "Crane" so I am still digging into which part of my setup may be causing it.
Yup. When the Solver's "Simulate When Invisible" is OFF, and your camera is aimed away from all ropes, the spam begins. Your "Crane" sample keeps this option ON, so by default it does not cause this issue. If you turn it OFF and rotate the main camera's Y value, your sample scene will generate the same errors.
Hi,
Could reproduce the issue, thanks for reporting it!
This is an issue with the Burst backend attempting to read solver bounds in a specific situation where they might not be ready yet. To fix it, open up ObiSolver.cs and in the first line of its UpdateVisibility() method (around line 2249 in the file) add this:
Code:
simulationHandle?.Complete();
Should look like this:
Code:
private void UpdateVisibility()
{
simulationHandle?.Complete(); //NEW
using (m_UpdateVisibilityPerfMarker.Auto())
{
using (m_GetSolverBoundsPerfMarker.Auto())
{
// get bounds in solver space:
Vector3 min = Vector3.zero, max = Vector3.zero;
implementation.GetBounds(ref min, ref max);
m_Bounds.SetMinMax(min, max);
}
This should ensure bounds are available before reading and fix the problem. Let me know how it goes!
kind regards,