【问题标题】:Computer Graphics: Raytracing and Programming 3D Renders计算机图形学:光线追踪和编程 3D 渲染
【发布时间】:2010-10-01 12:30:33
【问题描述】:

我注意到,许多顶尖大学都在开设课程,让学生学习与计算机图形学相关的 CS 专业课程。可悲的是,这是我的大学没有提供的东西,我真的很想在未来几年的某个时候进入。

我从一些大学发现的几个项目都很棒,虽然我最感兴趣的是两件事:

  • 光线追踪:
    • 我想在未来两年内编写一个 Raytracer。我需要知道什么?我还不是一个出色的程序员(Java、C 和 Prolog 是我今天的主要语言),但我每天都在慢慢学习。此外,我的数学背景并不是那么好,所以任何关于阅读书籍的指针或关于编写这样一个程序的建议都会很棒。我倾向于很快拿起这些东西,所以请随意向我扔参考。
  • 编程 3D 渲染模型
    • 我查看了几个学生开发模型并将其用于游戏的项目。我用光栅图像制作了几个 2D 游戏,但从未使用 3D 模型。在编程这些模型方面我需要学习什么?如果对我有帮助的话,我以前对 3D Studio Max 和 Cinema4D 没问题(尽管似乎每门课程都使用 Maya),但大约四年没有碰过它。

很抱歉发布了如此含糊的问题,说实话,愚蠢的问题。这只是我一段时间以来一直想做的事情,而且作为一个大型项目,我可以在自己的时间里进行开发。

相关问题

【问题讨论】:

  • 如果不了解您想要达到的目标,很难回答您的问题。为“玩具总动员”编程渲染器所需的人才和构建 FPS 游戏所需的人才之间存在巨大差异。您最终希望能够利用这些技能做什么?
  • 我只是想知道它背后的理论,所以两个实用的想法都很棒。不过,我希望能够编写一个小场景,比如玩具总动员会很棒。博弈论是我已经接触过的东西,所以一个场景会很棒。

标签: programming-languages 3d raytracing graphics


【解决方案1】:

我能给出的最简短有用的答案是,大多数重要的算法都可以在 Tomas Akenine-Möller、Eric Haines 和 Naty Hoffman 的 Real-Time Rendering 中找到,并且最后的参考书目有必要的数学参考。他们的网站也有推荐阅读清单。

我读过的关于这个主题的最有用的数学书是 Eric Lengyel 的3D 游戏编程和计算机图形学的数学。您最需要的数学是几何(显然)和线性代数(用于处理所有矩阵)。

【讨论】:

    【解决方案2】:

    2000 ICFP Programming Contest 要求参与者在三天内构建一个光线追踪器。他们对简单的光线追踪器有很好的规范,您也可以获得获胜条目和其他一些条目的代码。有大量不同编程语言的条目。这可能是您入门的好方法。

    【讨论】:

    • 看起来棒极了!我会很开心地浏览其中的一些程序。谢谢!
    【解决方案3】:

    我去年参加了这样一门课,我相信这门课非常适合强迫学生学习计算机图形学背后的数学——而不仅仅是让计算机做你想做的事情的命令。

    我的教授有一个位于here 的网站,上面有他的讲义和习题集,您可以浏览一下。

    我们的最终项目确实是一个光线追踪器,但是一旦你了解了它背后的数学原理,编码(效率低下)就变得微不足道了。

    【讨论】:

      【解决方案4】:

      这本书"Computer Graphics: Principles and Practice"(在计算机图形学界被称为“Foley-VanDam”)是大多数计算机图形学课程的基础,它详细介绍了实现光线追踪器的主题。它已经过时了,但它仍然是最好的,afaik,基本原则保持不变。

      我也赞同Eric Lengyel's Mathematics for 3D Game Programming and Computer Graphics 的建议。它没有那么透彻,但它是对 3D 编程所需数学基础知识的精彩回顾,每章末尾都有非常有用的摘要,而且它以平易近人、不太吓人的方式编写。

      此外,您可能还需要一些 OpenGL 或 DirectX 基础知识。开始使用 3D API,然后学习基础数学比相反(在我看来)更容易,但这两种选择都是可能的。只需在 SO 上查找 OpenGL,您也应该会找到一些很好的参考资料。

      【讨论】:

      • 我不太关心 Foley-VanDamm;它已经过时了,以至于许多技术不再相关(几乎没有提到固定功能着色器),而且风格非常简洁,很难将数学融入代码。
      • 我同意,它非常简洁。但与大多数“Weee,Computer Graphics is fun fun fun,看看我能用那些漂亮的像素做什么”的教科书相比,它提供了坚实的数学基础。但我是个数学极客。
      • @Kena 我想了解 GPU 专业系列中的数学,似乎其中的文章使用了 different 数学。
      【解决方案5】:

      有关这些主题的数学介绍,请参阅

      http://graphics.idav.ucdavis.edu/education/GraphicsNotes/homepage.html

      【讨论】:

        【解决方案6】:

        我可以推荐pbrt,这是一本书和一个基于物理的渲染器,用于教授计算机科学专业的毕业生。所用数学的描述很好而且清晰,因为它是用“文学编程”编写的,所以你也可以看到适当的代码(用 C++ 编写)。

        【讨论】:

          【解决方案7】:

          查看http://www.scratchapixel.com/lessons/3d-basic-lessons/lesson-1-writing-a-simple-raytracer/

          这是一个学习光线追踪和一般渲染的好地方。

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 2013-07-01
            • 2012-05-23
            • 1970-01-01
            • 2016-08-23
            • 1970-01-01
            • 2012-11-13
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多