对于光线追踪场景中的任何物体,只要有了求交算法以及法线算法就可以渲染。
virtual
int
intersect(
const
Ray
&
ray,
float
&
distance)
=
0
;
virtual
Vector3getNormal(Vector3
&
pos)
=
0
;
为了适应三角形带的渲染,把三角形的数据结构定义为:
Vector3 vertex[3];
Vector3 normal[3];
由于暂时还不考虑支持贴图,光线追踪插件在读入3DS文件的时候只处理了顶点数据(0x4110)和面数据(0x4120)。目前对法线的计算是根据三角形所在面来确定的,并没有考虑临近三角形的影响。所以渲染出来的图显得很生硬。接下来的工作就是重新计算三个顶点的法线数据,另外优化速度。

本文属Span Zhang(张友邦)原创,转载请注明出处。
中国原创分形艺术、中国原创分形软件第一站
本文介绍光线追踪中物体渲染所需的基本算法,包括求交算法和法线算法。为了适应三角形带的渲染,定义了三角形数据结构,并讨论了如何计算顶点法线以改进渲染效果。

被折叠的 条评论
为什么被折叠?



