Im Beispiel für den Outline-Pass ist das Pixelverhältnis auf 1 eingestellt.
https://github.com/mrdoob/three.js/blob/master/examples/webgl_postprocessing_outline.html#L161
Die Szene ist unscharf und wenn wir die Zeile kommentieren und das Pixelverhältnis des Geräts verwenden, wird die Szene wie im folgenden Screenshot in die linke untere Ecke gequetscht:
/ping @spidersharma03
Ich werde mal schauen
Es sieht so aus, als würde EffectComposer pixelRatio
nicht verarbeiten, das in WebGLRenderer
wenn WebGLRenderTarget erstellt
Ich schlage vor, den nächsten Workaround zu verwenden:
effectFXAA
:effectFXAA.setSize = function(width, height) {
this.uniforms.resolution.value.set(1 / width, 1 / height);
};
composer.setSize
mit vormultipliziertem width
und height
während der Initialisierung und Größenänderung des Fensters auf:var size = renderer.getSize();
var pixelRatio = renderer.getPixelRatio();
composer.setSize(width * pixelRatio, height * pixelRatio);
Hilfreichster Kommentar
Es sieht so aus, als würde EffectComposer
pixelRatio
nicht verarbeiten, das inWebGLRenderer
wenn WebGLRenderTarget erstelltIch schlage vor, den nächsten Workaround zu verwenden:
effectFXAA
:composer.setSize
mit vormultipliziertemwidth
undheight
während der Initialisierung und Größenänderung des Fensters auf: