CGAL Catmull-Clark Subdivide Surface
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的完全使用教程贡献给开源社区,敬请期待。
转载于:https://www.cnblogs.com/Jedimaster/archive/2008/07/30/1256806.html
CGAL Catmull-Clark Subdivide Surface相关推荐
- CC(Catmull–Clark) 细分
CC(Catmull–Clark) 细分过程分析 " 图片借鉴博客: https://blog.csdn.net/McQueen_LT/article/details/106102609 & ...
- CGAL 4.9 - Triangulated Surface Mesh Deformation
Here, I would like to derive the formula (10) For triangle vjvivmv_jv_iv_m, we have the following th ...
- 【GPU精粹与Shader编程】(一) 全系列核心知识点总览
系列文章前言 <GPU Gems>1~3 .<GPU Pro>1~7 以及<GEM Zen>组成的GPU精粹系列书籍,是游戏开发.计算机图形学和渲染领域的业界大牛们 ...
- 几何造型问题(转载)
转载自:http://blog.sciencenet.cn/home.php?mod=space&uid=37768&do=blog&id=15114 几 何造型研究三维几何信 ...
- 棋盘类游戏中的栅格地形渲染
棋盘类游戏中的栅格地形渲染 张嘉华 梁成 李桂清 (华南理工大学计算机科学与工程学院 广东 广州 510640) 摘要:本文提出了适合战棋类游戏的三维栅格地形渲染策略,把Catmull-Clark细分 ...
- 【GPU精粹与Shader编程】(一) 开篇 全系列11本书核心知识点总览
本文由@浅墨_毛星云 出品,首发于知乎专栏,转载请注明出处 文章链接: https://zhuanlan.zhihu.com/p/34917895 系列文章前言 <GPU Gems>1 ...
- 计算机论文图,【论文】计算机图像学
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 3 三角形网格的分解细分模式 由于网格中的多边形面都可以被三角形化,所以三角形网格的线性细分可以使用哈希表在每条边上插入一个新顶点,把每个三角形分解为四个 ...
- 【论文精度】Subdivision-Based Mesh Convolution Networks
0.摘要 卷积神经网络( CNNs )在二维计算机视觉领域取得了巨大的突破.然而,其不规则的结构使得直接在网格上利用卷积神经网络的潜力变得困难.细分曲面提供了层次化的多分辨率结构,其中一个封闭的二维流 ...
- 【CGAL_网格】Surface_mesh
官方文档链接:CGAL 5.4.2 - Surface Mesh: User Manual 0 概述 Surface_mesh 类是半边数据结构的实现,可用于表示多面体表面. 相较于 Halfedge ...
- 计算机图形学综诉论文,计算机图形学论文范文分享
随着信息技术的不断进步和完善,计算机在实际生活中的应用也越来越广泛,下面是小编为大家整理的,希望对大家有帮助. 实现逼近细分模式的统一分解架构 [摘要] 多边形是计算机图形学的一个普遍的建模原语,为渲 ...
最新文章
- ACMNO.8输入一行字符,分别统计出其中英文字母、空格、数字和其他字符的个数。 输入 一行字符 输出 统计值 样例输入 aklsjflj123 sadf918u324 asdf91u32
- @MyBatis主键返回
- vmware安装mac终于成功
- 2018.08.10 atcoder Median Sum(01背包)
- php记录读取数据类型,数据读取 · ThinkPHP 3.2.3开发手册 · 看云
- Linu解决oracle连接不稳定
- oracle11g的体系结构有几种,Oracle11g 体系结构
- 操作系统(李治军) L8 CPU管理的直观想法
- 阿里云首席架构师解读开源和云端结合的三大优势
- 一小时写给同组的如何使用工具检测代码质量
- linux 怎么往内核加驱动,向Linux内核添加驱动
- C++中数组、链表list、容器map/vector的区别
- c oracle案例,Oracle 19c CRS重启案例记录
- 怎样从一个手机上安两个不同版本的软件_怎么在一部手机上安装两个不同版本的微信?...
- linux ubuntu硬盘数据丢失【硬盘开机未挂载】
- mysql一次查询无关联多个表_面试官:为什么mysql不建议执行超过3表以上的多表关联查询?...
- python grad_PyTorch中model.zero_grad()和optimizer.zero_grad()用法
- 抖音名字怎么改不了_抖音名字怎么改,抖音名字改不了,抖音名字已重置什么意思...
- vivado ROM IP核简单使用
- 分析师:百度到2030年可能成为中国市值最高的公司
热门文章
- linux重启网络服务后什么端口都不通,linux的端口不通怎么解决
- 帆软FineMobile 自适应
- 实现option上下移动_jQuery操作Select的Option上下移动及移除添加等等
- unity导出fbx_使用Blender和Unity创建一个简单Low Poly的模型(一)
- python是一种跨平台开源免费的高级动态编程_Python是一种跨平台、开源、免费的高级动态编程语言。...
- android activity根节点addview_Android嵌入到页面中的加载动画工具类
- linux应用程序固件升级,试试用 Linux 中的 fwupd 更新 ThinkPad 固件
- Chapter 1 First Sight——13
- std::string.assign()的用法-爱情滕-搜狐博客
- myisam 与 innodb的区别,在什么情况下用什么ENGINE