CGAL Catmull-Clark Subdivide Surface

 

CGAL Catmull-Clark Subdivide Surface

转载自:http://www.cnblogs.com/Jedimaster/archive/2008/07/30/1256806.html

 

  CGAL中提供了4种细分表面的稳定算法,还可以将模型直接导出为VRML或者OFF格式,不过使用起来有些头大。CGAL的邮件列表上经常有人询问这个库到底如何使用,其实都是不好好看文档,附带的范例,没有掌握C++模版使用的结果,说到底就是编程经验不够。这里直接使用CGAL中提供的CC细分法处理MAYA多边行模型,左边是迭代1次的结果,右边是3次的结果,可以看出已经相当平滑了,可以直接在GPU上进行displacement操作了,避免由于精度的问题导致模型失去细节。

CGALSubd

   

 

 

 

 

 

 

     由于CGAL的设计问题,导致只有花大力气重新写一部分类,修改继承关系,才能实现细分的同时也对UV进行操作。刚开始不是很明白流形映射的关系,导致不敢(是的,是不敢)对UV进行处理,经过和新闻组的人探讨,尤其是Caltech的大牛Peter Schröder教授给了我重要的提示,从流行映射的角度来说可以对UV进行和顶点一样的处理,这样一来就相当于处理两个Polyhedron,而后只要归并再一起就好了。事实上正是如此,对一个5178个面的多边性模型进行PQQ三次迭代处理,生成248544个面,体积约为20M。而后可以进入GPU的Geometry Shader进行Displacement,实现实时高素质模型的渲染。

 以后我会写一篇关于CGAL的完全使用教程贡献给开源社区,敬请期待。

 

 

 

 

 

 

 

 

 

 

 

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值