OGRE的学习资源
本文介绍从哪儿开始学习OGRE(Object-Oriented Graphics Rendering Engine的简称,又叫做OGRE 3D),如何在网上找寻OGRE的学习资源。
首先是wikipedia的介绍:
http://en.wikipedia.org/wiki/OGRE
官方网站:
官网介绍: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的给类命名的约定等,我简单列一些:
- 每个类的声明和实现都放在单独的源文件中,className.h里声明,className.cpp里实现,除少数类外;
- OGRE的所有东西都放在“Ogre”命名空间;
- 尽量使用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论坛看看,很可能别人问过这个问题了,也可以发帖问,不要担心自己的英语不好,老外会很热情的给你解答的:
在下载的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
剩下的估计是看源代码了吧。
OGRE的学习资源的更多相关文章
- springboot 学习资源推荐
springboot 是什么?对于构建生产就绪的Spring应用程序有一个看法. Spring Boot优先于配置的惯例,旨在让您尽快启动和运行.(这是springboot的官方介绍) 我们为什么要学 ...
- Redis初识、设计思想与一些学习资源推荐
一.Redis简介 1.什么是Redis Redis 是一个开源的使用ANSI C 语言编写.支持网络.可基于内存亦可持久化的日志型.Key-Value 数据库,并提供多种语言的API.从2010 年 ...
- 一份关于Swift语言学习资源的整理文件
一份关于Swift语言学习资源的整理文件 周银辉 在这里下载 https://github.com/ipader/SwiftGuide
- angularJS学习资源最全汇总
基础 官方: http://docs.angularjs.org angularjs官方网站已被墙,可看 http://www.ngnice.com/: 官方zip下载包 https://github ...
- Scala学习资源
Scala学习资源: Scala官方网站:http://www.scala-lang.org/ Scala github:https://github.com/scala/scala Twitter ...
- .net 网站开发学习资源
慕课网 前端基础学习 http://www.imooc.com/course/list?c=fe 了解需求 例子之一 http://wenku.it168.com/d_000517899.shtml ...
- OpenGL的学习资源
OpenGL是3D图形接口工业标准,使用上非常简单,所有API不过上百个函数,但理解OpenGL就没那么简单,本文总结OpenGL的学习资源,包括官方资料.网上教程.示例程序等. Wikipedia: ...
- Bullet的学习资源(用Doxygen生成API文档)
Bullet 全称 Bullet Physics Library,是著名的开源物理引擎(可用于碰撞检测.刚体模拟.可变形体模拟),这里将bullet的学习资源整理一下,希望能帮助入门者少走弯路. 看下 ...
- VTK的学习资源
本文介绍从哪儿开始学习VTK(Visualization Toolkit的简称),如何在网上找寻VTK的学习资源. 首先,可以到维基百科或者百度百科上查看VTK条目,了解VTK是什么. http:// ...
随机推荐
- charles抓包工具
HTTP抓包 打开Charles程序 查看Mac电脑的IP地址,如192.168.1.7 打开iOS设置,进入当前wifi连接,设置HTTP代理Group,将服务器填为上一步中获得的IP,即192.1 ...
- Android的权限检查
Application的权限: 可以在AndroidManifest.xml中用<permission>定义运行Application需要的权限. 用<uses-permission ...
- MongoDB入门
安装 安装MongoDB 从官网下载 安装 测试连接 启用 安装MongoDB Windows服务 > d:\mongodb\bin>mongod --dbpath "d:\mo ...
- c++学习笔记1
1.explicit 防止隐式类型转换 2.cbegin() cend()等价于返回 const_iterator 类型 3.it->mem 等价于 (*it).mem 4.不允许使用一个数组初 ...
- ASP.NET4.5从零开始(1)
使用Web窗体 引言 前段时间客户A突然提出,B项目希望可以做成BS形式的,之前是CS的,因为我之前也没学过ASP.NET,于是一边百度,一边Coding,马马虎虎的把功能流程给调通,然后就交差了,想 ...
- mac brew mysql 启动之后报错
打开电脑 链接mysql 发现报错,连不上,应该是没自启动, 之前一直用windows电脑,就用mysql start 准备启动下,发现报错, p.p1 { margin: 0.0px 0.0px 0 ...
- 更新App版本的流程
上班一年了还没有自己打包上传过APP,周五下班时项目经理手把手教了我一遍,我大致把流程在这里回顾一下: 1.首先要将svn上的代码拷贝一份到分支上,用终端操作:svn cp https://192.1 ...
- linux 两个文件合并
可以使用cat命令,有两种实现的方式,一种将两个文件合并的到一个新的文件,另一种将一个文件追加到另一个文件的末尾. 方法一:使用cat命令从文件中读入两个文件,然后将重定向到一个新的文件.这种方法可以 ...
- 基于Jenkins + Git的PHP项目编译脚本
本文针对的是了解或已经在使用Jenkins和Git的开发者或团队. 本团队使用了Jenkins作为持续集成平台,Git作为版本管理工具,而本人负责的项目是PHP项目,所谓发布项目就是复制文件. 通常有 ...
- x.2
某些原因,和女朋友分手了,难过 订的M18XR3居然提前了半个多月到货,开心 想想一个人的孤单,还是有点难过 转眼间人生已经过去小半,剩下的除去苟延残喘20年,也就不到20年时间蹦跶.都说人生如戏,既 ...