zoukankan      html  css  js  c++  java
  • WHY翻写NEHE与红龙的3D图形程序 [开源]

         个人认为学习3D图形程序开发,有两套经典教程.D3D的<D3D游戏开发编程基础>也就是红龙那本书.OpenGL的NEHE教程.为向经典致敬,将我之前翻写他们的程序开源.

         我所做的工作是将其所有的DEMO集成到一个项目中.所有的DEMO使用同一个渲染设备.这样可以在一个进程中自由地切换DEMO.写这套东西最大的麻烦是,每一个DEMO对渲染设备状态做出的改变,在其退出时需要恢复回去.这看上去很容易,但当出现问题时查起来却很麻烦,因为教程中的DEMO实在是太多了.最常见的问题是渲染效果不对了,这在搞图形程序时最常发生,对此类问题,我没什么好解决方案,能给出的建议是:错得多了慢慢就会有经验了.还有一点要注意的是DEMO中申请的资源需要在退出时释放.在NEHE的OpenGL教程中似乎不太注重这点,很多地方只有申请,没有释放.但在D3D中如果开启了D3D Debug模式下,退出程序时,若有未释放的资源则会出现报错.

          两套程序中都有个Flying项目模块,这是我自己写的几个图形DEMO.我的设计是每一类DEMO放到一个项目中,比如开发者要再翻写一套OPENGL编程宝典或红宝书的经典程序,可以新建一个项目,将其所有DEMO写到该工程中.需要注意的是配置文件的新写DEMO配置.

    开发环境:VS2008.

    代码下载地址:
    http://pan.baidu.com/s/1pJkD4Bh
    这里面有三个工程,Why_DX9和Why_GL分别含有红龙教程和NEHE教程的代码.

    软件说明:

    主UI界面上,鼠标点击可以选择要运行的DEMO
    键盘的上下键也可以选择DEMO,PageUp和PageDown用于翻页,回车键用于启动选中的DEMO

    F11键用于全屏切换,
    ESC用于退出当前DEMO及退出全屏
    每个DEMO都会将提示文字信息显示在界面上,H键可以隐藏文字.

  • 相关阅读:
    ResourceBundle读取utf-8格式properties 中文乱码
    jquery checkbox选中
    扩展RBAC用户角色权限设计方案<转>
    Java调用doNet webService方法
    Mybatis批量更新<转>
    Json转list,两种包,两种方式
    win8.1 64位安装oracle10g客户端心得
    关于JXL读写以及修改EXCEL文件<转>
    Oracle主表列表上显示从表字段拼成的字符串
    ExtJS获取Grid的行数
  • 原文地址:https://www.cnblogs.com/WhyEngine/p/3811713.html
Copyright © 2011-2022 走看看