我注意到一些顶尖大学正在开设课程,向学生们讲授CS专业的计算机图形学相关科目。可悲的是,这是我的大学没有提供的东西,而且我真的希望在未来几年内进入某个时期。
我从一些大学找到的几个项目都很棒,虽然我最感兴趣的是两件事:
很抱歉发布这样含糊不清的问题,让我们说实话,愚蠢的问题。这只是我一段时间想要做的事情,而且对于我来说,在我自己的时间里发展这个项目会很好。
答案 0 :(得分:8)
我可以推荐pbrt,它是一本书和一个用于教授计算机科学毕业生的基于物理的渲染器。所使用的数学的描述很好而且清晰,因为它是用'文字编程'编写的,你也可以看到适当的代码(在C ++中)。
答案 1 :(得分: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,你也应该找到一些很好的参考资料。
答案 2 :(得分:2)
2000 ICFP Programming Contest要求参与者在三天内制作射线追踪器。它们具有良好的简单光线跟踪器规范,您还可以获得获奖条目和其他条目的代码。有大量不同编程语言的条目。这可能是您开始使用的好方法。
答案 3 :(得分:1)
我能给出的最有用的答案是,大多数重要的算法都可以在Real-Time Rendering中找到,由Tomas Akenine-Möller,Eric Haines和Naty Hoffman编写,最后的参考书目中提到了必要的数学。他们的网站也有推荐的阅读清单。
我读过的关于这个主题的最有用的数学书籍是Eric Lengyel的3D游戏编程和计算机图形学数学。你最需要的数学是几何(显然)和线性代数(用于处理所有矩阵)。
答案 4 :(得分:0)
我去年参加了这样的课程,我相信课程非常适合强迫学生学习计算机图形学背后的数学 - 而不仅仅是让计算机做你想做的命令。
我的教授有一个位于here的网站,它有他的讲义和问题集,你可以看一看。
我们的最终项目确实是一个光线跟踪器,但是一旦你知道它背后的数学,编码(一个低效的编码)是微不足道的。
答案 5 :(得分:0)
答案 6 :(得分:0)
检查http://www.scratchapixel.com/lessons/3d-basic-lessons/lesson-1-writing-a-simple-raytracer/
这是一个非常好的学习光线追踪和渲染的地方。