osg
VectorM4a1
这个作者很懒,什么都没留下…
展开
-
【无标题】
cessna->addChild( osgDB::readNodeFile("cessna.osg.0,0,90.rot") );加载模型并旋转。 代码中为沿Z轴旋转90度原创 2022-03-31 14:28:35 · 132 阅读 · 0 评论 -
OsgEarth节点跟随
osgEarth::Viewpoint vp;//设置视点参数,focalPoint()函数返回的是一个点_point,然后调用set()函数进行设置,第一个参数是空间参考参数,第二个是经度,第三个是纬度,第四个是Z值//最后一个参数用来描述Z是怎么解释的,有两种,ALTMODE_ABSOLUTE是绝对高程,从椭球体(?)开始算的,ALTMODE_RELATIVE是相对高程,从地形的标高以上开始算的,就是基准点在那个经纬度对应的点的最高处vp.focalPoint()->set(mapNode-原创 2022-01-14 11:02:50 · 681 阅读 · 0 评论 -
osgEarth根据MatrixTransform获取经纬度、欧拉值
//根据matrixTransform获取经纬度osg::Vec3d getModelPosition(osg::ref_ptr<osg::MatrixTransform> m_pModelNode){ osg::Vec3d posXYZ = osg::Vec3d(); osg::Vec3d currentPosition = osg::Vec3d(); if (m_pModelNode) { osg::Matrix mat = m_pModelNode->getMatri原创 2022-01-06 15:58:08 · 1795 阅读 · 0 评论 -
osgEarth 局部坐标系用法
//节点osg::ref_ptr<osg::Node> nd = new osg::Node;//全局geometryosg::ref_ptr<osg::Geometry> geometry = new osg::Geometry;//矩阵相关osg::Matrix _BasePointMat;osg::Matrixd _BasePointInverseMat;osg::ref_ptr<osg::MatrixTransform> matTrans1 =原创 2022-01-06 10:01:36 · 688 阅读 · 0 评论 -
osgEarth::Util::Controls::LabelControl 显示汉字
//记得加上头文件#include <Windows.h>//转换为中文字符进行显示void gb2312ToUnicode(const string& src, wstring& result){int n = MultiByteToWideChar(CP_ACP, 0, src.c_str(), -1, NULL, 0);result.resize(n);::MultiByteToWideChar(CP_ACP, 0, src.c_str(), -1, (LPW原创 2021-11-30 17:58:27 · 492 阅读 · 0 评论 -
齐次坐标记录
由 August Ferdinand Möbius(不错,就是那个莫比乌斯圈的那位) 提出的齐次坐标,使图形和几何学的计算在投影空间中成为可能。齐次坐标是用N+1个数来表示N维坐标的一种方式。要制作二维齐次坐标,我们只需在现有坐标中增加一个额外的变量w。因此,笛卡尔坐标中的一点,(X,Y)在齐次坐标中就变成了(x,y,w)。而笛卡儿坐标中的X和Y在齐次坐标中的x、y和w则重新表达为X = x/wY = y/w齐次坐标在计算机图形学中是非常有用的基本概念,通过增加一个额外的维度W后,可以用来对几何体进原创 2021-11-12 14:23:16 · 389 阅读 · 0 评论 -
QT5 OSG汉字显示
OSG中的汉字显示需要传入宽字符,调试的时候看到的变量值如下图所示的时候才是对的:注意字符串值前面的L。Qt5转宽字符的方法:QString name = QString::fromLocal8Bit("123321我");std::wstring sfs = name.toStdWString();const wchar_t* wText = sfs.c_str();将wText传入OSG的Text即可...原创 2021-10-27 14:28:40 · 252 阅读 · 0 评论 -
osgEarth 生成并加载mbtiles
osgEarth 生成并加载mbtiles生成mbtiles命令:osgearth_conv --in driver gdal --in url 1.tif --out driver mbtiles --out filename world.db --out format png注意:末尾处若用jpg格式会有奇怪的问题,png正常加载mbtiles<image name="影像图" driver="mbtiles" base="true" group="影像图"> <file原创 2021-08-05 10:21:37 · 1295 阅读 · 3 评论 -
执行Install的时候出错。
VS2015编译完osg osgEarth后,执行Install的时候出错。用管理员的方式打开VS2015 即可原创 2021-08-23 15:12:45 · 223 阅读 · 0 评论 -
OSG eye center up说明
auto eye = osg::Vec3d(50.0, 0.0, 0.0);auto center = osg::Vec3d(0.0, 0.0, 0.0);auto up = osg::Vec3d(0.0, 1.0, 1.0);viewer.getCamera()->setViewMatrixAsLookAt(eye, center, up);while (!viewer.done())//这里不能写成return viewer.run()这个函数会对场景中是否有漫游器进行判断,如果没有,就会原创 2021-07-26 10:51:19 · 938 阅读 · 0 评论 -
osg物体绕自身轴旋转
如果一个模型不在场景的中心点,这时候使用 osg::Matrix::rotate旋转的话,这个对象会围绕场景的中心点进行旋转,会转一个大圈,那么怎么做才能让他在任何位置的时候,围绕自己的轴心进行旋转?可以使用osg::PositionAttitudeTransform这个类来实现。 代码如下: #include <windows.h>#include <osgViewer/Viewer>#include <osgViewer/ViewerE...原创 2021-07-21 15:17:16 · 1390 阅读 · 0 评论 -
osg嵌入osgQOpenGLWidget 无法接收键盘事件
osgQOpenGLWidget已经做了对键盘事件的解析。嵌入QT后键盘没反应,osgQOpenGLWidget没有获取到键盘焦点,调用setFocus()函数即可,如下示例:ui.setupUi(this);QHBoxLayout* hboxLayout = new QHBoxLayout(this);osgQOpenGLWidget *pOsgW = new osgQOpenGLWidget;hboxLayout->addWidget(pOsgW);hboxLayout->setM原创 2021-07-20 17:18:01 · 1044 阅读 · 4 评论 -
Shader实现雷达扫描效果
使用OSG和shader实现了雷达扫描效果#include <windows.h>#include <osg/Geometry>#include <osg/Geode>#include <osgUtil/SmoothingVisitor>#include <osgViewer/Viewer>#include <osg/LineWidth>#include <osg/PolygonMode>//顶点着色器s原创 2020-09-23 23:29:27 · 1376 阅读 · 1 评论