美烦资源网

专注技术文章分享,涵盖编程教程、IT 资源与前沿资讯

拜读《C++与OSG学习》(秦声)(一)


这个教程短小精悍,开头讲了C++的一些基础知识,略过。

接下来是OSG的知识:

View Matrix

用于把局部坐标变换到世界坐标,或者说把模型坐标变换到用户坐标。

由以下三个分量决定:

1、Eye:视点的位置

2、Center:视线上的一参考点

3、Up:向上的方向

设置方法:

【OpenGL】--> glTranslate()、glRotate()、gluLookAt();

【OSG】-->
osg::Camera::setViewMatrix ();


osg::Camera::setViewMatrixAsLookAt();

Projection Matrix

投影矩阵,向二维空间(屏幕)投影,有两种投影方式:

1、平行投影,或者叫正投影(正交orthogonal)

2、透视(perspective)投影,构建一个视锥体(平截头体)

设置方法:

【OpenGL】--> glOrtho()、gluOrtho2D()、glFrustum()、gluPerspective();

【OSG】-->
osg::Camera::setProjectionMatrix();

osg::Camera::setProjectionMatrixAsOrtho();

osg::Camera::setProjectionMatrixAsOrtho2D();

osg::Camera::setProjectionMatrixAsFrustum();

osg::Camera::setProjectionMatrixAsPerspective();

Window Matrix

绘图区域并不一定是整个窗口,通过视口来指定绘图区域。

设置视口:

【OpenGL】--> glViewport()

【OSG】--> osg::Camera::setViewport()

3D空间坐标转换成2D屏幕坐标

MVPW = ViewMatrix * ProjectionMatrix * WindowMatrix

M是模型顶点三位坐标;VPW是三个矩阵;

通过修改这三个矩阵,可以实现漫游、拾取、HUD、多视图、多通道等。

控制面板
您好,欢迎到访网站!
  查看权限
网站分类
最新留言