我的认为学习3D图形程序开发,有两套经典教程.D3D的<D3D游戏开发编程基础>也就是红龙那本书.OpenGL的NEHE教程.为向经典致敬,将我以前翻写他们的程序开源.编程
我所作的工做是将其全部的DEMO集成到一个项目中.全部的DEMO使用同一个渲染设备.这样能够在一个进程中自由地切换DEMO.写这套东西最大的麻烦是,每个DEMO对渲染设备状态作出的改变,在其退出时须要恢复回去.这看上去很容易,但当出现问题时查起来却很麻烦,由于教程中的DEMO实在是太多了.最多见的问题是渲染效果不对了,这在搞图形程序时最常发生,对此类问题,我没什么好解决方案,能给出的建议是:错得多了慢慢就会有经验了.还有一点要注意的是DEMO中申请的资源须要在退出时释放.在NEHE的OpenGL教程中彷佛不太注重这点,不少地方只有申请,没有释放.但在D3D中若是开启了D3D Debug模式下,退出程序时,如有未释放的资源则会出现报错.学习
两套程序中都有个Flying项目模块,这是我本身写的几个图形DEMO.个人设计是每一类DEMO放到一个项目中,好比开发者要再翻写一套OPENGL编程宝典或红宝书的经典程序,能够新建一个项目,将其全部DEMO写到该工程中.须要注意的是配置文件的新写DEMO配置.spa
开发环境:VS2008.设计
代码下载地址:
http://pan.baidu.com/s/1pJkD4Bh
这里面有三个工程,Why_DX9和Why_GL分别含有红龙教程和NEHE教程的代码.blog
软件说明:教程
主UI界面上,鼠标点击能够选择要运行的DEMO
键盘的上下键也能够选择DEMO,PageUp和PageDown用于翻页,回车键用于启动选中的DEMO游戏
F11键用于全屏切换,
ESC用于退出当前DEMO及退出全屏
每一个DEMO都会将提示文字信息显示在界面上,H键能够隐藏文字.进程