【问题标题】:three.js how to move the starting point of mapping?三.js如何移动映射的起点?
【发布时间】:2017-01-26 23:36:09
【问题描述】:

我应该如何移动贴图纹理的起点?

这是一个带有 uv_grid 纹理的 obj 文件。

它在中心显示一条线(起点),但我想做的是将映射的起点移动到如下所示的一侧。

我的代码:

var loader = new THREE.ImageLoader();
loader.load("../img/white.jpg", function(image) {
    texture.minFilter = THREE.LinearFilter;
    texture.image = image;
    texture.wrapS = THREE.ClampToEdgeWrapping;
    texture.wrapT = THREE.ClampToEdgeWrapping;
    texture.needsUpdate = true;
}, onProgress, onError);

var loader = new THREE.OBJLoader();
loader.load('../models/body.obj', function(object) {
    object.traverse(function(child) {

        if (child instanceof THREE.Mesh) {
            child.material.map = texture;
        }
    });
    object.name = "object";
    object.position.y = 0;
    scene.add(object);
}, onProgress, onError);

【问题讨论】:

    标签: three.js uv-mapping


    【解决方案1】:

    您应该尝试的第一件事是调整纹理offset 和repeat-参数,看看这是否能给您带来足够好的结果。

    如果这没有帮助,您可能必须创建一个新的 UV 贴图来满足您的需求(您没有提到您想要做什么)。要创建新的 UV 贴图,基本上有两种选择:

    a) 在 three.js 中以数学方式创建一个新的 UV 贴图。有几种选择,具有不同的复杂性和或多或少有希望的结果。在您的情况下可能有用的是双前/后平面投影。这有点像从正面和背面拍摄一张照片,然后将这两张照片一起用作纹理。

    b) 但是,特别是如果你想在正确的地方有接缝,你可能想学习如何使用 3d 软件(例如搅拌机)进行 uv 展开。有一个真正的阶梯学习曲线,但是每个 3d 软件都有,blender 是免费和开源的,实际上非常好)。这是一个视频教程,其中包含许多有用的东西:https://www.youtube.com/watch?v=o9TGJj4DvjU

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-11-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-01-24
      • 2022-01-06
      相关资源
      最近更新 更多