自定义博客皮肤

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

osg学习(二十六)earth文件解析过程

earth文件本质是xml文件,在osgEarth中earth文件采用XmlDocument来组织,具体是由TiXmlDocument来负责解析的。 TiXmlDocument是开源TinyXml库中的一个类。

2019-09-21 16:50:03

阅读数 4

评论数 0

osg学习(二十六)osgearth文件的解析

earth文件是xml文件,通过xml的方式存放和解析 osgEarthDrivers/earth/ReaderWriterOsgEarth.cpp virtual ReadResult readNode(const std::string& fileName, const o...

2019-09-20 06:32:25

阅读数 4

评论数 0

C++学习(五十九)获取文件的属性信息,比如最后修改时间

#include <sys/stat.h> TimeStamp osgEarth::getLastModifiedTime(const std::string& path) { struct stat buf; if ( stat(pat...

2019-09-19 06:52:16

阅读数 23

评论数 0

osg学习(二十五)osg根据二进制数据判断图片类型的方法

主要根据二进制的前几个数据来判断 osgEarth/ImageUtils.cpp osgDB::ReaderWriter* ImageUtils::getReaderWriterForStream(std::istream& stream) { // Modified ...

2019-09-16 22:36:42

阅读数 11

评论数 0

osg学习(二十四)osg不同系统默认字体的加载路径

加载字体语句 osg::ref_ptr<osgText::Font> g_font = osgText::readFontFile("fonts/arial.ttf"); 在不同系统中加载路径是不同的,针对WIN32、Apple、Linux等系...

2019-09-16 06:55:16

阅读数 11

评论数 0

C++学习(五十八)V8引擎

V8使用C++开发,并在谷歌浏览器中使用。在运行JavaScript之前,相比其它的JavaScript的引擎转换成字节码或解释执行,V8将其编译成原生机器码(IA-32, x86-64, ARM, or MIPS CPUs),并且使用了如内联缓存(inline caching)等方法来提高性能。...

2019-09-15 18:37:43

阅读数 12

评论数 0

osg学习(二十三)osg读写插件的查找加载过程

osg在读写各种文件时,如模型文件(osga、ive)、earth文件及其中配置的高程/影像数据,需要通过相应的读写插件来执行,如何查找和加载相应的插件,osg有一套机制。最终返回一个ReaderWriter::ReadResult里面包含能够读取文件的对象(本质是一个类指针)。 主要有以下四种...

2019-09-15 17:56:46

阅读数 43

评论数 0

osg学习(二十二)osg读写插件的注册过程

读写插件包括高层、影像等文件的读写插件 1、注册AnnotationLayer osgEarthAnnotation/AnnotationLayer.cpp REGISTER_OSGEARTH_LAYER(annotations, AnnotationLayer); osgEarth...

2019-09-14 22:36:23

阅读数 15

评论数 0

osg学习(二十一)osg的BlockCount和Barrier

BlockCount的使用,和Block类似。阻塞线程,使用block函数。释放线程,使用release函数。但是比Block多出来的功能是,使用completed函数,表示阻塞线程的东西少了一个。当阻塞线程的东西为0时,被BlockCount阻塞的线程才开始运行。 Barrier是线程栅栏类。...

2019-09-11 21:42:04

阅读数 13

评论数 0

osg学习(二十)osg的线程同步

1、建立同步锁 osgViewer/ViewBase.cpp void ViewerBase::startThreading() { _endDynamicDrawBlock = new osg::EndOfDynamicDrawBlock(numViewerDoubleBuffere...

2019-09-11 07:31:40

阅读数 13

评论数 0

osg学习(十九)osg的线程模型及其确定

在启动osg程序时会确定使用什么线程模型 osgViewer/ViewBase.cpp ViewerBase::ThreadingModel ViewerBase::suggestBestThreadingModel() { std::string str; if (osg...

2019-09-08 22:53:03

阅读数 10

评论数 0

osg学习(十八)osg的状态树与渲染树小结

1、osg除了场景树,还建立状态树和渲染树,主要是为了加速绘制,避免不必要的opengl状态频繁切换 2、每个camera都会包含一个场景树(可能会和其它camera共用),并且在对camera进行渲染时,也会生成与该camera相对应的状态树和场景树。因此一个osg程序中,可能不止一个场景树、...

2019-09-08 18:25:39

阅读数 13

评论数 0

osg学习(十七)camera的cull与draw执行位置的分配

主要与camera的render中的_graphicsThreadDoesCull有关,默认_graphicsThreadDoesCull为true 1、如果_graphicsThreadDoesCull为true,则cull和draw都在窗体线程中执行 osgViewer/Render.c...

2019-09-08 18:15:36

阅读数 14

评论数 0

osg学习(十六)osg的渲染树构建过程

1、osgUtil::SceneView生成渲染树根节点 osgUtil/SceneView.cpp void SceneView::setDefaults(unsigned int options) { _renderStage = new RenderStage; _cul...

2019-09-08 17:41:11

阅读数 6

评论数 0

osg学习(十五)osg的状态树构建过程

状态树中每一个节点包含一个状态集StateSet,如果一个场景树节点下有多个子节点有相同的状态集,那么这几个子节点将共用一个状态树节点。 1、osgUtil::SceneView生成状态树根节点 osgUtil/SceneView.cpp void SceneView::setDefault...

2019-09-07 07:55:00

阅读数 16

评论数 0

osg学习(十四)osg的场景图数据是如何赋给camera的

void View::assignSceneDataToCameras() { osg::Node* sceneData = _scene.valid() ? _scene->getSceneData() : 0; _cameraManipulator-&gt...

2019-09-06 22:51:36

阅读数 16

评论数 0

osg学习(十三)osg的核心部件关系

osgViewer::Viewer osgViewer::Scene(负责存放场景图) osg::Camera osgViewer::Render osgUtil::SceneView osgUtil::StateGraph osgUtil::RenderS...

2019-09-06 22:35:09

阅读数 8

评论数 0

osg学习(十二)谷歌开源Seurat工具加速VR渲染

Seurat开源,它是为开发者推出专门适用于优化移动VR内容的工具,它可以通过3D场景给处理为可在移动处理器上高校渲染的形式,目标是减少总体多边形数量,以降低处理任务量和资源消耗量。   此外,利用Seurat把RGBD图像作为输入,生成纹理网格,定位可配置数量的三角形,纹理大小和填充率,从而以传...

2019-09-01 18:09:18

阅读数 30

评论数 0

osg学习(十一)osg与osgre

OGRE和OSG本身被定位为一个纯粹的图形引擎。 其中OpenSceneGraph(简称OSG)使用OpenGL技术开发,是一套基于C++平台的应用程序接口(API)。OSG开发的主要意义在于,将3D场景定义为空间中一系列连续的对象,以进行三维世界的管理。正是由于场景及其参数定义的特点,通过状态...

2019-09-01 17:30:57

阅读数 24

评论数 0

C++学习(五十七)mental ray已死

最早属于Autodesk,后来卖给了NVIDIA 现在NVIDIA要专注于AI和GPU加速,就停止mental ray的更新和销售 所以,以后就不会再有mental ray了!!!

2019-09-01 07:58:31

阅读数 40

评论数 0

提示
确定要删除当前文章?
取消 删除