我想在挤压几何体的表面使用纹理。我研究定制 UV 发生器已经有一段时间了,并发现了这些相关问题:
1.)如何将纹理应用到 THREE.ExtrudeGeometry? https://stackoverflow.com/questions/14797407/how-to-apply-a-texture-to-three-extrudegeometry/22867384#22867384
2.) 加载的纹理看起来很模糊,或者像单一颜色。如何让纹理变得酥脆锐利 https://stackoverflow.com/questions/23864338/loaded-texture-appears-blurred-or-like-a-single-color-how-to-make-the-texture/23864709#23864709
然而,提出的方法是将我的几何点除以 1000 并mesh.scale.set(1000,1000,1)
不起作用,因为我的几何图形不再位于正确的位置。我更愿意指定 UV 映射。一个答案说要根据源代码实现一个自定义 uvgenerator,但我被困住了并且不知道该怎么做。
这是我的几何体创建,材质为 512x512px,如何将纹理映射到顶部?:
pointList=[[0,0,0],
[0,1000,0],
[750,1000,0],
[750,750,0],
[1000,750,0],
[1000,0,0]]
for (i=0;i < pointList.length; i++) {
point = pointList[i];
x = point[0];
y = point[1];
myPoints.push( new THREE.Vector2 (x,y) );
}
myShape = new THREE.Shape( myPoints );
extrusionSettings = {
amount:height
};
myGeometry = new THREE.ExtrudeGeometry( myShape, extrusionSettings );
resultshape = new THREE.Mesh( myGeometry, material );