Glncene鼠标指向TGLHeightField

时间:2011-04-09 08:32:07

标签: delphi opengl fpc glscene

我有一个带有TGLHeightField的GLScene,它的点从OnGetHeight加载。

我正在尝试解决的问题是鼠标在鼠标移动事件中当前在HeightField上的3d点。

HeightField上的高度(y)实际上不仅仅是飞机上的点(x,z)

我试过GLSceneViewer1.Buffer.OrthoScreenToWorld(x, y),但这只是相机平面上的一个点。

1 个答案:

答案 0 :(得分:4)

查看hfpick演示(在Demos \ Interface中)。它演示了如何使用PixelRayToWorld执行此操作。

基本上,你所做的是:

var
   v: TAffineVector;

...
      v := GLSceneViewer.Buffer.PixelRayToWorld(x, y)
      v := HeightField.AbsoluteToLocal(v);