Site Tools


Rhino 网格设定 - 详细信息

解开Rhino网格神秘的设定 - 一般网格问题的解决方案

注意: 本页刊载了在Rhino中使用网格的详细信息,汇集了来自技术支持论坛、McNeel开发商以及重度Rhino使用者的经验。截至目前我一直为Rhino5做更新。 –Mitch 16.01.2013

为什么我到了这一页?

大概每个曾经使用Rhino的使用者,都会碰到莫名的显示问题,比如:

  • 表面充满许多锯齿,而不是原本期待光滑的曲面。
  • 显示大型模型时速度慢如蜗牛
  • 神秘的出现在意想不到的地方。
  • 看不见的曲面或是整个物件。

所有这些问题通常都可以追溯到模型的网格或是一般网格设定。

你是说网格吗? 我没有做任何网格啊,我只是做了一些NURBS曲面。

嗯,你可能不知道其实你也建立了一些网格。继续阅读

为什么我们需要网格呢?

尽管Rhino是一个NURBs曲面建模软件,它利用曲面创造出来的多边网格达到视觉化的效果。所以当您在屏幕上看到着色模型,事实上是由看不见的多边形网格(“渲染网格”)附着在NURBs曲面上形成的。

为什么呢? 针对快速着色与渲染,但当网格针对着色速度以及可调整性有其优点时,当然也有缺点。渲染网格最终只能调整到最接近曲面,所以呈现多面的渲染网格以及平滑曲面,一定有缝隙。

在Rhino中建立网格的引擎同时也分析网格建立的草图、曲率以及EMap等功能,经由Mesh指令 (网格 > 从 NURBs 物件 )直接从NURBs 物件建立“真正”的网格物件。

从Rhino输出某些多边形格式 (如.stl档),同时也会建立网格物件 (于输出档案)。 虽然无法在原本的Rhino档中编辑这些档案,您有同一群组的网格密度设置,以便控制如何建立它们。

在许多应用程序中,网格以及输出(.stl)是用来建立真实可编辑网格的功能,其他下游程序通常需要多边形网格物件一起作业。

所有不同类型的网格物件可以同时在一个档案中存在,他们并不互相影响,每个也都有自己的设定。 虽然所有网格都是用同一个引擎建立的,但它们之间还是有一些不同。

不同类型的网格

  • 渲染网格建立在NURBS曲面及多边形曲面上,目的是在使用着色或渲染视图时的视觉化。使用者无法直接存取或编辑,并“附加”在它们被建立的NURBS物件上。 用ClearAllMeshes指令就可以将它们删除,RefreshShade指令或是改变设定便可以重新整理。(档案 > 选项 > 网格)(这个动作可以强迫所有网格重新整理)

在V4版本,您可以利用ExtractRenderMesh指令,将渲染网格转换为真正可编辑的网格物件。

  • 分析网格类似渲染网格,通常无法编辑也无法从NURBS物件分离。它们有另一组设定,而且不同于渲染网格,他们独立存在。您可以暂时看到它们,但当您使用控制面板或对话框中的“调整网格”或“预览”按钮等分析指令时,在Rhino 5,就像上面提到的渲染网格,您可以将分析网格转换为“真正”的网格物件,只要用ExtractAnalysisMesh指令就可以了。
  • 由MESH指令建立的网格 是看得到也能够加以编辑,并且独立于建立它们的NURBS物件之外。它们本身就是能够被看而且被编辑的物件,只要用Rhino指令就可以应用网格在它们身上,而且可以输出多边形网格格式如STL、DXF、3DS以及OBJ。
  • 在储存与汇出期间建立的网格 (如.stl),与其他类型网格有相同的网格设定对话方块。也可以利用设定面板的“预览”按钮暂时看到它们,但他们并不会被储存在源文件里 (除非将其汇出)。
Willem:当输出某个网格物件时,我总是先建立网格,并在汇出成为想要的格式之前,在平坦着色模式(FlatShade指令)的视图中检视。 平坦模式将当前视图区着色,而且不会将视图平滑化,所以个别(渲染)的网格面仍是可见的。

网格设定对话框

我们为什么需要网格设定呢? Rhino不是已经够智慧,不用我告诉他要做什么?

这是个很好的问题 — 也有可能会引起许多争议。 我们现在先不讨论细节,但如果您要在Rhino中有最理想的网格化效果,你必须了解如何设定还有如何利用这些设定来操作,因此才会有这篇很长的信息与建议。 别太绝望…

OK 那我是不是什么都用网格,而且用高分辨率就可以解决问题了呢?

事实上并不会 — 可能还会让事情更糟。网格有点像图片中的像素,越多像素(网格面),图像就越细致(模型),不过也需要更多数据来描述图像(模型)。 这种情况下到了某个时候数据就会变成一个巨大的负担,而且这些数据也需要以动态方式呈现(您想要在视图区旋转检视您的着色模型吧?)。您的计算机能够实时处理大量数据的能力这时候就可能几乎达到极限了。

