Pixi.js: レンダラーの解像度の変更

作成日 2017年03月06日  ·  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 x16kピクセルのサイズになります。

pixiでSVGを使用しなかったので、解像度を調整する方法がわかりません:)

どうもありがとうございました!多分私はこの質問を議論するために問題を開く必要があります:(

回答済みのようですので、この問題をクローズします。別の質問がある場合は、別の問題を開いてください。

このスレッドは、閉じられた後に最近のアクティビティがないため、自動的にロックされています。 関連するバグについては、新しい問題を開いてください。

このページは役に立ちましたか?
0 / 5 - 0 評価