Задать вопрос
@ar5

Как сохранить пропорции текстуры в WebGL?

Здравствуйте, есть у меня маленько непонимание работы с webgl. Я пытаюсь загрузить картинку как текстуру в canvas. Но она не сохраняет пропорции и имеет какие-то непропорциональные размеры. Попытки поменять различные параметры ни к чему толковому не привели. И как я понял, что текстуры должны быть квадратные, а что если нет? Как мне поместить текстуру в canvas сохраняя пропорции?
Пример
https://codepen.io/anon/pen/QZYboL
  • Вопрос задан
  • 136 просмотров
Подписаться 1 Средний Комментировать
Помогут разобраться в теме Все курсы
  • Яндекс Практикум
    Фронтенд-разработчик
    10 месяцев
    Далее
  • Skillfactory
    Профессия Веб-разработчик
    12 месяцев
    Далее
  • Яндекс Практикум
    Мидл фронтенд-разработчик
    5 месяцев
    Далее
Решения вопроса 1
@GreatRash
Судя вот по этому примеру текстура обязана иметь размеры степени двойки (2, 4, 8, 16, 32, 64 и т.д.). Если она не соответствует этим размерам, то используется параметр CLAMP_TO_EDGE, который растягивает/обрезает картинку до ближайшего подходящего размера.

Опять же на StackOverflow пишут, что если браузер поддерживает WebGL 2.0, то там т.н. NPOT-текстуры должны поддерживаться без проблем - пруф.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
svaa1982
@svaa1982
Web разработчик с трёхмерным уклоном
После того как тестура загружена, её наложение контролируется шейдером, а не исходными размерами и пропорциями. В шейдере имеются так называемые UV координаты, они должны быть одинаковы по ширине и высоте, чтобы картинка была квадратной.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы