概述:
我正在尝试创建一个与此类似的3D应用程序:
www.youtube.com/watch?v=h9kPI7_vhAU.
我使用的是OpenCV2.2、Python2.7和pyOpenGL。 这可以通过this background maths and code snippet实现,其中x,y,z是观众眼睛的位置(从网络摄像头抓取!)在
发行日期:
当我这样做时,我渲染的对象(立方体)会沿着z轴拉伸(进入屏幕),我不太确定原因。它被比作从上面俯视一座非常高的摩天大楼(与立方体相对)。当眼睛的z位置改变时,立方体在z方向上的位置变化非常快。This是一个帧的结果,它被拉伸了!在
代码(由bigD编辑):
^{pr2}$getEye()返回的数据示例如下:
[0.25,0.37,1]如果观众的脸靠近屏幕左下方,并且距离屏幕1米远
[-0.5,-0.1,0.5]如果观众的脸靠近屏幕右上角,距离屏幕0.5米
绘制立方体时,其高度、宽度、深度为2,其中心位于(0,0,0)。在
如果有人想做一个类似的项目,想要一个启动,或者认为问题出在代码之外,我会提供完整的代码。在
你得到奇怪结果的原因是:
这个电话应该在
^{pr2}$因为投影矩阵和glFrustum调用一样已经准备好了,如果你用一个平移矩阵乘以它,这个平移矩阵就不再是透视投影矩阵了。模型视图矩阵必须描述所有的世界和摄像机变换。在
还要记住,如果对modelview矩阵所做的唯一转换是转换,那么您将始终盯着负Z轴。在
相关问题 更多 >
编程相关推荐