marijnz / NativeOctree

An Octree Native Collection for Unity DOTS
MIT License
180 stars 22 forks source link

Element not found by the query (issue with precision?) #6

Open VergilUa opened 3 years ago

VergilUa commented 3 years ago

Found another edge case, for the query that tries to fetch element placed directly at center of bounds.

Here's a visualization: image where red wire cube - tree bounds, yellow - test bounds, and blue ray is element pos + vector3.up * 20;

(visualization code): https://gist.github.com/VergilUa/b4d36a9ad77a6ed2b4d7eb859f4db799

Element count is always zero here: https://github.com/marijnz/NativeOctree/blob/master/Assets/NativeOctreeRangeQuery.cs#L61

Debugging lookup write (incremented) / read (accessed) memory addr offset shows this: image

Which means bounds been checked / considered to be in the incorrect partition? Any ideas?

Here's a test code for quicker repro: https://gist.github.com/VergilUa/fbaba1b4b560bc220fa40815300b6905

marijnz commented 3 years ago

Good Test.

My first hunch was a mistake here: https://github.com/marijnz/NativeOctree/blob/master/Assets/NativeOctree.cs#L123

and otherwise here: https://github.com/marijnz/NativeOctree/blob/master/Assets/NativeOctreeRangeQuery.cs#L94 but that seems correct..