Manual/PartII/Subsurfaces

Wikipedia,自由的百科全书

User Manual: Contents | Guidelines | Blender Version 2.40

Contents

Subsurfaces

细分曲面

Blender provides a powerful implementation of Subdivision Surfaces, a tool aimed at enabling economical, low-vertex count modelling of complex smooth surfaces.
Blender提供一个强大的细分曲面功能,该功能允许你使用较少点进行非常光滑曲面建模。


Catmull-Clark Subdivision Surfaces

Catmull-Clark细分曲面

With any regular Mesh as a starting point, Blender can calculate a smooth subdivision on the fly, while modelling or while rendering, using Catmull-Clark Subdivision Surfaces or, in short SubSurf.
用任意一个规则的网格物体作为启点,使用Catmull-Clark细分曲面或简称即为SubSurf建模或渲染时;Blender可以飞速的计算光滑的细分面。


Subdivision Surfaces is a mathematical algorithm to compute a smooth subdivision of a mesh. This allows high resolution Mesh modelling without the need to save and maintain huge amounts of data. This also allows for a smooth organic look to the models.
细分曲面是用数学算法来计算网格的平滑细分;这就允许高分辨率的网格建模不需要保存或维护大量的数据信息;并且模型还是非常平滑有机外观。

A SubSurfed Mesh and a NURBS surface have many points in common such as they both rely on a "coarse" low-poly "mesh" to define a smooth "high definition" surface, however, there are notable differences:
细分曲面网格与NURBS曲面有许多相似点,例如他们都是依赖于“粗糙”低多边形物体来定义一个平滑的“高精度”表面。但这里有几点是要注意的:

  • NURBS allow for finer control on the surface, since you can set "weights" independently on each control point of the control mesh. On a SubSurfed mesh you cannot act on weights.
  • NURBS允许好的曲面控制点,你可以设置每个控制网格的控点“权重”,面在一个细分曲面的权重是不能有所动作的。
  • SubSurfs have a more flexible modelling approach. Since a SubSurf is a mathematical operation occurring on a mesh, you can use all the modelling techniques described in this chapter on the mesh. There are more techniques, which are far more flexible, than those available for NURBS control polygons.
  • 细分曲面在建模上是更有弹性的,因为细分曲面用数学操作计算网格的,你可以使用这章中所描述的所有建模技术进行建模操作,这样更多方法,更有弹性使得细分曲面比NURBS控制多边形更有效。

SubSurf is a Modifier option in the Editing Context Modifiers panel (F9).
在编辑上下文菜单Modifiers panel (F9)中的SubSurf 是一个修改器工具。

Modifiers panel.
Modifiers panel.

Select a Mesh object, press Add Modifier and select Subsurf from the list.
选择一个网格物体,按 Add Modifier 并从列表中选择 Subsurf
The Levels number immediately below define the display resolution or levels, of subdivision surfaces. Render Levels number indicate the levels used during rendering. To have the subsurf applied to the Editing Cage click in the gray circle next to the arrows for moving the modifier up and down the stack.
Levels数值是定义了细分表面的显示分辨率级数。Render Levels数值则定义了细分表面的渲染分辨率级数。当应用Subsurf 修改器到物体上时,单击带有向上或向下箭头灰色圆,可以让其修改器在堆栈上移或下移。

You can also use SHIFT-O if you are in ObjectMode to switch Subsurf On/Off. The Subsurf level can also be controlled via CTRL-1 to CTRL-4, but this only affects the visualization sub-division level.
在物体模式下,你可以使用SHIFT-O来切换Subsurf 开/关。Subsurf层级数同样可以通过CTRL-1CTRL-4来控制,但仅仅只能控制显示分辨率层级数。

Since Subsurf computations are performed both real-time, while you model, and at render time, and they are CPU intensive, it is usually good practice to keep the SubSurf level low (but non-zero) while modelling; higher while rendering.
因为Subsurf是实时计算的,当你建模或渲染时,将是耗费CPU资源的,所以这里有一个好忠告:是在建模时,把Subsurf层级数保持在低数值(但不是零值哦),高值用于渲染。

Blender has an additional button Optimal Draw that changes the way Subsurf meshes are drawn and can be of great help in modelling. SubSurfed Suzanne. shows a series of pictures showing various different combinations on Suzanne's Mesh.
Blender还有一个附加的Optimal Draw 按钮,他是用于优化显示Subsurf网格物体,这在建模是有非常大的帮助。在下图 SubSurfed Suzanne中,用序列图例显示Suzanne's网格不同表示方式。

SubSurfed Suzanne.
SubSurfed Suzanne.

SubSurf of simple square and triangular faces. shows a 0,1,2,3 level of SubSurf on a single square face or on a single triangular face. Such a subdivision is performed, on a generic mesh, for each square or triangular face.
单一四边面与三边面的细分。下图分别显示了SubSurf使用细分0,1,2,3层级作用于四边面与三边面上。


It is evident how each single quadrilateral face produces 4n faces in the SubSurfed mesh. n is the SubSurf level, or resolution, while each triangular face produces 3⋅4(n-1) new faces (SubSurf of simple square and triangular faces.). This dramatic increase of face (and vertex) number results in a slow-down of all editing, and rendering, actions and calls for lower SubSurf level in the editing process than in the rendering one.
它显示了单个四边面与三边面是如何在细分网格中产生4n 面的。n是细分层级或解析率,直到每个三角面产生3⋅4(n-1) 的新面(单一四边面与三边面的细分)。这结果是面(与点)数过分的倍增;而导致在所有编辑与渲染时速度下降。因此你可以在编辑时,使用低值SubSurf层级;渲染时使用一个高值SubSurf层级。


