Есть ли способ обновить разрешение рендерера? Я пробовал renderer.resolution = window.devicePixelRatio, но он просто заставляет экран мигать белым.
Лучшее временное решение, которое я придумал, - это уничтожить и заново создать средство визуализации, передав новое разрешение в autoDetectRenderer. Это работает, но, возможно, не самый эффективный способ сделать это. Кроме того, возможно, все еще существует проблема с многократным уничтожением и повторным созданием средства визуализации: # 2233
Похоже, что для этого должен быть простой вызов функции, например renderer.setResolution, который минимизирует количество дополнительной обработки и мертвых ресурсов.
Привет @jaspervaz! Интересно, каков ваш вариант использования для этого?
Ура!
Да, именно так. Я сделаю эту функцию позже, но пока это может сработать:
renderer.resolution = 2;
renderer.rootRenderTarget.resolution = 2;
renderer.resize(w-1, h);
renderer.resize(w, h);
Не забудьте обновить ВСЕ РАЗРЕШЕНИЯ ФИЛЬТРОВ.
И не забудьте также обновить разрешение плагина взаимодействия.
@jaspervaz
ТОЧНО, масштаб меняется, я тоже хочу этого сделать :)
А пока предположим, что «renderer.screen» - это прямоугольник экрана в логических координатах, а «renderer.view» - это холст, и поэтому ширина и высота умножаются на разрешение.
Установите этот флажок, чтобы он работал для обоих рендеров:
if (renderer.rootRenderTarget) {
renderer.rootRenderTarget.resolution = newResoultion;
}
-
Кроме того, кажется, что он работает так же без следующей строки, я думаю, потому что масштабирование изменяет как разрешение, так и размеры окна, но, возможно, этого требуют другие варианты использования:
renderer.resize(w-1, h);
Да, я согласен.
@ivanpopelyshev Я хочу масштабировать экран.
Использование вашего метода сделает холст размытым.
Разрешение моего метода не может быть больше 20
@starInEcust Зачем вам разрешение больше 20? Разрешение - это не масштабирование, а масштабирование браузера. Масштаб - это часть сценического преобразования.
@ivanpopelyshev Я хочу увеличить рендерер, чтобы текст и изображения svg не искажались
@starInEcust Я решил такие проблемы, вручную
Также есть новое решение: использовать шрифты SDF. https://github.com/PixelsCommander/pixi-sdf-text
@ivanpopelyshev как насчет svg? Я просто хочу сделать текстовый редактор с классной анимацией, в предварительном просмотре можно увеличивать и уменьшать масштаб, но не влияет на набор текста.
А есть ли проблема с использованием увеличения разрешения?
Это очень необычный вариант использования pixi. Вы должны изменить масштаб через "stage.scale" и настроить разрешение только SVG и текста, а не разрешение всего средства визуализации. В вашем случае размер экрана рендерера фиксирован, и когда вы меняете разрешение, размеры холста становятся слишком большими, вы достигаете размера 16k x 16k пикселей!
Я не использовал SVG в pixi, поэтому не знаю, как настроить для него разрешение :)
Большое спасибо! Может мне стоит открыть вопрос, чтобы обсудить этот вопрос :(
Собираюсь закрыть эту проблему, поскольку кажется, что она решена, не стесняйтесь открывать другую, если у вас есть другой вопрос!
Этот поток был автоматически заблокирован, поскольку после его закрытия в последнее время не было никаких действий. Пожалуйста, откройте новую проблему для связанных ошибок.
Самый полезный комментарий
Да, именно так. Я сделаю эту функцию позже, но пока это может сработать:
Не забудьте обновить ВСЕ РАЗРЕШЕНИЯ ФИЛЬТРОВ.