OSG
天涯泛孤舟
用技术展现更好的未来!
展开
-
OSG点击场景中的某个物体,如何判断点击的物体,及处理此模型相关变换
首先建立事件响应类,继承自osgGA::GUIEventHandler在handle()函数中做相关处理如下://创建一个线段交集检测对象bool handle( const osgGA::GUIEventAdapter& ea,osgGA::GUIActionAdapter& aa ){osgUtil::LineSegmentIntersector::Inte原创 2016-08-17 09:13:24 · 1809 阅读 · 0 评论 -
QT中嵌入OSG场景,关于全屏及无法退出全屏的问题
1. 首先:实现全屏很简单,只需添加相应的槽,在其中通过如下代码:object->setWindowFlags(Qt::SubWindow);object->showNormal();即可轻易将object窗口全屏;2.其次,我们可能想着通过点击某个按键退出全屏,然后重写了个pressEvent()函数,可是我们发现,即使点击这个按键,然而这个函数并原创 2016-08-18 11:51:23 · 2154 阅读 · 0 评论 -
OpenGL粒子系统详解及编程实现
粒子系统的基本思想是:采用许多形状简单的微小粒子作为基本元素,用它们来表示不规则模糊物体。这些粒子都有各自的生命周期,在系统中都要经历“产生” 、 “运动和生长”及“消亡”三个阶段。粒子系统是一个有“生命”的系统,因此不象传统方法那样只能生成瞬时静态的景物画面,而是可以产生一系列运动进化的画面,这使得模拟动态的自然景物成为可能。这篇文章讲解不用GPU加速的一个粒子系统实例。利用粒子原创 2016-08-23 14:23:47 · 17438 阅读 · 1 评论 -
osg三维重建的两种方法剖析:三角面片(osgUtil::DelaunayTriangulator)和四角面片(osg::HeightField)
最近项目中需要利用osg重建三维曲面,所以学习了一下。第一,我先用的狄洛尼三角形的方法,即osgUtil::DelaunayTriangulator,用这种方法的特点是:1.首先必须给其一个存储三维点集的数组,该方法会对这些杂乱无章的散点自动排序,然后就利用这些排好序的,符合三角网构建规则的散点去构建三角网,需要注意的是经过dt->setInputPointArray(coords转载 2016-09-19 09:40:03 · 3151 阅读 · 0 评论 -
osg::Geode,osg::Drawable,osg::Shape,osg::Geometry
一、osg::Geode类类说明:Geode结点,是个几何结点,可以说是一个几何Group结点,一般的可绘制几何体都是通过它来传向root进行渲染。是OSG几何绘制的最高管理结点。1、Geode () Geode (const Geode &, const CopyOp ©op=CopyOp::SHALLOW_COPY)说明:构造函数,第二个构转载 2016-09-19 17:23:04 · 3139 阅读 · 0 评论 -
OSG总结
在用户程序中使用osg 一.渲染Osg开放了所有的功能模块。因此用户程序完全可以使用最底层的osg功能来执行渲染操作。假设用户希望能够完全自主的控制场景图形的渲染,那么也可以按照下面的步骤编写应用程序的代码:1. 设计自己的视角管理代码:以改变OpenGL的模型视图矩阵。2. 创建用户窗口和OpenGL上下文,并将他们激活。如果有需要转载 2016-10-27 16:13:08 · 1636 阅读 · 0 评论 -
OSG开源教程
整理:荣明、王伟北 京2008年4月序第一次接触OSG是在2001年,当时开源社区刚刚兴起,还没有现在这么火。下载了OSG源码,但是在看了几个Demo之后,感觉没有什么特别之处。时隔七年之后,我再次将目光投向OSG,发现OSG确实有其独到之处,很多3D效果已经不弱于甚至超过商业软件,有感于开源力量的巨大。但是,与当前主流3D商业软件如Vega、VegaPrime、VTree、Per转载 2016-10-27 22:11:44 · 4074 阅读 · 0 评论