THREE.js - Требования к наложению текстур

Введение

У меня есть веб-служба, которая возвращает результат json, содержащий путь к изображению. Эти изображения не обязательно являются квадратными (например, 200 x 250 пикселей).

Проблема

Кажется, что неквадратные изображения не поддерживаются для наложения текстуры. Чтобы наложение текстуры работало, мне нужно вручную загрузить изображение, изменить его размер и использовать это изображение для наложения текстуры (и оно работает).

Вопросы

A) Может ли быть способ заставить three.js / webgl использовать неквадратные изображения для наложения текстур?

Б) Может ли быть способ программно загрузить и изменить размер изображения, а затем загрузить его для наложения текстуры?

Спасибо всем.

Возможное решение?

Я нашел подходящий вариант. Дайте мне знать, что вы думаете об этом.

Обычно я загружаю удаленное изображение и нарисую квадратный элемент Canvas. Затем я могу получить изображение с холста (.getImageData) и сохранить его в папке изображений моего веб-сервера (если это невозможно сделать, я могу просто сохранить изображение на холсте). Наконец, загрузите изображение для наложения текстуры.

Я знаю, что это довольно расплывчато и упрощенно. Но эй, чем проще, тем лучше, правда? Это сработает?


person AlvinfromDiaspar    schedule 02.08.2016    source источник
comment
three.js поддерживает неквадратные текстуры без специальной обработки: jsfiddle.net/greggman/MZpx8   -  person gaitat    schedule 02.08.2016
comment
@gaitat. Я не понимаю. в этом примере используется квадрат.   -  person AlvinfromDiaspar    schedule 17.08.2016
comment
Нет, это не квадрат; его размер - 1280x1202   -  person gaitat    schedule 17.08.2016


Ответы (1)


НЕ изменяйте его размер неконформным образом, просто возьмите квадратную часть (например, если изображение имеет размер 250 X 220, просто вырежьте фрагмент изображения 220 X 220). Алгоритм классификации текстур может очень сильно зависеть от углов и связанных функций, которые может привести к короткому замыканию при перекосе за изменением размера.

person Bruce David Wilner    schedule 02.08.2016
comment
Что ж, в моем случае изображения - это планы этажей. Поэтому я не могу взять фрагмент изображения. Скорее увеличиваю размер. Что вы имеете в виду под неконформной манерой? И что это за алгоритм классификации текстур? - person AlvinfromDiaspar; 02.08.2016
comment
И, кстати, я не изменяю размер, что бы это ни значило. Я просто меняю размер холста. Я не занимаюсь перекосом, растяжением или масштабированием. - person AlvinfromDiaspar; 02.08.2016