所以网格是一种平衡的行为。这个想法是用所需最少量的网格平面,来满足工作上解析度的需求 - 如此而已。 在Rhino,你需要了解网格系统是如何作业的。这也是为什么你来到这一页。 :-)

控制项

对于不同的网格类型,控制项几乎是完全相同的。 渲染网格(显示网格)的设定是.3DM档案属性的一部分(属性>网格)。 它们对于整个模型来讲是全域设定,但在V4可以依照每个物件重写。 Rhino提供您两种标准设定,粗糙、较快平滑、较慢,也有自订选项,让您可以做进阶设定。

当从一个NURBS物件建立网格,或是输出往格格是如STL、DXF、3DS、或OBJ,您可以选择较“简单”的控制项,就是粗略⇐⇒ 精细的密度滑杆:更少⇐⇒ 更多的多边形

另外还有更详细的控制项让使用者可以做设定。 它们在所有网格类型中几乎都是相同的,以下为详细说明。

预设设置

  • 粗糙、较快是彩现网格的预设值– 可以很快速的视觉化,但仅此而已,并不是特别的好。
  • 平滑、较慢 理论上花更长的时间得到更好的分辨率。 实际上尽管这花上较长的时间,老实说它还是会在你不想要的地方留下明显的缺口缝隙,所以建议您能够尝试自订设定。
  • 自定义 允许使用者依据自己的需求,拥有最大的弹性来做网格设定,只需要了解并能够设置复杂一点的设定即可。
  • 对于分析网格还有网格与汇出 (Mesh and Export)的简单滑块设定,大概是中间的平均值。
  • 关于特别的STL汇出对话框的预设设定,通常是上次自订对话框“边缘到曲面的最大距离 (max dist edge to srf)”的设定,如果没有设定的话,就是绝对公差值(档案>内容> 单位)。

自定义设置

如果您真的想要控制网格过程,请从这里开始!

7个数值设置及3个核取方块,每一个都有不同的网格控制方法,有些可以一起运作。 这些设置造成互动或综合的影响是复杂并不容易了解。 单独而言他们都在说明中有详细解释,所以仔细阅读此信息可以知道各自的功能为何。

Rhino Mesh说明页在此。

快速指南

以下为基本自订设置的起始,需要您在模型上做一些测试,如果某设定为0或0.0, 表示它处于关闭状态。

密度 (Rhino 4最新功能) 0.0
最大角度 35
最大长宽比 0.0
最大边缘长度 0.0
边缘到曲面最大距离 **
起始四角网格面的最小数目 16
在Rhino 4,您可以尝试实验密度设置,它是独立的。 请参考以下的详细功能解说。 在Rhino 3没有密度设定,可以将边缘到曲面最大距离设定适当的数值。毫米为单位的模型可以尝试用0.10 to 0.01之间的数字
  • 细分网格 勾选
  • 不对齐接缝顶点不勾选
  • 平面最简化不勾选
  • 边缘至曲面最大距离 方法,跟输入特定数值相比,强制Rhino在曲面不远处建立网格,在当前档案装置里。 它允许Rhino在较低细节区域建置较少的多边形,在较高细节区域建置更多多边形,这样形成的网格更有效率。
  • 起始四角网格面的最小数目 设置确保平坦区域有足够的多边形,看起来才平滑。
Pascal: 我比较喜欢在“最大角度”上设定大一点的数字,而不是这为0(停用),大约是35-45度。 如此在最大距离之下的数字会被稍微细分一点,在某些案例中如果大角度设定决定了较小的物件,但我的做法可以稍微避免这种情形。当物件与全球网格设定之间的差异太大,通常在这些物件上使用网格指令是值得尝试的。如果需要的话,为物件设定够宽松或是够细致的网格,然后只针对这个网格进行彩现,并隐藏或删除NURBS曲面。非常细小而且重复的细节可以做成很宽松的网格,而并不影响影像的质量。
Mitch: 有时候“最大长宽比”我会设定为6,以避免Rhino对长又薄型的物件做网格而形成又长又瘦的三角,这个方法可以将他们分为较短较小的三角。 然而这样做的代价是更大的档案以及花费更多网格形成的时间。
Ricardo:我做的是珠宝快速成形。最大距离预设值是0.001,最大角度是12度。较大的角度在最后成品上会显示出三角的边。 网格尺寸,在非常复杂的模型中达到30mb。 单位为毫米。
Olivier: 我的工作多与张力结构薄膜结构还有钢铁结构有关,我需要很准确的薄膜网格,但钢铁管子还有配件通常导致大量的网格。为了应付这两种最大跟最小的曲率,我总是将最小边缘长度设限,这样可以限制弯曲的小细节上的多边形数量。

