FerryMan Fractal渲染的第一张3DS图片

对于光线追踪场景中的任何物体,只要有了求交算法以及法线算法就可以渲染。

virtual int intersect( const Ray & ray, float & distance) = 0 ;
virtual Vector3getNormal(Vector3 & pos) = 0 ;

为了适应三角形带的渲染,把三角形的数据结构定义为:

Vector3 vertex[3];
Vector3 normal[3];

由于暂时还不考虑支持贴图,光线追踪插件在读入3DS文件的时候只处理了顶点数据(0x4110)和面数据(0x4120)。目前对法线的计算是根据三角形所在面来确定的,并没有考虑临近三角形的影响。所以渲染出来的图显得很生硬。接下来的工作就是重新计算三个顶点的法线数据,另外优化速度。

FerryMan Fractal渲染的第一张3DS图片


本文属Span Zhang(张友邦)原创,转载请注明出处。

中国原创分形艺术、中国原创分形软件第一站

你可能感兴趣的:(数据结构,算法,工作)