Three.js: OutlinePass no funciona con la proporción de píxeles 2

Creado en 21 abr. 2017  ·  3Comentarios  ·  Fuente: mrdoob/three.js

En el ejemplo de pase de esquema, la proporción de píxeles se establece en 1.
https://github.com/mrdoob/three.js/blob/master/examples/webgl_postprocessing_outline.html#L161

La escena es borrosa y si comentamos la línea y usamos la proporción de píxeles del dispositivo, la escena se comprime hacia la esquina inferior izquierda como la siguiente captura de pantalla:
image

Versión Three.js
  • [] Desarrollo
  • [x] r84
  • [] ...
Navegador
  • [ ] Todos ellos
  • [x] Chrome
  • [] Firefox
  • [ ] Explorador de Internet
SO
  • [x] Todos ellos
  • [] Windows
  • [ ] Mac OS
  • [] Linux
  • [] Android
  • [] iOS
Requisitos de hardware (tarjeta gráfica, dispositivo VR, ...)
Bug

Comentario más útil

Parece que EffectComposer no maneja pixelRatio que se establece en WebGLRenderer cuando crea WebGLRenderTarget .

Sugiero utilizar la siguiente solución alternativa:

  1. Cree un controlador de tamaño de conjunto personalizado por effectFXAA :
effectFXAA.setSize = function(width, height) {
    this.uniforms.resolution.value.set(1 / width, 1 / height);
};
  1. Llame a composer.setSize con width y height premultiplicados durante la inicialización y el cambio de tamaño de la ventana:
var size = renderer.getSize();
var pixelRatio = renderer.getPixelRatio();
composer.setSize(width * pixelRatio, height * pixelRatio);

Todos 3 comentarios

/ ping @ spidersharma03

le echaré un vistazo

Parece que EffectComposer no maneja pixelRatio que se establece en WebGLRenderer cuando crea WebGLRenderTarget .

Sugiero utilizar la siguiente solución alternativa:

  1. Cree un controlador de tamaño de conjunto personalizado por effectFXAA :
effectFXAA.setSize = function(width, height) {
    this.uniforms.resolution.value.set(1 / width, 1 / height);
};
  1. Llame a composer.setSize con width y height premultiplicados durante la inicialización y el cambio de tamaño de la ventana:
var size = renderer.getSize();
var pixelRatio = renderer.getPixelRatio();
composer.setSize(width * pixelRatio, height * pixelRatio);
¿Fue útil esta página
0 / 5 - 0 calificaciones

Temas relacionados

danieljack picture danieljack  ·  3Comentarios

yqrashawn picture yqrashawn  ·  3Comentarios

filharvey picture filharvey  ·  3Comentarios

Horray picture Horray  ·  3Comentarios

stonexjr picture stonexjr  ·  3Comentarios