主要设定为边缘至曲面最大距离如果您思考一下,就会知道此值是取决于尺寸大小,因此会有以下问题:

最适当的数值为?

首先,这个数值取决于您要使用的网格设定。一般显示您的数值可以大一点(较宽松),因为您只是在荧幕上视觉化模型,越少的多边形表示网格形成时间越快,而且在旋转或翻滚时显示也越快。

  • 如果您做的是一件计算机大小的物件,0.01mm就可以了。对于制作手表或珠宝来说,数值就要更小一点,也许是.002mm。大型物件如建筑物,数值就大得多了,也许是1mm或是更大。
  • 如果您将为了以后的处理先汇出物件,或是要做非常详细的彩现,您可能需要根据位置与精确程度,设置得更详尽些。 对于光固化快速成形部件,0.01mm也许还可以,但以良好机械加工而言,0.001mm - 0.002mm更为贴切。

一开始可能有点复杂,但经过练习之后,您会找到几个最适合你的标准设定。这些设定能够被制定到一个巨集或是脚本,以便快速启动适合您物件所需的所有特征。

关于密度设定:V4中的密度设定使用一个公式来控制多边形边缘与原始曲面的接近度。有效范围从0 (关闭或忽略)到1,最大密度。 数值越大,所形成的网格就有越多的多边形。单独使用时(其余设定为0),似乎可以建立非常平衡的网格。密度与单位或尺寸规模并无直接关系。

密度数值提供Rhino根据每个物件做内部运算,并得出一个数值,如“边缘至曲面最大距离”的设定值,这个数值在当前模型的单位中告诉网格产生器任何网格边缘的中间点,能够容忍偏离原始曲面的距离。这个运算依据物件大小等其他条件来进行。当密度设定接近于1的时候,这个数值会是比较小。使用者也许永远不会真的看到最后算出来的数值,而且与每个物件网格化的情况不同,数值也会不同。如果有一个明确的,非0的“边缘到曲面最大距离”的数值存在此对话方块中,那么针对各个物件,网格产生器会选择比最终的最大距离设定还要小的数字。

已知的网格问题及其弱点

有时您会发现就算有上述的设置指南,您还是无法得到较好的结果。您有可能与一些残留的曲面、不平均的着色阴影或是不应该切过某个空间的三角网格面。其中有些问题可能是Rhino网格产生器对于某些类型几何结构的反应。唯一能够改正的方式可能只有对您的结构做一些改造。

需要留意的地方

虽然这些情况不总是引起网格的问题,但在过去经验来看它们就是问题点,所以如果碰上任何问题请仔细检查。

  • 损坏的物件 虽然他们不总是导致网格的问题,这些都是容易追查的,所以是一个容易开始的地方。如果你找到一个坏掉的物件,尝试把它藏起来,如果您的问题消失了,那么有可能您需要做的只是修复物件而已(确定使其有效)。
  • 又长又瘦的曲面目前这种曲面对网格产生器来说是有点困难的,越长越薄的曲面就得花上愈多时间而且越难形成。举一个典型的例子,模型边缘建立长且连续的小半径导圆角。如果您觉得花非常久的时间转网格,那么可能就是这个原因。
  • 加入的正切线条或弧形被挤压或旋转 例:挤出圆角的矩形。这就在内部G1区域形成一个单一曲面,也是网格发生问题的地方。 解决方案:挤出前炸开曲线,或是在G1点上,利用分割 >Isocurves,以单独加入而不是一个单一相切曲面的方式建立结构。在挤出圆角矩形的案例中,您将会有八个连接的表面,而非一个。
  • 有锐边(锐角点)的曲面 通常是由CreaseSplitting被设定为No所引起 (在V4或V5的载入项),或是非正切曲面上使用MergeSrfSmooth=No所引起。 在这种情况下,利用多重曲面而不是单一有锐边的曲面。 利用曲面编辑工具>在锐边分割曲面或是分割>Isocurves在锐角上将这些曲面分割成不同部分。
  • 带孔洞的三角形曲面 这是V4中已知的错误。 “平面最简化(Use simple planes)“设定(以上所述),与另一个在中间带孔洞的三角平面曲面、或是中央带三角孔洞的面曲面混乱了。问题是这个洞并不在着色模式显示,就算真的存在。 解决方式是将”平面最简化((Use simple planes”设定从详细网格对话框中取消选取。如果您用的是“粗糙、较快”的模式,那么“平面最简化”是预设的,不能取消选取,所以您需要转换至一个自订模式。

网格诊断 (从Rhino 说明档)

zh/rhino/meshfaqdetails.txt · Last modified: 2020/08/14 (external edit)