我被卡住了! 我试图将图像映射到三个js的表面上。它与UV映射有关。我试图理解
我使用
创建形状var i, verts = [];
for (i = 0; i < 6; i++) {
verts.push(createVert(i, Hex.FLAT));
}
hexShape = new THREE.Shape(verts);
我已阅读http://paulyg.f2s.com/uv.htm,Custom UVgenerator Three.js for extrudedgeometry,UV mapping in THREE.js,THREE.js generate UV coordinate。
他们使用正方形,我使用十六进制/三角形。 我正在加载图片:
if (true) {
texture = new THREE.ImageUtils.loadTexture("data/mylogo.png",{}, onText, onErr);
} else {
var textLoader = new THREE.TextureLoader();
textLoader.load("data/hemp_logoB.png", {}, onText, onErr);
function onErr(err) {
console.log('ERR ', err);
}
function onText(text) {
console.log('TEXTLOADED ', text);
var t = text;
var img = t.image;
console.log(img.height, img.width);
texture = text;
texture.needsUpdate = true;
update();
}
}
我挤出十六进制。
geo = new THREE.ExtrudeGeometry(hexShape, extrudeSettings);
我甚至让脸和脸都不同
var mats = [imgMaterial, sideMaterial];
var mat = new THREE.MeshFaceMaterial(mats);
mesh = new THREE.Mesh(geo, mat);
我看到十六进制中心的一个小点就是图像。在形状(地理)上我有44个面孔**
我想我需要一个uvGenerator或自定义uv。图像上的尺寸为256x256,但我可以制作任何尺寸***。文档使用方形表面,这是一个六角形表面。
思想???
**应该是24? 6 + 6 + 12顶部+底部+(6 * 2)侧 *** mylogo.png是从SVG文件生成的,我想在表面上使用SVG。