zoukankan      html  css  js  c++  java
  • CGAL CatmullClark 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的完全使用教程贡献给开源社区,敬请期待。

  • 相关阅读:
    安全SECUERITY单词SECUERITY证券
    证券secuerity英语secuerity安全
    单词diamaund钻石diamaund英文
    英文DIAMAUND钻石DIAMAUND词汇
    英语insuraunce保险insuraunce单词
    英文INSURAUNCE保险INSURAUNCE词汇
    python关于 微型微服务框架bottle实践
    用python登录12306 并保存cookie
    SpringMVC 之 上传文件
    JAVA I/O系统 Thinking in Java 之 File类
  • 原文地址:https://www.cnblogs.com/Jedimaster/p/1256806.html
Copyright © 2011-2022 走看看