Pixi.js: рдкрд┐рдХреНрд╕реА рдЬреЗрдПрд╕ рд░реЗрдВрдбрд░рд░ рдбреНрд░реЙрдЗрдВрдЧрдмрдлрд╝рд░ рдЖрдИрдУрдПрд╕ рдкрд░ рдЬрд╛рд░реА рдХрд░рддрд╛ рд╣реИ

рдХреЛ рдирд┐рд░реНрдорд┐рдд 16 рдЬреВрди 2017  ┬╖  10рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: pixijs/pixi.js

рдирдорд╕реНрддреЗ!
рдкрд┐рдХреНрд╕реА рдХреЛрдб рдЬреЛ рдбреЗрд╕реНрдХрдЯреЙрдк рдкрд░ рдЕрдЪреНрдЫреА рддрд░рд╣ рдЪрд▓рддрд╛ рд╣реИ, рдореЛрдмрд╛рдЗрд▓ рдкрд░ рдЕрдЬреАрдм рд╡реНрдпрд╡рд╣рд╛рд░ рдХрд░рддрд╛ рд╣реИред
рдореИрдВ Pixie.js рдХреЗ рд▓рд┐рдП рдПрдХ noob рд╣реВрдВ рдЗрд╕рд▓рд┐рдП рдореИрдВ рдпрд╣рд╛рдВ рдмрд╣реБрдд рдЕрдзрд┐рдХ рд╕рдВрднрд╛рд╡рдирд╛ рдХреЗ рд╕рд╛рде рдХреБрдЫ рдЧрд▓рдд рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВред

рдЬрдм рдореИрдВ рдореЛрдмрд╛рдЗрд▓ рдкрд░ рдЕрдкрдиреЗ рдбреНрд░рд╛рдЗрдВрдЧ рдХреЛрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВ, рддреЛ рдРрд╕рд╛ рдкреНрд░рддреАрдд рд╣реЛрддрд╛ рд╣реИ рдХрд┐ рдХреИрдирд╡рд╛рд╕ рдЕрдЬреАрдм рддрд░рд╣ рд╕реЗ рддрд╛рдЬрд╝рд╛ рдХрд░рддрд╛ рд╣реИред
рдореИрдВ рдкреВрд░реЗ рд╕реНрдЯреНрд░реЛрдХ рдХреЛ рдХрдо рдирд╣реАрдВ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ, рд▓реЗрдХрд┐рди рдбреНрд░реЙрдЗрдВрдЧрдмрдлрд░ рдХреЛ рдмрдирд╛рдП рд░рдЦ рд░рд╣рд╛ рд╣реВрдВ рдФрд░ рд╕рд┐рд░реНрдл рдирдП рд╕реНрдкреНрд░рд╛рдЗрдЯ рдХреЛ рдЬреЛрдбрд╝ рд░рд╣рд╛ рд╣реВрдВред

рдЗрд╕рд╕реЗ рдХреЛрдИ рдлрд░реНрдХ рдирд╣реАрдВ рдкрдбрд╝рддрд╛ рдХрд┐ рдореИрдВ 'рд╡рд┐рд░рд╛рд╕рдд:' рдХреЛ рдЧрд▓рдд рдпрд╛ рд╕рд╣реА (рдиреАрдЪреЗ рдХреЗ рд░реВрдк рдореЗрдВ) рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рддрд╛ рд╣реВрдВ - рдпрд╣ рдореБрдЭреЗ рд╡рд╣реА рдкрд░рд┐рдгрд╛рдо рджреЗрдЧрд╛ред

рдирд┐рдЧрд╛рд╣ рдбрд╛рд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж!

pixierenderer


