osg

libiconv库编译

╄→尐↘猪︶ㄣ 提交于 2020-01-07 02:37:29
1.下载 libiconv 库 http://www.gnu.org/software/libiconv/#TOCdownloading https://ftp.gnu.org/pub/gnu/libiconv/libiconv-1.16.tar.gz 2. 将下载后的文件解压到如下目录 E:\osg\libiconv\libiconv-1.16 3. 4.修改编译类型 5.编译 ---------------------------------------------------------------------------------------------------- 1.下载 release-1911-x64-gdal-3-0-2-mapserver-7-4-2-libs.zip 2. 将下载后的文件解压到如下目录 E:\osg\release-1911-x64-gdal-3-0-2-mapserver-7-4-2-libs 3.提取中其中的头文件与库 E:\osg\release-1911-x64-gdal-3-0-2-mapserver-7-4-2-libs\include\iconv.h E:\osg\release-1911-x64-gdal-3-0-2-mapserver-7-4-2-libs\lib\iconv.lib 来源: https://www

编译libxml2

浪尽此生 提交于 2020-01-06 12:32:43
1.下载libxml2库 ftp://xmlsoft.org/libxml2/libxml2-sources-2.9.9.tar.gz 2. 将下载后的文件解压到如下目录 E:\osg\libxml2\libxml2-2.9.9 3. 新建E:\osg\libxml2\libxml2目录 把安装libiconv生成的iconv.lib、iconv.h文件夹拷贝到E:\osg\libxml2\libxml2文件夹下的lib和include文件夹 4.编译配置 打开X64 Native Tools Command Prompt for VS 2019程序 cd E:\osg\libxml2\libxml2-2.9.9\win32 cscript configure.js compiler=msvc prefix=E:\osg\libxml2\libxml2 include=E:\osg\libxml2\libxml2\include lib=E:\osg\libxml2\libxml2\lib debug=no iconv=yes 4.编译 nmake /f Makefile.msvc install > releasex.log ----------------------------------------- 来源: https://www.cnblogs.com

OSG-基本几何图形

我是研究僧i 提交于 2020-01-03 08:38:11
本文转至 http://www.cnblogs.com/shapherd/archive/2010/08/10/osg.html 作者写的比较好,再次收藏,希望更多的人可以看到这个文章 互联网是是一个相互分形并学习的平台,我希望我每个人可以将我们认为有价值的东西,在不损害他人利益的情况下分享给更多的人。 基本绘制方法 首先来看一些OSG中的最基本的绘制路数。如果我们要绘制一个正方形,绘制有色彩,未贴图。首先我们必须要申请一个osg::Geometry,把这个Geometry加入到Geode就可以了。在这个Geometry中要设置一些元素,最基本的是顶点Vertex,颜色color,以及顶点的关联方式和法线normal.就可以了。如下图所示 可绘制图元 所有可绘制的图元包括: Ø POINTS[点] Ø LINES[线] Ø LINE_STRIP[线带] Ø LINE_LOOP[闭合线段] Ø TRIANGLES[三角形] Ø TRIANGLE_STRIP[三角带] Ø TRIANGLE_FAN[三角扇] Ø QUADS[四方块] Ø QUAD_STRIP[四方块带] Ø POLYGON[多边形] 在OSG中设置直线线宽的专门有一个函数来管理,叫做LineWidth,它本身属于状态与属性类别中的类。事实上也是从那里派生而来。所有设置状态的操作都与此类似。 内置几何类型

osg--相机

这一生的挚爱 提交于 2019-12-28 06:50:01
坐标 Vs = V * modelViewMatrix * projectionMatrix * windowMatrix V * modelViewMatrix * projectionMatrix为左手系,各分量在-1到1 unproject V0 = (Xs, Ys, 0) * invMVPW V1 = (Xs, Ys, 1) * invMVPW 相机 osg::Camera 是group节点 功能 管理坐标 setViewMatrix setViewMatrixAsLookAt setProjectionMatrix setProjectionMatrixAsFrustum setProjectionMatrixAsOrtho setProjectionMatrixAsOrtho2D setProjectionMatrixAsPerspective setViewport 参数为osg::Viewport get*() osg::Matrix viewMatrix = camera->getViewMatrix(); osg::Vec3 eye, center, up camera->getViewMatrixAsLookAt( eye, center, up ); 封装opengl函数 setClearMask 参数为GL_COLOR_BUFFER_BIT|GL

osg--交互

