2016-08-02 3 views
0

Интроthree.js - требования текстурирование

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

Проблема

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

Вопросы

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

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

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

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

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

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

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

+0

three.js поддерживает не квадратные текстуры без специальной обработки: http://jsfiddle.net/greggman/MZpx8/ – gaitat

+0

@gaitat. Я не понимаю. в этом примере используется .jpg, который является квадратом. – AlvinfromDiaspar

+0

нет его не квадрат; его размер составляет 1280x1202 – gaitat

ответ

1

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

+1

Ну, в моем случае изображения являются планами этажей. Поэтому я не могу взять суб-изображение. Скорее, я изменяю размер «вверх». Что вы подразумеваете под «неконформным способом»? И что это за «алгоритм классификации текстур»? – AlvinfromDiaspar

+0

И, кстати, я не искажаю размер, независимо от того, что это значит. Я просто изменяю размер холста. Я не делаю никаких перекосов, растяжек или масштабирования. – AlvinfromDiaspar

Смежные вопросы