initializePixieCanvas() {
    console.log("init canvas")
    const cArea = this.canvasContainer;
    const width  = 1000;
    const height = 1000;
    this.stage = new PIXI.Container();
    this.renderer = new PIXI.WebGLRenderer(
      width,
      height,
      {
          antialias: false,
          transparent: true,
          resolution: 2,
          clearBeforeRender: false,
          preserveDrawingBuffer: true,
          premultipliedAlpha: false,
          forceFXAA: true,
          legacy: true
      }
    );

    cArea.appendChild(this.renderer.view);

    this.renderer.view.style.position = "absolute";
    this.renderer.view.style.top = "0";
    this.renderer.view.style.left = "0";
    this.renderer.view.style.pointerEvents = "none";
    this.renderer.view.style.zIndex = "99";

    const cnvs = this.renderer.view;
    const scaleForHighResDisplay = true;
    if (scaleForHighResDisplay) {
        cnvs.width = width * 2;
        cnvs.height = height * 2;
        cnvs.style.width = width + 'px';
        cnvs.style.height = height + 'px';
    }

    this.pointer = new PIXI.Sprite(PIXI.Texture.fromCanvas(this.brushElement));
    this.pointer.texture.destroy();
    this.pointer.texture = PIXI.Texture.fromCanvas(this.brushElement);
    this.pointer.anchor.x = 0.5;
    this.pointer.anchor.y = 0.5;

    this.renderer.clear();

    this.stage.addChild(this.pointer);
}
Stale ЁЯТ╛ v4.x (Legacy) ЁЯдФ Question

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

рддреЛ рдЕрдЪреНрдЫреА рдЦрдмрд░ рдпрд╣ рд╣реИ рдХрд┐ рдПрдВрдЯреАрд▓рд┐рдпрд╛рд╕рд┐рдВрдЧ рдЪрд╛рд▓реВ рдХрд░рдиреЗ рд╕реЗ рдпрд╣ рд╡рд┐рд░реВрдкрдг рд╕рд╛рдХреНрд╖реНрдп рдареАрдХ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред рд▓реЗрдХрд┐рди рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдПрдВрдЯреАрдЕрд▓рд┐рдпрд╛рд╕рд┐рдВрдЧ рдЪрд╛рд▓реВ рдХрд░рдиреЗ рд╕реЗ рдкреНрд░рджрд░реНрд╢рди рдкрд░ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдкреНрд░рднрд╛рд╡ рдкрдбрд╝рддрд╛ рд╣реИред рдЗрд╕ рдмрдЧ рдХреЛ рджрд░рдХрд┐рдирд╛рд░ / рдареАрдХ рдХрд░рдиреЗ рдореЗрдВ рдХреЛрдИ рдорджрдж рдмреЗрд╣рдж рд╕рд░рд╛рд╣рдиреАрдп рд╣реИред рдзрдиреНрдпрд╡рд╛рдж!

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

рдЗрд╕ рдЙрдиреНрдирдд рд╕рд╛рдорд╛рди рдХреЗ рд▓рд┐рдП рдЖрдкрдХреЛ рдореВрд▓ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд▓рд┐рдЦрдирд╛ рдЪрд╛рд╣рд┐рдПред

рд╡реЗрдм рдРрдк рдЖрд╢реНрдЪрд░реНрдпрдЬрдирдХ рд░реВрдк рд╕реЗ рддреЗрдЬ рд╣реИ рдФрд░ рдпрд╣ рдЗрддрдирд╛ рдХрд░реАрдм рд▓рдЧрддрд╛ рд╣реИ - рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛ рдбреНрд░рд╛рдЗрдВрдЧрдмрдлрд╝рд░ рдмреЗрд╢рдХ рдкреБрд░рд╛рдиреЗ рдбреЗрдЯрд╛ рдХреЛ рдлрд┐рд░ рд╕реЗ рдмрдирд╛рдирд╛ рдкрд╕рдВрдж рдХрд░рддрд╛ рд╣реИ ...

рддреЛ рдЕрдЪреНрдЫреА рдЦрдмрд░ рдпрд╣ рд╣реИ рдХрд┐ рдПрдВрдЯреАрд▓рд┐рдпрд╛рд╕рд┐рдВрдЧ рдЪрд╛рд▓реВ рдХрд░рдиреЗ рд╕реЗ рдпрд╣ рд╡рд┐рд░реВрдкрдг рд╕рд╛рдХреНрд╖реНрдп рдареАрдХ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред рд▓реЗрдХрд┐рди рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдПрдВрдЯреАрдЕрд▓рд┐рдпрд╛рд╕рд┐рдВрдЧ рдЪрд╛рд▓реВ рдХрд░рдиреЗ рд╕реЗ рдкреНрд░рджрд░реНрд╢рди рдкрд░ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдкреНрд░рднрд╛рд╡ рдкрдбрд╝рддрд╛ рд╣реИред рдЗрд╕ рдмрдЧ рдХреЛ рджрд░рдХрд┐рдирд╛рд░ / рдареАрдХ рдХрд░рдиреЗ рдореЗрдВ рдХреЛрдИ рдорджрдж рдмреЗрд╣рдж рд╕рд░рд╛рд╣рдиреАрдп рд╣реИред рдзрдиреНрдпрд╡рд╛рдж!

