Pixi.js: Изменение разрешения средства визуализации

Созданный на 6 мар. 2017  ·  16Комментарии  ·  Источник: pixijs/pixi.js

Есть ли способ обновить разрешение рендерера? Я пробовал renderer.resolution = window.devicePixelRatio, но он просто заставляет экран мигать белым.

🤔 Question

Самый полезный комментарий

Да, именно так. Я сделаю эту функцию позже, но пока это может сработать:

renderer.resolution = 2;
renderer.rootRenderTarget.resolution = 2;
renderer.resize(w-1, h);
renderer.resize(w, h);

Не забудьте обновить ВСЕ РАЗРЕШЕНИЯ ФИЛЬТРОВ.

Все 16 Комментарий

Лучшее временное решение, которое я придумал, - это уничтожить и заново создать средство визуализации, передав новое разрешение в 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

https://jsfiddle.net/starCoding/p49u34hd/8/

@starInEcust Зачем вам разрешение больше 20? Разрешение - это не масштабирование, а масштабирование браузера. Масштаб - это часть сценического преобразования.

@ivanpopelyshev Я хочу увеличить рендерер, чтобы текст и изображения svg не искажались

@starInEcust Я решил такие проблемы, вручную

Также есть новое решение: использовать шрифты SDF. https://github.com/PixelsCommander/pixi-sdf-text

@ivanpopelyshev как насчет svg? Я просто хочу сделать текстовый редактор с классной анимацией, в предварительном просмотре можно увеличивать и уменьшать масштаб, но не влияет на набор текста.
А есть ли проблема с использованием увеличения разрешения?

Это очень необычный вариант использования pixi. Вы должны изменить масштаб через "stage.scale" и настроить разрешение только SVG и текста, а не разрешение всего средства визуализации. В вашем случае размер экрана рендерера фиксирован, и когда вы меняете разрешение, размеры холста становятся слишком большими, вы достигаете размера 16k x 16k пикселей!

Я не использовал SVG в pixi, поэтому не знаю, как настроить для него разрешение :)

Большое спасибо! Может мне стоит открыть вопрос, чтобы обсудить этот вопрос :(

Собираюсь закрыть эту проблему, поскольку кажется, что она решена, не стесняйтесь открывать другую, если у вас есть другой вопрос!

Этот поток был автоматически заблокирован, поскольку после его закрытия в последнее время не было никаких действий. Пожалуйста, откройте новую проблему для связанных ошибок.

Была ли эта страница полезной?
0 / 5 - 0 рейтинги