计算机图形的应用
- Movies
- Games
- CAD
- Lighting Simulation
- Visulization
- Virtual Reality
制作三维图像的流程
Modeling
3D几何中所谓建模就是构建现实世界的物体的三角网格
Rendering
visibility
最早在上世纪60年代面对的最早的挑战是,visibility ( 可见化 ),当时提出了很多技术消除隐藏线算法和消除隐藏面算法。
举个例子,例如在这样一幅只画了线框的中,我们是无法确定物体与物体之间位置关系的。
通过消除隐藏线算法消除我们不应该看到的线,这样可以让我们观察到不同物体之间的深度。
继续拓展消除隐藏线即可延伸到消除隐藏面。
visibility的根本挑战就是这个物体在哪个物体的前面,也就是它们的层次关系。
Ivan Sutherland提出了把可视问题转为排序问题的方法,并且比较了许多算法的。
一旦完成了消隐之后就可以给图形上色了。
但是这还无法使我们满足,因为从这些图形上面还是能看到许多它们不应该出现的样子,例如一个圆体上面还有许多四边形边形。
lighting
几何图形进行消隐并上色还还是不太理想,这是上世纪70年代面临的难题,如何得到几何体的好看的,色彩平滑过渡的图像?
犹他大学的Henri Gouraud提出了处理这种多边形图案的方法,插值明暗
这就是著名的Gouraud明暗处理,这种平滑着色法使图案看起来更加的平滑更像真正的曲目而不是刚刚那样棱角分明,在OpenGL任然使用这种方法。但是即使这样这些图案还是缺少光泽,它们只是被赋予了恒定的颜色。
Bui Tuong Phong提出了新的方法,Phong明暗处理(Phong光照模型),有了镜面反射的概念。
这种方法在图案中加入了高光。
Global illumination
Turner Whited 在1980年提出了递归的光线跟踪(ray tracing)算法
另一个突破是Goral提出的模拟辐射度(radiosity)
能够模拟光线在物体与物体之间的传递。
最终Kajiya在1986年提出了渲染方程(the rendering equation),将上面的几种技术结合到了一起,呈现了多种视觉效果。