[gameprogrammer] Re: selection / picking on terrain geometry
- From: Josh Stewart <aek@xxxxxxxxx>
- To: gameprogrammer@xxxxxxxxxxxxx
- Date: Fri, 31 Mar 2006 00:18:39 +0800
I think that I will do this method with the ray/poly intersection test.
I will have to think of a way to limit the testing to only terrain
polygons that are actually visible in the window (the terrain isn't
split up so non visible terrain isnt being culled atm)
If I choose the method where I read the depth buffer and transform that
back to world coordinates, I think that I may have problems clicking on
the terrain if there is ever anything drawn over the top of it (trees,
particles, units), as the depth buffer only contains the last Z value
of the item closest to the camera.
Although maybe I can use some depth buffer hackery with
glDepthFunc(GL_GREATER), assuming the terrain is always the furthest
thing away, but that will surely mess with my rendering.
Just have to find a good ray / poly intersection test that returns the
point of intersection. My maths book has a sample from Graphics Gems I
... I do wonder if there are newer methods though.
Js
Simon Mihevc wrote:
You could do it by searching for an intersection betwen your terrain
and a ray. Get the ray by projecting the mouse coordinates onto 2
different z planes, which gives the starting point and the direction
vector for the ray. Then find the point on the terrain, that is
closest to the ray for various ray lengths.
Finding the point that is nearest to the ray is the problem here since
there are a lot of points and there's no time to check them all. A bit
of knowledge of linear algebra and algorithms helps here.
I must be working on a project because, thats right folks, I have
another question :)
:)
Assuming standard 3D RTS with 3D terrain and a 3rd person 45 degree
camera (fixed or not, I havent decided yet)
Using OpenGL selection / picking it seems that selection of units in
an RTS game, using a mouse, is relatively easy.
However I am having trouble figuring out the best way to click on a
point on the screen where there are no units, and have the game know
the point on the terrain, where the user clicked.
The terrain is 1 large piece of geometry that is generated from
heightmap and optimised. I cannot just give it a name as clicking
anywhere will just return the selection stack with the name of the
terrain.
How can I find the point on the terrain where I was directing my click.
An example might be selecting some units and then clicking on an
empty space to "move here"
Any help or suggestions, including further reading links to books or
sites that tackle the subject, is appreciated.
Thankyou
Josh Stewart
---------------------
To unsubscribe go to http://gameprogrammer.com/mailinglist.html
---------------------
To unsubscribe go to http://gameprogrammer.com/mailinglist.html
- References:
- [gameprogrammer] selection / picking on terrain geometry
- From: Josh Stewart
- [gameprogrammer] Re: selection / picking on terrain geometry
- From: Simon Mihevc
Other related posts:
- » [gameprogrammer] selection / picking on terrain geometry
- » [gameprogrammer] Re: selection / picking on terrain geometry
- » [gameprogrammer] Re: selection / picking on terrain geometry
- » [gameprogrammer] Re: selection / picking on terrain geometry
- » [gameprogrammer] Re: selection / picking on terrain geometry
- » [gameprogrammer] Re: selection / picking on terrain geometry
- » [gameprogrammer] Re: selection / picking on terrain geometry
- » [gameprogrammer] Re: selection / picking on terrain geometry
- » [gameprogrammer] Re: selection / picking on terrain geometry
Finding the point that is nearest to the ray is the problem here since there are a lot of points and there's no time to check them all. A bit of knowledge of linear algebra and algorithms helps here.
I must be working on a project because, thats right folks, I have another question :)
:)
Assuming standard 3D RTS with 3D terrain and a 3rd person 45 degree camera (fixed or not, I havent decided yet)
Using OpenGL selection / picking it seems that selection of units in an RTS game, using a mouse, is relatively easy.
However I am having trouble figuring out the best way to click on a point on the screen where there are no units, and have the game know the point on the terrain, where the user clicked.
The terrain is 1 large piece of geometry that is generated from heightmap and optimised. I cannot just give it a name as clicking anywhere will just return the selection stack with the name of the terrain.
How can I find the point on the terrain where I was directing my click.
An example might be selecting some units and then clicking on an empty space to "move here"
Any help or suggestions, including further reading links to books or sites that tackle the subject, is appreciated.
Thankyou
Josh Stewart
--------------------- To unsubscribe go to http://gameprogrammer.com/mailinglist.html
- [gameprogrammer] selection / picking on terrain geometry
- From: Josh Stewart
- [gameprogrammer] Re: selection / picking on terrain geometry
- From: Simon Mihevc