SUbD(参数化细分工具)的研究探讨

文章简介:

我在写《SketchUp Poly建模工作流探讨》一文时,对Poly进行比较系统的讲解。里面有提到一个实现Poly建模很关键的工具之一,就是细分工具。细分工具非常多,少校认为比较好用的一个就是SUbD了。这次与SketchUp爱好者“士严”共同撰写,非常谢谢“士严”辛苦付出。中间一大段是我们撰写的文稿,如果您只是想下载此插件话请直捣黄龙(底部)!

如何通过细分平滑网格面(Subdivide to Smooth the Mesh)

  1. 选取一个组或者组件,要注意组或者组件里头不包含组中组(或组件)
  2. 打开或者关闭细分

你可以在任何时候打开或者关闭细分,关闭细分会让模型回到原始的mesh(又称 control-mesh),在你需要调整mesh的时候,你可以选择关闭细分。

如何通过折边值调整细分的形状(Refine the Mesh with Creasing)

通过修改折边值,你可以不必通过在mesh上增加新的loops edge(俗称卡线)就可以达到调整细分曲面的效果。

SubD 对四边面的优化(Optimized for Quads)

SubD使用Catmull-Clark 为基础的算法进行细分,这种细分专门为四边面进行了优化。每一次细分,一个四边面会产生4个新的四边面(第二次细分16个,第三次细分64个,第四次细分产生了256个四边面,一般超过四次细分的差别用肉眼无法觉察)。相对的,每一次细分,一个三角面会产生三个新的四边面,而其他非四边面的多边形面会在细分之前先划分为三角面。QuadFace Tools对于四边面的定义是:当两个三角面共用一条线,并且这条线是soft且smooth的同时,Cast shadow选项是关掉的,那么这两个三角面便组成了一个四边面。我非常建议大家在建立可以供SubD平滑的四边面网格模型时使用QuadFace Tools进行辅助。QuadFace Tools 是建立理想细分模型的核心工具。 下载四边面插件(Get QuadFace Tools)

为什么要在四边面的基础之上建模? (Why Work with Quads?)

在Quad( 四边面)的基础之上建立mesh(网格面)时,她有诸多的优势。其中最大的优势在于: mesh会变得更加有规律并且容易预测,由quad形成的grid structure(矩阵结构)可以有力地控制mesh的走向。

QuadFace Tools(四边面工具)可以通过你在矩阵结构的U方向中选择的任意一根线进行select loops(U方向环形选择)操作,或者是选取与其不同的方向的线进行select rings(V方向环形选择)操作。

同时,UV mapping也变得简单了,grid structure可以让贴图在模型上无缝对接。

了解更多知识(More)

如何在Sketchup中进行四边面建模?(Working with Quads in SketchUp)

当你在Sketchup进行有机建模(organic modeling)时,你会发现当四个顶点不共面时(co-planner),四边面的优势所在。

在Sketchup中,四边面建模是一种挑战,因为当一个四边面的四个顶点不共面时,Sketchup的自动折叠(Auto-Fold)特性会将一个四边面(quad)打断为两个三角面(triangles)。

要使得SubD能够使用顶点不共面的四边面,就必须让它知道,哪两个三角面组成了一个四边面,但是Sketchup对如何定义一个四边面并没有一个明确的标准。

了解更多知识(More)

细分(Subdivide)

细分一个网格面会把网格面中的每个多边面划分成小的多边面并且将网格面平滑。如果迭代次数足够,一个方盒子最终会细分为一个球面。

原始的网格面被称作控制网格面(Control mesh),网格被细分后的曲面被称作细分网格面(Final-mesh)。

当你需要编辑时,SubD允许你在细分网格面和控制网格面两个状态之间任意切换。

SUbD uses OpenSubdiv for its subdivision computations which is optimized for quads. N-gons might not yield a satisfactory result. The free QuadFace Tools extension provides a set of tools to aid in modelling with quads in SketchUp.

全局细分开关(Global Toggles)

位置: 插件 » SUbD » 全部网格对象

你可以通过全部网格对象菜单打开或者关闭所有的网格细分。

这会对所有之前已经细分过的组件起作用,而其他之前没有细分过的组件则不会受到影响。

细分要求(Requirements)

1.控制网格面必须成组,并且组内只允许有线和面。

2.而组的嵌套(即组内包含群组/组件),是不能被细分的。

细分限制(Limitations)

1.如果控制网格面中存在非常小的面,它很有可能导致细分失败。Sketchup有一个固定的最小值,即两个点之间的距离如果小于0.001个单位,那么这两个点在。

2.如果控制网格面内存在除了三角面或者四边面的其他面,那么它们会在细分之前被自动划分为多个三角面,这有可能产生非常小的三角面并导致细分失败。

增加细分(Increase)

细分是在每次迭代中完成的,当打开网格细分时,默认的迭代次数是1,每个四边面将会被分为4个小的四边面,并且每个三角面将会被分为3个小的四边面。

细分网格面中的“四边面”将会存在两个三角面,并且两个三角面之间有一条已经柔化平滑过的线将他们分开,这些“四边面”依旧是被Quad Face Tools所承认的。

