osg

编译日志—20191101

a 夏天 提交于 2019-12-03 04:53:35
编译日志—20191101 1>------ 已启动全部重新生成: 项目: Project2, 配置: Debug x64 ------ 1> Moc'ing project2.h... 1> Uic'ing project2.ui... 1> Moc'ing teslamanage.h... 1> Rcc'ing project2.qrc... 1>RCC : warning : No resources in 'F:\TeslaManageProject\TeslaManage\Project2\project2.qrc'. 1> 1>cl : 命令行 warning D9002: 忽略未知选项“/SAFESEH:NO” 1> moc_project2.cpp 1> moc_teslamanage.cpp 1> main.cpp 1> project2.cpp 1> teslamanage.cpp 1> 正在生成代码... 1>cl : 命令行 warning D9002: 忽略未知选项“/SAFESEH:NO” 1> qrc_project2.cpp 1>LIBCMTD.lib(initializers.obj) : warning LNK4098: 默认库“msvcrtd.lib”与其他库的使用冲突;请使用 /NODEFAULTLIB:library 1

OSG入坑之路[转]

浪尽此生 提交于 2019-12-03 04:20:13
转载自: https://segmentfault.com/a/1190000010506374?utm_source=tag-newest 一、 渲染状态(render state) osg中,当设置某节点的渲染状态时,该状态会赋予当前节点及其子节点 ,因此,若要实现多节点多状态渲染时,一定注意节点之间的父子关系,最好一个节点设置一个自己想要的状态,除非父节点及其子节点的渲染状态一样。 渲染状态的管理通过 osg::StateSet 管理,可以将其添加到任意的节点(node、group、geode等)和DrawAble类。如要设置渲染状态的值,需要: 得到某节点的stateset实例; 设置该实例的渲染属性(attribute)和模式(mode) 例: osg::StateSet *state = obj->getOrCreatStateSet() ; 其中, obj 可以是节点或Drawable实例,且: getOrCreatStateSet() 方法是在osg::Node中声明的,这就意味着geode或group都可以使用。 state>setMode(GL_LIGHTING,osg::StateAttribute::OFF);//关闭灯光状态 state->setTextureAttributeAndModes(0,texture,osg::StateAttribute:

Creating a Sphere (using osg::Geometry) in OpenSceneGraph

匿名 (未验证) 提交于 2019-12-03 02:51:02
可以将文章内容翻译成中文,广告屏蔽插件可能会导致该功能失效(如失效,请关闭广告屏蔽插件后再试): 问题: I spent quite some time to get this working, but my Sphere just won't display. Used the following code to make my function: Creating a 3D sphere in Opengl using Visual C++ And the rest is simple OSG with osg::Geometry . (Note: Not ShapeDrawable, as you can't implement custom shapes using that.) Added the vertices, normals, texcoords into VecArrays. For one, I suspect something misbehaving, as my saved object is half empty. Is there a way to convert the existing description into OSG? Reason? I want to understand how to create objects later on

OSG学习:渲染状态――裁剪节点:裁剪后的飞机

匿名 (未验证) 提交于 2019-12-03 00:32:02
2、《OpenSceneGraph三维渲染引擎设计与实践》王锐 钱学雷 清华大学出版社 3、自己的总结 创建C++项目后,首先需要配置OSG环境,具体步骤看 OSG学习:WIN10系统下OSG+VS2017编译及运行 第六步:新建OSG项目测试。 本篇文章通过分析裁剪节点ClipNode,结合更新回调节点NodeCallback和空间变换矩阵类MatrixTransform来看如何在OSG使用渲染状态。直接来看例子: // stdafx.h #include <osg/Node> #include <osg/Geometry> #include <osg/Geode> //是个几何节点,可以说是一个几何Group节点,一般的可绘制几何体都是通过它来传向root进行渲染,是OSG几何绘制的最高管理节点 #include <osg/Group> //对节点起到组织作用,一般作为父节点或者根节点出现 #include <osg/ClipNode> //继承自osg::Group,定义场景中裁剪面的位置 (与之相似的有osg::ClipPlane,继承自osg::StateAttribute,定义一个裁剪面) #include <osg/PolygonMode> //指定多边形的绘制模式(点/线框/填充) #include <osg/MatrixTransform> //移动节点的矩阵类

OSG学习:几何体的操作(二)――交互事件、Delaunay三角网绘制

匿名 (未验证) 提交于 2019-12-03 00:30:01
2、《OpenSceneGraph三维渲染引擎设计与实践》王锐 钱学雷 清华大学出版社 3、自己的总结 创建C++项目后,首先需要配置OSG环境,具体步骤看 OSG学习:WIN10系统下OSG+VS2017编译及运行 第六步:新建OSG项目测试。 首先重新来看一下场景的构成:基本的绘图基元――场景: 基本的绘图基元――简单的几何体――复杂的几何体――复杂的场景。 对几何体进行适当地修改,可以提高渲染效率。这些操作都由osgUtil库提供,主要有 简化osgUtil::Simplifier 、生成法线osgUtil::SmoothingVisitor( OSG学习:几何对象的绘制(二)――简易房屋:创建人字顶部分 )、 生成Delaunay三角网osgUtil::DelaunayTriangulator 、条带化osgUtil::TriStripVisitor等。 本篇文章解析 生成Delaunay三角网 的方法: 不规则三角网TIN 是数字地形建模中表达地形表面的重要手段,它通过不规则离散分布的数据点生成的连续三角面来逼近地形表面,它能以不同层次的分辨率来描述地形表面,地形平坦的地方点稀疏三角网较大且稀疏,地形陡峭的地方三角网小且密集。 狄洛尼Delaunay三角网是所有可能的三角网中在地形拟合方面最出色的方法

