由于一时找不到题目写,所以这两天就搞了一个简单的基于光线追踪的软件渲染器。准备花点时间做下去了。从昨天开始到现在实现的东西有反射、阴影、多光源、线性变换等。
先来两张图:
这里的球和圆柱体都是通过一个函数而不是很多三角形来表示的。表示物体的函数用来将物体与一条射线求交,返回最近的交点的位置、法向量和材质的信息等。然后程序就遍历每一个像素,生成对应的射线,然后求交,最后就可以获得点了。阴影的做法是绘制点的时候,求出所有光源到这个点上的方向,然后反着看回去(用上面实现的代码)看看有没有被东西挡住。反射就更好办了,直接拿反射后的视线所获得的颜色跟结果进行混合就行了。
从明天开始慢慢研究更多的材质和光学,然后慢慢给渲染器添加功能。
posted on 2009-01-19 00:48
陈梓瀚(vczh) 阅读(4053)
评论(5) 编辑 收藏 引用 所属分类:
3D