Three.js: SMAAPass: рдЕрджреНрдпрддрди рдХреЗ рд▓рд┐рдП рдЪрд┐рд╣реНрдирд┐рдд рдмрдирд╛рд╡рдЯ рд▓реЗрдХрд┐рди рдЫрд╡рд┐ рдЕрдзреВрд░реА рд╣реИ

рдХреЛ рдирд┐рд░реНрдорд┐рдд 29 рдЕрдХреНрддреВре░ 2018  ┬╖  4рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: mrdoob/three.js

рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╡рд┐рд╡рд░рдг

SMAAPass рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╕рдордп, рдПрдХ рдЪреЗрддрд╛рд╡рдиреА рд▓реЙрдЧ рдХреА рдЬрд╛рддреА рд╣реИ:
THREE.WebGLRenderer: Texture marked for update but image is incomplete
рдпрд╣ рдЪреЗрддрд╛рд╡рдиреА рдЗрд╕рд▓рд┐рдП рд╣реЛрддреА рд╣реИ рдХреНрдпреЛрдВрдХрд┐ Image.complete рдЧрд▓рдд рд╣реИ, Image.complete рд╕реЗрдЯ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдЕрддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рд╣реИред

рдпрджрд┐ рд╕рдВрднрд╡ рд╣реЛ рддреЛ рдПрдХ рд▓рд╛рдЗрд╡ рдЙрджрд╛рд╣рд░рдг рднреА рд╢рд╛рдорд┐рд▓ рдХрд░реЗрдВред рдЖрдк рдЗрди рдЯреЗрдореНрдкрд▓реЗрдЯреНрд╕ рд╕реЗ рд╢реБрд░реВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:

рддреАрди.рдЬреЗрдПрд╕ рд╕рдВрд╕реНрдХрд░рдг
  • [] рджреЗрд╡
  • [x] r97
  • [] ...
рдмреНрд░рд╛рдЙрдЬрд╝рд░
  • [x] рдЙрди рд╕рднреА рдХреЛ
  • [] рдХреНрд░реЛрдо
  • [] рдлрд╝рд╛рдпрд░рдлрд╝реЙрдХреНрд╕
  • [ ] рдЗрдВрдЯрд░рдиреЗрдЯ рдПрдХреНрд╕реНрдкреНрд▓реЛрд░рд░
рдУрдПрд╕
  • [x] рдЙрди рд╕рднреА рдХреЛ
  • [ ] рдЦрд┐рдбрд╝рдХрд┐рдпрд╛рдБ
  • [ ] рдореИрдХ рдУ рдПрд╕
  • [] рд▓рд┐рдирдХреНрд╕
  • [ ] рдПрдВрдбреНрд░реЙрдпрдб
  • [] рдЖрдИрдУрдПрд╕
рд╣рд╛рд░реНрдбрд╡реЗрдпрд░ рдЖрд╡рд╢реНрдпрдХрддрд╛рдПрдБ (рдЧреНрд░рд╛рдлрд┐рдХреНрд╕ рдХрд╛рд░реНрдб, рд╡реАрдЖрд░ рдбрд┐рд╡рд╛рдЗрд╕, ...)

рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА

рд╡рд╣ рдореЗрд░реЗ рд▓рд┐рдП рдПрдХ рд╣реИрдХ рдХреА рддрд░рд╣ рд▓рдЧ рд░рд╣рд╛ рд╣реИред рдХреГрдкрдпрд╛ рдЕрдзрд┐рдХ рдкрд╛рд░рдВрдкрд░рд┐рдХ рдкреИрдЯрд░реНрди рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВ:

var image = new Image();
image.src = dataURL;

var texture = new THREE.Texture( image );

image.onload = function () {
    texture.needsUpdate = true;
};

рд╕рднреА 4 рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

рдЖрдк рд╕рд╣реА рд╣реЗред рдПрдХ рд╕рд╛рдзрд╛рд░рдг рдлрд┐рдХреНрд╕ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХреЛрдб рдЕрдиреБрднрд╛рдЧ рдХреА рддрд░рд╣ рд▓рдЧ рд╕рдХрддрд╛ рд╣реИред рдЖрджрд░реНрд╢ рд░реВрдк рд╕реЗ рдпрд╣ SMAAPass рдореЗрдВ рдЗрд╕ рдкрдВрдХреНрддрд┐ рдХреЗ рдмрд╛рдж рд╣реЛрдЧрд╛:

var self = this;

setTimeout( function () {

        // assigning data to HTMLImageElement.src is asynchronous (see #15162)
        // using setTimeout() avoids the warning "Texture marked for update but image is incomplete"

    self.searchTexture.needsUpdate = true;
    self.areaTexture.needsUpdate = true;

}, 0 );

рдХреНрдпрд╛ рдЖрдк рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХреЗ рд╕рд╛рде рдПрдХ рдкреАрдЖрд░ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ?

рд╡рд╣ рдореЗрд░реЗ рд▓рд┐рдП рдПрдХ рд╣реИрдХ рдХреА рддрд░рд╣ рд▓рдЧ рд░рд╣рд╛ рд╣реИред рдХреГрдкрдпрд╛ рдЕрдзрд┐рдХ рдкрд╛рд░рдВрдкрд░рд┐рдХ рдкреИрдЯрд░реНрди рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВ:

var image = new Image();
image.src = dataURL;

var texture = new THREE.Texture( image );

image.onload = function () {
    texture.needsUpdate = true;
};

рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдпрд╣ рдЕрдЪреНрдЫрд╛ рд╣реИ ЁЯСН

рдореИрдВ рдЗрд╕реЗ рдХреЙрд▓рдмреИрдХ рдкрд░ рд▓реЛрдб рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрджрд▓ рджреВрдВрдЧрд╛ред

рдХреНрдпрд╛ рдпрд╣ рдкреГрд╖реНрда рдЙрдкрдпреЛрдЧреА рдерд╛?
0 / 5 - 0 рд░реЗрдЯрд┐рдВрдЧреНрд╕