(23-04-2021, 11:03 AM)josemendez Wrote: Hi there,
Setting the inverse mass to zero (that is, infinite mass) on a fluid would causes infinite pressure to be applied. Obi check for this and freezes the particle in place, it shouldn't crash though. Can you share the editor crash log?
The proper way to do this is to convert the particle to a granular before giving it infinite mass. See:
http://obi.virtualmethodstudio.com/forum...-2849.html
Thank you for your very quick reply, I appreciate it.
I'll share the Editor.log with you, it contains excerpts from just before and after the crash.
Quote:Converting invalid MinMaxAABB
UnityEngine.StackTraceUtility:ExtractStackTrace () (at /Users/bokken/buildslave/unity/build/Runtime/Export/Scripting/StackTrace.cs:37)
UnityEngine.Mesh:SetSizedArrayForChannel (UnityEngine.Rendering.VertexAttribute,UnityEngine.Rendering.VertexAttributeFormat,int,System.Array,int,int,int,UnityEngine.Rendering.MeshUpdateFlags) (at /Users/bokken/buildslave/unity/build/Runtime/Export/Graphics/Mesh.cs:71)
UnityEngine.Mesh:SetListForChannel<UnityEngine.Vector3> (UnityEngine.Rendering.VertexAttribute,System.Collections.Generic.List`1<UnityEngine.Vector3>,int,int,UnityEngine.Rendering.MeshUpdateFlags) (at /Users/bokken/buildslave/unity/build/Runtime/Export/Graphics/Mesh.cs:114)
UnityEngine.Mesh:SetVertices (System.Collections.Generic.List`1<UnityEngine.Vector3>,int,int,UnityEngine.Rendering.MeshUpdateFlags) (at /Users/bokken/buildslave/unity/build/Runtime/Export/Graphics/Mesh.cs:225)
UnityEngine.Mesh:SetVertices (System.Collections.Generic.List`1<UnityEngine.Vector3>,int,int) (at /Users/bokken/buildslave/unity/build/Runtime/Export/Graphics/Mesh.cs:220)
UnityEngine.Mesh:SetVertices (System.Collections.Generic.List`1<UnityEngine.Vector3>) (at /Users/bokken/buildslave/unity/build/Runtime/Export/Graphics/Mesh.cs:215)
Obi.ParticleImpostorRendering:Apply (UnityEngine.Mesh) (at Assets/Obi/Scripts/Common/Rendering/ParticleImpostorRendering.cs:39)
Obi.ParticleImpostorRendering:UpdateMeshes (Obi.IObiParticleCollection) (at Assets/Obi/Scripts/Common/Rendering/ParticleImpostorRendering.cs:150)
Obi.ObiParticleRendererrawParticles (Obi.ObiActor) (at Assets/Obi/Scripts/Common/Rendering/ObiParticleRenderer.cs:80)
Obi.ObiActor:Interpolate () (at Assets/Obi/Scripts/Common/Actors/ObiActor.cs:1189)
Obi.ObiSolver:Interpolate (single,single) (at Assets/Obi/Scripts/Common/Solver/ObiSolver.cs:1622)
Obi.ObiUpdater:Interpolate (single,single) (at Assets/Obi/Scripts/Common/Updaters/ObiUpdater.cs:110)
Obi.ObiFixedUpdater:Update () (at Assets/Obi/Scripts/Common/Updaters/ObiFixedUpdater.cs:62)
[Assets/Obi/Scripts/Common/Rendering/ParticleImpostorRendering.cs line 39]
Converting invalid MinMaxAABB
UnityEngine.StackTraceUtility:ExtractStackTrace () (at /Users/bokken/buildslave/unity/build/Runtime/Export/Scripting/StackTrace.cs:37)
UnityEngine.Mesh:SetTrianglesImpl (int,UnityEngine.Rendering.IndexFormat,System.Array,int,int,int,bool,int) (at /Users/bokken/buildslave/unity/build/Runtime/Export/Graphics/Mesh.cs:942)
UnityEngine.Mesh:SetTriangles (System.Collections.Generic.List`1<int>,int,int,int,bool,int) (at /Users/bokken/buildslave/unity/build/Runtime/Export/Graphics/Mesh.cs:1003)
UnityEngine.Mesh:SetTriangles (System.Collections.Generic.List`1<int>,int,bool,int) (at /Users/bokken/buildslave/unity/build/Runtime/Export/Graphics/Mesh.cs:997)
UnityEngine.Mesh:SetTriangles (System.Collections.Generic.List`1<int>,int,bool) (at /Users/bokken/buildslave/unity/build/Runtime/Export/Graphics/Mesh.cs:992)
Obi.ParticleImpostorRendering:Apply (UnityEngine.Mesh) (at Assets/Obi/Scripts/Common/Rendering/ParticleImpostorRendering.cs:45)
Obi.ParticleImpostorRendering:UpdateMeshes (Obi.IObiParticleCollection) (at Assets/Obi/Scripts/Common/Rendering/ParticleImpostorRendering.cs:150)
Obi.ObiParticleRendererrawParticles (Obi.ObiActor) (at Assets/Obi/Scripts/Common/Rendering/ObiParticleRenderer.cs:80)
Obi.ObiActor:Interpolate () (at Assets/Obi/Scripts/Common/Actors/ObiActor.cs:1189)
Obi.ObiSolver:Interpolate (single,single) (at Assets/Obi/Scripts/Common/Solver/ObiSolver.cs:1622)
Obi.ObiUpdater:Interpolate (single,single) (at Assets/Obi/Scripts/Common/Updaters/ObiUpdater.cs:110)
Obi.ObiFixedUpdater:Update () (at Assets/Obi/Scripts/Common/Updaters/ObiFixedUpdater.cs:62)
[Assets/Obi/Scripts/Common/Rendering/ParticleImpostorRendering.cs line 45]
Mesh 'Particle impostors': abnormal mesh bounds - most likely it has some invalid vertices (+/-inifinity or NANs) due to errors exporting.
Mesh bounds min=(nan, nan, nan), max=(nan, nan, nan). Please make sure the mesh is exported without any errors.
UnityEngine.StackTraceUtility:ExtractStackTrace () (at /Users/bokken/buildslave/unity/build/Runtime/Export/Scripting/StackTrace.cs:37)
UnityEditor.EditorGUIUtility:RenderPlayModeViewCamerasInternal (UnityEngine.RenderTexture,int,UnityEngine.Vector2,bool,bool)
UnityEditor.PlayModeView:RenderView (UnityEngine.Vector2,bool) (at /Users/bokken/buildslave/unity/build/Editor/Mono/PlayModeView/PlayModeView.cs:176)
UnityEditor.GameView:OnGUI () (at /Users/bokken/buildslave/unity/build/Editor/Mono/GameView/GameView.cs:859)
UnityEditor.HostView:InvokeOnGUI (UnityEngine.Rect,UnityEngine.Rect) (at /Users/bokken/buildslave/unity/build/Editor/Mono/HostView.cs:403)
UnityEditor.DockArearawView (UnityEngine.Rect,UnityEngine.Rect) (at /Users/bokken/buildslave/unity/build/Editor/Mono/GUI/DockArea.cs:382)
UnityEditor.DockArea:OldOnGUI () (at /Users/bokken/buildslave/unity/build/Editor/Mono/GUI/DockArea.cs:372)
UnityEngine.UIElements.IMGUIContaineroOnGUI (UnityEngine.Event,UnityEngine.Matrix4x4,UnityEngine.Rect,bool,UnityEngine.Rect,System.Action,bool) (at /Users/bokken/buildslave/unity/build/External/MirroredPackageSources/com.unity.ui/Core/IMGUIContainer.cs:333)
UnityEngine.UIElements.IMGUIContainer:HandleIMGUIEvent (UnityEngine.Event,UnityEngine.Matrix4x4,UnityEngine.Rect,System.Action,bool) (at /Users/bokken/buildslave/unity/build/External/MirroredPackageSources/com.unity.ui/Core/IMGUIContainer.cs:663)
UnityEngine.UIElements.IMGUIContaineroIMGUIRepaint () (at /Users/bokken/buildslave/unity/build/External/MirroredPackageSources/com.unity.ui/Core/IMGUIContainer.cs:530)
UnityEngine.UIElements.UIR.RenderChainCommand:ExecuteNonDrawMesh (UnityEngine.UIElements.UIR.DrawParams,single,System.Exception&) (at /Users/bokken/buildslave/unity/build/External/MirroredPackageSources/com.unity.ui/Core/Renderer/UIRenderer/UIRenderers.cs:114)
UnityEngine.UIElements.UIR.UIRenderDevice:EvaluateChain (UnityEngine.UIElements.UIR.RenderChainCommand,UnityEngine.Material,UnityEngine.Material,UnityEngine.Texture,UnityEngine.Texture,UnityEngine.Texture,single,Unity.Collections.NativeSlice`1<UnityEngine.UIElements.UIR.Transform3x4>,Unity.Collections.NativeSlice`1<UnityEngine.Vector4>,UnityEngine.MaterialPropertyBlock,bool,System.Exception&) (at /Users/bokken/buildslave/unity/build/External/MirroredPackageSources/com.unity.ui/Core/Renderer/UIRenderer/UIRenderDevice.cs:816)
UnityEngine.UIElements.UIR.RenderChain:Render () (at /Users/bokken/buildslave/unity/build/External/MirroredPackageSources/com.unity.ui/Core/Renderer/UIRChainBuilder.cs:490)
UnityEngine.UIElements.UIRRepaintUpdater:Update () (at /Users/bokken/buildslave/unity/build/External/MirroredPackageSources/com.unity.ui/Core/Renderer/UIRRepaintUpdater.cs:62)
UnityEngine.UIElements.VisualTreeUpdater:UpdateVisualTreePhase (UnityEngine.UIElements.VisualTreeUpdatePhase) (at /Users/bokken/buildslave/unity/build/External/MirroredPackageSources/com.unity.ui/Core/VisualTreeUpdater.cs:83)
UnityEngine.UIElements.Panel:UpdateForRepaint () (at /Users/bokken/buildslave/unity/build/External/MirroredPackageSources/com.unity.ui/Core/Panel.cs:829)
UnityEngine.UIElements.Panel:Repaint (UnityEngine.Event) (at /Users/bokken/buildslave/unity/build/External/MirroredPackageSources/com.unity.ui/Core/Panel.cs:865)
UnityEngine.UIElements.UIElementsUtilityoDispatch (UnityEngine.UIElements.BaseVisualElementPanel) (at /Users/bokken/buildslave/unity/build/External/MirroredPackageSources/com.unity.ui/Core/UIElementsUtility.cs:441)
UnityEngine.UIElements.UIElementsUtility:UnityEngine.UIElements.IUIElementsUtility.ProcessEvent (int,intptr,bool&) (at /Users/bokken/buildslave/unity/build/External/MirroredPackageSources/com.unity.ui/Core/UIElementsUtility.cs:209)
UnityEngine.UIElements.UIEventRegistrationrocessEvent (int,intptr) (at /Users/bokken/buildslave/unity/build/External/MirroredPackageSources/com.unity.ui/Core/UIElementsUtility.cs:74)
UnityEngine.UIElements.UIEventRegistration/<>c:<.cctor>b__1_2 (int,intptr) (at /Users/bokken/buildslave/unity/build/External/MirroredPackageSources/com.unity.ui/Core/UIElementsUtility.cs:28)
UnityEngine.GUIUtilityrocessEvent (int,intptr,bool&) (at /Users/bokken/buildslave/unity/build/Modules/IMGUI/GUIUtility.cs:189)
[/Users/bokken/buildslave/unity/build/Runtime/Export/Scripting/StackTrace.cs line 37]
I also tried converting the particles to granular, but the crash still occurred.
Code:
for (int i = 0; i < emitter.solverIndices.Length; ++i){
int solverIndex = emitter.solverIndices[i];
emitter.solver.phases[solverIndex] &= (int)(~Oni.ParticleFlags.Fluid);
emitter.solver.invMasses[solverIndex] = 0;
}