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 x 16k像素大小!

我没有在pixi中使用SVG,所以我不知道如何调整分辨率:)

非常感谢!也许我应该打开一个话题来讨论这个问题:(

由于似乎已解决此问题,因此要关闭它,如果您有其他问题,请随时打开另一个!

该线程已被自动锁定,因为它关闭后没有任何近期活动。 请为相关错误打开新一期。

此页面是否有帮助?
0 / 5 - 0 等级