首页 > 解决方案 > maptalks.three 建筑物纹理

问题描述

我正在尝试将一个小窗口的纹理重复应用于从示例代码中获得的建筑物:

https://maptalks.org/maptalks.three/demo/vectortilelayer-mvt.html

我想做的是在建筑物侧面重复一个窗口(png 64x64)

我试图把这个纹理:

texture.offset.set(0,0);
texture.wrapS = texture.wrapT = THREE.RepeatWrapping;
texture.repeat.set(1,1);

var buildMaterial = new THREE.MeshPhongMaterial( { map: texture });

问题是纹理在某些建筑物中应用错误,例如拉伸,并且所有建筑物的所有窗户都不相同,这是我想要实现的目标。

我知道建筑物网格图块是由几个建筑物的 THREE.BufferGeometry 制成的(从 geojson 数据的特征中提取),然后使用该 BufferGeometry 创建了一个网格,然后应用该材料。

在所附图像上,您可以看到红色是错误的纹理映射,绿色是我想看到的。

纹理映射问题的图像

希望你能帮我解决这个问题!或者,也许您知道使用 maptalks 获取具有纹理的建筑物的代码。

标签: three.jsuv-mapping

解决方案


推荐阅读