OGRE的学习资源

本文介绍从哪儿开始学习OGRE(Object-Oriented Graphics Rendering Engine的简称,又叫做OGRE 3D),如何在网上找寻OGRE的学习资源。

首先是wikipedia的介绍:

http://en.wikipedia.org/wiki/OGRE

官方网站

http://www.ogre3d.org/

官网介绍:http://www.ogre3d.org/about

特性列表:http://www.ogre3d.org/about/features

开发者对OGRE评价:http://www.ogre3d.org/about/testimonials

在这里下载OGRE

http://www.ogre3d.org/download/sdk

目前最新稳定版为1.9,上一个稳定版为1.8.1,可以两个都下下来,下载下来的.exe文件其实是个压缩包,直接解压。OGRE SDK文件夹下有个文件OgreSDK_vc10_v1-9-0/Docs/CodingStandards.html,建议首先读一下,这里讲了OGRE的给类命名的约定等,我简单列一些:

  1. 每个类的声明和实现都放在单独的源文件中,className.h里声明,className.cpp里实现,除少数类外;
  2. OGRE的所有东西都放在“Ogre”命名空间;
  3. 尽量使用STL的容器和算法(所以OGRE很依赖STL);

好了,看完介绍,可以动手了,官网有Tutorials

http://www.ogre3d.org/tikiwiki/tiki-index.php?page=Tutorials

Basic Tutorials简单讲了OGRE的各个方面:camera, light, shadow, sky, fog, input(key and mouse)等等,大概都是一步步教你做,然后简单讲解原理,建议全看,边看边跟着做;Intermediate Tutorials和In Depth Tutorials有一定深度,建议对OGRE有初步经验之后再看。

OGRE wiki有更多的资源:

http://www.ogre3d.org/tikiwiki/tiki-index.php

一旦开始写代码,API参考是必不可少的(OGRE SDK 包里有离线的,也可以从源码用Doxygen自己生成API文档):

http://www.ogre3d.org/docs/api/1.9/

当你遇到什么特殊问题,可以去OGRE论坛看看,很可能别人问过这个问题了,也可以发帖问,不要担心自己的英语不好,老外会很热情的给你解答的:

http://www.ogre3d.org/forums/

在下载的OGRE SDK包里面,有一个.sln文件,可以用Visual Studio打开,那是OGRE的example,里面的代码对入门者是很好的参考,编译SampleBrowser项目后运行结果截图如下:

另外有两本英文书籍,可以在新浪爱问共享资料上下载(我发现好多书都能从那里找到):

Ogre 3D 1.7 Beginner's Guide (Felix Kerger, 2010)

OGRE 3D 1.7 Application Development Cookbook (Ilya Grinblat, Alex Peterson, 2012)

第一本书我读了大部分了,内容形式是那种举例子教你做的,例子都较为简答(跟Basic Tutorials一个级别),适合入门,但OGRE背后的原理涉及很少;第二本是也是以应用为主的。怎么说呢,这两本书可以用来入门吧。

Pro OGRE 3D Programming是另一本OGRE的书,但太旧了,不建议看。

《OGRE 3D游戏开发框架指南》(邸锐,2010)是我能找到的为数不多的中文书籍,我没看,因为我看目录也是以例子为主的。

当你对OGRE有了更多经验之后(能构建需要的场景,添加鼠标键盘响应,帧事件),你可能想了解OGRE背后的东西,比如材质脚本怎么写,着色器脚本怎么写等等,可以看看OGRE manual

http://www.ogre3d.org/docs/manual/manual_toc.html#SEC_Contents

OGRE SDK 1.8.1包里也有。

在更深入探索OGRE之前你可能需要了解一下设计模式(得益于此,OGRE才有这么优美的设计)、STL标准库、C++模板等。哦,还有图形学相关理论,我推荐浙江大学的一个图形学课程的网站,看看上面给出的上课PPT之后你会对图形学有大致了解:

http://staff.ustc.edu.cn/~zhuang/acg/index.htm

剩下的估计是看源代码了吧。

  

原文地址:https://www.cnblogs.com/liangliangh/p/3572211.html