ThreeJS Texture fit UV Map - PullRequest
       109

ThreeJS Texture fit UV Map

0 голосов
/ 21 марта 2019

Я пытаюсь разработать конфигуратор.Это про чашки.Они должны отображаться в 3D.Дизайн должен быть загружен.Он работает, загружая текстуру, как это.

image

В противном случае дизайн не будет соответствовать.Есть ли способ загрузить полноразмерное прямоугольное изображение в качестве текстуры?Текстура может быть растянутой.Текстура не должна быть сделана пользователем кубической, но, возможно, автоматически в фоновом режиме .. Надеюсь, вы меня понимаете.Это OBJ-файл

enter image description here

1 Ответ

0 голосов
/ 22 марта 2019

Ваше UV-отображение выглядит сложным для нанесения текстуры. Тем более, что в нем так много пустого пространства, и оно перекошено по дуге, поэтому вам нужно будет деформировать все свои текстуры, чтобы они подходили по размеру.

Вы должны заставить УФ-картирование работать на вас. Почему бы вам не использовать встроенный CylinderBufferGeometry класс для наложения текстуры поверх геометрии вашей чашки? Вы можете использовать его атрибуты, чтобы соответствовать стороне формы вашей чашки:

CylinderBufferGeometry(
    radiusTop, 
    radiusBottom,
    height,
    radialSegments,
    heightSegments,
    openEnded,
    thetaStart,
    thetaLength
);

enter image description here

При таком подходе вы можете оставить геометрию своей чашки нетронутой, а затем наложить поверх нее текстуру «стикера». Он может обернуться вокруг чашки, если хотите, или может быть ограничен только спереди. Вы можете масштабировать его, вращать вокруг него, и это не будет зависеть от встроенного УФ-картирования, выполненного в Blender. Еще одним преимуществом является то, что этот подход занимает весь [0, 1] УФ-диапазон, поэтому вы можете просто использовать квадратные текстуры, и вы не будете тратить данные с пустым пространством.

Посмотрите на эту демонстрацию , чтобы увидеть, как вы можете играть с конфигурацией геометрии.

...