Open putgeminmouth opened 2 years ago
Can you reproduce this after switching the 3D physics engine to GodotPhysics in the Project Settings?
Can you reproduce this after switching the 3D physics engine to GodotPhysics in the Project Settings?
Yes, using any of GodotPhysics, Default, Bullet all produce identical behaviour.
In the minimal reproduction project modified to use Godot Physics, this continue
statement in cull_segment
of the BVH
is being triggered twice (i.e. all the time) in the own_world = true
case (compared to just once when own_world = false
).
Perhaps @lawnjelly can interpret what's going on there.
is being triggered twice (i.e. all the time) in the
own_world = true
case (compared to just once whenown_world = false
).Perhaps @lawnjelly can interpret what's going on there.
If the root node is NULL for all the trees, then it is likely there are no entries in the physics for the world that is being tested, there are essentially no objects to test against.
Godot version
v3.4.stable.mono.official [206ba70f4]
System information
macOS Catalina 10.15.7 (19h15), MacBook Air (Retina, 13-inch, 2020), 1.1 GHz Dual-Core Intel Core i3, 8 GB 3733 MHz LPDDR4X, Intel Iris Plus Graphics 1536 MB
Issue description
Hi,
I am trying to intersect a ray in a viewport that is not the root viewport but it never detects a collision.
My assumption is that if I create a viewport and set its
world
/own_world
(in order to isolate its children from those of other viewports) that I should be able to cast a ray via a camera of that scene and detect collisions with children of that viewport.I've done some sanity testing to ensure I can get a vanilla setup to work but as soon as I introduce an
own_world
to the viewport nothing works.Am I missing / misunderstanding something?
Steps To Reproduce
Attached minimal repro project has a slowly spinning cylider and displays the result of a ray intersection using the mouse coordinates in an on-screen label each frame. Visible collision shapes is enabled for testing.
There is a boolean
var demo_issue = false
that toggles between showing the simple case that works (to show that the minimal repro code is generally valid) and the scenario I expect to work but does not.Sanity check that works (demo_issue = false):
Example that does not work as expected (demo_issue = true):
Minimal reproduction project
62474.zip