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

Three.jsバージョン
  • []開発
  • [x] r84
  • []..。
ブラウザ
  • []それらすべて
  • [x]クローム
  • [] Firefox
  • [ ] インターネットエクスプローラ
OS
  • [x]それらすべて
  • [ ] ウィンドウズ
  • [ ] マックOS
  • [] Linux
  • [] Android
  • [] iOS
ハードウェア要件(グラフィックカード、VRデバイスなど)
Bug

最も参考になるコメント

EffectComposerは、WebGLRenderTargetの作成時にWebGLRendererに設定されたpixelRatioを処理しないようです

次の回避策を使用することをお勧めします。

  1. effectFXAAカスタムセットサイズハンドラーを作成します。
effectFXAA.setSize = function(width, height) {
    this.uniforms.resolution.value.set(1 / width, 1 / height);
};
  1. 初期化およびウィンドウのサイズ変更中に、事前に乗算されたwidthおよびheightしてcomposer.setSizeを呼び出します。
var size = renderer.getSize();
var pixelRatio = renderer.getPixelRatio();
composer.setSize(width * pixelRatio, height * pixelRatio);

全てのコメント3件

/ ping @ spidersharma03

見てみます

EffectComposerは、WebGLRenderTargetの作成時にWebGLRendererに設定されたpixelRatioを処理しないようです

次の回避策を使用することをお勧めします。

  1. effectFXAAカスタムセットサイズハンドラーを作成します。
effectFXAA.setSize = function(width, height) {
    this.uniforms.resolution.value.set(1 / width, 1 / height);
};
  1. 初期化およびウィンドウのサイズ変更中に、事前に乗算されたwidthおよびheightしてcomposer.setSizeを呼び出します。
var size = renderer.getSize();
var pixelRatio = renderer.getPixelRatio();
composer.setSize(width * pixelRatio, height * pixelRatio);
このページは役に立ちましたか?
0 / 5 - 0 評価