OSG学习笔记25——屏幕坐标——相机坐标——世界坐标之间的转换
来源:互联网 发布:自己如何做淘宝店铺 编辑:程序博客网 时间:2024/05/24 07:34
osg::Vec3d TrackballRotate::screen2World(osg::Vec3 screenPoint)//将屏幕坐标转换到世界坐标
{
osg::Vec3d vec3;
osg::ref_ptr<osg::Camera> camera = viewer->getCamera();
//osg::Vec3d vScreen(x,y, 0);
osg::Matrix mVPW = camera->getViewMatrix() * camera->getProjectionMatrix() * camera->getViewport()->computeWindowMatrix();
osg::Matrix invertVPW;
invertVPW.invert(mVPW);
vec3 = screenPoint * invertVPW;
return vec3;
}
osg::Vec3d TrackballRotate::world2Screen(osg::Vec3 worldPoint)//世界到屏幕
{
osg::Vec3d vec3;
osg::ref_ptr<osg::Camera> camera = viewer->getCamera();
osg::Matrix mVPW = camera->getViewMatrix() * camera->getProjectionMatrix() * camera->getViewport()->computeWindowMatrix();
vec3 = worldPoint * mVPW;
return vec3;
}
osg::Vec3d TrackballRotate::world2Camera(osg::Vec3 worldPoint)//世界转相机
{
osg::Vec3d vec3;
osg::ref_ptr<osg::Camera> camera = viewer->getCamera();
osg::Matrix mV = camera->getViewMatrix();
vec3 = worldPoint * mV;
return vec3;
}
osg::Vec3d TrackballRotate::camera2World(osg::Vec3 cameraPoint)//相机转世界
{
osg::Vec3d vec3;
osg::ref_ptr<osg::Camera> camera = viewer->getCamera();
//osg::Vec3d vScreen(x,y, 0);
osg::Matrix mV = camera->getViewMatrix();
osg::Matrix invertmV;
invertmV.invert(mV);
vec3 = cameraPoint * invertmV ;
return vec3;
}
osg::Vec3d TrackballRotate::screen2Camera(osg::Vec3 screenPoint)//屏幕转相机
{
osg::Vec3d vec3;
osg::ref_ptr<osg::Camera> camera = viewer->getCamera();
osg::Matrix mPW = camera->getProjectionMatrix() * camera->getViewport()->computeWindowMatrix();
osg::Matrix invertmPW;
invertmPW.invert(mPW);
vec3 = screenPoint * invertmPW;
return vec3;
}
osg::Vec3d TrackballRotate::camera2Screen(osg::Vec3 cameraPoint)//相机转屏幕
{
osg::Vec3d vec3;
osg::ref_ptr<osg::Camera> camera = viewer->getCamera();
//osg::Vec3d vScreen(x,y, 0);
osg::Matrix mPW = camera->getProjectionMatrix() * camera->getViewport()->computeWindowMatrix();
vec3 = cameraPoint * mPW;
return vec3;
}
{
osg::Vec3d vec3;
osg::ref_ptr<osg::Camera> camera = viewer->getCamera();
//osg::Vec3d vScreen(x,y, 0);
osg::Matrix mVPW = camera->getViewMatrix() * camera->getProjectionMatrix() * camera->getViewport()->computeWindowMatrix();
osg::Matrix invertVPW;
invertVPW.invert(mVPW);
vec3 = screenPoint * invertVPW;
return vec3;
}
osg::Vec3d TrackballRotate::world2Screen(osg::Vec3 worldPoint)//世界到屏幕
{
osg::Vec3d vec3;
osg::ref_ptr<osg::Camera> camera = viewer->getCamera();
osg::Matrix mVPW = camera->getViewMatrix() * camera->getProjectionMatrix() * camera->getViewport()->computeWindowMatrix();
vec3 = worldPoint * mVPW;
return vec3;
}
osg::Vec3d TrackballRotate::world2Camera(osg::Vec3 worldPoint)//世界转相机
{
osg::Vec3d vec3;
osg::ref_ptr<osg::Camera> camera = viewer->getCamera();
osg::Matrix mV = camera->getViewMatrix();
vec3 = worldPoint * mV;
return vec3;
}
osg::Vec3d TrackballRotate::camera2World(osg::Vec3 cameraPoint)//相机转世界
{
osg::Vec3d vec3;
osg::ref_ptr<osg::Camera> camera = viewer->getCamera();
//osg::Vec3d vScreen(x,y, 0);
osg::Matrix mV = camera->getViewMatrix();
osg::Matrix invertmV;
invertmV.invert(mV);
vec3 = cameraPoint * invertmV ;
return vec3;
}
osg::Vec3d TrackballRotate::screen2Camera(osg::Vec3 screenPoint)//屏幕转相机
{
osg::Vec3d vec3;
osg::ref_ptr<osg::Camera> camera = viewer->getCamera();
osg::Matrix mPW = camera->getProjectionMatrix() * camera->getViewport()->computeWindowMatrix();
osg::Matrix invertmPW;
invertmPW.invert(mPW);
vec3 = screenPoint * invertmPW;
return vec3;
}
osg::Vec3d TrackballRotate::camera2Screen(osg::Vec3 cameraPoint)//相机转屏幕
{
osg::Vec3d vec3;
osg::ref_ptr<osg::Camera> camera = viewer->getCamera();
//osg::Vec3d vScreen(x,y, 0);
osg::Matrix mPW = camera->getProjectionMatrix() * camera->getViewport()->computeWindowMatrix();
vec3 = cameraPoint * mPW;
return vec3;
}
0 0
- OSG学习笔记25——屏幕坐标——相机坐标——世界坐标之间的转换
- 渲染管线—局部坐标到世界坐标的转换
- osg 屏幕坐标和世界坐标转换
- ogre 世界坐标、本地坐标、屏幕坐标之间的转换
- OpenGl学习笔记3——屏幕坐标(2维)转化为世界坐标(3维)
- 像素坐标、相机坐标、世界物理坐标之间的坐标转换条件。
- 逻辑坐标与设备坐标——全窗口坐标、屏幕坐标、客户区坐标的总结
- 世界坐标与屏幕坐标的转换
- 世界坐标本地坐标之间的转换
- U3D屏幕坐标,世界坐标,像素坐标之间的关系
- OSG世界坐标转屏幕坐标
- OSG中屏幕坐标和世界坐标的转化
- webGL第五课——屏幕坐标转到webGL坐标
- Unity世界坐标与屏幕坐标之间如何转换
- 【OPEN GL】学习笔记之一:顶点坐标到屏幕坐标之间的转换
- OpenLayers学习笔记2——坐标转换问题
- Maven学习笔记——坐标详解
- opengl视图概念,固定管线渲染下的实例演示——物体坐标到屏幕坐标,屏幕坐标到物体坐标
- OJ.2027: 求三角形面积
- 针对微信分享限制的解决方案
- Xcode8标准注释格式的添加方式
- JSF标签学习总结下
- numpy基本入门操作汇总一
- OSG学习笔记25——屏幕坐标——相机坐标——世界坐标之间的转换
- 线段树,区间最值
- 利用 ActionFilter 为 ASP.NET Web API 添加 GZip 压缩功能
- 【小作品】react构建简单SPA(react+webpack+router+es6)
- nn pic model preprocess note
- 静态链表与动态链表
- Android WebView 开发详解(二)
- Android6.0以上权限管理问题(权限被拒绝后)
- 典型递归的思想解决汉诺塔问题