FME三维贴图问题

原文发布时间:2013-03-26

翻译文章链接:https://knowledge.safe.com/articles/1184/using-the-holder-ports-in-the-appearancesetter-tra.html

翻译:毛毛虫

转换器上的HOLDER输入和输出端口可以用来确保要素在工作空间继续之前转换器完成所有的处理。

背景

AppearanceSetter转换器设置显示几何的前面和/或后面的外观样式。不能被转换器直接修改的要素可能仍会间接更改,所有HOLDER输入端口可以用来阻止要素,直到转换器完成它的处理。这种方法,你可以确保在工作空间中允许要素继续处理之前转换器完成所有的处理。所有的要素都会从输出的HOLDER端通过。


如何工作

 FME保留了外观定义的库,这与几何是分开的。当要素被写模块处理,它从这个库中获取自己的外观定义。

如果AppearanceSetter更改一个外观定义的中间写入,在更改后写入的要素会有新的外观。不过在更改之前写入的要素会有旧的外观。

这是HOLDER端口派上用场的地方。要素会被阻止直到AppearanceSetter完成他的处理。这种方法,所有通过的要素会指向新的外观定义。

示例

下载并打开相关的工作空间模板(HOLDER_Demo.fmwt)看一个例子来说明当使用HOLDER端口后不同的结果。

这个工作空间的目的是使用AppearanceSetter来替代给出的Google Sketchup模型窗口的纹理。Tester转换器帮助模拟我们不知道的输入到AppearanceSetter要素的位置,通过设置一个过滤条件,如"_part_number = 600"。如果通过HOLDER端口的是所有要素,可视化输出是唯一完整的,因为他们会阻止直到所有的处理在几何上完成。

首先运行现有的工作空间,此时HOLDER端口未用。在Data Inspector中查看输出,会看到一些外观已经被更新一些没有更新。这是因为通过AppearanceSetter的要素以任意顺序输出:一些要素在AppearanceSetter替代之前就获取了它的外观,一些要素在AppearanceSetter替代之后才获取了它的外观。


                        图:一些外观已经在输出中更新,一些没有

下面,使在Deaggregator和 Inspector转换器间的链接无效,Deaggregator和AppearanceSetter间的链接有效。再次运行工作空间。在Data Inspector中,会看到所有的纹理都被更新。这是因为在处理完成前,所有的要素都被HOLDER阻止,所有的要素获取了更新的外观。


            图:通过HOLDER端口发送要素后,所有的纹理在输出中成功更新

(二)AppearanceSetter转换中的Texture Mapping Type参数

在FME 2013版本中,已经将转换器AppearanceSetter和AppearanceAdder合并为了一个转换器AppearanceSetter。

今天在使用这个转换器时遇到一个问题:使用等高线和高程点生成TIN,并将TIN存储为3ds数据时,不能正确贴图,效果如下:


部分放大后的效果: 


后来看了一些参考资料找出问题:

转换器中的参数Texture Mapping Type(纹理映射类型)需要设置为From Top View,默认的值为Surface Normal。Texture Mapping Type参数的含义是指定如何在一个外观样式中定义纹理来映射到表面(surface)上。这个参数有两个可选的值,Surface Normal:纹理沿着几何的法线投影到表面上。对于组合的表面,每个子部分会分别处理,因为这些部分有不同的法线;From Top View:纹理沿着一条法线投影到表面——这条法线垂直于x-y平面。在这个模式中,当应用纹理坐标时,组合表面被认为是一个几何。

在上面的问题中,将Texture Mapping Type参数设置为From Top View,如图:

        

这时候对模型贴图成功,如图: 


部分放大后的效果:








  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值