OSG
张明奇-琦玉
乐观,自信,阳光,相信明天会更好
展开
-
osgViewer::Viewer和osgViewer::CompositeViewer
本文的目标是在向用户说明应该使用哪个Viewer。类继承关系对比两个类的类继承图差异是对类进行分析的有用的方法,从中可以明确的是osgViewer::Viewer只是一个osgViewer::View,而osgViewer::CompositeViewer是一个osgViewer::View序列,包含多个osgViewer::View。慨念上的差别基本解释中的文章 解释了二者慨念上的区别。这篇针对CompositeViewer和Viewer的指导是从慨念和实践上的双重分析,如果没有点.原创 2020-07-17 21:40:37 · 1881 阅读 · 1 评论 -
osgautotransform例子
来看看Transform类。AutoTransform、MatrixTransform、PositionAttitudeTransform、DOFTransform、Camera等都是Transform的子类,用于进行变换操作。Transform继承自Group,所有子节点可以通过一个矩阵变换,产生操作器和动画等效果。特别强调了如果进行缩放,应该重新计算法向量,state...原创 2019-07-12 11:40:50 · 549 阅读 · 0 评论 -
osg播放视频的方法
osg播放视频时,需要利用ffmpeg的多媒体播放器插件,所以在播放视频之前需要成功的加载此插件,才能最终显示出画面,现将osg播放本地文件和流文件的方法总结一下:1、播放本地文件osgDB::Registry::instance()->addFileExtensionAlias("mp4", "ffmpeg");osg::ref_ptr<osg::Image> i...原创 2019-05-29 16:42:03 · 1669 阅读 · 1 评论 -
osg笔记五
1、《OpenGL超级宝典》中对帧缓冲区的解释比较简单,文中说一个OpenGL窗口的表面被称作“帧缓冲区”。又查了一些资料可以更加容易理解一些,帧缓冲区(显存):是由像素组成的二维数组,每一个存储单元对应屏幕上的一个像素,整个帧缓冲对应一帧图像即当前屏幕画面。帧缓冲通常包括:颜色缓冲,深度缓冲,模板缓冲和累积缓冲。这些缓冲区可能是在一块内存区域,也可能单独分开,看硬件。2、osg 屏幕坐标和世...原创 2019-05-10 18:47:16 · 1110 阅读 · 0 评论 -
osg编译ffmpeg插件
osg可以通过ffmpeg插件来实现播放视频的功能,但是在编译osg的时候要确保成功的完成才可以使用此插件。在编译的过程中有几点需特别注意,否则可能导致无法成功编译。1、要正确选择ffmpeg的版本首先要到https://ffmpeg.zeranoe.com/builds/win32/dev/下载ffmpeg的开发版,最小版本在3.2,这里也要特别注意,因为osg中的ffmpeg处理模块调...转载 2019-05-15 15:55:56 · 797 阅读 · 0 评论 -
osg笔记四
osg模型发黑简述开发过程中遇到模型发黑。一般情况是光照和模型的法线设置不正确。 (1)osg中光照只会对有法线的模型起作用,而模型经过缩放后法线是不会变得,所以需要手动设置属性,让法线随着模型大小变化而变化。node->getOrCreateStateSet()->setMode(GL_RESCALE_NORMAL, osg::StateAttri...原创 2018-11-23 22:01:18 · 1977 阅读 · 0 评论 -
关于PagedLOD 加载卸载机制
分页对于大型场景而言是一个必不可少的调度渲染技术。当你发现osg自身就带有PagedLOD 功能时,何尝不兴致冲冲的立即使用。可是,在使用时突然发现只有加载没有卸载,内存随着运行不断攀升,过期的PagedLOD 节点竟然没有被osg踢出内存?苦恼啊,纠结啊?难道是bug?其实不然,osg的PagedLOD 技术已十分成熟,那么究竟是何原因造成的?焦躁的你请耐心阅读1、导致PagedLOD 不被卸...转载 2018-08-06 16:56:43 · 1104 阅读 · 0 评论 -
osg笔记三
OSG的Example列子中命令行调试设置参数如下图:注意:命令参数不能用分号“;”进行分隔。原创 2016-12-27 19:32:35 · 542 阅读 · 0 评论 -
OSG+VS2013+win7环境搭建+OSGEARTH问题
Win7下 osg+vs2010环境搭建一.相关准备a) Osg源码当前最新版:OpenSceneGraph的3.0.0.zip下载链接:http://www.openscenegraph.org/downloads/stable_releases/OpenSceneGraph-3.0/source/OpenSceneGraph-3.0.0.zipb) Osg第原创 2014-10-27 18:24:31 · 2987 阅读 · 0 评论 -
osg笔记二
///////////////////////////////////////////////////////////////////createTexturedQuadGeometry(corner, widthVec, heightVec, l, b, r, t)这个函数可以方便地创建一个空间四边形,位置和大小由corner,widthVec,heightVec决定;l,b则是纹理坐标原创 2015-04-28 16:33:46 · 6389 阅读 · 2 评论 -
osg开关门
/* -*-c++-*- OpenSceneGraph Cookbook * Chapter 5 Recipe 1 * Author: Wang Rui */ #include #include #include #include #include原创 2016-12-27 17:58:07 · 620 阅读 · 0 评论 -
osgOcean 水面效果
#include #include #include #include #include #include #include #include #include "SkyDome.h" #include "SphereSegment.h" osg::ref_ptr loadMap(){ osg原创 2016-05-20 15:20:21 · 4303 阅读 · 2 评论 -
osgOcean+VS2010+Win7编译方法
1、首先要下载osgOcean-Source-1.0.1包,以及依赖包osgOcean-Resources-1.0.1、fftss-3.0-20071031,可在:链接:http://pan.baidu.com/s/1qXlu8A4 密码:hdbx,下载2、下载好之后,在D盘的osg3.2文件夹下创建一个osgOcean文件夹,并将下载的源码放到该文件夹下,并解压,如下图所示:3、原创 2016-05-20 15:27:57 · 2307 阅读 · 0 评论 -
添加自定义事件以及对osg事件队列的简单理解
添加自定义事件首先osg在其内部通过osgGA::EventQueue类维护了一个事件队列,队列中的每一个事件都是一个osgGA::GUIEventAdapter对象(这个对象是用来存放所系统捕捉到的事件),在仿真循环阶段被系统捕捉到的所有事件都会被添加到这个事件队列中,之后会有一个事件遍历过程,在这个过程中实际上就是遍历这个事件队列,并且对事件队列中的每一个事件,它都会与我们在事件处理类原创 2016-04-04 22:01:58 · 2375 阅读 · 0 评论 -
场景数据的动态更新
动态更新的核心就是设置数据变度属性DataVariance,它决定了OSG在多线程渲染的过程中的执行策略:只有所有DYNAMIC属性的对象被渲染完毕之后,OSG才会开始执行下一帧的用户更新操作;这样有效地可以避免数据的过快更新造成当前的渲染动作出错,以致系统崩溃。所有派生自osg::Object的对象都可以设置数据变度的属性,通常设置的时机在新建对象之时,例如:osg::ref_p原创 2015-11-27 14:49:44 · 2002 阅读 · 0 评论 -
OSG播放fbx动画
刚刚学会怎样播放fbx动画,总结几点:1.3dmax导出的fbx坐标系可能与osg不同,需要做个旋转rotate(90,vec3(1,0,0))2.导出的dds图片需要做个翻转3.参考osganmitionviewer中的AnimationManagerFinder找到动画管理器4.autodesk自带的fbx例子可以加载却播放不了,不知原因。5.同时播放多个fbx,注意通过f原创 2015-11-11 10:14:39 · 2963 阅读 · 2 评论 -
OSG智能指针之强指针与弱指针
使用OSG的人都知道OSG的内存管理方式采用了智能指针,通过智能指针的方式让OSG自己处理对象的销毁工作。在OSG中有两个智能指针类型,一个就是我们再熟悉不过的ref_ptr,另外一个可能很多人不一定经常用,但确实非常好的observer_ptr。这两种类型都是作为智能指针而出现的,那他们到底有什么区别?为什么会出现两个类似的东西?下面我们慢慢揭开它们的面纱。 其实它们是两种智能指针类型原创 2015-08-04 15:10:57 · 1220 阅读 · 0 评论 -
osg笔记一
右手坐标系。OPGEL坐标系为:Z轴正向朝外,Y轴正向朝上,X轴正向朝右。沿X轴旋转90度----->OSG 坐标系:Z轴正向朝上;Y轴正向朝里;X轴正向朝右。 OSG中,一般用Vec3(x,y,z) 来定义一个顶点的位置。原创 2014-11-05 16:10:26 · 1002 阅读 · 0 评论 -
OSG和osgearth显示中文
做osg相关的项目有一段时间了,一直想写几篇这方面的博文,今天终于开始了。今天主要介绍一下怎么解决osg 和osgearth中显示中文的的问题,这个问题我反复遇到让我很是纠结啊。 一、知识储备 要想很好的理解和解决这个问题,首先要了解什么是多字节和宽字节。说实话我之前也知道这两个字节到底有什么区别,只是简单查了一下资料。这里引用了这篇博客,我感觉博主写的很有意思,通俗易懂,原创 2015-03-11 21:01:38 · 6170 阅读 · 3 评论