Re: raycasting with Gem
Joseph Larralde <[email protected]>
| Newsgroups | gmane.comp.multimedia.puredata.general |
|---|---|
| Message-ID | <[email protected]> |
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/