用Minecraft-clone游戏自学3d编程.我有一个无限的地图,装在16x16x64块的块中.
当玩家(相机)四处走动时,相机的中心(游戏光标)指向一个区块.我正在试图弄清楚如何确定用户指向的块.
我有一个带有三维坐标,偏航,俯仰的相机,所以我知道用户在哪里看.
我已经尝试找到从该原点绘制的"线"上的坐标,但是没有考虑到相机指向块的边缘/角落的时间,系统将不知道.
我试过在线寻找例子,但我找不到任何有用的东西,一些例子,但它们非常错误并且记录不完整.
如何正确转换相机中心正在查看它正在查看哪个块/面的位置?
“我尝试找到从原点绘制的“线”上的坐标,但这并没有考虑到相机何时指向块的边缘/角落,系统不会知道。” ..“如何正确地将相机中心的观察位置转换为它正在观察的块/面?”
OpenGL 程序进行鼠标拾取的两种常见方式是颜色拾取或光线投射。听起来您正在尝试迭代块网格以获取有点不寻常的位置,或者想要执行诸如光线投射之类的操作。
光线投射完成from the camera -> through the mouse -> onto a plane on the screen -> map screen space to world space -> collide with scene
“我尝试在网上寻找示例,但没有找到任何有用的东西,虽然有一些示例,但它们的错误非常多,而且文档记录很少。”
这里有一些光线投射教程的链接,其中一个包含数学和图表,一个包含一些代码示例,另一个包含一些。
请注意,如果您发现任何较旧的 OpenGL 教程,他们可能会提到“选择模式”或“名称堆栈”,这些内容确实很旧,请勿使用它 - OpenGL wiki。
| 归档时间: |
|
| 查看次数: |
625 次 |
| 最近记录: |