在我的3D程序中,我计算,模型,视图和我在Vertex着色器中为OpenGL提供的投影矩阵:
for(auto const& _3Dpoint : model_->getPoints()) {
Vector3D projected = (projection_* cameraview_.inversedMultiplication(_3Dpoint.second->getPosition()));
projected.normalize();
renderText( projected[0] / projected[3],
projected[1] / projected[3],
projected[2] / projected[3],
_3Dpoint.second->getName());
}
考虑到我有一个点列表,我希望能够将这些点名称写在几何图形之外。因此,我有这段代码:
get_
我希望我的投影坐标以窗口坐标表示。但它实际上大约在[-7; 7],而且积极。这解释了我的规范化。出乎意料的是,这种方法很有效,直到我将旋转或平移应用到视图矩阵。然后我的观点的名字并没有真正贴上我的点的几何形状。我真的不明白这种行为,因为当我将变换应用到相机时,转换将应用于最终坐标......
有什么想法吗?