Pixi.js: Modification de la résolution du moteur de rendu

Créé le 6 mars 2017  ·  16Commentaires  ·  Source: pixijs/pixi.js

Existe-t-il un moyen de mettre à jour la résolution du moteur de rendu? J'ai essayé renderer.resolution = window.devicePixelRatio, mais cela fait juste clignoter l'écran en blanc.

🤔 Question

Commentaire le plus utile

Oui, ça l'est. Je ferai cette fonction plus tard, mais cela pourrait fonctionner pour le moment:

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

N'oubliez pas de mettre à jour TOUTES LES RÉSOLUTIONS DE FILTRES.

Tous les 16 commentaires

La meilleure solution de contournement temporaire que j'ai trouvée est de détruire et de recréer le moteur de rendu, en passant la nouvelle résolution à autoDetectRenderer. Cela fonctionne mais ce n'est peut-être pas le moyen le plus efficace de le faire. En outre, il y a peut-être encore un problème avec la destruction et la recréation répétées du moteur de rendu: # 2233

Il semble qu'il devrait y avoir un simple appel de fonction pour ce faire, comme renderer.setResolution, qui minimise la quantité de traitement supplémentaire et les ressources mortes.

Salut @jaspervaz! Curieux de savoir quel est votre cas d'utilisation?
À votre santé!

Oui, ça l'est. Je ferai cette fonction plus tard, mais cela pourrait fonctionner pour le moment:

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

N'oubliez pas de mettre à jour TOUTES LES RÉSOLUTIONS DE FILTRES.

Et n'oubliez pas de mettre à jour également la résolution du plugin d'interaction

@jaspervaz

EXACTEMENT, le zoom change, c'est ce que je veux faire aussi :)
Pour l'instant, supposons que "renderer.screen" est un rectangle d'écran en coordonnées logiques, tandis que "renderer.view" est un canevas et donc la largeur et la hauteur sont multipliées par la résolution.

Cochez comme ceci pour que cela fonctionne pour les deux moteurs de rendu:

if (renderer.rootRenderTarget) { renderer.rootRenderTarget.resolution = newResoultion; }

-
De plus, cela semble fonctionner de la même manière sans la ligne suivante, je pense que le zoom change à la fois la résolution et les dimensions de la fenêtre, mais peut-être que d'autres cas d'utilisation l'exigent:

renderer.resize(w-1, h);

Oui je suis d'accord.

@ivanpopelyshev Je veux redimensionner l'écran.
L'utilisation de votre méthode rendra la toile floue.
La résolution de ma méthode ne peut pas être supérieure à 20

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

@starInEcust Pourquoi avez-vous besoin d'une résolution supérieure à 20? La résolution ne concerne pas la mise à l'échelle, le zoom de son navigateur. L'échelle fait partie de la transformation de scène.

@ivanpopelyshev Je veux agrandir le rendu et garder le texte et les images svg ne seront pas déformés

@starInEcust J'ai résolu ce genre de problèmes en ajustant manuellement l'échelle et la taille de la police.

Il existe également une nouvelle solution: utilisez les polices SDF. https://github.com/PixelsCommander/pixi-sdf-text

@ivanpopelyshev et svg? Je veux juste faire un éditeur de texte avec une animation cool, dans l'aperçu avant impression peut zoomer et dézoomer, mais n'affecte pas la composition.
Et y a-t-il un problème avec l'utilisation du grossissement de résolution?

C'est un cas d'utilisation très inhabituel pour pixi. Vous devez changer le zoom via "stage.scale" et ajuster la résolution uniquement du SVG et du texte, pas la résolution de l'ensemble du rendu. Dans votre cas, la taille de l'écran du moteur de rendu est fixe, et lorsque vous changez de résolution, les dimensions de la toile deviennent trop grandes, vous atteignez une taille de 16k x 16k pixels!

Je n'ai pas utilisé SVG dans pixi donc je ne sais pas comment ajuster la résolution pour cela :)

Merci beaucoup! Peut-être que je devrais ouvrir un numéro pour discuter de cette question :(

Pour clôturer ce problème puisqu'il semble résolu, n'hésitez pas à en ouvrir un autre si vous avez une autre question!

Ce thread a été automatiquement verrouillé car il n'y a eu aucune activité récente après sa fermeture. Veuillez ouvrir un nouveau numéro pour les bogues associés.

Cette page vous a été utile?
0 / 5 - 0 notes