解开Rhino网格神秘的设定 - 一般网格问题的解决方案
注意: 本页刊载了在Rhino中使用网格的详细信息,汇集了来自技术支持论坛、McNeel开发商以及重度Rhino使用者的经验。截至目前我一直为Rhino5做更新。 –Mitch 16.01.2013
大概每个曾经使用Rhino的使用者,都会碰到莫名的显示问题,比如:
所有这些问题通常都可以追溯到模型的网格或是一般网格设定。
你是说网格吗? 我没有做任何网格啊,我只是做了一些NURBS曲面。
嗯,你可能不知道其实你也建立了一些网格。继续阅读
尽管Rhino是一个NURBs曲面建模软件,它利用曲面创造出来的多边网格达到视觉化的效果。所以当您在屏幕上看到着色模型,事实上是由看不见的多边形网格(“渲染网格”)附着在NURBs曲面上形成的。
为什么呢? 针对快速着色与渲染,但当网格针对着色速度以及可调整性有其优点时,当然也有缺点。渲染网格最终只能调整到最接近曲面,所以呈现多面的渲染网格以及平滑曲面,一定有缝隙。
在Rhino中建立网格的引擎同时也分析网格建立的草图、曲率以及EMap等功能,经由Mesh指令 (网格 > 从 NURBs 物件 )直接从NURBs 物件建立“真正”的网格物件。
从Rhino输出某些多边形格式 (如.stl档),同时也会建立网格物件 (于输出档案)。 虽然无法在原本的Rhino档中编辑这些档案,您有同一群组的网格密度设置,以便控制如何建立它们。
在许多应用程序中,网格以及输出(.stl)是用来建立真实可编辑网格的功能,其他下游程序通常需要多边形网格物件一起作业。
所有不同类型的网格物件可以同时在一个档案中存在,他们并不互相影响,每个也都有自己的设定。 虽然所有网格都是用同一个引擎建立的,但它们之间还是有一些不同。
在V4版本,您可以利用ExtractRenderMesh指令,将渲染网格转换为真正可编辑的网格物件。
Willem:当输出某个网格物件时,我总是先建立网格,并在汇出成为想要的格式之前,在平坦着色模式(FlatShade指令)的视图中检视。 平坦模式将当前视图区着色,而且不会将视图平滑化,所以个别(渲染)的网格面仍是可见的。
我们为什么需要网格设定呢? Rhino不是已经够智慧,不用我告诉他要做什么?
这是个很好的问题 — 也有可能会引起许多争议。 我们现在先不讨论细节,但如果您要在Rhino中有最理想的网格化效果,你必须了解如何设定还有如何利用这些设定来操作,因此才会有这篇很长的信息与建议。 别太绝望…
OK 那我是不是什么都用网格,而且用高分辨率就可以解决问题了呢?
事实上并不会 — 可能还会让事情更糟。网格有点像图片中的像素,越多像素(网格面),图像就越细致(模型),不过也需要更多数据来描述图像(模型)。 这种情况下到了某个时候数据就会变成一个巨大的负担,而且这些数据也需要以动态方式呈现(您想要在视图区旋转检视您的着色模型吧?)。您的计算机能够实时处理大量数据的能力这时候就可能几乎达到极限了。
所以网格是一种平衡的行为。这个想法是用所需最少量的网格平面,来满足工作上解析度的需求 - 如此而已。 在Rhino,你需要了解网格系统是如何作业的。这也是为什么你来到这一页。
对于不同的网格类型,控制项几乎是完全相同的。 渲染网格(显示网格)的设定是.3DM档案属性的一部分(属性>网格)。 它们对于整个模型来讲是全域设定,但在V4可以依照每个物件重写。 Rhino提供您两种标准设定,粗糙、较快,平滑、较慢,也有自订选项,让您可以做进阶设定。
当从一个NURBS物件建立网格,或是输出往格格是如STL、DXF、3DS、或OBJ,您可以选择较“简单”的控制项,就是粗略⇐⇒ 精细的密度滑杆:更少⇐⇒ 更多的多边形
另外还有更详细的控制项让使用者可以做设定。 它们在所有网格类型中几乎都是相同的,以下为详细说明。
如果您真的想要控制网格过程,请从这里开始!
有7个数值设置及3个核取方块,每一个都有不同的网格控制方法,有些可以一起运作。 这些设置造成互动或综合的影响是复杂并不容易了解。 单独而言他们都在说明中有详细解释,所以仔细阅读此信息可以知道各自的功能为何。
以下为基本自订设置的起始,需要您在模型上做一些测试,如果某设定为0或0.0, 表示它处于关闭状态。
密度 (Rhino 4最新功能) | 0.0 |
最大角度 | 35 |
最大长宽比 | 0.0 |
最大边缘长度 | 0.0 |
边缘到曲面最大距离 | ** |
起始四角网格面的最小数目 | 16 |
在Rhino 4,您可以尝试实验密度设置,它是独立的。 请参考以下的详细功能解说。 在Rhino 3没有密度设定,可以将边缘到曲面最大距离设定适当的数值。毫米为单位的模型可以尝试用0.10 to 0.01之间的数字
Pascal: 我比较喜欢在“最大角度”上设定大一点的数字,而不是这为0(停用),大约是35-45度。 如此在最大距离之下的数字会被稍微细分一点,在某些案例中如果大角度设定决定了较小的物件,但我的做法可以稍微避免这种情形。当物件与全球网格设定之间的差异太大,通常在这些物件上使用网格指令是值得尝试的。如果需要的话,为物件设定够宽松或是够细致的网格,然后只针对这个网格进行彩现,并隐藏或删除NURBS曲面。非常细小而且重复的细节可以做成很宽松的网格,而并不影响影像的质量。
Mitch: 有时候“最大长宽比”我会设定为6,以避免Rhino对长又薄型的物件做网格而形成又长又瘦的三角,这个方法可以将他们分为较短较小的三角。 然而这样做的代价是更大的档案以及花费更多网格形成的时间。
Ricardo:我做的是珠宝快速成形。最大距离预设值是0.001,最大角度是12度。较大的角度在最后成品上会显示出三角的边。 网格尺寸,在非常复杂的模型中达到30mb。 单位为毫米。
Olivier: 我的工作多与张力结构薄膜结构还有钢铁结构有关,我需要很准确的薄膜网格,但钢铁管子还有配件通常导致大量的网格。为了应付这两种最大跟最小的曲率,我总是将最小边缘长度设限,这样可以限制弯曲的小细节上的多边形数量。
主要设定为边缘至曲面最大距离如果您思考一下,就会知道此值是取决于尺寸大小,因此会有以下问题:
最适当的数值为?
首先,这个数值取决于您要使用的网格设定。一般显示您的数值可以大一点(较宽松),因为您只是在荧幕上视觉化模型,越少的多边形表示网格形成时间越快,而且在旋转或翻滚时显示也越快。
一开始可能有点复杂,但经过练习之后,您会找到几个最适合你的标准设定。这些设定能够被制定到一个巨集或是脚本,以便快速启动适合您物件所需的所有特征。
关于密度设定:V4中的密度设定使用一个公式来控制多边形边缘与原始曲面的接近度。有效范围从0 (关闭或忽略)到1,最大密度。 数值越大,所形成的网格就有越多的多边形。单独使用时(其余设定为0),似乎可以建立非常平衡的网格。密度与单位或尺寸规模并无直接关系。
密度数值提供Rhino根据每个物件做内部运算,并得出一个数值,如“边缘至曲面最大距离”的设定值,这个数值在当前模型的单位中告诉网格产生器任何网格边缘的中间点,能够容忍偏离原始曲面的距离。这个运算依据物件大小等其他条件来进行。当密度设定接近于1的时候,这个数值会是比较小。使用者也许永远不会真的看到最后算出来的数值,而且与每个物件网格化的情况不同,数值也会不同。如果有一个明确的,非0的“边缘到曲面最大距离”的数值存在此对话方块中,那么针对各个物件,网格产生器会选择比最终的最大距离设定还要小的数字。
有时您会发现就算有上述的设置指南,您还是无法得到较好的结果。您有可能与一些残留的曲面、不平均的着色阴影或是不应该切过某个空间的三角网格面。其中有些问题可能是Rhino网格产生器对于某些类型几何结构的反应。唯一能够改正的方式可能只有对您的结构做一些改造。
虽然这些情况不总是引起网格的问题,但在过去经验来看它们就是问题点,所以如果碰上任何问题请仔细检查。