【修正】问题五十五:怎么用ray tracing画Utah teapot (bicubic bezier patches)

198 篇文章 12 订阅
195 篇文章 27 订阅

“问题五十五:怎么用ray tracing画Utah teapot (bicubic bezier patches)”原文链接:
http://blog.csdn.net/libing_zeng/article/details/54565443

当时输出的图形,着实对不起观众。
再次贴图如下:
这里写图片描述
这个图形对应的参数信息:将每一个patch分成80*80个小曲面片,耗时14779s。
花费了这么长时间,但是输出的图形是这个鬼样子。

后面,准备使用三角形细分bicubic bezier patches时,发现:
数据有点点“异常”。

这里写图片描述
如果直接根据patches数组中的数据到vertices数组中获取顶点数据,拿到的顶点数据其实是“错位的”。
正确的做法应该是:先将patches数组中的所有数据的值都“减1”。

在代码中对应修改如下:
这里写图片描述

修改数据后的输出图形:

这里写图片描述
红色框标注的是修改后的图形;其他3个是修改前的图形。仅从耗时来看,修改后输出图形所需时间要少得多。

看看修改后的图形:
前一个是单patch分成4*4个小曲面片,耗时74s;
前一个是单patch分成16*16个小曲面片,耗时285s;
这里写图片描述 这里写图片描述
尽管,还是有不少噪声点,但是效果勉强可以接受。

完整代码链接:http://download.csdn.net/detail/libing_zeng/9804197

后面,我们会通过三角形细分的方式来trace这个图形,效果当然会更好。

  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值