02 2012 档案
摘要:最近在看delta3d开源引擎,最底层封装的消息机制,是基于其has_slots,搜索了一下其资料发现是一个很好用的C++库,先对其简单介绍一下。首先说下插槽机制。插槽系统常用的有三种:boost的signals,sigslot,sigc++基本功能有:1.connect2.disconnect3.emitsigslot优点1.不用担心空回调,当回调对象析构时会自动disconnect2.支持多线程,线程安全,有锁3.缺点1.只能回调void类型函数,不支持返回值。boost中的signals库架构类似,支持返回值,但引入了boost中的其他库2.slot没有优先级,不能动态调整回调队列中..
阅读全文
摘要:[译] - 投影矩阵的推导原帖地址:http://www.codeguru.com/cpp/misc/misc/math/article.php/c10123__1/Deriving-Projection-Matrices.htm译文:矩阵变换作为3d图形程序员的基本知识,投影矩阵是其中很复杂的内容。平移和缩放是容易理解的,旋转矩阵只需要掌握了基本的三角几何知识,但是投影 矩阵不一样。如果你看过投影矩阵的形式,你会发现你很难很快知道它是怎么来的。而且,我在网上没有发现很多有关推导投影矩阵的资源。本文就是讲述如何推导 投影矩阵。对于新接触3d图形学的人来说,推导投影矩阵需要有一定的数学基础,但不
阅读全文
摘要:使用OSG的人都知道OSG的内存管理方式采用了智能指针,通过智能指针的方式让OSG自己处理对象的销毁工作。在OSG中有两个智能指针类型,一个就是我们再熟悉不过的ref_ptr,另外一个可能很多人不一定经常用,但确实非常好的observer_ptr。这两种类型都是作为智能指针而出现的,那他们到底有什么区别?为什么会出现两个类似的东西?下面我们慢慢揭开它们的面纱。 其实它们是两种智能指针类型,一种是我们熟悉的强指针类型(strong pointer),一种是弱指针类型(weak pointer),ref_ptr就是强指针类型,observer_ptr是弱指针类型,强指针类型ref_ptr和一般意.
阅读全文