Ok, after playing around with GLSceneViewer I figured out how to do it: instead of drawing lines on onRender event of GLDirectOpenGL1, you should draw lines on PostRender event of a necessary GLSceneViewer, so code should look like that: procedure TForm1.GLSceneViewerL(Sender: TObject); var glc : TGLCanvas; begin glc:=TGLCanvas.Create(GLSceneViewerL.Width, GLSceneViewerL.Height); with...
gluProject from the glu library is usually used to perform this function. http://www.opengl.org/sdk/docs/man2/xhtml/gluProject.xml I am unfamiliar with glScene, but it appears that gluProject is used in TGLSceneBuffer.WorldToScreen(const aPoint : TAffineVector) : TAffineVector;. This should do what you want....