рдирдорд╕реНрдХрд╛рд░! рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдПрдХ рд╕рдЯреАрдХ рдореБрджреНрджрд╛ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рдХреНрдпрд╛ рдЖрдкрдиреЗ рд╢реЗрдбреНрд╕ рдХреА рдкрд░рд┐рд╢реБрджреНрдзрддрд╛ рдХреЛ рд╣рд╛рдИрдк рдкрд░ рд╕реЗрдЯ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА рд╣реИ?

рдореИрдВ рдкреБрд╖реНрдЯрд┐ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ рдХрд┐ рдпрд╣ рдПрдВрдЯреАрдПрд▓рд┐рдпрд╛рд╕рд┐рдВрдЧ рд╕рдХреНрд╖рдо рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред

@GoodBoyDigital : "рд╣рд╛рдИрдкреА" рд╕реЗрдЯрд┐рдВрдЧ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА, рдЬрд┐рд╕рдХрд╛ рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ рдЕрд╕рд░ рдирд╣реАрдВ рд╣реБрдЖ

рдХрд┐рд╕реА рднреА рдЕрдиреНрдп рд╡рд┐рдЪрд╛рд░ рдпрд╣ рдХреИрд╕реЗ antialiasing рдХреЗ рдкреНрд░рджрд░реНрд╢рди рд╣рд┐рдЯ рдХреЗ рдмрд┐рдирд╛ рддрдп рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ?

@ рдлрд▓реЛрджреА

рдЖрдк рдкрд╛рд░рджрд░реНрд╢рд┐рддрд╛ рдмрджрд▓рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЕрдЧрд░ рдЖрдкрдХреЛ рдЙрд╕ рдкреГрд╖реНрдарднреВрдорд┐ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред

{ transparent: 'notMultiplied'}

рдпрд╛

{ transparent: false}

рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ рд╣рдо рджреЛрдиреЛрдВ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдПрдХ рдкрд╛рд░рджрд░реНрд╢реА рдкреЗрдВрдЯ рдкрд░рдд рд╣реИ ...
рд╣рдореЗрдВ рдпрд╣ рджреЗрдЦрдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ рдХреНрдпрд╛ рд╣рдо рдбрд┐рдмрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдРрд╕рд╛ рдХреНрдпреЛрдВ рдирд╣реАрдВ рд╣реЛ рд░рд╣рд╛ рд╣реИ рдЬреЛ рдПрдВрдЯреАрдПрд▓рд┐рдпрд╛рд╕рд┐рдВрдЧ рд╕рдХреНрд╖рдо рд╣реИ ...

рдХреНрдпрд╛ рдЖрдк рдореЛрдмрд╛рдЗрд▓ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдбреАрдмрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ?

рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдмрд╛рд╕реА рдХреЗ рд░реВрдк рдореЗрдВ рдЪрд┐рд╣реНрдирд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдЗрд╕рдореЗрдВ рд╣рд╛рд▓ рдХреА рдЧрддрд┐рд╡рд┐рдзрд┐ рдирд╣реАрдВ рдереАред рдЖрдЧреЗ рдХреЛрдИ рдЧрддрд┐рд╡рд┐рдзрд┐ рдирд╣реАрдВ рд╣реЛрдиреЗ рдкрд░ рдЗрд╕реЗ рдмрдВрдж рдХрд░ рджрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рдЖрдкрдХреЗ рдпреЛрдЧрджрд╛рдиреЛрдВ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред

рдЗрд╕ рдереНрд░реЗрдб рдХреЛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдмрдВрдж рдХрд░ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдЗрд╕реЗ рдмрдВрдж рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж рд╣рд╛рд▓ рд╣реА рдореЗрдВ рдХреЛрдИ рдЧрддрд┐рд╡рд┐рдзрд┐ рдирд╣реАрдВ рд╣реБрдИ рд╣реИред рдХреГрдкрдпрд╛ рд╕рдВрдмрдВрдзрд┐рдд рдмрдЧ рдХреЗ рд▓рд┐рдП рдПрдХ рдирдпрд╛ рдореБрджреНрджрд╛ рдЦреЛрд▓реЗрдВред

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