您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

THREE.js生成UV坐标

THREE.js生成UV坐标

据我所知,没有自动方法来计算紫外线。

您必须计算自己。计算平面的UV非常容易,此站点说明了如何:计算纹理坐标

对于复杂的形状,我不知道如何。也许您可以检测到平面。

这是平面的示例代码(x, y, z)其中z = 0

geometry.computeBounding@R_91_2419@();

var max = geometry.bounding@R_91_2419@.max,
    min = geometry.bounding@R_91_2419@.min;
var offset = new THREE.Vector2(0 - min.x, 0 - min.y);
var range = new THREE.Vector2(max.x - min.x, max.y - min.y);
var faces = geometry.faces;

geometry.faceVertexUvs[0] = [];

for (var i = 0; i < faces.length ; i++) {

    var v1 = geometry.vertices[faces[i].a], 
        v2 = geometry.vertices[faces[i].b], 
        v3 = geometry.vertices[faces[i].c];

    geometry.faceVertexUvs[0].push([
        new THREE.Vector2((v1.x + offset.x)/range.x ,(v1.y + offset.y)/range.y),
        new THREE.Vector2((v2.x + offset.x)/range.x ,(v2.y + offset.y)/range.y),
        new THREE.Vector2((v3.x + offset.x)/range.x ,(v3.y + offset.y)/range.y)
    ]);
}
geometry.uvsNeedUpdate = true;
其他 2022/1/1 18:21:31 有507人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