osg
osg设置节点材质
osg设置节点材质 #include <osg/Geode> #include <osg/Material> #include <osgDB/ReadFile> int main() { // 创建一个 Geode 对象 osg::ref_ptr<osg::Geode> geode = new os ......
osg绘制3d文字
#include <osg/Geode> #include <osgText/Text3D> int main() { // 创建场景图 osg::ref_ptr<osg::Group> root = new osg::Group(); osg::ref_ptr<osg::Geode> geode ......
osg Box透明度
#include <osg/Node> #include <osgViewer/Viewer> #include <osgDB/ReadFile> #include <osg/ShapeDrawable> int main() { // 创建Box对象 osg::ref_ptr<osg::Box> ......
osg添加光源
osg添加光源 #include <osg/Light>#include <osg/LightSource>#include <osg/Node>#include <osg/Geode>#include <osgDB/ReadFile>#include <osgViewer/Viewer>int m ......
osg Node节点透明度
osg Node节点透明度 osg::ref_ptr<osg::StateSet> stateState = north_wall_geode->getOrCreateStateSet(); stateState->setMode(GL_BLEND, osg::StateAttribute::ON) ......
osg绘制3D字体
osg绘制3D字体 osg::ref_ptr<osgText::Text3D> xText3D = new osgText::Text3D(); xText3D->setFont("font/arial.ttf"); xText3D->setCharacterSize(30); xText3D->s ......
osg 设置显示窗口大小
viewer->realize();//需要realize,否则窗口为null osgViewer::GraphicsWindow *pWnd = dynamic_cast<osgViewer::GraphicsWindow*> (viewer->getCamera()->getGraphicsCo ......
osg可视化fluid3d
下面是用osg3.6.5可视化的烟雾模拟,smoke simulation.这里fluid solver来自" Jos Stam, Real-Time Fluid Dynamics for Games", 按D键,添加烟雾,按G,T,H分别添加x,y,z方向的力,添加的烟雾过一阵自动会消散。 scr ......
osg 使用整理 (9):文本渲染
osg 使用整理 (9):文本渲染 1 FreeType文本渲染 FreeType用于加载TrueType字体并渲染到位图的库。TrueType字体通过数学公式表示的曲线来描述字体轮廓。类似于矢量图像,这些光栅化后的字体图像可以根据需要的字体高度来生成。FreeType所做的事就是加载TrueT ......
OSG开发笔记(二十九):OSG加载模型文件、加载3DMax三维型文件Demo
前言 Osg深入之后需要打开模型文件,这些模型文件是已有的模型文件,加载入osg之后可以在常见中展示模型文件,该节点可以操作,多个逼真的模型的节点就实现了基本的场景构建。 Demo 说明 三维模型文件一般是由专业的三维建模人员完成,可以去buy通用模型,但是定制模型的费用就相对不便宜了,几十几百几千 ......
osg 改变obj模型的方向
// // OpenSceneGraph Quick Start Guide // http://www.lulu.com/content/767629 // http://www.openscenegraph.com/osgwiki/pmwiki.php/Documentation/QuickSt ......
麒麟系统开发笔记(十三):在国产麒麟系统上编译OSG库、搭建基础开发环境和移植测试Demo
前言 在国产麒麟系统上实现C++三维仿真,使用OSG技术,其他基于web的技术也是可以但是交互上鼠标拽托等交互相对差一些,所以这块需要斟酌选择到底是何种技术来取舍。 本篇在厂家指定的麒麟系统上编译OSG。 环境 系统版本:银河麒麟桌面操作系统V10(SP1)(注意:不对外提供) Gcc版本:gcc ......
OSG嵌入QT的简明总结2
正文 我之前在这篇博文《OSG嵌入QT的简明总结》中论述了OSG在QT中显示的可视化问题。其中提到官方提供的osgQt项目(地址:https://github.com/openscenegraph/osgQt )很久前已经更新了。但是我一直没有时间同步更新,最近重新尝试了一下,还是有一些问题。 原先 ......
osg 使用整理 (8):基础光照和法线贴图
# osg 使用整理 (8):基础光照和法线贴图 ## 1 冯氏光照模型(Phong Lighting Model) 冯氏光照模型只考虑直接光照,将进入摄像机的光分为4个部分: (a)自发光表示当给定一个方向时,一个表面本身会向该方向发射多少辐射量 (b)镜面高光表示物体表面镜面反射的辐 ......
OSG狀態
模式和狀態: attribute: osg::CullFace* cf = new osg::CullFace( osg::CullFace::BACK ); state->setAttribute( cf ); mode: state->setMode( GL_FOG, osg::StateAtt ......
OSG粒子系统
ParticleSystem : 是一个drawable,有很多属性可以设置。A particle system can only use one texture。 ModularEmitter: ModularEmitter->Emitter->ParticleProcessor->node :每 ......
osg 使用整理 (6):体渲染效果
# osg 使用整理 (6):体渲染效果 体渲染技术可用于医学成像、计算流体力学、有限元、地球物理学、遥感等领域,数据通常来源于CT扫描、核磁共振MRI、卫星成像和声纳等设备,大概分为三种:直接体渲染技术(光线投射法、抛雪球法、错切变形法)、间接体绘制技术和最大密度投影技术。 ## 1 光线 ......
OSG 编译安装 && 使用
OSG 编译安装 && 使用 1. OSG 编译安装 //安装依赖 sudo apt-get install cmake libgdal-dev libfreetype6-dev zlib1g-dev liblua5.3-dev libcppunit-dev libpng-dev libjpeg-d ......
OSG 使用整理(6):使用FBO渲染到纹理
## 使用FBO渲染到纹理 ### 1.1 FBO 帧缓冲 帧缓冲包括颜色缓冲、深度缓冲和模板缓冲,默认帧缓冲是在我们创建窗口时生成和配置好的。OpenGL中使用过程类似缓存对象分为创建、绑定、读写、解绑、释放。 **a . 创建FBO,绑定纹理附件** 一个完整的帧缓冲需要附加至少一个 ......
OSG屏幕坐标转世界坐标
1 static osg::Matrix getScreenToWorldMatrix(osg::View *view) 2 { 3 return osg::Matrix::inverse(getWorldToScreenMatrix(view)); 4 } 5 6 static osg::Matr ......
OSG 使用整理(5):模板测试与边缘效果
# osg 使用整理 (5):模板测试与边缘效果 ## 1 模板测试 在渲染管线中,模板测试在片段着色器后执行,通过像素与模板缓冲中的模板值比较,选择性丢弃或者保存这个像素颜色。我们可以通过更新模板测试来获得一些很有意思的效果。下图为LearnOpenGL网站一个例子。 ![image-2023 ......
计算点的方位角 (osg)
原文链接 double getAngleByLatLon(double ax, double ay, double bx, double by){ ax = ax * osg::PI / 180; ay = ay * osg::PI / 180; bx = bx * osg::PI / 180; b ......
OSG 使用整理(4):使用普通纹理着色
osg中使用普通纹理着色 1.1 普通纹理 osg::Image类存储OpenGL纹理对象载入与使用的图像数据,其中方法data()将原始图像数据作为uchar* 指针返回,可以直接修改内存中数据,方法getPixelFormat方法返回像素格式,getDataType返回每个像素通道数据类型,方法 ......
Ubuntu下,已经编译了OSG,如何增加OsgFbx插件,支持读取.fbx格式文件[转]
最近在搞OSG相关的东西,美术给了个.fbx格式的模型,但死活无法加载,在网上搜了一圈,发现需要增加个插件才能支持这种格式的模型读取。 一、osg支持的文件格式列表 可以参看下这篇博文[原][资料整理][osg]osgDB文件读取插件,工作机制,支持格式,自定义插件 - 南水之源 - 博客园 二、在 ......
OSG初学者入门基础教程
1.打开VS,选择【新建】-【visual C++】-【win32】-【win32控制台应用程序】。 2.在解决资源方案管理器中, 右击【源文件】-【添加】-【新建项】 -【C++文件.cpp】 3右键项目,选择“属性”,选择“VC++目录”, 在包含目录添加:C:\OSG\include 在库目录 ......
OSG 使用整理(3):自定义漫游器动画
自定义漫游器动画 1 相机视图矩阵 1.1 坐标系统 (1)局部坐标系:以三维物体中的某个原点建立顶点比较方便,事实上一个复杂物体可能有多个局部坐标系,每个局部坐标系用于其某个部位。通过一组平移、旋转和缩放变换的组合,可以将局部坐标系变换到世界坐标系。 (2)世界坐标系:为了定义所有物体之间的空间关 ......
OSG 使用整理(2):设置渲染状态
二、场景管理 2.1 遍历场景图 场景图遍历类型有以下几种: (1) 事件遍历:在遍历节点时,处理鼠标和键盘输入。 (2) 更新遍历:用于修改场景图,添加节点,设置节点属性,执行回调。 (3) 裁剪遍历:根据节点是否位于一个视口内来筛选节点,裁剪掉不可见和不可用的节点。 (4) 绘制遍历:调用Ope ......
osg 配置好后,运行官方demo能够显示牛,但是代码实现时提示,ld链接错误,找不到构造函数和析构函数的定义
解决办法: g++ my.cpp -I /usr/local/include/ -o my -L /usr/local/lib/ -lOpenThreads -losgDB -losgText -losgUtil -losg -losgViewer -losgGA -losgManipulator ......