OSG学习:几何体的操作(一)――交互事件、简化几何体

匿名 (未验证) 提交于 2019-12-03 00:30:01
2、《OpenSceneGraph三维渲染引擎设计与实践》王锐 钱学雷 清华大学出版社 3、自己的总结 创建C++项目后,首先需要配置OSG环境,具体步骤看 OSG学习:WIN10系统下OSG+VS2017编译及运行 第六步:新建OSG项目测试。 首先重新来看一下场景的构成:基本的绘图基元――场景: 基本的绘图基元――简单的几何体――复杂的几何体――复杂的场景。 对几何体进行适当地修改,可以提高渲染效率。这些操作都由osgUtil库提供,主要有简化osgUtil::Simplifier、生成法线osgUtil::SmoothingVisitor、生成Delaunay三角网osgUtil::DelaunayTriangulator、条带化osgUtil::TriStripVisitor等。 本篇文章解析简化几何体的方法: osgUtil::Simplifier类继承自osg::NodeVisitor类,以访问器的方式遍历几何体并对其进行简化处理。 这个简化方法使用边塌陷算法,该算法我没有详细了解,可以看一看这篇文章: 实现边塌陷的网格简化方法 。 根据代码来了解使用方法: // stdafx.h #include <osg/Node> //节点类 #include <osg/Geode> //是个几何节点,可以说是一个几何Group节点

osg gdal加载tif数据文件

匿名 (未验证) 提交于 2019-12-02 23:57:01
osg加载.tif地形数据文件 #ifdef _WIN32 #include <Windows.h> #endif // _WIN32 #include <iostream> //#include <math.h> #include < osg / Node > #include < osg / Group > #include < osgDB / ReadFile > #include < osgViewer / Viewer > #include < osg / Geode > #include < osg / ShapeDrawable > #include < osg / Material > #include < osg / Image > #include < osg / Texture2D > #include < osg / BoundingSphere > #include < osg / LineWidth > #include < osg / Point > #include < osg / TexGen > #include < osg / TexEnv > //#include <osg/TessellationHints> //#include <osg/NodePath> #include < osgGA / GUIEventHandler >

MFC加载osg模型

匿名 (未验证) 提交于 2019-12-02 23:57:01
创建MFC单文档项目, OSGObject.h #pragma once #include < osgViewer\Viewer > #include < osgDB\ReadFile > #include < osgViewer\api\Win32\GraphicsWindowWin32 > #include < osgGA\TrackballManipulator > #include < osg\Group > class COSGObject { public : COSGObject ( HWND hWnd ); ~ COSGObject (); void InitOSG (); void InitSceneGraph (); void InitCameraConfig (); void PreFrameUpdate (); void PostFrameUpdate (); static void Render ( void * ptr ); osgViewer :: Viewer * getOsgViewer (); private : HWND m_hwnd ; osgViewer :: Viewer * mViewer ; osg :: ref_ptr < osg :: Group > mRoot ; }; OSGObject.cpp #pragma once

多自由度机械臂模拟6

匿名 (未验证) 提交于 2019-12-02 23:55:01
模拟一个完整的吊装流程,初始状态->起臂->放下吊绳->竖直起吊->水平旋转->放下物体->收缩吊绳。 osg::ref_ptr<osg::Node> createSimple() { osg::ref_ptr<osg::Geode> geode = new osg::Geode; osg::ref_ptr<osg::Geometry> geo = new osg::Geometry; //申请一些顶点 osg::ref_ptr<osg::Vec3Array> vers = new osg::Vec3Array; geo->setVertexArray(vers.get()); #if 1 geo->addPrimitiveSet(new osg::DrawArrays(osg::PrimitiveSet::LINE_LOOP, 0, 4));//创建一个线圈 #else geo->addPrimitiveSet(new osg::DrawArrays(osg::PrimitiveSet::QUADS, 0, 4));//创建一个正方形 #endif //设置顶点 vers->push_back(osg::Vec3(-15, 3.0, -15)); vers->push_back(osg::Vec3(15, 3.0, -15)); vers->push_back(osg::Vec3

Qt osg QWidget osgViewer::Viewer

匿名 (未验证) 提交于 2019-12-02 23:43:01
osgViewer::Viewer* _viewer = nullptr; _viewer = new osgViewer::Viewer; osg::ref_ptr<osg::Group> root = new osg::Group; //注意:这两句话的先后顺序 先添加模型在添加相机 //root->addChild(osgDB::readNodeFile("cow.osgt")); root->addChild(osgDB::readNodeFile("D:\\参考手册\\BIM\\osg\\library.OSGB")); root->addChild(createLight()); _viewer->setCamera(camera);//这两句话的先后顺序 _viewer->setSceneData(root); _viewer->setThreadingModel(osgViewer::Viewer::SingleThreaded); _viewer->setCameraManipulator(new osgGA::TrackballManipulator); _viewer->addEventHandler(new osgViewer::WindowSizeHandler()); GraphicsWindowQt* gcQT = dynamic_cast