Opengl es 高度检测-OpenGL

Opengl es 高度检测-OpenGL,opengl-es,height,position,Opengl Es,Height,Position,我正在使用OpenGLES。我已经在程序中加载了一个球、skybox和一小块地形 地形在某些点上会改变高度。 球在地形上滚动 我的问题是:有没有办法告诉我球所在位置的地形高度?(球的位置存储在可使用的变量中)。是否有任何类型的OpenGL ES命令,或者甚至是OpenGL命令,我可以对此进行一些研究?您是否使用高度贴图来绘制地形?如果是,这将有助于: int Height(BYTE *pHeightMap, int X, int Y) // This Returns The H

我正在使用OpenGLES。我已经在程序中加载了一个球、skybox和一小块地形

地形在某些点上会改变高度。 球在地形上滚动


我的问题是:有没有办法告诉我球所在位置的地形高度?(球的位置存储在可使用的变量中)。是否有任何类型的OpenGL ES命令,或者甚至是OpenGL命令,我可以对此进行一些研究?

您是否使用高度贴图来绘制地形?如果是,这将有助于:

int Height(BYTE *pHeightMap, int X, int Y)          // This Returns The Height From A Height Map Index
{
    int x = X % MAP_SIZE;                   // Error Check Our x Value
    int y = Y % MAP_SIZE;                   // Error Check Our y Value

    if(!pHeightMap) return 0;               // Make Sure Our Data Is Valid
    return pHeightMap[x + (y * MAP_SIZE)];  // Index Into Our Height Array And Return The Height

}
我们需要将单个数组视为二维数组。我们可以使用以下等式:index=(x+(y*arrayWidth))。这是假设我们将其可视化为:pHeightMap[x][y],否则它是相反的:(y+(x*arrayWidth))

现在我们有了正确的索引,我们将返回该索引处的高度(数组中x,y处的数据)

。。

您是否使用高度地图绘制地形?如果是,这将有助于:

int Height(BYTE *pHeightMap, int X, int Y)          // This Returns The Height From A Height Map Index
{
    int x = X % MAP_SIZE;                   // Error Check Our x Value
    int y = Y % MAP_SIZE;                   // Error Check Our y Value

    if(!pHeightMap) return 0;               // Make Sure Our Data Is Valid
    return pHeightMap[x + (y * MAP_SIZE)];  // Index Into Our Height Array And Return The Height

}
我们需要将单个数组视为二维数组。我们可以使用以下等式:index=(x+(y*arrayWidth))。这是假设我们将其可视化为:pHeightMap[x][y],否则它是相反的:(y+(x*arrayWidth))

现在我们有了正确的索引,我们将返回该索引处的高度(数组中x,y处的数据)

。。
OpenGL是一个渲染API,它只在屏幕上绘制东西,仅此而已。所以你不会到处做地形碰撞检测之类的事情


如果获得纹理的高度贴图(例如,使用从高度贴图中获取的y绘制x-z规则栅格)。您只需搜索球所在的单元格(最好是两个三角形中球所在的三角形),然后插值相应的高度值,以获得球所在位置的地形高度。

OpenGL是一个渲染API,它只在屏幕上绘制东西,仅此而已。所以你不会到处做地形碰撞检测之类的事情


如果获得纹理的高度贴图(例如,使用从高度贴图中获取的y绘制x-z规则栅格)。您只需搜索球所在的单元格(最好是两个三角形中球所在的三角形)并插值相应的高度值,即可获得球所在位置的地形高度。

谢谢,高度贴图正是我需要的:)谢谢,高度贴图正是我需要的:)