Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Help  Chain Renderer with Burst can not use Point Light
#1
I updated to Obi 7 and Chain Renderer no longer accepts forward_add passes for Point Light, Spot Light, etc.
The render is built-in and the Solver is Burst.

There seems to be a problem with Graphics.RenderMeshInstanced() used in BurstChainRopeRenderSystem.cs but I don't know what to do.
Reply
#2
(22-08-2024, 08:11 AM)asimofu_ok Wrote: I updated to Obi 7 and Chain Renderer no longer accepts forward_add passes for Point Light, Spot Light, etc.
The render is built-in and the Solver is Burst.

There seems to be a problem with Graphics.RenderMeshInstanced() used in BurstChainRopeRenderSystem.cs but I don't know what to do.

Hi,

This is a bug in Unity. Mesh instances in the built-in render pipeline don't render any extra lighting passes when using the forward rendering path: they only perform the main forward pass (ForwardBase), and hence are only lit by the main directional light. No ForwardAdd passes are performed.

The solution is to switch to the deferred rendering path, or to another pipeline (both URP and HDRP behave correctly in this case).

See this related thread: http://obi.virtualmethodstudio.com/forum...-4312.html
Also see: https://discussions.unity.com/t/how-to-u...ing/717600

Notably, when using Graphics.DrawMeshInstancedIndirect additional passes do seem to work. Unfortunately we can't use the indirect version for our purposes.

kind regards,
Reply
#3
(22-08-2024, 08:52 AM)josemendez Wrote: Hi,

This is a bug in Unity. Mesh instances in the built-in render pipeline don't render any extra lighting passes when using the forward rendering path: they only perform the main forward pass (ForwardBase), and hence are only lit by the main directional light. No ForwardAdd passes are performed.

The solution is to switch to the deferred rendering path, or to another pipeline (both URP and HDRP behave correctly in this case).

See this related thread: http://obi.virtualmethodstudio.com/forum...-4312.html
Also see: https://discussions.unity.com/t/how-to-u...ing/717600

Notably, when using Graphics.DrawMeshInstancedIndirect additional passes do seem to work. Unfortunately we can't use the indirect version for our purposes.

kind regards,
I see.
I will try to use GPU mode instead.
Thank you for replying.
Reply
#4
Excuse me, this may be a bug.

I drew an ObiRope using the sample ProceduralInstanced shader in GPU mode, but when I enter playback mode, the rope is drawn for a moment and then disappears immediately after.
I wrote my own shader that uses UnityIndirect.cginc and it disappeared just as quickly.

The game I am working on now uses custom lighting and I cannot change the rendering or pipeline now.
The only way to use ObiRope is to use GPU mode. What should I do?
Reply
#5
(27-08-2024, 10:35 AM)asimofu_ok Wrote: Excuse me, this may be a bug.

I drew an ObiRope using the sample ProceduralInstanced shader in GPU mode, but when I enter playback mode, the rope is drawn for a moment and then disappears immediately after.
I wrote my own shader that uses UnityIndirect.cginc and it disappeared just as quickly.

The game I am working on now uses custom lighting and I cannot change the rendering or pipeline now.
The only way to use ObiRope is to use GPU mode. What should I do?

Hi,

Could you try disabling aerodynamic constraints on the ObiRope component? I know it sounds unrelated, but we recently patched a bug that caused ropes to disappear in the GPU backend when having aerodynamic constraints enabled and rope elements of length zero. This is patched in the latest available version (7.0.2).

If that doesn't fix it, would it be possible for you to share more details about this (Unity version, graphics API, etc)? Just tried using the ProceduralInstancing shader and it works fine for us.

kind regards,
Reply
#6
(27-08-2024, 10:43 AM)josemendez Wrote: Hi,

Could you try disabling aerodynamic constraints on the ObiRope component? I know it sounds unrelated, but we recently patched a bug that caused ropes to disappear in the GPU backend when having aerodynamic constraints enabled and rope elements of length zero. This is patched in the latest available version (7.0.2).

If that doesn't fix it, would it be possible for you to share more details about this (Unity version, graphics API, etc)? Just tried using the ProceduralInstancing shader and it works fine for us.

kind regards,
Oops!
It seems that a script in my game was disabling the solver on its own. I fixed the script and it now displays correctly.

Sorry for the trouble.
Reply
#7
(27-08-2024, 11:09 AM)asimofu_ok Wrote: Oops!
It seems that a script in my game was disabling the solver on its own. I fixed the script and it now displays correctly.

Sorry for the trouble.

No problem! let me know if you need any help. Sonrisa
Reply