Three.js: لا يعمل OutlinePass مع نسبة البكسل 2

تم إنشاؤها على ٢١ أبريل ٢٠١٧  ·  3تعليقات  ·  مصدر: mrdoob/three.js

في مثال تمرير المخطط التفصيلي ، يتم تعيين نسبة البكسل إلى 1.
https://github.com/mrdoob/three.js/blob/master/examples/webgl_postprocessing_outline.html#L161

المشهد غير واضح وإذا علقنا على الخط واستخدمنا نسبة البكسل بالجهاز ، يتم ضغط المشهد إلى الزاوية السفلية اليسرى كالقطة الشاشة التالية:
image

إصدار Three.js
  • [] ديف
  • [x] ص 84
  • [] ...
المستعرض
  • [] كل منهم
  • [x] كروم
  • [ ] ثعلب النار
  • [ ] متصفح الانترنت
نظام التشغيل
  • [x] كل منهم
  • [ ] شبابيك
  • [] macOS
  • [] لينكس
  • [ ] ذكري المظهر
  • [] iOS
متطلبات الأجهزة (بطاقة الرسومات ، جهاز VR ، ...)
Bug

التعليق الأكثر فائدة

يبدو أن EffectComposer لا يتعامل مع pixelRatio الذي يتم تعيينه في WebGLRenderer عند إنشاء WebGLRenderTarget .

أقترح استخدام الحل التالي:

  1. إنشاء معالج مخصص لحجم المجموعة لـ effectFXAA :
effectFXAA.setSize = function(width, height) {
    this.uniforms.resolution.value.set(1 / width, 1 / height);
};
  1. استدعاء composer.setSize مع مضاعفة width و height أثناء التهيئة وتغيير حجم النافذة:
var size = renderer.getSize();
var pixelRatio = renderer.getPixelRatio();
composer.setSize(width * pixelRatio, height * pixelRatio);

ال 3 كومينتر

/ ping @ spidersharma03

سوف ألقي نظرة

يبدو أن EffectComposer لا يتعامل مع pixelRatio الذي يتم تعيينه في WebGLRenderer عند إنشاء WebGLRenderTarget .

أقترح استخدام الحل التالي:

  1. إنشاء معالج مخصص لحجم المجموعة لـ effectFXAA :
effectFXAA.setSize = function(width, height) {
    this.uniforms.resolution.value.set(1 / width, 1 / height);
};
  1. استدعاء composer.setSize مع مضاعفة width و height أثناء التهيئة وتغيير حجم النافذة:
var size = renderer.getSize();
var pixelRatio = renderer.getPixelRatio();
composer.setSize(width * pixelRatio, height * pixelRatio);
هل كانت هذه الصفحة مفيدة؟
0 / 5 - 0 التقييمات