喜欢而已 提交于 2019-12-23 17:33:24
自定义事件处理器 osgGA::GUIEventHandler 事件处理器/事件遍历器的回调 重载 handle 参数osgGA::GUIEventAdapter getEventType getModKeyMask 返回MODKEY_CTRL/MODKEY_SHIFT/MODKEY_ALT 注意:相应set方法不适合在handle中出现,用于osg底层显示系统向事件队列添加事件 参数osgGA::GUIActionAdapter osgViewer::Viewer* viewer = dynamic_cast osgViewer::Viewer* (&aa); 事件处理管理 addEventHandler removeEventHandler 步骤 自定义事件处理器 viewer中加入自定义事件处理器 取消viewer主相机控制器 viewer.getCamera()->setAllowEventFocus(false); 设置viewer的ViewMatrix viewer.getCamera( 来源: CSDN 作者: qq_33638017 链接: https://blog.csdn.net/qq_33638017/article/details/103664986

OSG 两个相机

独自空忆成欢 提交于 2019-12-20 21:09:58
在场景中创建两个视口。其中一个用于从坦克驾驶员的视角观察场景。该视口将被渲染于屏幕的上半部分。第二个视口由缺省的osgViewer::Viewer类接口(轨迹球,飞行等控制器)控制。它将被渲染于屏幕的中下部分。 概述: OSG向开发人员提供了各种的抽象层次接口。前面的教程讨论的主要是一些较高层级的接口应用:例如使用Viewer类来控制视点,场景,交互设备和 窗口系统。OSG的优势之一,就是可以允许开发者在使用高层次的接口的同时,访问较低层次的抽象接口。本章将使用一些低抽象层级的功能,对视点进行控制, 并使用相应的类渲染场景。 代码: 为了创建两个视口,我们需要提供两个独立可控的摄像机。与OSG 1.2版本中所述不同的是,本例中将不再使用Prodecer::CameraConfig类,而是将多个不同的视口添加到组合视口 CompositeViewer类当中。下面的函数即用于实现添加视口并设置其中的摄像机位置。 void createView (osgViewer::CompositeViewer *viewer,//查看器,一个相框 osg::ref_ptr<osg::Group> scene,//场景 osg::ref_ptr<osg::GraphicsContext> gc,//显示设置定义相框的大小,View和Viewr在屏幕上的大小,位置 osgGA:

osg 三维模型加载与解析(fbx、3ds、ive、obj、osg)

放肆的年华 提交于 2019-12-18 23:44:42
void TeslaManage::OnlineTreeViewDoubleClick(const QModelIndex & index) { int row = index.row(); qDebug() << "row:" << row; QString objName = index.model()->index(0, 0).child(row, 0).data().toString(); if (root != NULL) { osg::Node* findNode = findOsgNodeByName(objName); if (findNode != NULL) { cPickHandler->setNodeTexture(findNode); } } } 来源: https://www.cnblogs.com/herd/p/11190533.html

osg 在场景中绘制坐标轴(xyz)

橙三吉。 提交于 2019-12-18 12:39:10
//x y z font_size osg::Geode* makeCoordinate(float a_x,float a_y,float a_z,float font_size) { osg::ref_ptr<osg::Sphere> pSphereShape = new osg::Sphere(osg::Vec3(0, 0, 0), 1.0f); osg::ref_ptr<osg::ShapeDrawable> pShapeDrawable = new osg::ShapeDrawable(pSphereShape.get()); pShapeDrawable->setColor(osg::Vec4(0.0, 0.0, 0.0, 1.0)); //创建保存几何信息的对象 osg::ref_ptr<osg::Geometry> geom = new osg::Geometry(); //创建四个顶点 osg::ref_ptr<osg::Vec3Array> v = new osg::Vec3Array(); v->push_back(osg::Vec3(0.0f, 0.0f, 0.0f)); v->push_back(osg::Vec3(a_x, 0.0f, 0.0f)); v->push_back(osg::Vec3(0.0f, 0.0f, 0.0f)); v->push

osg::Node clone

我们两清 提交于 2019-12-03 18:14:18
深度拷贝 node.clone(osg::CopyOp::DEEP_COPY_ALL) osg::ref_ptr<osg::Node> deepnode = (osg::Node *)(node->clone(osg::CopyOp::DEEP_COPY_ALL)); 来源: https://www.cnblogs.com/herd/p/11805433.html

osg 渲染ifc数据-测试

大城市里の小女人 提交于 2019-12-03 05:16:24
直接使用osg渲染ifc数据,提高渲染速度。 #include "teslamanage.h" #include <QtWidgets/QApplication> #include <QtGui/QIcon> #include <osgViewer/Viewer> osg::ref_ptr<osg::Node> createLand(int widthParam, int heightParam, int zParam); void loadIFCFile(osg::ref_ptr<osgViewer::Viewer> &viewer1,std::wstring &fileNmae); int main(int argc, char *argv[]) { std::wstring fileName = L"D://ck1.ifc"; osg::ref_ptr<osgViewer::Viewer> viewer1 = new osgViewer::Viewer; loadIFCFile(viewer1, fileName); viewer1->setUpViewInWindow(200, 200, 800, 600, 0); return viewer1->run(); } osg::ref_ptr<osg::Node> createLand(int widthParam, int