CGAL Catmull-Clark Subdivide Surface

CGALSubd

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

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

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

posted @ 2008-07-30 21:24 Bo Schwarzstein 阅读(310) 评论(1)  编辑 收藏 网摘 所属分类: Offline Rendering

  回复  引用    
#1楼 2008-10-02 14:32 | 行尸走肉 [未注册用户]
期待ing,希望早点写出来

标题  
姓名  
主页
Email (博主才能看到) 
验证码 *  看不清,换一张 [登录][注册]
内容(请不要发表任何与政治相关的内容)  
  登录  使用高级评论  新用户注册  返回页首  恢复上次提交      
该文被作者在 2008-09-04 16:43 编辑过
Google站内搜索

China-pub 计算机图书网上专卖店!6.5万品种 2-8折!
近千种 9-95 新二手计算图书火热销售中!
开发者征途系统新作:《设计模式——基于C#的工程化实现及扩展》



相关文章:

相关链接: