μλ
!
λ°μ€ν¬ν±μμ μ μ€νλλ Pixie μ½λλ λͺ¨λ°μΌμμ μ΄μνκ² μλνλ κ² κ°μ΅λλ€.
λλ pixie.jsμ λν λ©μ²ν μ¬λμ΄λ―λ‘ μ¬κΈ°μμ λκ° μλͺ»νκ³ μμ κ°λ₯μ±μ΄ λ§€μ° λμ΅λλ€.
λͺ¨λ°μΌμμ 그리기 μ½λλ₯Ό μ¬μ©νλ©΄ μΊλ²μ€κ° μ΄μνκ² μλ‘ κ³ μΉ¨λλ κ² κ°μ΅λλ€.
μ 체 μ€νΈλ‘ν¬λ₯Ό λ€μ 그리λ κ²μ΄ μλλΌ DrawingBufferλ₯Ό μ μ§νκ³ μ μ€νλΌμ΄νΈλ₯Ό μΆκ°ν©λλ€.
'legacy :'λ₯Ό false λλ true (μλ μ°Έμ‘°)λ‘ μ€μ νλλΌλ λμΌν κ²°κ³Όλ₯Ό μ»μ μ μμ΅λλ€.
λ΄ μ£Όμ μ κ°μ¬ν©λλ€!
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);
}
μ΄ κ³ κΈ κΈ°λ₯μ λν λ€μ΄ν°λΈ μ±μ μμ±ν΄μΌν©λλ€.
μΉ μ±μ λλλλ‘ λΉ λ₯΄λ©° λ무 κ°κΉμ 보μ λλ€. λ¬Όλ‘ λλ‘μ λ²νΌκ° μ€λλ λ°μ΄ν°λ₯Ό μλ₯μν€λ κ²μ μ’μνλ€λ μ μ μ μΈνλ©΄ ...
μ’μ μμμ μν° μ¨λ¦¬μ΄μ±μ μΌλ©΄μ΄ μν°ν©νΈκ° μμ λλ€λ κ²μ λλ€. κ·Έλ¬λ λΆλͺ ν μν° μ¨λ¦¬μ΄μ±μ μΌλ κ²μ μ¬μ ν ββμ±λ₯μ ν° ν격μμ€λλ€. μ΄ λ²κ·Έλ₯Ό μ°ν / μμ νλ λ° λμμ μ£Όμλ©΄ λλ¨ν κ°μ¬νκ² μ΅λλ€. κ³ λ§μ!
μλ νμΈμ! μ΄κ²μ μ λ°λ λ¬Έμ μΈ κ² κ°μ΅λλ€. μμ΄λμ μ λ°λλ₯Ό highPλ‘ μ€μ ν΄ λ³΄μ ¨μ΅λκΉ?
μν° μ¨λ¦¬μ΄μ±μ΄ νμ±ν λ μνμμ μλνλμ§ νμΈν μ μμ΅λλ€.
@GoodBoyDigital : μμ½κ²λ ν¨κ³Όκ° μμλ "highP"μ€μ μλ
μν° μ¨λ¦¬μ΄μ±μ μ±λ₯ μ νμμ΄μ΄ λ¬Έμ λ₯Ό μ΄λ»κ² ν΄κ²°ν μ μλμ§ λ€λ₯Έ μκ°μ΄ μμΌμλκΉ?
λΏ‘λΏ‘
λ°°κ²½μ΄ νμνμ§ μμΌλ©΄ ν¬λͺ λλ₯Ό λ³κ²½ν μ μμ΅λλ€.
{ transparent: 'notMultiplied'}
λλ
{ transparent: false}
μνκΉκ²λ ν¬λͺ
νμΈνΈ λ μ΄μ΄μ΄λ―λ‘ λ λ€ νμν©λλ€ ...
μν° μ¨λ¦¬μ΄μ±μ΄ νμ±ν λ μνμμ μ΄λ° μΌμ΄ λ°μνμ§ μλ μ΄μ λ₯Ό λλ²κΉ
ν μ μλμ§ νμΈν΄μΌν©λλ€.
λͺ¨λ°μΌ λΈλΌμ°μ λ₯Ό λλ²κΉ νμκ² μ΅λκΉ?
μ΄ λ¬Έμ λ μ΅κ·Ό νλμ΄ μμκΈ° λλ¬Έμ μλμΌλ‘ μ€λλ κ²μΌλ‘ νμλμμ΅λλ€. λ μ΄μ νλμ΄ λ°μνμ§ μμΌλ©΄ νμλ©λλ€. κ·νμ κΈ°μ¬μ κ°μ¬λ립λλ€.
μ΄ μ€λ λλ λ«ν ν μ΅κ·Ό νλμ΄ μμκΈ° λλ¬Έμ μλμΌλ‘ μ κ²Όμ΅λλ€. κ΄λ ¨ λ²κ·Έμ λν μ λ¬Έμ λ₯Όμ¬μμμ€.
κ°μ₯ μ μ©ν λκΈ
μ’μ μμμ μν° μ¨λ¦¬μ΄μ±μ μΌλ©΄μ΄ μν°ν©νΈκ° μμ λλ€λ κ²μ λλ€. κ·Έλ¬λ λΆλͺ ν μν° μ¨λ¦¬μ΄μ±μ μΌλ κ²μ μ¬μ ν ββμ±λ₯μ ν° ν격μμ€λλ€. μ΄ λ²κ·Έλ₯Ό μ°ν / μμ νλ λ° λμμ μ£Όμλ©΄ λλ¨ν κ°μ¬νκ² μ΅λλ€. κ³ λ§μ!