0

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

伙计们,这不是关于挑选,而是关于在多个不同块的不平坦表面上渲染一个矩形。类似于《魔兽争霸 3:世界》编辑器中网格的渲染方式! http://press2reset.com/wp-content/uploads/2012/02/Warcraft3WorldEditorScreen.jpg

4

1 回答 1

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;

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

于 2013-07-30T20:45:31.227 回答