单一四边面与三边面的细分
单一四边面与三边面的细分

Blender's subdivision system is based on the Catmull-Clarke algorithm. This produces nice smooth SubSurf meshes but any 'SubSurfed' face, that is, any small face created by the algorithm from a single face of the original mesh, shares the normal orientation of that original face.

Blender的细分系统是基于Catmull-Clarke算法的。该算法能生成非常好并且光滑细分网格,不过要排除已经被'细分过的'面;通过该算法原始网格的面生成任意细小的新面并且共享原始面的原始法线。

This is not an issue for the shape itself, as Side view of subsurfed meshes. With random normals (top) and with coherent normals (bottom) shows, but it is an issue in the rendering phase and in solid mode, where abrupt normal changes can produce ugly black lines (Solid view of SubSurfed meshes with inconsistent normals (top) and consistent normals (bottom).).
边视图显示细分网格 那样,对于物体外观来讲;这根本就不是问题。下图顶部显示了随机方向法线;而底部显示了一致方向性的法线。但对于渲染来讲,则会出现问题了。在这里突然改变方向的法线会在渲染时产生难看黑色的边(细分网格的边视图(顶)非一致性的法线与(底)一致性的法线

边视图显示细分网格
边视图显示细分网格

Use the CTRL-N command in EditMode, with all vertices selected, to make Blender recalculate the normals.
使用CTRL-N 命令进入到编辑模式,全选所有的点,来使Blender计算网格的法线。

细分网格的边视图(顶)非一致性的法线与(底)一致性的法线
细分网格的边视图(顶)非一致性的法线与(底)一致性的法线

In these images the face normals are drawn cyan. You can enable drawing normals in the EditButtons (F9) menu.
在这些图片中面法线显示为青色。法线显示通过在 编辑按钮 (F9) 菜单里开启绘制法线选项。

Note that Blender cannot recalculate normals correcty if the mesh is not "Manifold". A "Non-Manifold" mesh is a mesh for which an 'out' cannot unequivocally be computed. From the Blender point of view, it is a mesh where there are edges belonging to more than two faces.

A "Non-Manifold" mesh shows a very simple example of a "Non-Manifold" mesh. In general a "Non-Manifold" mesh occurs when you have internal faces and the like.

A "Non-Manifold" mesh
A "Non-Manifold" mesh

A "Non-Manifold" mesh is not a problem for conventional meshes, but can give rise to ugly artifacts in SubSurfed meshes. Also, it does not allow decimation, so it is better to avoid them as much as possible.

Use these two hints to tell whether a mesh is "Non Manifold":

  • The Recalculation of normals leaves black lines somewhere *The "Decimator" tool in the Mesh Panel refuses to work stating that the mesh is "Non Manifold"

The SubSurf tool allows you to create very good "organic" models, but remember that a regular Mesh with square faces, rather than triangular ones, gives the best results. A Gargoyle base mesh (left) and pertinent level 2 SubSurfed Mesh (right). and Solid view (left) and final rendering (right) of the Gargoyle. show an example of what can be done with Blender SubSurfs.
SubSurf工具允许你创建非常好的“有机”模型,但得记住使用四边面的规则网格比三边面能够获得更好的结果。怪兽基本网格(左)与细分2级的网格(右).怪兽的视窗显示(左)与最终渲染(右) 下图显示了Blender细分完成后的结果图

怪兽基本网格(左)与细分2级的网格(右).
怪兽基本网格(左)与细分2级的网格(右).
怪兽的视窗显示(左)与最终渲染(右)
怪兽的视窗显示(左)与最终渲染(右)

Weighted creases for subdivision surfaces

细分曲面的权重折痕

Weighted creases for subdivision surfaces allows for tuning of the edge sharpness. Creases are a property of mesh edges, and can be edited in mesh Edit Mode when the mesh is a Subsurf. Select the edges you want to have creased, and press SHIFT-E to change the amount of the edge sharpness. Or use Transform Properties (N) and enter desired creasing.
细分曲面的权重折痕功能可以用于调整边的锐利度,折痕是网格物体边的一个属性,当网格是细分的,那么在编辑模式中是可被编辑该属性的。如果你需要使一条边有着锐利角;那么请选择这条边,然后按SHIFT-E 来改变边锐利度的数值,或使用变换属性面板(N)来输入期望值。


变换属性面板.
变换属性面板.

You can enable an indication of your edge sharpness by enabling Draw Creases. See Mesh Tools 1 panel.
你可以开启Draw Creases 选项来显示边锐利度的迹象。参见 Mesh Tools 1 面板


Mesh Tools 1 panel
Mesh Tools 1 panel

The sharpness value on the edge is indicated as a variation of the brightness on the edge. If the edge has a sharpness value of 1.0, the edge will have a brighter color, and if sharpness value is 0.0, the edge will not be so bright.
锐利度值是通过边的亮度变化来描绘。如果该边的锐利度值为1.0时,那么该边将有着非常亮的颜色;反之锐利度值为0.0时,那么该边是没有亮度的。

Edge sharpness 0.0
Edge sharpness 0.0
Edge sharpness 1.0
Edge sharpness 1.0
Previous: Manual/PartII/Basic Mesh Modelling Contents Next: Manual/PartII/Edge and Face Tools
Personal tools