Open connorgmeehan opened 4 months ago
https://github.com/aevyrie/bevy_mod_raycast/pull/103#issuecomment-1975386832
I found this PR + proposed solution but it's not working for my mesh where both vertices start with the same index. If I use mesh.duplicate_vertices()
I can get attribute data but it'd be nice if I didn't have to.
Here's the index field for reference, the mesh is a simple rectangle generated through lyon_tesselation
so changing the way meshes generate is a much bigger task.
values: Float32x3([[100.0, -25.0, 0.0], [100.0, 25.0, 0.0], [0.0, -25.0, 0.0], [0.0, 25.0, 0.0]])
indices: Some(U32([3, 2, 0, 3, 0, 1]))
Let me know thoughts on solution and if you want me to PR :)
Hi @connorgmeehan
Maybe I'm just too dense but I'm still struggling with the same issue.
I have never found out how to access the other two vertex indices in an indexed mesh. The field is called triangle_index
but in fact only contains the first vertex_index and there seems to be no information about which triangle the vertex belongs to (could be multiple).
I'm still using my fork and have updated to Bevy 0.14 now. In case you want to use it:
bevy_mod_raycast = { git = "https://github.com/brookman/bevy_mod_raycast", rev = "2be456f65c0737ce41b43b4756f0c05f4a1856a0" }
Description
When raycasting against and indexed mesh I am unable to differentiate between two vertices when both vertices start at the same index. I'm trying to use
triangle_index
to lookup some attribute data but it looks like, for indexed meshes,triangle_index
contains the index after its already been mapped meaning I can't derive the index of the other verts in the tri.Extra, problem specific, details in case the context is helpful.
Solution?
Not 100% certain but it seems like the solution is we'll need to return all 3 triangle indices as
[usize; 3]
, growing the struct by 2usize
. I'm happy to PR if this is suitable but I worry I might be missing something as well. Can you let me know your thoughts? And thank you for maintaining this great library :)