如何将形状投影到环境/ VBO上?

时间:2013-07-30 17:14:11

标签: java opengl lwjgl

我正在制作一个实时策略游戏,我需要在基于立体体素的地形上绘制选择矩形,我该怎么做?我知道有些RTS只是简单地使用简单的2d / hud / gui / on screen方法,但我真的很喜欢魔兽争霸3在地形上的表现。

大家,这不是关于采摘,这是关于在多个不同块的不平坦表面上渲染矩形。类似于魔兽争霸3:世界编辑器中的网格呈现方式! http://press2reset.com/wp-content/uploads/2012/02/Warcraft3WorldEditorScreen.jpg

1 个答案:

答案 0 :(得分:0)

听起来您想要找到所选3d空间的屏幕空间。

如果是这种情况,则“拣选”将找到您点击的3d点,然后执行正常MVP * pickedPoint进入剪辑空间,除以w,最后乘以窗口宽度和身高,即:

vec4 clipSpacePt = ModelviewProjection * pickedPoint
clipSpacePt.xyz /= clipSpacePt.w;

vec2 windowSpacePt;
windowSpacePt.x = clipSpacePt.x * windowWidth;
windowSpacePt.y = clipSpacePt.y * windowHeight;

为第一个拾取点以及光标所在的位置执行此操作以获取“投影选择矩形”。