osgNETDemo
写了一个简单的OpenSceneGraph和.NET结合的例子。这个例子使用了C++/CLI语言进行托管和非托管之间的相互调用,使用.NET的Windows Forms类库进行UI设计,OSG进行渲染。该例子提供了如何打开并显示文件,使用按钮控制viewer的演示,可作为一个很好的入门例子。
截图如下:
源代码如下:
正确使用预编译头
做C++的项目的时候最怕的就是编译速度缓慢,前段时间一直抱怨C++/CLI编译OSG项目速度很慢很慢,我以为是OSG的inline函数过多的问题,但确实也是这个问题,每次处理的时候都要处理很多的inline,造成了编译速度的缓慢,往往修改一个文件整个工程都要重新编译,那速度可想而知。但总也要有一个解决方案啊,以前知道预编译头能够加速工程的编译,但是我设置了预编译头,怎么还是那么慢呢?肯定是我使用方法不对。
在网上Google了一圈以后找到了预编译头的正确使用,感谢作者的启迪。
引用最重要的部分:
如果预编译头文件被正确使用时,它确实大大提高我们编程的效率(你工作中,有多少时间是在等编译完成?很多吧,这个时候一般都很无聊,无奈,浪费时间)。但是他太容易用错了. 下面是几种常见的错误用法.
1) 在预编译头文件里include自己的头文件(当然, 如果你的头文件不经常变化, 也可以)
原因:自己的头文件一般会经常变, 便利后导致预编译的东东重新编译, 降低了编译速度.
2) 在其他的头文件里也include 预编译头文件
假设你的其他头文件也include了预编译头文件, 如果别人引用你的这个头文件又没有设置成预编译头文件, 那引用你头文件的这个人就煎熬了.
原 因:由于你用到的.h文件里include了预编译头文件,他在他本身的project里,vs能够判断的出他是预编译头,也能找的到需要的pch, pdb文件。所以对写这个.h文件的人没影响。但是你作为他的客户,你工作在你的project下,你include了他的h头文件,而这时vs判断不出 他的头文件里include的stdafx是预编译头文件,做普通文件编。那可想而知,他的stdafx里如果有import外面大型的库(如 inventor的tlb,非常慢,我们犯了这个错),那编译速度简直是煎熬。最要命的是,以后你做任何简单的修改都要重编,这和预编译解决的问题恰好相 反了。
*下面给出一个使用预编译头文件的操作步骤, 享受一下预编译头文件给我们带来的编译速度的提升: *
*1) 添加一个stdafx.h文件(名字随便取, 这里用了VS默认提供的名称), 在这个.h文件里include要使用的头文件(一般是外部的库, 自己写的不常变的头文件也可以加进来) *
*2) 添加一个stdafx.cpp文件, 并include “stdafx.h” *
*3)项目属性–>c/c++–>Precompiled设置为Use Precompiled Header, stdafx.h *
*4)stdafx.cpp属性–>c/c++->Precompiled设置为Create Precompiled Header, stdafx.h *
done!
试了一下改动一点点东西需要编译3分钟的项目,现在瞬间完成!!终于起作用了!
Linux网站导航
一系列Linux社区,见:http://linux.ubuntu.org.cn/
尘埃(视频)
把电脑抱到客厅,享受47寸液晶电视带来的超爽视域和更加绚丽的色彩。分辨率1280*960,16:10,“尘埃”开启。这个赛道是DEMO里面所提供了的赛道,当年游戏DEMO刚出来的时候我那个6600GT根本不要我进游戏。好了现在的显卡能够流畅的运行最高画质了。来,跑一圈,用摄像机记录下回放的镜头,虽然开的不是很完美,知足了:)
(2008-11-27:由于老主机不支持视频播放,该链接已经失效)