斯潘8
斯潘4
嗨,大家好,
我尝试从3dcitydb(PostgreSQL)中提取3D数据,并将其写入一个草图文件。
我可以处理这些表面并将它们作为建筑物写入.skp文件。
但我有一个关于质地的问题。我设法在正确的表面得到正确的图像,但它们不在正确的位置。
我得到了一个区域的纹理坐标,它们存储如下(U,V坐标列表):
但我不知道如何处理这些坐标…以及如何用纹理协调器处理它们…有什么想法吗?
其想法是创建一个3dcitydb格式的自定义阅读器和一个从sktechup中的db提取数据的工作台,multipatch,…已经完成了,没有纹理,但如果纹理正确的话,那就太好了(而且很有用)。
事先谢谢你,
法比安拉甘尼
您好!@旗舰,纹理坐标(u,v)是在纹理图像的左下(0,0)和右上(1,1)范围内调节的坐标。在FME数据转换过程中,纹理坐标由表面几何体存储,其度量称为“fme_texture_coordinate_”,“fme_纹理_坐标_v”,等。请参阅此处了解更多信息:纹理坐标
如果输入三维多边形功能有两个分别包含U坐标和V坐标的列表属性,您可以将坐标映射为两个度量-“fme_texture_coordinate_”和“fme_texture_coordinate_v”到多边形(MeasureSetter x 2)。更换为表面(FaceReplacer)。然后将光栅图像设置为表面的纹理(外观设置)。
在你的情况下,首先,您必须将纹理坐标(空间分隔纹理坐标列表)转换为两个列表属性,分别包含U坐标和V坐标。
请参阅此工作区示例,该示例描述如何根据给定的纹理坐标将纹理坐标设置到曲面。并用FME数据检测仪(特征信息窗口)检查生成表面的测量值。
纹理-坐标-映射-示例.fmw(FME 2017.0.1.1)
我不知道纹理坐标转换器是如何工作的…
#pythoncaller脚本示例设置作为属性值给定的纹理坐标(以空格分隔的u,v值)到fmepolygon几何体,然后用一个fmeface几何图形替换它。假设输入特征总是有一个边界为fmeline的fmepolygon,并且其顶点数与纹理坐标数一致。从fmeobjects导入fmeface,FMEPolygonfme_close_3d_average_modedef convertpolygontofacewithtexturecoordinates(feature):s=feature.getattribute('texture_coordinates').split()u=[float(s[i])for i in range(0,莱恩(S)2)]v=[浮动(s[i]),对于范围(1,莱恩(S)2)boundary=feature.getgeometry().getboundaryascurve()boundary.setmeasure(u,'fme_texture_coordinate_')boundary.setmeasure(v,'fme_texture_coordinate_v')feature.setgeometry(fmeface(fmepolygon(boundary)),fme_close_3d_average_模式)
似乎纹理协调器只是根据参数修改存储为曲面度量的现有纹理坐标,而不会为曲面设置新的纹理坐标。
?2019安全亚搏在线软件公司|合法的