рдирдорд╕реНрддреЗ!
рдкрд┐рдХреНрд╕реА рдХреЛрдб рдЬреЛ рдбреЗрд╕реНрдХрдЯреЙрдк рдкрд░ рдЕрдЪреНрдЫреА рддрд░рд╣ рдЪрд▓рддрд╛ рд╣реИ, рдореЛрдмрд╛рдЗрд▓ рдкрд░ рдЕрдЬреАрдм рд╡реНрдпрд╡рд╣рд╛рд░ рдХрд░рддрд╛ рд╣реИред
рдореИрдВ Pixie.js рдХреЗ рд▓рд┐рдП рдПрдХ noob рд╣реВрдВ рдЗрд╕рд▓рд┐рдП рдореИрдВ рдпрд╣рд╛рдВ рдмрд╣реБрдд рдЕрдзрд┐рдХ рд╕рдВрднрд╛рд╡рдирд╛ рдХреЗ рд╕рд╛рде рдХреБрдЫ рдЧрд▓рдд рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВред
рдЬрдм рдореИрдВ рдореЛрдмрд╛рдЗрд▓ рдкрд░ рдЕрдкрдиреЗ рдбреНрд░рд╛рдЗрдВрдЧ рдХреЛрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВ, рддреЛ рдРрд╕рд╛ рдкреНрд░рддреАрдд рд╣реЛрддрд╛ рд╣реИ рдХрд┐ рдХреИрдирд╡рд╛рд╕ рдЕрдЬреАрдм рддрд░рд╣ рд╕реЗ рддрд╛рдЬрд╝рд╛ рдХрд░рддрд╛ рд╣реИред
рдореИрдВ рдкреВрд░реЗ рд╕реНрдЯреНрд░реЛрдХ рдХреЛ рдХрдо рдирд╣реАрдВ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ, рд▓реЗрдХрд┐рди рдбреНрд░реЙрдЗрдВрдЧрдмрдлрд░ рдХреЛ рдмрдирд╛рдП рд░рдЦ рд░рд╣рд╛ рд╣реВрдВ рдФрд░ рд╕рд┐рд░реНрдл рдирдП рд╕реНрдкреНрд░рд╛рдЗрдЯ рдХреЛ рдЬреЛрдбрд╝ рд░рд╣рд╛ рд╣реВрдВред
рдЗрд╕рд╕реЗ рдХреЛрдИ рдлрд░реНрдХ рдирд╣реАрдВ рдкрдбрд╝рддрд╛ рдХрд┐ рдореИрдВ 'рд╡рд┐рд░рд╛рд╕рдд:' рдХреЛ рдЧрд▓рдд рдпрд╛ рд╕рд╣реА (рдиреАрдЪреЗ рдХреЗ рд░реВрдк рдореЗрдВ) рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рддрд╛ рд╣реВрдВ - рдпрд╣ рдореБрдЭреЗ рд╡рд╣реА рдкрд░рд┐рдгрд╛рдо рджреЗрдЧрд╛ред
рдирд┐рдЧрд╛рд╣ рдбрд╛рд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж!
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);
}
рдЗрд╕ рдЙрдиреНрдирдд рд╕рд╛рдорд╛рди рдХреЗ рд▓рд┐рдП рдЖрдкрдХреЛ рдореВрд▓ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд▓рд┐рдЦрдирд╛ рдЪрд╛рд╣рд┐рдПред
рд╡реЗрдм рдРрдк рдЖрд╢реНрдЪрд░реНрдпрдЬрдирдХ рд░реВрдк рд╕реЗ рддреЗрдЬ рд╣реИ рдФрд░ рдпрд╣ рдЗрддрдирд╛ рдХрд░реАрдм рд▓рдЧрддрд╛ рд╣реИ - рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛ рдбреНрд░рд╛рдЗрдВрдЧрдмрдлрд╝рд░ рдмреЗрд╢рдХ рдкреБрд░рд╛рдиреЗ рдбреЗрдЯрд╛ рдХреЛ рдлрд┐рд░ рд╕реЗ рдмрдирд╛рдирд╛ рдкрд╕рдВрдж рдХрд░рддрд╛ рд╣реИ ...
рддреЛ рдЕрдЪреНрдЫреА рдЦрдмрд░ рдпрд╣ рд╣реИ рдХрд┐ рдПрдВрдЯреАрд▓рд┐рдпрд╛рд╕рд┐рдВрдЧ рдЪрд╛рд▓реВ рдХрд░рдиреЗ рд╕реЗ рдпрд╣ рд╡рд┐рд░реВрдкрдг рд╕рд╛рдХреНрд╖реНрдп рдареАрдХ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред рд▓реЗрдХрд┐рди рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдПрдВрдЯреАрдЕрд▓рд┐рдпрд╛рд╕рд┐рдВрдЧ рдЪрд╛рд▓реВ рдХрд░рдиреЗ рд╕реЗ рдкреНрд░рджрд░реНрд╢рди рдкрд░ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдкреНрд░рднрд╛рд╡ рдкрдбрд╝рддрд╛ рд╣реИред рдЗрд╕ рдмрдЧ рдХреЛ рджрд░рдХрд┐рдирд╛рд░ / рдареАрдХ рдХрд░рдиреЗ рдореЗрдВ рдХреЛрдИ рдорджрдж рдмреЗрд╣рдж рд╕рд░рд╛рд╣рдиреАрдп рд╣реИред рдзрдиреНрдпрд╡рд╛рдж!
рдирдорд╕реНрдХрд╛рд░! рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдПрдХ рд╕рдЯреАрдХ рдореБрджреНрджрд╛ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рдХреНрдпрд╛ рдЖрдкрдиреЗ рд╢реЗрдбреНрд╕ рдХреА рдкрд░рд┐рд╢реБрджреНрдзрддрд╛ рдХреЛ рд╣рд╛рдИрдк рдкрд░ рд╕реЗрдЯ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА рд╣реИ?
рдореИрдВ рдкреБрд╖реНрдЯрд┐ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ рдХрд┐ рдпрд╣ рдПрдВрдЯреАрдПрд▓рд┐рдпрд╛рд╕рд┐рдВрдЧ рд╕рдХреНрд╖рдо рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред
@GoodBoyDigital : "рд╣рд╛рдИрдкреА" рд╕реЗрдЯрд┐рдВрдЧ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА, рдЬрд┐рд╕рдХрд╛ рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ рдЕрд╕рд░ рдирд╣реАрдВ рд╣реБрдЖ
рдХрд┐рд╕реА рднреА рдЕрдиреНрдп рд╡рд┐рдЪрд╛рд░ рдпрд╣ рдХреИрд╕реЗ antialiasing рдХреЗ рдкреНрд░рджрд░реНрд╢рди рд╣рд┐рдЯ рдХреЗ рдмрд┐рдирд╛ рддрдп рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ?
@ рдлрд▓реЛрджреА
рдЖрдк рдкрд╛рд░рджрд░реНрд╢рд┐рддрд╛ рдмрджрд▓рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЕрдЧрд░ рдЖрдкрдХреЛ рдЙрд╕ рдкреГрд╖реНрдарднреВрдорд┐ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред
{ transparent: 'notMultiplied'}
рдпрд╛
{ transparent: false}
рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ рд╣рдо рджреЛрдиреЛрдВ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдПрдХ рдкрд╛рд░рджрд░реНрд╢реА рдкреЗрдВрдЯ рдкрд░рдд рд╣реИ ...
рд╣рдореЗрдВ рдпрд╣ рджреЗрдЦрдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ рдХреНрдпрд╛ рд╣рдо рдбрд┐рдмрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдРрд╕рд╛ рдХреНрдпреЛрдВ рдирд╣реАрдВ рд╣реЛ рд░рд╣рд╛ рд╣реИ рдЬреЛ рдПрдВрдЯреАрдПрд▓рд┐рдпрд╛рд╕рд┐рдВрдЧ рд╕рдХреНрд╖рдо рд╣реИ ...
рдХреНрдпрд╛ рдЖрдк рдореЛрдмрд╛рдЗрд▓ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдбреАрдмрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ?
рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдмрд╛рд╕реА рдХреЗ рд░реВрдк рдореЗрдВ рдЪрд┐рд╣реНрдирд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдЗрд╕рдореЗрдВ рд╣рд╛рд▓ рдХреА рдЧрддрд┐рд╡рд┐рдзрд┐ рдирд╣реАрдВ рдереАред рдЖрдЧреЗ рдХреЛрдИ рдЧрддрд┐рд╡рд┐рдзрд┐ рдирд╣реАрдВ рд╣реЛрдиреЗ рдкрд░ рдЗрд╕реЗ рдмрдВрдж рдХрд░ рджрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рдЖрдкрдХреЗ рдпреЛрдЧрджрд╛рдиреЛрдВ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред
рдЗрд╕ рдереНрд░реЗрдб рдХреЛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдмрдВрдж рдХрд░ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдЗрд╕реЗ рдмрдВрдж рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж рд╣рд╛рд▓ рд╣реА рдореЗрдВ рдХреЛрдИ рдЧрддрд┐рд╡рд┐рдзрд┐ рдирд╣реАрдВ рд╣реБрдИ рд╣реИред рдХреГрдкрдпрд╛ рд╕рдВрдмрдВрдзрд┐рдд рдмрдЧ рдХреЗ рд▓рд┐рдП рдПрдХ рдирдпрд╛ рдореБрджреНрджрд╛ рдЦреЛрд▓реЗрдВред
рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА
рддреЛ рдЕрдЪреНрдЫреА рдЦрдмрд░ рдпрд╣ рд╣реИ рдХрд┐ рдПрдВрдЯреАрд▓рд┐рдпрд╛рд╕рд┐рдВрдЧ рдЪрд╛рд▓реВ рдХрд░рдиреЗ рд╕реЗ рдпрд╣ рд╡рд┐рд░реВрдкрдг рд╕рд╛рдХреНрд╖реНрдп рдареАрдХ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред рд▓реЗрдХрд┐рди рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдПрдВрдЯреАрдЕрд▓рд┐рдпрд╛рд╕рд┐рдВрдЧ рдЪрд╛рд▓реВ рдХрд░рдиреЗ рд╕реЗ рдкреНрд░рджрд░реНрд╢рди рдкрд░ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдкреНрд░рднрд╛рд╡ рдкрдбрд╝рддрд╛ рд╣реИред рдЗрд╕ рдмрдЧ рдХреЛ рджрд░рдХрд┐рдирд╛рд░ / рдареАрдХ рдХрд░рдиреЗ рдореЗрдВ рдХреЛрдИ рдорджрдж рдмреЗрд╣рдж рд╕рд░рд╛рд╣рдиреАрдп рд╣реИред рдзрдиреНрдпрд╡рд╛рдж!