注意:细分一个网格面将会快速增加多边面的数量,一个6面体细分迭代四次将会产生1536个小四边面(3072个三角面),这会影响场景的运转速度,因此建议在做模型的时候保持低的迭代次数,在汇报展示或者渲染的时候再调高迭代次数。

SubD 允许最多4次迭代,超过4次之后的差异用肉眼是觉察不到的。

减少细分(Decrease)

如果场景变得非常卡顿,你可能需要在建模过程中减少迭代次数,在第一次迭代中,你可以看到一个大概的细分情况,并且你可以快速的在控制网格面和细分网格面之间切换。

如果你的控制网格面信息足够详细,甚至一次迭代也能完成你想要的平滑效果。

折边工具(Crease Tool)

位置: 插件 » SUbD » 折边工具

折边工具允许你调整细分曲面的光滑程度,边或者顶点的光滑程度都可以通过折边工具调整,折边值越大,那么边或者顶点就会越锐利。折边工具既可以使用在控制网格面上,也可以用在细分网格面上。

你需要选取你想要调整的边或者点,按住鼠标左键上下拖动来调整折边值。你可以在上下拖动的过程中按住Shift,此时折边值是整数,网格的平滑程度会根据折边值增加或者减少。

如果折边值等于或者高于迭代数,那么细分网格面就会跟没有细分过的模型一样,看起来非常锐利。

折边值除了通过鼠标,还可以通过右下角的数值框进行调整,如果在输入的数值后加上“s”,那么你所有选择的物体都会被赋予同样的数值。

 注意:折边的效果通常也可以通过在控制网格面上加入loops edge实现(俗称卡线),但是相比于卡线,折边明显会减少细分网格面的多边形数量。

顶点(Vertices)

顶点同样也可以在使用折边工具的时候被选择,当鼠标悬停在顶点正上方时一个十字光标会出现。要注意的是,折边工具只承认控制网格面上的顶点。

无限锐利(Infinite)

在使用折边工具时,可以通过选择线或者顶点并右击鼠标,勾选无限锐利达到锐利(没有平滑)的效果,这会保证无论迭代多少次,选中的线或者顶点依旧保持锐利。

分组标签(Grouped Labels)

当选择多个实体时,折痕标签并不都适合屏幕。 然后,他们将被组合在一起。 由一个淡蓝色的文字颜色和工具提示指示。

实体信息(Entity Info)

位置: 插件 » SUbD » 实体信息

SubD的实体信息对话框允许你快速打开或者关闭网格细分以及调整细分迭代次数。

子物体细分(Subdivisions)

细分滑杆允许快速地在不同的迭代次数之间切换,从而省下依次切换而等待的时间。

平滑网格对象(Mesh Smoothing)

将平滑网格对象由四边面切换到None会让SubD只对控制网格面进行细分而不平滑。

边角(Boundary Corners)

在SubD的第一代版本中,边界的顶点是自动平滑的,如果要让顶点保持锐利必须手动将每个顶点的折边值调整为1.

在2.0版本中,边界的顶点是默认为锐利的(与折边值1的结果相同),省去了手动调整每个顶点折边值的时间。

如果打开用1.0版本创建的模型,边界顶点细分之后依旧是平滑的。

UV插值计算(UV Interpolation)

在SubD的1.0版本中,UV mapping在细分网格面中是线性插值的,这通常会导致贴图拉伸以及其他的瑕疵。

在2.0版本中,UV 插值有了更多的控制方式,老版本中的UV插值等于All Sharp选项。而与之相对的,All Smooth选项则让UV maping更加均匀的分布在细分曲面之上。同时新版本对于边界的线和顶点也有了更多的控制。

边线可见(Edge Visibility)

在SubD 1.0版本中只有显示或关掉控制网格面线的选项,而在2.0版本中,你可以对其有更多的控制。

其它选项(Advanced Options)

三角面细分(Triangle Subdivision)

如果你并没有使用以四边面为基础的工作流,你可以尝试勾选这个选项,SubD将采用对于三角面更加友好的细分算法。

光滑不均匀的折边(Smooth Non-uniform Creasing)

在一些特殊场合,有可能细分网格面中的线看起来并不是同样锐利的,此时可以勾选光滑不均匀的折边以达到更理想的效果。

四边面推拉工具(Quad Push/Pull Tool)

位置: 插件 » SUbD » 四边面推拉工具

SubD为四边面建模提供了特殊的推拉工具,其能在推拉中自动保持四边面。SU原生的推拉工具会在推拉过程中在模型内部产生多余的面,而SubD的四边面推拉工具会在产生四边面的同时避免在模型内部产生多余的面。

修改器(Modifiers)

类似于普通的推/拉工具,可以使用修改键强制其创建新表面,而不是移动表面。 一如以往,SUbD版本将不会创建内部表面。

已知问题(Known Issues)

注意:这个版本的四边面推拉工具并不像之前那么稳定,ThomThom将来会针对这个功能进行专门的更新。

转换为普通网格对象(Convert to Plain Mesh)

