osg
  • 2024-07-04osg使用整理(12):SSAO屏幕空间环境光遮蔽
    一、基础概念1、SSAO:通过将褶皱、孔洞和非常靠近墙面变暗的方法,近似模拟间接光照。SSAO称为屏幕空间环境光遮蔽,使用屏幕空间场景的深度而不是真实的几何体数据来确定遮蔽量,速度快效果好。2、实现原理:根据物体表面法线方向生成一个半球随机深度采样,主要看物体周围深度值大小,通
  • 2024-06-03osg使用整理(11):延迟渲染
    osg使用整理(11):延迟渲染一、基础概念前向渲染流程:顶点着色器->图元装配成点线三角形->几何着色器->裁剪剔除->光栅化(片元着色器)->透明度测试、深度测试。延迟渲染流程:顶点着色器->图元装配成点线三角形->几何着色器->裁剪剔除->光栅化输出G-Buffer,存储每个像素的属性信息(位
  • 2024-04-08osg 标准视图、前视图、侧视图、顶视图切换
      #include<osg/Node>#include<osg/Geode>#include<osg/ShapeDrawable>#include<osgViewer/Viewer>#include<osgGA/GUIEventHandler>//自定义的视图切换事件处理器classViewSwitchHandler:publicosgGA::GUIEventHandler{public:V
  • 2024-03-26[AI][osg]关于osg的options的设计模式
    Options说明OSG(OpenSceneGraph)是一个高性能的开源3D图形工具包,用于可视化仿真、游戏、虚拟现实、科学可视化等领域。它提供了一套丰富的API和工具,帮助开发者创建复杂的3D场景和应用程序。在OSG中,Options机制用于控制场景图读取过程中的各种参数和行为。通过Options,开发者可以指
  • 2024-02-23OpenSceneGraph环境搭建
    OpenSceneGraph开发环境搭建环境说明windows10visualstudio2019qt5.15预编译库与资源这是最省事的方式,本人懒得走cmake编译那套,而且有现成的为何不用,省点时间研究OSG不香吗?下载预编译库,点此进入,可看到如下页面,点击StableReleasesStableReleases页面如下:
  • 2024-02-07osg qt场景中节点去除透明
     osgqt场景中节点的透明属性消除 {osg::ref_ptr<osg::StateSet>stateState=north_wall_geode->getOrCreateStateSet();stateState->setMode(GL_BLEND,osg::StateAttribute::ON);stateState->setMode(GL_DEPTH_TEST,osg::StateAttribute::ON);
  • 2024-01-27OpenSceneGraph (OSG)
    OpenSceneGraph(OSG)是一个开源的三维引擎,广泛应用于多个领域,如可视化仿真、游戏、虚拟现实、科学计算、三维重建、地理信息、太空探索、石油矿产等。它由标准C++和OpenGL编写而成OpenGL(英语:OpenGraphicsLibrary,译名:开放图形库或者“开放式图形库”)是用于渲染2D、3D矢量图形
  • 2024-01-24osg给节点添加材质
      osg给节点添加材质 #include<osg/Material>#include<osg/Geode>#include<osgDB/ReadFile>#include<osgViewer/Viewer>intmain(){//创建一个场景节点osg::ref_ptr<osg::Node>root=newosg::Geode();//创建一个模型节点,这里读取一个模型文
  • 2024-01-20基于物理的渲染(3):OSG中PBR实践
    1.1单光源直接光照voidmain(){ //创建小球几何 osg::ref_ptr<osg::ShapeDrawable>sphere=newosg::ShapeDrawable; sphere->setShape(newosg::Sphere(osg::Vec3(0,0,0),radius)); sphere->setColor(osg::Vec4(col)); //创建小球节点 osg::ref_ptr<osg::Geode>pbr
  • 2024-01-18osg设置材质
      #include<osg/Material>#include<osg/Geode>#include<osgDB/ReadFile>#include<osgViewer/Viewer>intmain(){//创建一个场景节点osg::ref_ptr<osg::Node>root=newosg::Geode();//创建一个模型节点,这里读取一个模型文件作为场景节点下的子
  • 2023-12-31osg添加光源
    osg添加光源 #include<osg/Light>#include<osg/LightSource>#include<osg/Node>#include<osg/Geode>#include<osgDB/ReadFile>#include<osgViewer/Viewer>intmain(){//创建一个场景节点osg::ref_ptr<osg::Node>root=ne
  • 2023-11-21osg 设置显示窗口大小
    viewer->realize();//需要realize,否则窗口为nullosgViewer::GraphicsWindow*pWnd=dynamic_cast<osgViewer::GraphicsWindow*>(viewer->getCamera()->getGraphicsContext());if(pWnd){pWnd->set
  • 2023-10-29osg 使用整理 (9):文本渲染
    osg使用整理(9):文本渲染1FreeType文本渲染​ FreeType用于加载TrueType字体并渲染到位图的库。TrueType字体通过数学公式表示的曲线来描述字体轮廓。类似于矢量图像,这些光栅化后的字体图像可以根据需要的字体高度来生成。FreeType所做的事就是加载TrueType字体并为每一个字形生
  • 2023-10-27OSG开发笔记(二十九):OSG加载模型文件、加载3DMax三维型文件Demo
    前言  Osg深入之后需要打开模型文件,这些模型文件是已有的模型文件,加载入osg之后可以在常见中展示模型文件,该节点可以操作,多个逼真的模型的节点就实现了基本的场景构建。<br>Demo  <br>说明  三维模型文件一般是由专业的三维建模人员完成,可以去buy通用模型,但是定制模型
  • 2023-10-23osg 改变obj模型的方向
    ////OpenSceneGraphQuickStartGuide//http://www.lulu.com/content/767629//http://www.openscenegraph.com/osgwiki/pmwiki.php/Documentation/QuickStartGuide////StateExample,Modifyingstateattributesandmodes#include<osg/Group>//组节点#i
  • 2023-10-20麒麟系统开发笔记(十三):在国产麒麟系统上编译OSG库、搭建基础开发环境和移植测试Demo
    前言  在国产麒麟系统上实现C++三维仿真,使用OSG技术,其他基于web的技术也是可以但是交互上鼠标拽托等交互相对差一些,所以这块需要斟酌选择到底是何种技术来取舍。  本篇在厂家指定的麒麟系统上编译OSG。 环境系统版本:银河麒麟桌面操作系统V10(SP1)(注意:不对外提供)
  • 2023-10-17OSG嵌入QT的简明总结2
    正文我之前在这篇博文《OSG嵌入QT的简明总结》中论述了OSG在QT中显示的可视化问题。其中提到官方提供的osgQt项目(地址:https://github.com/openscenegraph/osgQt)很久前已经更新了。但是我一直没有时间同步更新,最近重新尝试了一下,还是有一些问题。原先的osgQt版本是兼容Qt4的QGLW
  • 2023-09-23osg 使用整理 (8):基础光照和法线贴图
    #osg使用整理(8):基础光照和法线贴图##1冯氏光照模型(PhongLightingModel)​冯氏光照模型只考虑直接光照,将进入摄像机的光分为4个部分:​(a)自发光表示当给定一个方向时,一个表面本身会向该方向发射多少辐射量​(b)镜面高光表示物体表面镜面反射的辐射量,模拟有光照的亮点​(c)
  • 2023-09-15OSG狀態
    模式和狀態:attribute:osg::CullFace*cf=newosg::CullFace(osg::CullFace::BACK);state->setAttribute(cf);mode:state->setMode(GL_FOG,osg::StateAttribute::ON);同時設置:osg::BlendFunc*bf=newosg::BlendFunc();//关联BlendFunc并许可颜色融合模式s
  • 2023-09-13OSG粒子系统
    ParticleSystem:是一个drawable,有很多属性可以设置。Aparticlesystemcanonlyuseonetexture。ModularEmitter:ModularEmitter->Emitter->ParticleProcessor->node:每帧都会产生新的粒子,最好使用"conter"、"placer"、"shotter"achieveawidevariety
  • 2023-09-08osg场景中的坐标和模型在3dmax的坐标有什么关联
    在OpenSceneGraph(OSG)中的坐标系统与3dsMax(3DStudioMax)中的坐标系统之间存在一些基本的关联,但也有一些重要的差异。以下是它们之间的主要区别和关联:坐标系方向:OSG使用右手坐标系,其中X轴指向右侧,Y轴指向上方,Z轴指向观察者的方向(远离观察者)。3dsMax通常使用左手坐标系,其
  • 2023-08-26osg 使用整理 (6):体渲染效果
    osg使用整理(6):体渲染效果​ ​ 体渲染技术可用于医学成像、计算流体力学、有限元、地球物理学、遥感等领域,数据通常来源于CT扫描、核磁共振MRI、卫星成像和声纳等设备,大概分为三种:直接体渲染技术(光线投射法、抛雪球法、错切变形法)、间接体绘制技术和最大密度投影技术。1光线
  • 2023-07-08OSG 使用整理(5):模板测试与边缘效果
    osg使用整理(5):模板测试与边缘效果1模板测试​ 在渲染管线中,模板测试在片段着色器后执行,通过像素与模板缓冲中的模板值比较,选择性丢弃或者保存这个像素颜色。我们可以通过更新模板测试来获得一些很有意思的效果。下图为LearnOpenGL网站一个例子。​ 可以发现,颜色缓冲经过模
  • 2023-06-30OSG初学者入门以及demo 示例
    根节点有很多分支,每个分支可以再有分支,每个分支点最上层的节点可以被看作该分支的根节点,用于管理整个分支的状态信息(光照,融合,透明等),为Node类型,一般使用Group;每个分支末端会是一个叶节点,叶结点用于管理绘制体,叶结点为Geode或其继承类(Billboard)可绘制体保存有绘制信息,例如几何体,文字,
  • 2023-06-22计算点的方位角 (osg)
    原文链接doublegetAngleByLatLon(doubleax,doubleay,doublebx,doubleby){ax=ax*osg::PI/180;ay=ay*osg::PI/180;bx=bx*osg::PI/180;by=by*osg::PI/180;doubletemValue=0;//经纬度相同或则纬度相同if(ax=