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)。目前对法线的计算是根据三角形所在面来确定的,并没有考虑临近三角形的影响。所以渲染出来的图显得很生硬。接下来的工作就是重新计算三个顶点的法线数据,另外优化速度。


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

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

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值