3D 点灯的小疑点

3D 点灯的小问题
“点灯”这个小游戏大家应该都知道,不知道的请百度 

游戏开始的时候,所有的“灯”都排列在一个平面上(XOY)上,然后通过在空间中移动的摄象机可以*变换视角。现在的问题就是鼠标选取“灯”的问题 

现在我们有2个思路: 
1、用碰撞检测来确定鼠标选取的是哪一个具体的灯。具体的说,摄象机所在的球的切平面就是屏幕,在屏幕上鼠标所在的位置、以平面的法向量为方向,发射一条射线。如果和灯碰撞,则改变灯的状态。 

2、将灯投影到屏幕上。用投影公式将灯投影到屏幕上,组成一个由多个矩形所组成的图形。如果鼠标点击这个投影则改变灯的状态。 

哪个思路对于这个游戏更好?又如何具体用这个思路实现这个鼠标选取? 

小弟新手,请各位老鸟指点。请加我QQ,我有一大堆问题。在此先谢谢大家 

QQ 229094498

------解决方案--------------------
第二个没看太明白, 但是我觉得应该用第一个方法。




http://slash-directx.blogspot.com/
------解决方案--------------------
使用OPENGL的picking就可以搞定了吧,直接返回鼠标所选取的灯