Three.js: OutlinePass 不适用于像素比 2

创建于 2017-04-21  ·  3评论  ·  资料来源: mrdoob/three.js

在轮廓通道示例中,像素比率设置为 1。
https://github.com/mrdoob/three.js/blob/master/examples/webgl_postprocessing_outline.html#L161

场景是模糊的,如果我们注释该行并使用设备的像素比,则场景会被挤压到左下角,如下图所示:
image

三.js版本
  • [ ] 开发
  • [x] r84
  • [ ] ...
浏览器
  • [ ] 他们都是
  • [x] 铬
  • [ ] 火狐
  • [ ] IE浏览器
操作系统
  • [x] 所有这些
  • [ ] 窗户
  • [ ] 苹果系统
  • [ ] Linux
  • [ ] 安卓
  • [ ] iOS
硬件要求(显卡、VR 设备……)

最有用的评论

看起来 EffectComposer 不处理pixelRatio ,它在创建WebGLRenderTarget时设置在WebGLRenderer

我建议使用下一个解决方法:

  1. effectFXAA创建自定义集大小处理程序:
effectFXAA.setSize = function(width, height) {
    this.uniforms.resolution.value.set(1 / width, 1 / height);
};
  1. 在初始化和窗口大小调整期间,使用预乘的widthheight调用composer.setSize
var size = renderer.getSize();
var pixelRatio = renderer.getPixelRatio();
composer.setSize(width * pixelRatio, height * pixelRatio);

所有3条评论

/ping @spidersharma03

我会看看

看起来 EffectComposer 不处理pixelRatio ,它在创建WebGLRenderTarget时设置在WebGLRenderer

我建议使用下一个解决方法:

  1. effectFXAA创建自定义集大小处理程序:
effectFXAA.setSize = function(width, height) {
    this.uniforms.resolution.value.set(1 / width, 1 / height);
};
  1. 在初始化和窗口大小调整期间,使用预乘的widthheight调用composer.setSize
var size = renderer.getSize();
var pixelRatio = renderer.getPixelRatio();
composer.setSize(width * pixelRatio, height * pixelRatio);
此页面是否有帮助?
0 / 5 - 0 等级

相关问题

fuzihaofzh picture fuzihaofzh  ·  3评论

makc picture makc  ·  3评论

filharvey picture filharvey  ·  3评论

donmccurdy picture donmccurdy  ·  3评论

danieljack picture danieljack  ·  3评论