位置: 插件 » SUbD » 转换为普通网格对象

位置: 鼠标右键菜单 » SUbD » 转换为普通网格对象

将一个SubD 网格面转化为普通网格对象将会使这个网格面失去所有SubD的数据并使其成为一个普通的网格对象,唯一让它能够回到控制网格面的方式只有Undo。

切换是否显示边线(Toggle Edges)

位置: 插件 » SUbD » 显示边线

当需要快速观察一个细分曲面的光滑程度是,可以通过这个命令快速关掉边线显示,再次点击这个命令可以快速开启边线显示

注意:在2.0版本中,可以使用SubD 实体属性对话框单独控制每个细分曲面的边线可见性。

首选项(Preferences)

位置: 插件 » SUbD » 首选项

相对锐度(Relative Sharpness)

在SubD中,一共有两种方式可以定义折边的锐利程度。

相对锐利:其规定折边值为0.0-1.0,不管细分迭代次数是多少,1.0的折边值对应的总是100%锐利程度,0.5就是50%的锐利程度。

绝对锐利:其以细分迭代次数为基础,如果细分迭代次数为2,而折边值是1.0,那么它对应的将是50%的锐利程度。如果细分迭代次数为3,而折边值依然保持1.0不变,它对应的时33.3%的锐利程度。

修形(Fix Manifolds)

在2.0版本中,SubD可以细分内部有多余面的模型,但这并不理想。勾选修形选项,SubD会在细分网格面前自动将内部多余的面删除。

替换SketchUp推拉工具(Replace Push/Pull Tool)

勾选这个选项将允许SubD 的四边面推拉工具替换Sketchup自带的推拉工具,当你要使用推拉工具时,SubD的四边面推拉工具将自动启动。

语言(Language)

SUBD被翻译成多种语言。 从下拉列表中选择您喜欢的语言。

高分辨率显示(High DPI)

如果你使用的是Sketchup2017,那么这个选项将不可见,因为Sketchup会自动根据显示器的分表率调整SubD的UI,这是只针对老的SU版本的功能。你必须重新启动Sketchup才能看到更改后的效果。

例如Retina的高分辨率显示屏,如果勾选了高分辨率显示的选项,那么像折边工具这样的UI看起来会大一倍。

partner工具:

SUbD可以和以下Ruby工具很好的配合使用,建议您使用Poly建模时安装它。

  • Autosmooth by thomthom
  • Curviloft by Fredo6
  • Flowify by Caul
  • Move along by Fredo6
  • Thrupaint by Fredo6
  • Toposhaper by Fredo6
  • Vertex Tool by thomthom
  • ……

注意事项:

  • 如何学习

SUbD是Poly建模方面的一个插件,不一定非要安装。如果不需要做这方面的操作,可能安装了也操作不了几次。关于它的操作,这里写的应该比较详细,如果想了解更多可以在本文下面写下留言,我会及时回复。如果您有更高级疑问请回到“首页”联系到我(QQ或者微信)。

  • 软件BUG(已知问题)

这个软件还是非常好用的,BUG也是存在的。而且,不用少校测试,作者已经把已知的BUG告诉了大家了。目前v_2.1.1存在4个BUG,大家可以看一下。未来的新版本作者应该会修复好的。

  1. 投影纹理(Projected Textures)
  2. 垂直纹理(Perpendicular Textures)
  3. 非定位纹理(Non-positioned Textures)
  4. 推拉新创建的表面(PushPull Creating Extra Faces)

投影纹理(Projected Textures)

SketchUp Ruby API当前不会公开贴图材质的性能。 这意味着当网格在控制网格和最终网格之间来回切换时,SUbD不能保留材质的投影行为。 他们将被改造成正规定位纹理。

垂直纹理(Perpendicular Textures)

与投影纹理相关的是,当SUbD回到使用定位纹理时,当投影纹理垂直于表面应用时,它们将失败。 在这种情况下,材质将被应用而没有任何定位,你可能会看到视觉上的伪影。

非定位纹理(Non-positioned Textures)

非定位纹理是应用于表面的纹理,而不使用位置纹理工具。 你可以看到这样的效果,如果你移动表面,纹理不会随着表面移动。 当纹理定位时,您将看到纹理固定在表面上。

SketchUp Ruby API不会公开任何允许您确定纹理是否定位的属性。 SUBD将始终假设纹理定位。 这在某些情况下会导致纹理在切换细分时移动。 解决方法是确保在细分之前定位所有纹理。

推拉新创建的表面(PushPull Creating Extra Faces)

由于SketchUp Ruby API的限制,SUbD中的自定义PushPull工具有时会失败或折皱额外处理成不必要的表面。 目前正在研究该工具的替代设计。

下载此资源:

百度下载(密码:8rxd) pCloud下载 七牛下载

「点点赞赏,手留余香」

    还没有人赞赏,快来当第一个赞赏的人吧!
0 条回复 A 作者 M 管理员
    所有的伟大,都源于一个勇敢的开始!
欢迎您,新朋友,感谢参与互动!欢迎您 {{author}},您在本站有{{commentsCount}}条评论