高度检测 - OpenGL
我正在使用 openGL ES。我已经将一个球、天空盒和一小块地形加载到程序中。
地形在某些点会改变高度。 球在地形上滚动。
我的问题是:有什么办法可以知道球所在位置的地形高度是多少? (球的位置存储在可以使用的变量中)。是否有任何类型的 OpenGL ES 命令,甚至是我可以对此进行一些研究的 OpenGL 命令?
I am using openGL ES. I have loaded a ball, skybox, and a small patch of terrain into the program.
The terrain changes heights at certain points.
The ball rolls around the terrain.
My question is: is there any way I can tell what the height of the terrain is at the position of the ball? (The position of the ball is stored in a variable that can be used). Is there any sort of OpenGL ES command, or even an OpenGL command I can base some research of this into?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
OpenGL是一个渲染API,它只是将东西绘制到屏幕上,仅此而已。所以你不会自己去做诸如地形碰撞检测之类的事情。
如果您有纹理的高度图(例如,您绘制一个 xz 规则网格,其中 y 取自高度图)。您只需搜索球所在的单元格(或者更好的是球所在的两个三角形中的三角形)并插入相应的高度值即可获取球所在位置的地形高度。
OpenGL is a rendering API, it just draws things onto the screen, nothing more. So you won't get around doing such things like terrain collision detection and the like yourself.
If you got a heightmap for the texture (e.g. you draw a x-z regular grid with the y taken from a heightmap). You can just search for the cell your ball is in (or better the triangle the ball is in of the two triangles) and interpolate the corresponding height values to get the height of the terrain at the ball's position.
您是否使用高度图来制作地形?如果是的话,这应该会有所帮助:
我们需要将单个数组视为二维数组。我们可以使用等式:index = (x + (y * arrayWidth) )。假设我们将其可视化为: pHeightMap[x][y],否则相反: (y + (x * arrayWidth) )。
现在我们有了正确的索引,我们将返回该索引处的高度(数组中 x、y 处的数据)。
..
http://nehe.gamedev.net/tutorial/beautiful_landscapes_by_means_of_height_mapping/16006/
Are you using a height map to make the terrain? If you are, this should help:
We need to treat the single array like a 2D array. We can use the equation: index = (x + (y * arrayWidth) ). This is assuming we are visualizing it like: pHeightMap[x][y], otherwise it's the opposite: (y + (x * arrayWidth) ).
Now that we have the correct index, we will return the height at that index (data at x, y in our array).
..
http://nehe.gamedev.net/tutorial/beautiful_landscapes_by_means_of_height_mapping/16006/