【问题标题】:Good extensible project that will help me learn theoretical computer graphics? [closed]可以帮助我学习理论计算机图形学的好可扩展项目? [关闭]
【发布时间】:2011-09-11 07:24:34
【问题描述】:

我在大学里从未参加过计算机图形学课程,但我想彻底了解您在该课程中学到的所有知识。我认为最好的学习方式是通过实践(编程)。

如果我要从头开始一个 OpenGL 程序,然后慢慢构建它以添加新功能以理解所有概念,我会涵盖哪些内容?什么是一个很好的项目来证明这一点?

【问题讨论】:

  • 简单的第一人称射击游戏?你可以先在一个平面阴影框内移动相机,然后继续添加功能,直到你拥有 Quake :)
  • 嗯,有趣的建议!通过这个学到了哪些概念!

标签: opengl graphics


【解决方案1】:

如果你想从 OpenGL 入手,你可以试试Angel's books。另一个非常流行的可扩展图形项目是光线追踪器。为此,Suffern 的Ray Tracing from the Ground Up 非常好,你会学到很多概念。

【解决方案2】:

我是该主题系列教程的作者:

http://www.opengl-tutorial.org/

关于你将学习的概念的问题,目录可以给你一个好主意:

基础 OpenGL

Tutorial 1 : Opening a window
Tutorial 2 : The first triangle
Tutorial 3 : Matrices
Tutorial 4 : A Colored Cube
Tutorial 5 : A Textured Cube
Tutorial 6 : Keyboard and Mouse
Tutorial 7 : Model loading
Tutorial 8 : Basic shading

中级教程

Tutorial 9 : VBO Indexing
Tutorial 10 : Transparency
Tutorial 11 : 2D text
Tutorial 13 : Normal Mapping
Tutorial 14 : Render To Texture

杂项

Math Cheatsheet
Useful Tools & Links

教程 12 由 sb else 完成,并不重要;教程 15 和 16 正在开发中(烘焙和实时阴影)

当然,您必须记住,如果没有一本大书,您就无法“透彻理解一切”。我建议使用Real-Time Rendering 3 对几乎所有内容进行广泛但通常不深入的讨论,以及一本额外的数学书,例如Essential Mathematics for Games and Interactive Applications

此外,我赞同 walkytalky 从头开始​​制作 FPS 的提议。我们基本上都是这样做的。

【讨论】:

    【解决方案3】:

    如果您确实打算构建一个项目并慢慢扩展它,我不建议使用任何形式的 FPS。的确,我会怀疑任何类型的游戏。

    原因是大多数游戏都涉及很多您不感兴趣的事情。碰撞检测、物理、人工智能、真实交互性等。这些对于制作游戏很重要,但是你花在它们上的时间越多,你花在其他东西上的时间就越少。

    老实说,我建议不要完全采用您的方法。也就是说,您不应该从单个项目开始并在其上进行构建。你想要的是理解图形。除非你打算从第一原理重建图形理论,否则至少在开始时要向其他人学习。无论是书籍、网站等,您都需要扎实的数学基础和基本技能,才能开始自己做项目。使用正确的材料这样做可以帮助您避免程序员经常遇到的许多陷阱。

    OpenGL Wiki 有 links to many tutorials and other how-to guides 用于学习基础知识。为了全面披露,我正在编写其中链接的指南之一。

    一旦你有了坚实的基础,你应该做的就是说“我想学习图形技术 X”。那么你对这个主题进行一些研究。也许你在论坛或类似的地方问一些人。一旦你理解了它,你就可以构建一个新的应用程序来测试它并让它工作。然后,您继续学习图形技术 Y。等等。

    一旦您牢牢掌握了如何绘制特定的东西,您就可以开始慢慢扩展您的单个项目了。这样,您将了解如何构建您的渲染系统等等。

    如果您确实坚持采用这种方法,我建议您从某种互动有限的自上而下式游戏开始。也许是一个益智游戏或类似的东西。地面不应该是平坦的,但您也不应该在碰撞检测方面做大量工作。这样,您不必对游戏的“游戏”部分做太多事情,而可以专注于渲染。

    【讨论】:

      猜你喜欢
      • 2023-01-02
      • 2011-04-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-12-12
      • 2015-03-28
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多