“低级”3D图形编程

时间:2014-03-31 01:17:10

标签: graphics 3d language-agnostic

我想学习自下而上编程3D图形的基础知识。我不一定想学习DirectX或OpenGL,但要真正理解表面下发生的事情。我想首先实现一个基本的光线跟踪器。这看起来很简单,甚至还有在线教程。

在此之后,我想在DirectX或OpenGL之外的软件中实现图形管道。这是可能的还是我会试图穿过一堵砖墙。他们确实说最好的学习方法是做。

1 个答案:

答案 0 :(得分:4)

3D图形是一个很大的领域,回答你的问题确实需要更多关于你的目标的信息。

编写光线跟踪器绝对是学习一些3D图形基础知识的好方法。 DirectX和OpenGL当然是为了与基于光栅化的3D渲染的硬件加速器进行交流而设计的,所以如果你真的想要了解3D图形卡如何在屏幕上生成三角形图像的低级别的内容,那么写一个软件光栅化器将是一个很好的练习。

如果您对如何渲染3D场景的真实图像的基本原则更感兴趣,那么我不一定建议关注编写光栅化器的细节。相反,我会专注于更多地了解照明,阴影,阴影,反射和折射以及全局照明等事物。所有这些事情都可以在软件光线跟踪器中相对直接地实现,大部分复杂性来自于试图使它们高效而不是基本原则。

如果你的目标是更多地了解3D硬件在低级别的工作方式,那么这就是它自己的另一个大问题。有很好的资源可以了解这一点,但如果这是你的目标,编写软件光线跟踪器不一定有用。