Hello again,
Fortunately I have a friend who is good at 3D graphics and yesterday he
showed me a simple way to achieve what I was after.
First I had to determine the world coordinates of the camera (C), and of
the mouse on the near plane (M).
I kept the default gemwin settings, so the camera is located at C =
(0,0,4) and the mouse at M = (x,y,3) with x and y between -1 and 1 when
the gemwin is square.
We get the ray to cast by doing M - C and normalizing the resulting vector.
Then I used the technique described here :
https://www.scratchapixel.com/lessons/3d-basic-rendering/minimal-ray-tracer-rendering-simple-shapes/ray-sphere-intersection.html
This gets us all the spheres pointed at by the mouse.
Sorting the spheres by their respective distances to M, we then get the
closest one.
I didn't go further because this was all I needed.
I hope this might help someone in the future.
Cheers,
Joseph
Le 08/03/2025 à 15:43, Joseph Larralde a écrit :
Hello list,
I'm currently working on a Gem patch where I have a lot of sphere
primitives and I would like to identify the sphere that appears under
some particular Gemwin screen coordinates (aka raycasting).
I can't find an object that already does this calculation so I ended
up finding this SO answer explaining the raycasting principle
https://stackoverflow.com/a/19153090.
Still, I'm a bit lost and don't know where to start ... I found this
informative post for the 3D graphics noob that I am :
https://gamedev.stackexchange.com/a/178645
But I can't figure out how to apply this to Gem.
Any help would be greatly appreciated.
Best,
Joseph
---
[email protected] - the Pure Data mailinglist
https://lists.iem.at/hyperkitty/list/[email protected]/message/Q66NZGT4RA6NY3W5UFRUZIGOMXP3CE6B/
To unsubscribe send an email to [email protected] mailing list
UNSUBSCRIBE and account-management -> https://lists.iem.at/