OSG
dazhi_1314
架构路漫漫
求索无止境
展开
-
QT+OSG+CEGUI界面编程
<br />目前还没有将QT、OSG和CEGUI结合的例子,OSG自带有osgcegui和osgviewerQT例子,但是将三者结合不是那么简单的事情,经过不断的摸索和调试,解决了三者结合编程中的一系列问题,下面是最核心的实现CEGUI窗口类的代码,在窗口事件处理类中处理事件之前,要先判断是否已经捕捉到CEGUI窗口,如果没有捕捉到CEGUI窗口,则还要继续判断鼠标是否落在CEGUI窗口内,是则return true,否则在为CEGUI注入窗口事件后return true。完整代码如下:<br />#ifn原创 2010-07-01 13:12:00 · 5665 阅读 · 0 评论 -
布告板技术创建树木
#include #include #include #include #include #include #include #include #include #include osg::ref_ptr createBillboardTree(osg::ref_ptr image) { //创建四边形 osg::ref_ptr geometry = new osg::Geometry; //设置顶点 osg::ref_ptr v = new原创 2010-07-06 09:45:00 · 1470 阅读 · 0 评论 -
OSG的CompositeViewer和Viewer比较
<br />如何判断何时使用CompositeViewer或Viewer,这需要从概念和实际应用两方面来考虑。否则的话,用户可能会在编写程序,或者与他人进行交流时遇到困惑。<br />我们首先来了解一下这两个视图类的共同之处,以及视图(View)的基本概念。视图相当于是一个观察真实世界的窗口。打个比方来说,如果你从一幢大楼的多个窗户向外看,其中的某一个窗户就相当于一个视图。如果你面前有多个窗户,而你准备向他人介绍一下自己看到的景色,那么你需要选择单一的视图进行讲解——这个时候,其它更多的窗户就显得没有意义了翻译 2010-07-06 15:04:00 · 5170 阅读 · 0 评论 -
解决QT中文字符串在osg中显示乱码的问题
<br />网上有很多例子,但是几乎都没有正常显示中文,经过痛苦的试验和折磨,终于解决了QT字符串在osg中的正常显示问题,下面贴出主要代码,分享给大家。<br /> <br /> QTextCodec::setCodecForTr(QTextCodec::codecForName("GBK")); QTextCodec* code = QTextCodec::codecForName("UTF-8"); QString qstr = QObject::tr("中国"); s原创 2010-07-06 12:42:00 · 3716 阅读 · 1 评论 -
OSG智能指针
<br />摘自:Don Burns《Using Reference Pointers in Producer and OpenSceneGraph》<br />ref_ptr<> 利用引用计数管理分配在堆上的内存,计数为(0)时自动释放内存<br />规则1:<br />对所有从Referenced 继承的类,都用ref_ptr<><br />规则2:<br />绝对不要返回ref_ptr<> 指向的地址,返回ref_ptr<> 它自己<br />规则3:<br />绝对不要用ref()、unref(),转载 2010-12-09 10:06:00 · 3479 阅读 · 0 评论 -
Open Scene Graph 内存管理
<br />在Osg中有一个类被使用的最多,那就是ref_ptr.Osg中提供了一种自动管理内存的机制,这种机制涉及到两个类:第一个就是ref_ptr,另外一个就是osg::Referenced.<br />osg::Reference支持通过引用计数的方式来控制自己的生命周期,它期望,每次被一个新客户引用的时候,新客户能给他添加引用计数;而当客户不需要再使用它的时候,希望客户能够减少引用计数.<br />如果引用计数达到0,那么osg::Reference就会析构自己,释放内存.<br />但是这个过程对原创 2011-01-25 15:59:00 · 1856 阅读 · 0 评论 -
Z-Buffer 和 W-Buffer
Depth-Buffer(深度缓存)有两种:Z-Buffer 和 W-Buffer,这里讨论这两种深度缓存的区别,以及如何在两者之间转换。w 的含义<br />3D空间点的坐标是(x,y,z),为了使矩阵乘法具有平移变换的功效,我们用4D空间中的点(x,y,z,w)来表示3D空间中的点(x',y',z'),这两个不同空间点之间的关系是: x' = x / w y' = y / w z' = z / w<br />像这样用四维空间点表示三维空间点,或者说用 n + 1 维空间点表示原创 2011-02-25 11:50:00 · 1695 阅读 · 0 评论 -
gluLookAt() 函数
gluLookAt() 函数<br />函数原型<br />void gluLookAt( <br /> GLdouble eyex, <br /> GLdouble eyey, <br /> GLdouble eyez, <br /> GLdouble centerx, <br /> GLdouble centery, <br /> GLdouble centerz, <br /> GLdouble upx, <br /> GLdouble upy, <br /> GL原创 2011-03-07 09:19:00 · 2289 阅读 · 0 评论