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/
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.