最快的方法在Sketchup中创建Face和Edge对象

时间:2010-07-27 06:26:17

标签: ruby graphics 3d sketchup

我必须在Google Sketchup中渲染几千个多边形的网格。我发现add_face随着模型中面数的增加而趋于变慢。我相信这是由于Sketchup在幕后运行的一些边缘检测算法。希望有一些方法可以抑制Sketchup正在进行的边缘检测或其他处理,直到所有面都添加到模型中。

我发现add_faces_from_meshfill_from_mesh要快得多,但我最终得到的网格包含Surface个实例,而不是FaceEdge个对象我在找。

那么,在Sketchup中生成由FaceEdge个对象组成的模型的最快方法是什么?有没有办法从Edge对象生成FaceSurface个对象?

更新:我刚刚阅读here使用Model::start_transactionModel::commit_transaction可以加快速度,但我发现这些改进不是很明显。还有什么我能做的吗?

2 个答案:

答案 0 :(得分:1)

  

我找到了add_faces_from_mesh和   fill_from_mesh要快得多,但我   最终得到一个由网格组成的网格   Surface个实例而不是Face   和我正在寻找的Edge个对象。

add_faces_from_mesh参数显式设置为零的情况下调用fill_from_meshsmooth_flags可正确构建FaceEdge个对象。 Sketchup Documentation声称smooth_flags默认为零......我的试验表明不然。

答案 1 :(得分:1)

只是为了澄清 - add_faces_from_meshfill_from_mesh确实添加了边和面 - 但是,默认行为是创建一个边缘柔和光滑的网格。当您有一组通过软边连接的面时,它们将被SketchUp视为一个曲面,当您选择它们​​时,实体信息窗口将显示“曲面”。 但是 - 在内部它仍然只是一组边和面 - SketchUp没有Surface实体。

对于Model::start_transaction - 您必须为第二个disable_ui参数指定true才能看到任何速度增益。但正如您所注意到的,SU在添加实体方面非常缓慢 - 您添加的实体集合中的实体越多,它就越慢。添加实体的绝对最快方式是fill_from_mesh