本文介绍从哪儿开始学习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

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

OGRE的学习资源的更多相关文章

  1. springboot 学习资源推荐

    springboot 是什么?对于构建生产就绪的Spring应用程序有一个看法. Spring Boot优先于配置的惯例,旨在让您尽快启动和运行.(这是springboot的官方介绍) 我们为什么要学 ...

  2. Redis初识、设计思想与一些学习资源推荐

    一.Redis简介 1.什么是Redis Redis 是一个开源的使用ANSI C 语言编写.支持网络.可基于内存亦可持久化的日志型.Key-Value 数据库,并提供多种语言的API.从2010 年 ...

  3. 一份关于Swift语言学习资源的整理文件

    一份关于Swift语言学习资源的整理文件     周银辉 在这里下载 https://github.com/ipader/SwiftGuide

  4. angularJS学习资源最全汇总

    基础 官方: http://docs.angularjs.org angularjs官方网站已被墙,可看 http://www.ngnice.com/: 官方zip下载包 https://github ...

  5. Scala学习资源

    Scala学习资源: Scala官方网站:http://www.scala-lang.org/ Scala github:https://github.com/scala/scala Twitter ...

  6. .net 网站开发学习资源

    慕课网 前端基础学习 http://www.imooc.com/course/list?c=fe 了解需求 例子之一 http://wenku.it168.com/d_000517899.shtml ...

  7. OpenGL的学习资源

    OpenGL是3D图形接口工业标准,使用上非常简单,所有API不过上百个函数,但理解OpenGL就没那么简单,本文总结OpenGL的学习资源,包括官方资料.网上教程.示例程序等. Wikipedia: ...

  8. Bullet的学习资源(用Doxygen生成API文档)

    Bullet 全称 Bullet Physics Library,是著名的开源物理引擎(可用于碰撞检测.刚体模拟.可变形体模拟),这里将bullet的学习资源整理一下,希望能帮助入门者少走弯路. 看下 ...

  9. VTK的学习资源

    本文介绍从哪儿开始学习VTK(Visualization Toolkit的简称),如何在网上找寻VTK的学习资源. 首先,可以到维基百科或者百度百科上查看VTK条目,了解VTK是什么. http:// ...

随机推荐

  1. Get Script Path in Shell

    #!/usr/bin/bashdir_old=$(pwd)absolute_script_path=$(cd $(dirname $0) && pwd)relative_script_ ...

  2. JAVA 循环语句的练习

    /*for(int i=1;i<=10;i++)   //输出一个三角形 { for (int j=1;j<=i;j++) { System.out.print("*" ...

  3. LeetCode 7 Reverse Integer int:2147483647-2147483648 难度:2

    https://leetcode.com/problems/reverse-integer/ class Solution { public: int inf = ~0u >> 1; in ...

  4. BZOJ 1189 二分匹配 || 最大流

    1189: [HNOI2007]紧急疏散evacuate Time Limit: 10 Sec  Memory Limit: 162 MBSubmit: 1155  Solved: 420[Submi ...

  5. 一次DB服务器性能低下引发的对Nonpaged Pool Leak问题的诊断

    1. 问题表象+分析 最开始是DB访问性能下降,某个不用Cache.直接到DB的查询10s+都不返回.上去一看,DB Server内存97%,可用内存才100多M. Windows毕竟不是iOS,不留 ...

  6. number 数据类型的分析。

    在js中,number数据类型可能算最令人关注的的类型之一了. number类型分为整数和浮点数. 一,整型数,整型又分为十进制,八进制,十六进制. 十进制即是生活中接触到的:而八进制数的首位必须是零 ...

  7. matlab 使用札记

    1.inline 命令行内置函数,作用同Function一致 2.repmat B = repmat(A,m,n)B = repmat(A,[m n])B = repmat(A,[m n p...]) ...

  8. 常见JDBC连接数据库字符串

    1.Mysql 驱动类:com.mysql.jdbc.Driver 连接字符串:jdbc:mysql://localhost:3306/dbname 2.Oracle 驱动类:oracle.jdbc. ...

  9. IE6兼容问题并解决总结

    1.使用声明你必须经常在html网页头部放置一个声明,推荐使用严格的标准.例如<!DOCTYPEHTMLPUBLIC“-//W3C//DTDHTML4.01//EN”   "http: ...

  10. APC注入(Ring3层)

    /* 步骤: 1.提权(GrantDebugPrivileges) (1)获得令牌token,OpenThreadToken(),OpenProcessToken () WINADVAPI BOOL ...