Pixi.js: рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдПрд╕рд╡реАрдЬреА рд╕рдорд░реНрдерди

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

рдкрд┐рдХреНрд╕реА рдХреЗ рд▓рд┐рдП рдПрдХ рдПрд╕рд╡реАрдЬреА рдХрд╛ рдЧреНрд░рд╛рдлрд┐рдХреНрд╕ рдкрджрд╛рдиреБрдХреНрд░рдо рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдмрдирд╛рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдирд╛ рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛ (рди рдХрд┐ рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдХреЗрд╡рд▓ рдПрдХ рдмрдирд╛рд╡рдЯ рд▓реЛрдб рдХрд░реЗрдВ)ред

@psyrendust ^ рдЕрд░реЗ, рдХреНрдпрд╛ рдЖрдк рдЙрд╕реЗ рдкреАрдЖрд░ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдЬрд┐рд╕реЗ рдЖрдкрдиреЗ рдкрд┐рдХреНрд╕реА рдореЗрдВ рдмрдирд╛рдпрд╛ рдерд╛? :рдбреА

Stale ЁЯЩП Feature Request

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

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рд╡рд╣реА рдХрд░рддрд╛ рд╣реИ рдЬреЛ рдЖрдк рд╡реЗрдмрдкреИрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред
https://github.com/blunt1337/pixi-svg-loader

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

рдЖрдк рдореЗрд░реЗ рджреНрд╡рд╛рд░рд╛ рдмрдирд╛рдИ рдЧрдИ рдЗрд╕ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЛ рджреЗрдЦрдирд╛ рдЪрд╛рд╣реЗрдВрдЧреЗ:
https://github.com/bigtimebuddy/pixi-svg
https://bigtimebuddy.github.io/pixi-svg/example/

Pixi рдореЗрдВ рдЖрд░реЗрдЦрдг рдХреА рд╕реАрдорд╛рдУрдВ рдХреЗ рдХрд╛рд░рдг, рд╕рднреА svg рд╕реБрд╡рд┐рдзрд╛рдПрдБ рд╕рдорд░реНрдерд┐рдд рдирд╣реАрдВ рд╣реИрдВред

@trusktr рдХреНрдпрд╛ рдЖрдк рдЙрдкрдпреЛрдЧ рдХрд╛ рдорд╛рдорд▓рд╛ рджреЗ рд╕рдХрддреЗ рд╣реИрдВ? рдХреНрдпрд╛ рдЖрдкрдХрд╛ рдорддрд▓рдм рдХрдВрдЯреЗрдирд░ рдХреЗ рд░реВрдк рдореЗрдВ рд╕рдореВрд╣ рдФрд░ рд╕реНрдкреНрд░рд╛рдЗрдЯреНрд╕ рдХреЗ рд░реВрдк рдореЗрдВ рдкреНрд░рд╛рдЗрдореЗрдЯрд┐рд╡ рдХреЗ рд╕реЗрдЯ рд╣реИрдВ?

рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдХреБрдЫ рдРрд╕рд╛ рд╣реИ рдЬрд┐рд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдореИрдВ рд╕реЛрдЪ рд░рд╣рд╛ рдерд╛ред рд╕реНрдкреНрд░рд╛рдЗрдЯреНрд╕ рдХрд╛ рдПрдХ рдкрджрд╛рдиреБрдХреНрд░рдо рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдмрдирд╛рд╡рдЯ рдПрдЯрд▓рд╕ рдмрдирд╛рдирд╛ рдФрд░ рдПрд╕рд╡реАрдЬреА рд╕реЗ рдЕрдиреБрд╡рд╛рдж рдФрд░ рдШреБрдорд╛рд╡ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╕рдВрднрд╡ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред

рдПрдХ рд╕рдорд╕реНрдпрд╛ рдЬреЛ рдореИрдВ рдЗрд╕ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХреЗ рд╕рд╛рде рджреЗрдЦрддрд╛ рд╣реВрдВ рд╡рд╣ рд╣реИ рдПрдВрдХрд░ (рдпрджрд┐ рд╣рдо рдХреБрдЫ рдЪреЗрддрди рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ)ред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдЗрдВрдХрд╕реНрдХреЗрдк рдПрдВрдХрд░ рдХреЛ рдХрд╕реНрдЯрдо рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреЗ рд░реВрдк рдореЗрдВ рдЬреЛрдбрд╝рддрд╛ рд╣реИ рд▓реЗрдХрд┐рди рд╡реЗ рдорд╛рдирдХ afaik рдореЗрдВ рдирд╣реАрдВ рд╣реИрдВред рдореЗрд░рд╛ рдХреНрдпрд╛ рдорддрд▓рдм рд╣реИ рдЗрд╕рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг:

2017-07-01 08_56_56-_new document 1 - inkscape

рддреАрди рдкрдереЛрдВ рдХреЗ рдЙрд╕ рд╕рдореВрд╣ рдХреЗ рдПрдВрдХрд░ (рдиреАрд▓реЗ рд░реЗрдХреНрдЯ рдХреЗ рдКрдкрд░ рдмрд╛рдИрдВ рдУрд░) рдХреЛ inkscape:transform-center-x рдФрд░ inkscape:transform-center-y рд░реВрдк рдореЗрдВ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред

    <g
       id="g4512"
       inkscape:transform-center-x="-65.892627"
       inkscape:transform-center-y="43.567609"
       transform="rotate(-5.9407468,27.740957,88.735118)">
      <path
         inkscape:connector-curvature="0"
         id="rect4485"
         d="m 24.502618,78.898505 h 50.619309 c 3.986749,0 7.196297,3.209548 7.196297,7.196296 v 70.274069 c 0,3.98675 -3.209548,7.1963 -7.196297,7.1963 H 24.502618 c -3.986748,0 -7.196296,-3.20955 -7.196296,-7.1963 V 86.094801 c 0,-3.986748 3.209548,-7.196296 7.196296,-7.196296 z"
         style="opacity:1;fill:#005e92;fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;paint-order:markers fill stroke" />
      <path
         inkscape:connector-curvature="0"
         id="rect4485-4"
         d="m 66.160572,123.8869 h 50.619318 c 3.98675,0 7.1963,3.20955 7.1963,7.1963 v 70.27406 c 0,3.98675 -3.20955,7.19631 -7.1963,7.19631 H 66.160572 c -3.986734,0 -7.196284,-3.20956 -7.196284,-7.19631 V 131.0832 c 0,-3.98675 3.20955,-7.1963 7.196284,-7.1963 z"
         style="opacity:1;fill:#920000;fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;paint-order:markers fill stroke" />
      <path
         inkscape:connector-curvature="0"
         id="rect4485-3"
         d="m 106.60403,73.994048 h 50.61931 c 3.98675,0 7.1963,3.209548 7.1963,7.196296 v 70.274066 c 0,3.98675 -3.20955,7.19631 -7.1963,7.19631 h -50.61931 c -3.98675,0 -7.196288,-3.20956 -7.196288,-7.19631 V 81.190344 c 0,-3.986748 3.209538,-7.196296 7.196288,-7.196296 z"
         style="opacity:1;fill:#009228;fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;paint-order:markers fill stroke" />
    </g>

рд╣рд╛рд▓рд╛рдВрдХрд┐ рдореИрдВ рдЖрдкрдХреЗ рдкреНрд░рдпрд╛рд╕ рдХреА рд╕рд░рд╛рд╣рдирд╛ рдХрд░рддрд╛ рд╣реВрдВ рдкрд┐рдХреНрд╕реА рдореЗрдВ рдПрд╕рд╡реАрдЬреА рдкреНрд░рд╛рдЗрдореЗрдЯрд┐рд╡ рдкреНрд░рд╕реНрддреБрдд рдХрд░рдирд╛ рдПрдХ рдЕрдЪреНрдЫрд╛ рд╡рд┐рдЪрд╛рд░ рд╣реИред

рдЗрд╕реЗ рднреА рджреЗрдЦреЗрдВ:
https://css-tricks.com/rendering-svg-paths-in-webgl/

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рд╡рд╣реА рдХрд░рддрд╛ рд╣реИ рдЬреЛ рдЖрдк рд╡реЗрдмрдкреИрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред
https://github.com/blunt1337/pixi-svg-loader

@OSUblake рдХреВрд▓, рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╡рд╣реА рдХрд░рддрд╛ рд╣реИ рдЬреЛ рдореЗрд░рд╛ рдорддрд▓рдм рдерд╛ред рдХреЛрд╢рд┐рд╢ рдХрд░рдиреА рд╣реЛрдЧреАред рдореИрдВ

@bigtimebuddy рдзрдиреНрдпрд╡рд╛рдж! рдореИрдВрдиреЗ рд╡рд╣рд╛рдВ рдПрдХ рдирдпрд╛ рдореБрджреНрджрд╛ рдЦреЛрд▓рд╛ред рдПрдХ рдкреВрд░реНрдг рдкрд┐рдХреНрд╕реА рджреГрд╢реНрдп рдЧреНрд░рд╛рдл рд╣реЛрдирд╛ рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛ред

@RanzQ

@trusktr рдХреНрдпрд╛ рдЖрдк рдЙрдкрдпреЛрдЧ рдХрд╛ рдорд╛рдорд▓рд╛ рджреЗ рд╕рдХрддреЗ рд╣реИрдВ? рдХреНрдпрд╛ рдЖрдкрдХрд╛ рдорддрд▓рдм рдХрдВрдЯреЗрдирд░ рдХреЗ рд░реВрдк рдореЗрдВ рд╕рдореВрд╣ рдФрд░ рд╕реНрдкреНрд░рд╛рдЗрдЯреНрд╕ рдХреЗ рд░реВрдк рдореЗрдВ рдкреНрд░рд╛рдЗрдореЗрдЯрд┐рд╡ рдХреЗ рд╕реЗрдЯ рд░рдЦрдирд╛ рд╣реИ?

рд╣рд╛рдБ, рд▓реЗрдХрд┐рди рдкреНрд░рд╛рдЗрдореЗрдЯрд┐рд╡ рд╕реНрдкреНрд░рд╛рдЗрдЯреНрд╕ рдХреЗ рдмрдЬрд╛рдп Graphics рдСрдмреНрдЬреЗрдХреНрдЯ рд╣реЛрдВрдЧреЗред

рдПрдХ рд╕рдорд╕реНрдпрд╛ рдЬреЛ рдореИрдВ рдЗрд╕ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХреЗ рд╕рд╛рде рджреЗрдЦрддрд╛ рд╣реВрдВ рд╡рд╣ рд╣реИ рдПрдВрдХрд░ (рдпрджрд┐ рд╣рдо рдХреБрдЫ рдЪреЗрддрди рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ)ред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдЗрдВрдХрд╕реНрдХреЗрдк рдПрдВрдХрд░ рдХреЛ рдХрд╕реНрдЯрдо рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреЗ рд░реВрдк рдореЗрдВ рдЬреЛрдбрд╝рддрд╛ рд╣реИ рд▓реЗрдХрд┐рди рд╡реЗ рдорд╛рдирдХ afaik рдореЗрдВ рдирд╣реАрдВ рд╣реИрдВред рдореЗрд░рд╛ рдХреНрдпрд╛ рдорддрд▓рдм рд╣реИ рдЗрд╕рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг:

рдореБрдЭреЗ рдЧреИрд░-рдорд╛рдирдХ рд╕рд╛рдордЧреНрд░реА рдХрд╛ рд╕рдорд░реНрдерди рдирд╣реАрдВ рдХрд░рдиреЗ рдореЗрдВ рдХреЛрдИ рдлрд░реНрдХ рдирд╣реАрдВ рдкрдбрд╝рддрд╛, рдореИрдВ рдХреЗрд╡рд▓ рдорд╛рдирдХреАрдХреГрдд рдПрдкреАрдЖрдИ рдХреЗ рд╕рд╛рде рд░рд╣ рд╕рдХрддрд╛ рд╣реВрдВред рдЗрдВрдХрд╕реНрдХреЗрдк-рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╕рд╛рдордЧреНрд░реА рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрд╕рд╛рдиреА рд╕реЗ рдПрдХ рдкреНрд▓рдЧрдЗрди рд╣реЛ рд╕рдХрддрд╛ рд╣реИред

рд╣рд╛рд▓рд╛рдВрдХрд┐ рдореИрдВ рдЖрдкрдХреЗ рдкреНрд░рдпрд╛рд╕ рдХреА рд╕рд░рд╛рд╣рдирд╛ рдХрд░рддрд╛ рд╣реВрдВ рдкрд┐рдХреНрд╕реА рдореЗрдВ рдПрд╕рд╡реАрдЬреА рдкреНрд░рд╛рдЗрдореЗрдЯрд┐рд╡ рдкреНрд░рд╕реНрддреБрдд рдХрд░рдирд╛ рдПрдХ рдЕрдЪреНрдЫрд╛ рд╡рд┐рдЪрд╛рд░ рд╣реИред

рдЖрдк рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдРрд╕рд╛ рдХреНрдпреЛрдВ рд╕реЛрдЪрддреЗ рд╣реИрдВ?

@OSUblake

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рд╡рд╣реА рдХрд░рддрд╛ рд╣реИ рдЬреЛ рдЖрдк рд╡реЗрдмрдкреИрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред
https://github.com/blunt1337/pixi-svg-loader

рдпрд╣ рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рд╣реИ, рд╡реЗрдмрдкреИрдХ рддрдХ рд╕реАрдорд┐рдд рд╣реИ, рдФрд░ рдЯреВрд▓реНрдб рд╡рд╛рддрд╛рд╡рд░рдг рддрдХ рд╕реАрдорд┐рдд рд╣реИ, рдХреНрд▓рд╛рдЗрдВрдЯ рдкрд░ рдирд╣реАрдВ рдЪрд▓рддрд╛ рд╣реИред рдореИрдВ рдПрдХ рдПрдкреАрдЖрдИ рдХреА рддрд▓рд╛рд╢ рдореЗрдВ рд╣реВрдВ рдЬрд┐рд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдореИрдВ рд░рдирдЯрд╛рдЗрдо рдкрд░ рдкрд┐рдХреНрд╕реА.рдЬреЗрдПрд╕ рдХреЗ рд╕рд╛рде рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ (рд╕рдордп рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдирд╣реАрдВ)ред


рдореИрдВ рдЬреЛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ (рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдореИрдВ рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рд╡рд┐рд╢реЗрд╖рдЬреНрдЮ Pixi.js рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдирд╣реАрдВ рд╣реВрдВ, рдЗрд╕рд▓рд┐рдП рд╕рд▓рд╛рд╣ рджреЗрдВ рдХрд┐ рдХреНрдпрд╛ рдХреБрдЫ рдФрд░ рдмреЗрд╣рддрд░ рд╣реИ рдЬреИрд╕реЗ рдХрд┐ рд╕реНрдкреНрд░рд╛рдЗрдЯреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛) рдПрдХ рдбрд┐рд╕реНрдкреНрд▓реЗрдСрдмреНрдЬреЗрдХреНрдЯ рджреГрд╢реНрдп рдЧреНрд░рд╛рдл рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП рдЬреЛ рдХрд┐ рдПрд╕рд╡реАрдЬреА рдбреЛрдо рдХреЗ рд╕рдорд╛рди рд╕рдВрд░рдЪрдирд╛ рд╣реИ рдЙрддреНрдкрдиреНрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд┐рдХреНрд╕реА рдкреЗрдбрд╝ рд╕реЗ. рдпрд╣, рдореЗрд░реЗ рд▓рд┐рдП, рд╣реЗрд░рдлреЗрд░ рдФрд░ рдПрдиреАрдореЗрд╢рди рдХреЗ рд▓рд┐рдП рд╢рдХреНрддрд┐рд╢рд╛рд▓реА рд╣реИ, рдкреВрд░реЗ рдПрд╕рд╡реАрдЬреА рдХреЛ рд╣рд░ рдлреНрд░реЗрдо рдХреЛ рдлрд┐рд░ рд╕реЗ рдкреНрд░рд╕реНрддреБрдд рдХрд┐рдП рдмрд┐рдирд╛ рдХреЗрд╡рд▓ рдПрдХ рдЖрджрд┐рдо (рд╕рдВрднрд╡рддрдГ рд╕реИрдХрдбрд╝реЛрдВ рдпрд╛ рд╣рдЬрд╛рд░реЛрдВ рдореЗрдВ рд╕реЗ) рдХреЛ рдЪреЗрддрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдПред

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдореИрдВ рдХреНрдпрд╛ рдХрд░реВрдБрдЧрд╛, рдЕрдЧрд░ рдХреБрдЫ рдЦреБрд▓рд╛ рд╕реНрд░реЛрдд рдЕрднреА рддрдХ рдореМрдЬреВрдж рдирд╣реАрдВ рд╣реИ, рддреЛ @bigtimebuddy рдХреА -рдПрд╕рд╡реАрдЬреА рдпрд╛ @saschagehlich рдХреА -рдПрд╕рд╡реАрдЬреА-рдЧреНрд░рд╛рдлрд┐рдХреНрд╕ рд▓реЗрдирд╛ рд╣реИ , рдФрд░ рдЙрдиреНрд╣реЗрдВ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░рдирд╛ рд╣реИ (рдпрд╛ рд╕рдорд╛рди рдЕрд╡рдзрд╛рд░рдгрд╛рдУрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛) рдПрдХ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП Pixi Graphics рдХреЗрд╡рд▓ рдПрдХ Graphics рдСрдмреНрдЬреЗрдХреНрдЯ рдкрд░ рдбреНрд░рд╛ рдХрд░рдиреЗ рдХреЗ рдмрдЬрд╛рдп SVG рдЯреНрд░реА рдХреЛ рдкреНрд░рддрд┐рдмрд┐рдореНрдмрд┐рдд рдХрд░рдиреЗ рд╡рд╛рд▓рд╛ рдЯреНрд░реАред

@trusktr рдореИрдВ рджреЗрдЦ рд░рд╣рд╛ рд╣реВрдБ, рдЖрджрд┐рдо рдЖрдзрд╛рд░рд┐рдд рдПрдирд┐рдореЗрд╢рди рдХреЗ рд▓рд┐рдП рдЙрд╕реЗ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧреА рд╣реЛ рд╕рдХрддрд╛ рд╣реИ Graphics рдХреЗ рдмрдЬрд╛рдп рд╡рд╕реНрддреБрдУрдВ Sprites ред рд▓реЗрдХрд┐рди рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рд╕рдорд╛рдзрд╛рди рджреЛрдиреЛрдВ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░ рд╕рдХрддрд╛ рд╣реИ, Graphics рд╕рд░рд▓ SVGs рдХреЗ рд▓рд┐рдП рдФрд░ Sprites рдЕрдзрд┐рдХ рдЬрдЯрд┐рд▓ рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдПред

рдЬрд┐рд╕ рдХрд╛рд░рдг рд╕реЗ рдореИрдВрдиреЗ рд╕реЛрдЪрд╛ рдХрд┐ рдпрд╣ рдПрдХ рдЕрдЪреНрдЫрд╛ рд╡рд┐рдЪрд╛рд░ рдирд╣реАрдВ рд╣реИ, рд╡рд╣ рдпрд╣ рд╣реИ рдХрд┐ рдХрд╕реНрдЯрдо рдПрд╕рд╡реАрдЬреА рд░реЗрдВрдбрд░рд░реНрд╕ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХрдИ рдкреНрд░рдпрд╛рд╕ рдХрд┐рдП рдЧрдП рд╣реИрдВ рдФрд░ рдореЗрд░реЗ рдЕрдиреБрднрд╡ рдореЗрдВ рд╡реЗ рд╣рдореЗрд╢рд╛ рдЕрд╕рдорд░реНрдерд┐рдд рд╕рд╛рдорд╛рди рдХреЗ рдЗрд╕ TODO рдХреЛ рд╕рдорд╛рдкреНрдд рдХрд░рддреЗ рд╣реИрдВред

рдпрд╣ рдПрдХ рдХрд▓рд╛рдХрд╛рд░ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рдорд╕реНрдпрд╛ рд╣реЛрдЧреА рдХреНрдпреЛрдВрдХрд┐ рдХрд┐рд╕реА рдХреЛ рдпрд╣ рдЬрд╛рдирдирд╛ рд╣реЛрдЧрд╛ рдХрд┐ рдХрд┐рди рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдФрд░ рдХреНрдпрд╛ рдирд╣реАрдВред рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдПрдХ рдЕрдЪреНрдЫрд╛ SVG рд░реЗрдВрдбрд░рд░, рдмреНрд░рд╛рдЙрдЬрд╝рд░ рд╣реИред рд▓реЗрдХрд┐рди рдЕрдЧрд░ рдПрд╕рд╡реАрдЬреА рдореЗрдВ рдмрд┐рдирд╛ рдХрд┐рд╕реА рдкреНрд░рднрд╛рд╡ рдХреЗ рд╕рд╛рдзрд╛рд░рдг рдкреНрд░рд╛рдЗрдореЗрдЯрд┐рд╡ рд╣реЛрддреЗ рд╣реИрдВ, рддреЛ рд╢рд╛рдпрдж рдЗрд╕реЗ Graphics рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕ рдХреЗ рд░реВрдк рдореЗрдВ рдкрд╛рд░реНрд╕ рдХрд░рдирд╛ рдареАрдХ рд╣реИред

рдПрдХ рдЙрджрд╛рд╣рд░рдг рдЬрд╣рд╛рдВ рд╕реНрдкреНрд░рд╛рдЗрдЯ рдмреЗрд╣рддрд░ рдХрд╛рдо рдХрд░реЗрдЧрд╛ , рдирдХреНрд╢рд╛ рдмрд╣реБрдд рдЦрд╕реНрддрд╛ рджрд┐рдЦрддрд╛ рд╣реИ (рд╢рд╛рдпрдж рд╕рд┐рд░реНрдл рдПрдВрдЯреАрдПрд▓рд┐рдпрд╛рд╕рд┐рдВрдЧ рдЧрд╛рдпрдм рд╣реИ) рдФрд░ рдЦрд░рд╛рдм рдкреНрд░рджрд░реНрд╢рди рдХрд░рддрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдкрде рдЬрдЯрд┐рд▓ рд╣реИрдВред

рдХреИрдирд╡рд╛рд╕ 2d рдФрд░ Path2D api рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ SVG рд╕реЗ рдЯреЗрдХреНрд╕рдЪрд░ рдмрдирд╛рдирд╛ рдмрд╣реБрдд рдЖрд╕рд╛рди рд╣реИред

var path = new Path2D("M10 10 h 80 v 80 h -80 Z");
context.fill(path);

рдкрд╛рде рдореЙрд░реНрдлрд┐рдВрдЧ рдбреЗрдореЛ
https://codepen.io/osublake/pen/oWzVvb

рдореИрдВ рдПрдХ рдмреЗрд╣рддрд░ рдкреЙрд▓реАрдлрд┐рд▓ рдкрд░ рдХрд╛рдо рдХрд░рдиреЗ рдЬрд╛ рд░рд╣рд╛ рдерд╛ рдХреНрдпреЛрдВрдХрд┐ Google рд╕реЗ рдЬрдЯрд┐рд▓ рдПрд╕рд╡реАрдЬреА рдкрдереЛрдВ рдХреЛ рдкрд╛рд░реНрд╕ рдХрд░рдиреЗ рдореЗрдВ рдкрд░реЗрд╢рд╛рдиреА рд╣реЛрддреА рд╣реИред
https://github.com/google/canvas-5-polyfill

@RanzQ

рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдПрдХ рдЕрдЪреНрдЫрд╛ SVG рд░реЗрдВрдбрд░рд░, рдмреНрд░рд╛рдЙрдЬрд╝рд░ рд╣реИред

рд▓реЗрдХрд┐рди рдпрд╣ рдмрд╣реБрдд рд╕реНрд▓реЛ рд╣реИред рдХреНрдпрд╛ рдпрд╣ GPU рдпрд╛ CPU рдореЗрдВ рд░реЗрдВрдбрд░ рдХрд░рддрд╛ рд╣реИ? рдореЗрд░реЗ рд▓рд┐рдП рдЬреЛ рдкреНрд░рджрд░реНрд╢рди рдореИрдВ рдЕрдиреБрднрд╡ рдХрд░рддрд╛ рд╣реВрдВ рд╡рд╣ Pixi.js рдХреЗ рд╕рд╛рде рдЦреАрдВрдЪреА рдЧрдИ рд╕рдорд╛рди рдЪреАрдЬреЛрдВ рдХреА рдЧрддрд┐ рд╕реЗ рддреБрд▓рдирд╛ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдПред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рджреЗрд╢реА рдПрд╕рд╡реАрдЬреА рдЗрдВрдЬрди рдмрд╣реБрдд рдЕрдзрд┐рдХ рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реИред

рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдХреИрдирд╡рд╛рд╕ 2рдбреА рднреА рд╡реЗрдмрдЬреАрдПрд▓ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдзреАрдорд╛ рд╣реИред рдпрд╣рд╛рдВ рд╡реЗрдмрдЬреАрдПрд▓ рдФрд░ рдХреИрдирд╡рд╛рд╕ рдХреЗ рдмреАрдЪ рдЕрдВрддрд░ рдХреА рддреБрд▓рдирд╛ рдХрд░реЗрдВ: http://pixijs.github.io/pixi-particles-editor/ (рд╡реЗрдмрдЬреАрдПрд▓ рдФрд░ рдХреИрдирд╡рд╛рд╕ рдкреНрд░рддрд┐рдкрд╛рджрди рдХреЗ рдмреАрдЪ рдЯреЙрдЧрд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдиреАрдЪреЗ рд╕реНрдХреНрд░реЙрд▓ рдХрд░реЗрдВ)ред рдХреИрдирд╡рд╛рд╕ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдзреАрдорд╛ рд╣реИред

рдореИрдВ рдХреЗрд╡рд▓ рдПрд╕рд╡реАрдЬреА рдмрдирд╛рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рдФрд░ рдЗрд╕реЗ рдпрдерд╛рд╕рдВрднрд╡ рддреЗрдЬ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВред рдЕрдм рддрдХ, рд╡реИрдЪрд╛рд░рд┐рдХ рд░реВрдк рд╕реЗ рдХрдо рд╕реЗ рдХрдо, рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ Pixi.js рдпрд╛ Two.js рдЬреИрд╕реЗ WebGL API рдХреЗ рд╕рд╛рде SVG рдмрдирд╛рдирд╛ рд╕рдмрд╕реЗ рддреЗрдЬрд╝ рддрд░реАрдХрд╛ рд╣реИред рдЗрд╕ рд╕рдордп рдХреЗрд╡рд▓ рдирдХрд╛рд░рд╛рддреНрдордХ рдкрдХреНрд╖ рдпрд╣ рд╣реИ рдХрд┐ рд╕рднреА SVG рд╕реБрд╡рд┐рдзрд╛рдПрдБ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╕рдорд░реНрдерд┐рдд рдирд╣реАрдВ рд╣реИрдВред

@OSUblake

рдХреИрдирд╡рд╛рд╕ 2d рдФрд░ Path2D рдПрдкреАрдЖрдИ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдПрд╕рд╡реАрдЬреА рд╕реЗ рдмрдирд╛рд╡рдЯ рдмрдирд╛рдирд╛ рдмрд╣реБрдд рдЖрд╕рд╛рди рд╣реИред

рдХреИрдирд╡рд╛рд╕ 2рдбреА рдЕрднреА рднреА рд╡реЗрдмрдЬреАрдПрд▓ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдХрд╛рдлреА рдзреАрдореА рд╣реИ, рдЙрд╕ рдбреЗрдореЛ рдХреЛ рджреЗрдЦреЗрдВ рдЬрд┐рд╕реЗ рдореИрдВрдиреЗ рдЕрднреА рджреЛ рдкреИрд░рд╛рдЧреНрд░рд╛рдл рдКрдкрд░ рд▓рд┐рдВрдХ рдХрд┐рдП рд╣реИрдВред

рдкрд╛рде рдореЙрд░реНрдлрд┐рдВрдЧ рдбреЗрдореЛ
https://codepen.io/osublake/pen/oWzVvb

рдХреВрд▓ рдбреЗрдореЛ! рдЗрд╕ рд╕реНрдерд┐рддрд┐ рдореЗрдВ, рдЖрдк PathProxy рдореЗрдВ рдПрдХ рд╕рд░рд▓ рдкрде рдХреЛ рдПрдирд┐рдореЗрдЯ рдХрд░ рд░рд╣реЗ рд╣реИрдВред рдпрд╣ рд╢рд╛рдпрдж рдЙрдкрдпреЛрдЧ рдХреЗ рдорд╛рдорд▓реЗ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рддреЗрдЬрд╝ рд╣реИред рд▓реЗрдХрд┐рди рдПрдХ рдПрд╕рд╡реАрдЬреА рдореЗрдВ рдЪреАрдЬреЛрдВ рдХрд╛ рдПрдХ рдЧреБрдЪреНрдЫрд╛ рдЦреАрдВрдЪрдиреЗ рдХреА рдХрд▓реНрдкрдирд╛ рдХрд░реЗрдВ, рдЬреИрд╕реЗ 100 рдиреЛрдбреНрд╕, рдФрд░ рдЙрди рд╕рднреА рдХреЛ рдПрдирд┐рдореЗрдЯ рдХрд░рдирд╛, рдлрд┐рд░ рдЙрд╕ рдкреВрд░реА рдЪреАрдЬ рдХреЛ рдПрдХ рдХреНрд╖реЗрддреНрд░ рдХреЗ рдЪрд╛рд░реЛрдВ рдУрд░ рд▓рдкреЗрдЯрдиреЗ рдХреЗ рд▓рд┐рдП рдмрдирд╛рд╡рдЯ рдХреЗ рд░реВрдк рдореЗрдВ рдЪрд╛рд╣рддреЗ рд╣реИрдВред

рдпрд╛, рдХрд▓реНрдкрдирд╛ рдХрд░реЗрдВ рдХрд┐ рдЙрд╕ рдбреЗрдореЛ рдореЗрдВ рдХрдг рдПрд╕рд╡реАрдЬреА рдХреЗ рд╕рд╛рде рдХрд┐рдП рдЬрд╛ рд░рд╣реЗ рд╣реИрдВ рдФрд░ рдПрд╕рд╡реАрдЬреА рдбреЛрдо рдиреЛрдбреНрд╕ рдХреЛ рдПрдирд┐рдореЗрдЯ рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рдлрд┐рд░ рдПрдХ рдХреИрдирд╡рд╛рд╕ рдореЗрдВ drawImage рд╕рд╛рде рдПрдХ рдмрдирд╛рд╡рдЯ рдХреЗ рд░реВрдк рдореЗрдВ рдкреНрд░рддрд┐рдкрд╛рджрди рд▓реЗрддреЗ рд╣реИрдВ рдФрд░ рдЕрдВрдд рдореЗрдВ рдЗрд╕реЗ рдПрдХ 3 рдбреА рд╡реЗрдмрдЬреАрдПрд▓ рдРрдк рдХреЗ рдХреНрд╡рд╛рдб рдкрд░ рдбрд╛рд▓рддреЗ рд╣реИрдВред рдпрд╣ рдмрд╣реБрдд рдзреАрдорд╛ рд╣реЛрдЧрд╛!

рдЖрдкрдХрд╛ рдбреЗрдореЛ рддреЗрдЬрд╝ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рд╡рд╣ рдХрдг рдПрдиреАрдореЗрд╢рди рд╡реЗрдмрдЬреАрдПрд▓ рдореЗрдВ рдкрд┐рдХреНрд╕реА рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╣реИред

рдпрджрд┐ рдкрд┐рдХреНрд╕реА рдХреЗ рд╕рд╛рде рдПрд╕рд╡реАрдЬреА рдХреЛ рдкреНрд░рд╕реНрддреБрдд рдХрд░рдирд╛ рдПрдХ рд╕рдорд░реНрдерд┐рдд рд╡рд┐рд╢реЗрд╖рддрд╛ рдереА, рдФрд░ рдПрд╕рд╡реАрдЬреА рдкрджрд╛рдиреБрдХреНрд░рдо рдХреЛ рдкреНрд░рддрд┐рдмрд┐рдВрдмрд┐рдд рдХрд░рдиреЗ рд╡рд╛рд▓рд╛ рдПрдХ рдкрджрд╛рдиреБрдХреНрд░рдо рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рдерд╛, рддреЛ display:none <svg> рддрддреНрд╡ ( display:none рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХреЛ рдореИрдк рдХрд░рдирд╛ рд╕рдВрднрд╡ рд╣реЛрдЧрд╛ред

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдПрд╕рд╡реАрдЬреА рдХреЛ рдЖрдХрд░реНрд╖рд┐рдд рдХрд░рдиреЗ рдХрд╛ рд╕рдмрд╕реЗ рддреЗрдЬрд╝ рддрд░реАрдХрд╛ рд╣реЛрдЧрд╛ рдХреНрдпреЛрдВрдХрд┐ рдкрд┐рдХреНрд╕реА рддреЗрдЬ рд╣реИ, рдЬрдмрдХрд┐ рдПрдХ рдбреЛрдо рдХреА рд╕реБрд╡рд┐рдзрд╛ рдХреЛ рджрд░реНрдЬ рдХрд░рддреЗ рд╣реБрдП рдЬрд┐рд╕реЗ рд░рд┐рдПрдХреНрдЯ, рдПрдВрдЧреБрд▓рд░, рдЖрджрд┐ рджреНрд╡рд╛рд░рд╛ рд╣реЗрд░рдлреЗрд░ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдореИрдВ рдПрдХ рдПрд╕рд╡реАрдЬреА рдбреЛрдо рдЯреНрд░реА рд░рдЦрдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рдЬрд┐рд╕реЗ рдореИрдВ рд╣реЗрд░рдлреЗрд░ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ, рдЬреЛ рдкреНрд░рддрд┐рдкрд╛рджрди рдХрд░реЗрдЧрд╛ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдХреЗ рдзреАрдореЗ SVG рдЗрдВрдЬрди рд╕реЗ рддреЗрдЬрд╝ рд╣реЛред рд╢рд╛рдпрдж рдореИрдВ рдмрд╣реБрдд рдЬреНрдпрд╛рджрд╛ рдкреВрдЫ рд░рд╣рд╛ рд╣реВрдБред рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЖрдЬ рдХреА рддрдХрдиреАрдХ рдХреЗ рд╕рд╛рде, рдПрд╕рд╡реАрдЬреА рдкреНрд░рддрд┐рдкрд╛рджрди рд╕рд╛рдорд╛рдиреНрдп рдорд╛рдирдХреЛрдВ рд╕реЗ рдмрд╣реБрдд рдзреАрдорд╛ рд╣реИ (рд╣рдо рдЧреЗрдорд┐рдВрдЧ рдЗрдВрдЬрди рдХреА рдЧрддрд┐ рдЪрд╛рд╣рддреЗ рд╣реИрдВ)ред

@trusktr

рд▓реЗрдХрд┐рди рдпрд╣ рдмрд╣реБрдд рд╕реНрд▓реЛ рд╣реИред

рдЗрд╕рд╕реЗ рдореЗрд░рд╛ рдорддрд▓рдм рдерд╛ рдХрд┐ рд╣рдо рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдПрд╕рд╡реАрдЬреА рдмрдирд╛рд╡рдЯ рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВ, рдпрд╣ рдзреАрдорд╛ рд╣реИ рд▓реЗрдХрд┐рди рд╕рднреА рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИред рдЖрдк рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдЙрд╕ рддрд░рд╣ рдХреЗ рдПрдирд┐рдореЗрд╢рди рдирд╣реАрдВ рдХрд░реЗрдВрдЧреЗред рдЖрдк рдПрдХ рдмрдирд╛рд╡рдЯ рдПрдЯрд▓рд╕ рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдмрд╛рдж рдореЗрдВ рд╕реНрдкреНрд░рд╛рдЗрдЯреНрд╕ рдХреЛ рдЪреЗрддрди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдпрджрд┐ рдЖрдк рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП 2рдбреА рд╕реНрдкрд╛рдЗрдирд▓ рдХреИрд░реЗрдХреНрдЯрд░ рдмрдирд╛рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рдпрд╣реА рд░рд╛рд╕реНрддрд╛ рд╣реЛрдЧрд╛ред

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдПрдХ рдЙрджрд╛рд╣рд░рдг рд╣реИ рдХрд┐ рдЖрдк рдХреНрдпрд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ: https://github.com/bodymovin/bodymovin/issues/184

рдХрд╛рд░реНрдп рд╕рд░рд▓ рдирд╣реАрдВ рд╣реИ рдФрд░ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рд╡рд╣ рдПрдиреАрдореЗрд╢рди рдореЗрд░реЗ рдкреБрд░рд╛рдиреЗ рдПрдВрдбреНрд░реЙрдЗрдб рдлреЛрди рдкрд░ рдзреАрд░реЗ-рдзреАрд░реЗ рдЦреЗрд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╛рдлреА рдЬрдЯрд┐рд▓ рд╣реИ рдЬреЛ рд╕реНрдкреНрд░рд╛рдЗрдЯ рдЖрдзрд╛рд░рд┐рдд рдкрд┐рдХреНрд╕реА рджреГрд╢реНрдпреЛрдВ рдХреЛ рдареАрдХ рд╕реЗ рдЪрд▓рд╛рддрд╛ рд╣реИред рдореБрдЭреЗ рдПрд╕рд╡реАрдЬреА рдФрд░ рдкрд┐рдХреНрд╕реА рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ рдХреЛрдИ рдЕрдВрддрд░ рдирд╣реАрдВ рджрд┐рдЦ рд░рд╣рд╛ рд╣реИред рд╣рд╛рд▓рд╛рдВрдХрд┐ рд╕рд┐рд░реНрдл рдПрдХ рдЕрдиреБрдХреВрд▓рди рдореБрджреНрджрд╛ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред

рдЗрд╕реЗ рднреА рджреЗрдЦреЗрдВ: https://www.gatherdigital.co.uk/community/post/high-performance-webgl/78

рддреЛ рдореЗрд░реА рд░рд╛рдп рдореЗрдВ, рдПрд╕рд╡реАрдЬреА рдХреЗ рд▓рд┐рдП рджреЛ рдЕрд▓рдЧ-рдЕрд▓рдЧ рддрд░рд╣ рдХреА рдЬрд░реВрд░рддреЗрдВ рд╣реИрдВред рдПрдХ рдХрдо рдПрд╕рд╡реАрдЬреА рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдХреЗ рд╕рд╛рде, рдЖрджрд┐рдо рдореЗрдВ рд╡рд┐рднрд╛рдЬрд┐рдд, рджреВрд╕рд░рд╛ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рджреНрд╡рд╛рд░рд╛ рдкреНрд░рджрд╛рди рдХрд┐рдП рдЧрдП рдПрдЯрд▓рд╕ рдХреЗ рд╕рд╛рде, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП <g> рдиреЛрдбреНрд╕ рд╣реЛрдиреЗ рдХреЗ рдХрд╛рд░рдг рд╕реНрдкреНрд░рд╛рдЗрдЯреНрд╕ред

рдПрдХ рдФрд░ рддрд░реАрдХрд╛ рдпрд╣ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдПрд╕рд╡реАрдЬреА рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рд╡реЗрдХреНрдЯрд░ рдЧреНрд░рд╛рдлрд┐рдХреНрд╕ рдХреЗ рд▓рд┐рдП рдмреЗрд╣рддрд░ рдЗрдВрдЯрд░рдСрдкрд░реЗрдмрд▓ рдкреНрд░рд╛рд░реВрдк рдпрд╛ рдЯреВрд▓рд┐рдВрдЧ рдХреА рддрд▓рд╛рд╢ рдХреА рдЬрд╛рдПред рдпрджрд┐ рдЖрдк рдХреБрдЫ рд╕реНрдХреЗрд▓реЗрдмрд▓ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рдПрд╕рд╡реАрдЬреА рдХреА рдкрд┐рдХреНрд╕реАрдЬреЗрдПрд╕ рдореЗрдВ рдЗрд╕рдХреА рд╕реАрдорд╛рдПрдВ рд╣реИрдВ рдХреНрдпреЛрдВрдХрд┐ @RanzQ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд╕реНрдкрд╖реНрдЯ рд╣реИред рдПрд╕рд╡реАрдЬреА рдореЗрдВ рдЙрдкрд▓рдмреНрдз рдкрд┐рдХреНрд╕реА рдХреА рдбреНрд░рд╛рдЗрдВрдЧ рдХреНрд╖рдорддрд╛рдУрдВ рдореЗрдВ рдЕрд╕рдорд░реНрдерд┐рдд рдЗрддрдиреА рд╕рд╛рд░реА рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдВ рд╣реИрдВ рдХрд┐ рдХреЛрдИ рднреА рдЖрджрд┐рдо рдбреНрд░рд╛рдЗрдВрдЧ рдЕрдиреБрд╡рд╛рдж рджреВрд╕рд░реЗ рджрд░реНрдЬреЗ рдХрд╛ рд╣реЛрдиреЗ рд╡рд╛рд▓рд╛ рд╣реИред

рдПрдХ рдФрд░ рддрд░реАрдХрд╛ рдЬреЛ рдореИрдВ рд╕реБрдЭрд╛рдКрдВрдЧрд╛ рд╡рд╣ рд╣реИ PixiAnimate (https://github.com/jiborobot/pixi-animate-extension) рдпрд╣ Adobe Animate рдХреЗ рд▓рд┐рдП рдПрдХ рдореВрд▓ рдПрдХреНрд╕рдЯреЗрдВрд╢рди (рдЕрд╕реНрд╡реАрдХрд░рдг, рдореИрдВрдиреЗ рдЗрд╕реЗ рд▓рд┐рдЦрд╛ рд╣реИ) рд╣реИ рдЬреЛ рд╕рдЯреАрдХ рдЧреНрд░рд╛рдлрд┐рдХреНрд╕ рдХрд╛ рдирд┐рд░реНрдпрд╛рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрдЪреНрдЫрд╛ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред рд╕рд╛рде рд╣реА рдЖрдк рдиреЗрд╕реНрдЯреЗрдб рдкреНрд░рддреАрдХреЛрдВ рдФрд░ рдкрд░рддреЛрдВ рдпрд╛ рдЪреЗрддрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЬреЛ рднреА рдкрджрд╛рдиреБрдХреНрд░рдо рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВред

@bigtimebuddy рдХреНрдпрд╛ рдЪреЗрддрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╡реЗрдХреНрдЯрд░ рдЧреНрд░рд╛рдлрд┐рдХреНрд╕ рд╕реЗ рдмрдирд╛рд╡рдЯ рдПрдЯрд▓рд╕ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЛрдИ рдХрд╛рд░реНрдпрдкреНрд░рд╡рд╛рд╣ рд╣реИ? рдореИрдВ рдРрд╕реЗ рд╡рд░реНрдХрдлрд╝реНрд▓реЛ рдХреА рддрд▓рд╛рд╢ рдореЗрдВ рд╣реВрдБ рдЬрд╣рд╛рдБ рдкрд┐рдХреНрд╕реА рд╕реАрди рдХреЛ UI рдЕрд╕рд┐рд╕реНрдЯреЗрдб рдмрдирд╛рдпрд╛ рдЬрд╛ рд╕рдХреЗред

рдПрдирд┐рдореЗрдЯ рдХреА рддрд╛рдЬрд╝рд╛ рд░рд┐рд▓реАрдЬрд╝ рдореЗрдВ рдПрдЯрд▓рд╕ рдмрдирд╛рдирд╛ рд╕рдВрднрд╡ рд▓рдЧрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдХреНрдпрд╛ рдЖрдкрдиреЗ рдЗрд╕рдХреЗ рд▓рд┐рдП рдЕрдкрдиреЗ рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдХреА рдХреЛрд╢рд┐рд╢ рдХреА рд╣реИ: http://blogs.adobe.com/contentcorner/2017/07/03/create-a-texture-atlas-with -рдЪреЗрддрди-рд╕реАрд╕реА-рдХреЗ рд▓рд┐рдП-рдЖрдкрдХреЗ-рдкрд╕рдВрджреАрджрд╛-рдЦреЗрд▓-рдЗрдВрдЬрди/

@RanzQ , рд╣рд╛рдБ PixiAnimate TexturePackers atlases рдХреЗ рдкреНрд░рд╛рд░реВрдк рдореЗрдВ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдЗрдореЗрдЬ рдпрд╛ рд╕реНрдкреНрд░рд╛рдЗрдЯрд╢реАрдЯ рдирд┐рд░реНрдпрд╛рдд рдХрд░ рд╕рдХрддрд╛ рд╣реИред рд╣рд╛рд▓рд╛рдВрдХрд┐, рд╡реЗрдХреНрдЯрд░ рдЖрдХрд╛рд░ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдмрдирд╛рд╡рдЯ рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдирд╣реАрдВ рд╣реЛрддреЗ рд╣реИрдВред рдПрдирд┐рдореЗрдЯ рдореЗрдВ рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдкрдХреЛ "рдХрдиреНрд╡рд░реНрдЯ рдЯреВ рдмрд┐рдЯрдореИрдк" рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред

@trusktr

рдЖрдкрдХрд╛ рдбреЗрдореЛ рддреЗрдЬрд╝ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рд╡рд╣ рдХрдг рдПрдиреАрдореЗрд╢рди рд╡реЗрдмрдЬреАрдПрд▓ рдореЗрдВ рдкрд┐рдХреНрд╕реА рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╣реИред

рдмрд┐рд▓реНрдХреБрд▓ред рдореИрдВ рдореБрдЦреНрдп рд░реЗрдВрдбрд░рд░ рдХреЗ рд░реВрдк рдореЗрдВ рдХреИрдирд╡рд╛рд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рд╕реБрдЭрд╛рд╡ рдирд╣реАрдВ рджреЗ рд░рд╣рд╛ рдерд╛ред рдЬреНрдпрд╛рдорд┐рддрд┐ рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрди рд╣реЛрдиреЗ рдкрд░ рдХреЗрд╡рд▓ рдмрдирд╛рд╡рдЯ/рд╕реНрдкреНрд░рд╛рдЗрдЯ рдЙрддреНрдкрдиреНрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдПред рдпрд╣ рдЕрдзрд┐рдХрд╛рдВрд╢ рдЙрдкрдпреЛрдЧ рдХреЗ рдорд╛рдорд▓реЛрдВ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рддреЗрдЬрд╝ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЗрд╕реА рддрд░рд╣ Two.js WebGL рдореЗрдВ рдкрд╛рде рд░реЗрдВрдбрд░рд┐рдВрдЧ рдХрд░рддрд╛ рд╣реИред

рдФрд░ Path2D рдСрдмреНрдЬреЗрдХреНрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╕реЗ рдХреИрдирд╡рд╛рд╕ рдХреЗ рдкреНрд░рджрд░реНрд╢рди рдореЗрдВ рд╕реБрдзрд╛рд░ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдкрде рдХреЗ рд▓рд┐рдП рд╡реИрдХреНрдЯрд░ рдХреЛ рдХреИрд╢ рдХрд░реЗрдЧрд╛ред рдпрд╣ рдЖрдкрдХреЛ рдПрдХ рд╣реА рдкрде рдСрдмреНрдЬреЗрдХреНрдЯ рдХрд╛ рдПрдХ рд╕реЗ рдЕрдзрд┐рдХ рдмрд╛рд░ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ, рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рд╡рд┐рднрд┐рдиреНрди рдХреИрдирд╡рд╛рд╕ рд╕рдВрджрд░реНрднреЛрдВ рдФрд░ рд╕рдВрдХрд▓реНрдкреЛрдВ рдХреЗ рд╕рд╛рде рднреАред

@OSUblake

рдмрд┐рд▓реНрдХреБрд▓ред рдореИрдВ рдореБрдЦреНрдп рд░реЗрдВрдбрд░рд░ рдХреЗ рд░реВрдк рдореЗрдВ рдХреИрдирд╡рд╛рд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рд╕реБрдЭрд╛рд╡ рдирд╣реАрдВ рджреЗ рд░рд╣рд╛ рдерд╛ред рдЬреНрдпрд╛рдорд┐рддрд┐ рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрди рд╣реЛрдиреЗ рдкрд░ рдХреЗрд╡рд▓ рдмрдирд╛рд╡рдЯ/рд╕реНрдкреНрд░рд╛рдЗрдЯ рдЙрддреНрдкрдиреНрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдПред рдпрд╣ рдЕрдзрд┐рдХрд╛рдВрд╢ рдЙрдкрдпреЛрдЧ рдХреЗ рдорд╛рдорд▓реЛрдВ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рддреЗрдЬрд╝ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЗрд╕реА рддрд░рд╣ Two.js WebGL рдореЗрдВ рдкрд╛рде рд░реЗрдВрдбрд░рд┐рдВрдЧ рдХрд░рддрд╛ рд╣реИред

рд╣рд╛рдБ, рдпрд╣ рдПрдХ рдЕрдЪреНрдЫрд╛ рддрд░реАрдХрд╛ рд▓рдЧрддрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдпрджрд┐ рдХреЗрд╡рд▓ <circle> рддрддреНрд╡ рдкрд░ рд╕рдВрд╢реЛрдзрд┐рдд рдХреА рдЬрд╛ рд░рд╣реА рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдБ cx рдФрд░ cy , рддреЛ рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рдПрдХ рдЕрдиреБрдХреВрд▓рди рдореМрдЬреВрджрд╛ рдЬрд╛рд▓ рдпрд╛ рд╕реНрдкреНрд░рд╛рдЗрдЯ рдХреЛ рдмрд┐рдирд╛ рдмрдирд╛рдП рдЕрдиреБрд╡рд╛рдж рдХрд░рдирд╛ рд╣реЛрдЧрд╛ рдирдпрд╛ рд╡рд╛рд▓рд╛ред

рдпрд╣рд╛рдВ рдкрд┐рдХреНрд╕реА, рдЯреВ рдФрд░ рдиреЗрдЯрд┐рд╡ рдПрд╕рд╡реАрдЬреА рдХреЗ рдмреАрдЪ рддреБрд▓рдирд╛ рдХреА рдЧрдИ рд╣реИ:

  • https://jsbin.com/nohovowupa/edit?js ,рдЖрдЙрдЯрдкреБрдЯ (рджреЛ.рдЬреЗрдПрд╕, 10,000 рд╕рд░реНрдХрд▓, рд╕рдмрд╕реЗ рддреЗрдЬ)
  • https://jsbin.com/vizuwemibe/1/edit?js ,рдЖрдЙрдЯрдкреБрдЯ (Pixi.js, 2,000 рдордВрдбрд▓рд┐рдпрд╛рдВ, рдзреАрдореА)
  • https://jsbin.com/xocareepi/edit?js ,рдЖрдЙрдЯрдкреБрдЯ (рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдиреЗрдЯрд┐рд╡ SVG, 1,000 рд╕рд░реНрдХрд▓, рд╕рдмрд╕реЗ рдзреАрдорд╛)

рдкрд┐рдХреНрд╕реА рдХрд╛рдлрд╝реА рдзреАрдореА рдХреНрдпреЛрдВ рд╣реИ? рдХреНрдпрд╛ рдРрд╕рд╛ рдЗрд╕рд▓рд┐рдП рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдбреНрд░реЙ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдкреНрд░рддреНрдпреЗрдХ рдлреНрд░реЗрдо рдХреЛ рдлрд┐рд░ рд╕реЗ рдЧрдгрдирд╛ рдХрд░рддрд╛ рд╣реИ (рдкреБрдирдГ рдЯреЗрд╕реНрд▓реЗрдЯ рдпрд╛ рд░реА-рд░рд╛рд╕реНрдЯрд░рд╛рдЗрдЬ рдХрд░рддрд╛ рд╣реИ)?

Two.js рдХреЗ рд╕рд╛рде, рдПрдХ рд╡реГрддреНрдд x, y рдФрд░ рддреНрд░рд┐рдЬреНрдпрд╛ рдЧреБрдгреЛрдВ рд╡рд╛рд▓реА рдПрдХ рд╡рд╕реНрддреБ рд╣реИред рдЙрд╕ рдПрдкреАрдЖрдИ рдХреЗ рд╕рд╛рде рдпрд╣ рд╕реНрдкрд╖реНрдЯ рд╣реИ рдХрд┐ рдХреЗрд╡рд▓ x рдФрд░ y рдХреЛ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░рдиреЗ рдкрд░ рд╕рд░реНрдХрд▓ рдХреЛ рдкреБрди: рд╡реНрдпрд╡рд╕реНрдерд┐рдд/рдкреБрди: рд╡реНрдпрд╡рд╕реНрдерд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред

рдпрд╣ рд╕реНрдкрд╖реНрдЯ рдирд╣реАрдВ рд╣реИ рдХрд┐ рдкрд┐рдХреНрд╕реА рдХреА рдбреНрд░рд╛рдЗрдВрдЧ-рдХрдорд╛рдВрдб-рд╢реИрд▓реА рдХреЗ рд╕рд╛рде рдпрд╣ рдЕрдиреБрдХреВрд▓рди рдХреИрд╕реЗ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред

@trusktr

рдкрд┐рдХреНрд╕реА рдХрд╛рдлрд╝реА рдзреАрдореА рдХреНрдпреЛрдВ рд╣реИ? рдХреНрдпрд╛ рдРрд╕рд╛ рдЗрд╕рд▓рд┐рдП рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдбреНрд░реЙ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдкреНрд░рддреНрдпреЗрдХ рдлреНрд░реЗрдо рдХреЛ рдлрд┐рд░ рд╕реЗ рдЧрдгрдирд╛ рдХрд░рддрд╛ рд╣реИ (рдкреБрдирдГ рдЯреЗрд╕реНрд▓реЗрдЯ рдпрд╛ рд░реА-рд░рд╛рд╕реНрдЯрд░рд╛рдЗрдЬ рдХрд░рддрд╛ рд╣реИ)?

рдирд╣реАрдВ, рдпрд╣ рдмрд╣реБрдд рд╕рд╛рд░реЗ рддреНрд░рд┐рдХреЛрдг рдмрдирд╛ рд░рд╣рд╛ рд╣реИ, рдЬреЛ GPU рдкреНрд░рджрд░реНрд╢рди рдХреЛ рдорд╛рд░ рд░рд╣рд╛ рд╣реИред рдпрджрд┐ рдЖрдк рдПрдХ рд░реЗрдЦрд╛ рд╢реИрд▓реА рдХреЗ рдмрд┐рдирд╛ рдПрдХ рдЖрдпрдд рдмрдирд╛рддреЗ рд╣реИрдВ рддреЛ рдЖрдк рдЕрдВрддрд░ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВред рдпрд╣ рдЗрд╕реЗ рдПрдХ рд╕реНрдкреНрд░рд╛рдЗрдЯ рдХреЗ рд░реВрдк рдореЗрдВ рдкреНрд░рд╕реНрддреБрдд рдХрд░реЗрдЧрд╛, рдЗрд╕рд▓рд┐рдП рдкреНрд░рджрд░реНрд╢рди рдХрд╛рдлреА рдмреЗрд╣рддрд░ рд╣реЛрдЧрд╛ред 10,000 рд░реЗрдХреНрдЯреНрд╕ред
https://codepen.io/osublake/pen/PjrbWq/

рдХреНрдпрд╛ рдЖрдкрдиреЗ рд░рд╛рд╕реНрдЯрд░рд░рд╛рдЗрдЬреЗрд╢рди рдХреЗ рд▓рд┐рдП рджреВрд░рд╕реНрде рдХреНрд╖реЗрддреНрд░реЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдкрд░ рдзреНрдпрд╛рди рджрд┐рдпрд╛ рд╣реИ? рдореБрдЭреЗ рдкрддрд╛ рд╣реИ рдХрд┐ рдпрджрд┐ рдЖрдк рдмрд╣реБрдд рдЕрдзрд┐рдХ рдЬрд╝реВрдо рдЗрди рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ рддреЛ рдпрд╣ рдлреЛрдВрдЯ рдХреЗ рд╕рд╛рде рдЕрдЪреНрдЫрд╛ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред рдореИрдВ рд╕реЛрдЪ рд░рд╣рд╛ рдерд╛ рдХрд┐ рдХреНрдпрд╛ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдкрде рдбреЗрдЯрд╛ рдХреЛ рдПрдирд┐рдореЗрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
https://github.com/Tw1ddle/WebGL-Distance-fields/tree/master/sdf

https://www.shadertoy.com/view/ltXSDB

рдореЗрд░реЗ рдкрд┐рдЫрд▓реЗ рдЙрджрд╛рд╣рд░рдг рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЧрд▓рдд рдереЗ рдХреНрдпреЛрдВрдХрд┐ рдореБрдЭреЗ рдирд╣реАрдВ рдкрддрд╛ рдерд╛ рдХрд┐ JSBin for рд▓реВрдк рд╕реЗ рдЬрд▓реНрджреА рдмрд╛рд╣рд░ рдирд┐рдХрд▓ рд░рд╣рд╛ рдерд╛, рдЗрд╕рд▓рд┐рдП рдореЗрд░реЗ рдореИрдХрдмреБрдХ рдкреНрд░реЛ рдкрд░ рдпрд╣ рдХреЗрд╡рд▓ 500 рд╕рд░реНрдХрд▓ рдкреНрд░рджрд╛рди рдХрд░ рд░рд╣рд╛ рдерд╛ (рднрд▓реЗ рд╣реА рдореИрдВрдиреЗ n рдХреЛ рд╕реЗрдЯ рдХрд┐рдпрд╛ рд╣реЛ 10000 )ред рдореИрдВрдиреЗ рдЙрджрд╛рд╣рд░рдгреЛрдВ рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд┐рдпрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рд╡реЗ рд╕рднреА JSBin рдХреЗ рд▓реВрдк-рдмреНрд░реЗрдХрд┐рдВрдЧ рдХреЗ рдмрд┐рдирд╛ 2000 рдордВрдбрд▓рд┐рдпрд╛рдВ рдкреНрд░рд╕реНрддреБрдд рдХрд░рддреЗ рд╣реИрдВ:

рдПрд╕рд╡реАрдЬреА рдЙрджрд╛рд╣рд░рдг рдЕрднреА рднреА рд╕рдмрд╕реЗ рдзреАрдорд╛ рд╣реИ рдЬрдм рдХреЗрд╡рд▓ рд╕рд░реНрдХрд▓ рдкреЛрдЬреАрд╢рди (рддреНрд░рд┐рдЬреНрдпрд╛ рдирд╣реАрдВ) рдХреЛ рдПрдирд┐рдореЗрдЯ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

рдпрд╣рд╛рдБ Two.js рдФрд░ SVG рднреА рд░реЗрдбреА рдХреЛ рдПрдирд┐рдореЗрдЯ рдХрд░ рд░рд╣реЗ рд╣реИрдВ:

рдореИрдВрдиреЗ Pixi.js рд╕рдВрд╕реНрдХрд░рдг рд╢рд╛рдорд┐рд▓ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдХреНрдпреЛрдВрдХрд┐ рдореБрдЭреЗ рдирд╣реАрдВ рдкрддрд╛ рдерд╛ рдХрд┐ рдЧреИрд░-рддреНрд░рд┐рдЬреНрдпрд╛-рдПрдиреАрдореЗрд╢рди рд╕рдВрд╕реНрдХрд░рдг рдХреЛ рдХреИрд╕реЗ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПред рдЖрдк рд░реЗрдбрд┐рдпрд╕ рдПрдирд┐рдореЗрд╢рди рдХреЛ рд╢рд╛рдорд┐рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдиреЛ-рд░реЗрдбрд┐рдпрд╕-рдПрдиреАрдореЗрд╢рди рд╕рдВрд╕реНрдХрд░рдг рдХреЛ рдХреИрд╕реЗ рдЕрдкрдбреЗрдЯ рдХрд░реЗрдВрдЧреЗ?

рдЖрдк рд░реЗрдбрд┐рдпрд╕ рдПрдирд┐рдореЗрд╢рди рдХреЛ рд╢рд╛рдорд┐рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП Pixi.js рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдиреЛ-рд░реЗрдбрд┐рдпрд╕-рдПрдиреАрдореЗрд╢рди рд╕рдВрд╕реНрдХрд░рдг рдХреЛ рдХреИрд╕реЗ рдЕрдкрдбреЗрдЯ рдХрд░реЗрдВрдЧреЗ?

рдкреНрд░рджрд░реНрд╢рди рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдпрд╣рд╛рдВ рдирд╛рдХ рдореЗрдВ рджрдо рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░ рд╕рдХрддрд╛ рд╣реИред рдЖрдкрдХреЛ рдЧреНрд░рд╛рдлрд╝рд┐рдХреНрд╕ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЛ рд╕рд╛рдлрд╝ рдХрд░рдирд╛ рд╣реЛрдЧрд╛, рдЬреЛ рд╕рдм рдХреБрдЫ рд░реАрд╕реЗрдЯ рдХрд░рддрд╛ рд╣реИред
https://codepen.io/osublake/pen/8217810e590672c5a5327596e33c4b1a?editors=0010

рдЕрдм рдмрдирд╛рд╡рдЯ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХреИрдирд╡рд╛рд╕ 2d рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЗрд╕ рдбреЗрдореЛ рдХреЛ рджреЗрдЦреЗрдВред рдореЗрд░реА рдорд╢реАрди рдкрд░ рдареЛрд╕ 60fps рдкрд░ рдЪрд▓рдиреЗ рд╡рд╛рд▓реЗ 3,000 рд╕рд░реНрдХрд▓ред
https://codepen.io/osublake/full/MoMeMg/

рдЦреИрд░, рд╡реИрд╕реЗ рднреА, рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЗрд╕рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрдЪреНрдЫрд╛ рдЙрдкрдпреЛрдЧ рдорд╛рдорд▓рд╛ рд╣реИ, рдЬреИрд╕рд╛ рдХрд┐ рдЙрджрд╛рд╣рд░рдг рджрд┐рдЦрд╛рддрд╛ рд╣реИ: рдпрд╣ рдХреБрдЫ рдорд╛рдорд▓реЛрдВ рдореЗрдВ рд╡реЗрдмрдЬреАрдПрд▓ рдореЗрдВ рдмрд╣реБрдд рддреЗрдЬ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред

@OSUblake рдУрд╣, рдореИрдВрдиреЗ рдЖрдкрдХреЗ рдирдП рдЙрддреНрддрд░ рдХреЛ рджреЗрдЦрдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдЖрдЦрд┐рд░реА рдмрд╛рд░ рдЬрд╡рд╛рдм рджрд┐рдпрд╛ред

рдкреНрд░рджрд░реНрд╢рди рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдпрд╣рд╛рдВ рдирд╛рдХ рдореЗрдВ рджрдо рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░ рд╕рдХрддрд╛ рд╣реИред рдЖрдкрдХреЛ рдЧреНрд░рд╛рдлрд╝рд┐рдХреНрд╕ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЛ рд╕рд╛рдлрд╝ рдХрд░рдирд╛ рд╣реЛрдЧрд╛, рдЬреЛ рд╕рдм рдХреБрдЫ рд░реАрд╕реЗрдЯ рдХрд░рддрд╛ рд╣реИред
https://codepen.io/osublake/pen/8217810e590672c5a5327596e33c4b1a?editors=0010

рдореБрдЭреЗ рдпрд╣реА рдбрд░ рдерд╛, рдЬреЛ рдЖрджрд░реНрд╢ рдирд╣реАрдВ рд╣реИред рдпрд╣ рджреЗрд╢реА рдПрд╕рд╡реАрдЬреА рдзреАрдореЗрдкрди рдХреЗ рдХрд░реАрдм рдкрд╣реБрдВрдЪрдирд╛ рд╢реБрд░реВ рдХрд░ рджреЗрддрд╛ рд╣реИред

рдЕрдм рдмрдирд╛рд╡рдЯ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХреИрдирд╡рд╛рд╕ 2d рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЗрд╕ рдбреЗрдореЛ рдХреЛ рджреЗрдЦреЗрдВред рдореЗрд░реА рдорд╢реАрди рдкрд░ рдареЛрд╕ 60fps рдкрд░ рдЪрд▓рдиреЗ рд╡рд╛рд▓реЗ 3,000 рд╕рд░реНрдХрд▓ред
https://codepen.io/osublake/full/MoMeMg/

рдкрд╡рд┐рддреНрд░ рдмрдХрд╡рд╛рд╕, рд╡рд╛рд╣! рдареАрдХ! рддреЛ, рд╣рдо рд╡рд╣рд╛рдБ рдЬрд╛рддреЗ рд╣реИрдВ, рдпрд╣ рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдЗрд╕реЗ рдХрд░рдиреЗ рдХрд╛ рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рддрд░реАрдХрд╛ рд╣реИ (рдФрд░ 3000 <canvas> рднреА)!

рдпрд╣ рдЗрддрдирд╛ рддреЗрдЬ рдХреНрдпреЛрдВ рд╣реИ? рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдореВрд▓ SVG рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрдирдХрд░реНрддрд╛ рдЗрд╕рд╕реЗ (рд╕рд╛рде рд╣реА Pixi.js рдФрд░ Two.js) рд╕реАрдЦ рд╕рдХреЗрдВ?

рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ Pixi.js рдореЗрдВ рдЗрд╕ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЯрдХрд░рд╛рд╡/рдЪреБрдирдиреЗ рдореЗрдВ рдмрджрд▓рд╛рд╡ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА? рдЬрд╛рд▓ рдХреЗ рдмрдЬрд╛рдп рдПрдХ рдЖрдпрддрд╛рдХрд╛рд░ рдмрдирд╛рд╡рдЯ рд╣реЛрдЧреАред

@trusktr рдХрд╛рд░рдг рдЬреЛ рддреЗрдЬрд╝ рд╣реИ рд╡рд╣ рдпрд╣ рд╣реИ рдХрд┐ рдЖрдк рдПрдХ рдмрд╛рд░ рдХреИрдирд╡рд╛рд╕ рдкрд░ рдбреНрд░рд╛ рдХрд░рддреЗ рд╣реИрдВ, рдлрд┐рд░ рдЗрд╕реЗ GPU рдкрд░ рдмрдирд╛рд╡рдЯ рдХреЗ рд░реВрдк рдореЗрдВ рдЕрдкрд▓реЛрдб рдХрд░рддреЗ рд╣реИрдВред рдЙрд╕ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ рдкреНрд░рддреНрдпреЗрдХ рддреНрд░рд┐рдЬреНрдпрд╛ рдХреЗ рд▓рд┐рдП 4px рдЪрд░рдгреЛрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрд▓рдЧ рдмрдирд╛рд╡рдЯ рдЙрддреНрдкрдиреНрди рд╣реЛрддреА рд╣реИ (рдпрджрд┐ рдореИрдВ рдЗрд╕реЗ рдареАрдХ рд╕реЗ рд╕рдордЭрддрд╛ рд╣реВрдВ )ред рдПрдиреАрдореЗрд╢рди рдХрд╛рдлреА рддреЗрдЬ рд╣реИ рдЗрд╕рд▓рд┐рдП рдЖрдкрдХреЛ рдЯреЗрдХреНрд╕рдЪрд░ рд╕реНрд╡реИрдк рдирд╣реАрдВ рджрд┐рдЦрд╛рдИ рджреЗрдЧрд╛ред

рдЖрдк рдЧреНрд░рд╛рдлрд┐рдХреНрд╕ рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕ ( cacheAsBitmap ) рдХреЛ рдХреИрд╢рд┐рдВрдЧ рдХрд░рдХреЗ рдкрд┐рдХреНрд╕реА рдХреЗ рдбреНрд░рд╛рдЗрдВрдЧ рдПрдкреАрдЖрдИ рдХреЗ рд╕рд╛рде рд╕рдорд╛рди рдЪреАрдЬреЗрдВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЗрд╕ рддрд░рд╣ рдЖрдк рдЕрдкрдиреЗ рдкреНрд░рд╛рдЗрдореЗрдЯрд┐рд╡ рдХреЛ рдПрдХ рдмрд╛рд░ рдбреНрд░рд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдЙрдиреНрд╣реЗрдВ рдХреИрд╢ рд╕реЗ рддреЗрдЬреА рд╕реЗ рдлрд┐рд░ рд╕реЗ рдбреНрд░рд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рдЙрд╕ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ рдкреНрд░рддреНрдпреЗрдХ рддреНрд░рд┐рдЬреНрдпрд╛ рдХреЗ рд▓рд┐рдП 4px рдЪрд░рдгреЛрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрд▓рдЧ рдмрдирд╛рд╡рдЯ рдЙрддреНрдкрдиреНрди рд╣реЛрддреА рд╣реИ (рдпрджрд┐ рдореИрдВ рдЗрд╕реЗ рдареАрдХ рд╕реЗ рд╕рдордЭрддрд╛ рд╣реВрдВ )

рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ 0.25 рд╡реЗрддрди рд╡реГрджреНрдзрд┐ рдХреЗ рдЖрд╕рдкрд╛рд╕ рд╣реИред рдЖрдк рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХрд┐рддрдиреА рдЙрдк-рдкрд┐рдХреНрд╕реЗрд▓ рд╕рдЯреАрдХрддрд╛ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ?

рдЕрдЧрд░ рдпрд╣ рдордЬрд╝реЗрджрд╛рд░ рд╣реИ, рддреЛ рджреЗрдЦреЗрдВ рдХрд┐ рдкрд┐рдХреНрд╕реА рдХрд╛ рдХреИрдирд╡рд╛рд╕ рдЯрд┐рдВрдЯрд░ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред рдпрд╛ рд╕реНрдкреНрд░рд╛рдЗрдЯ рд╢реАрдЯ рдПрдирд┐рдореЗрд╢рди рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВред рдЖрдк рдкреНрд░рджрд░реНрд╢рди рдХреЗ рдмрджрд▓реЗ рдХреБрдЫ рд╕реНрдореГрддрд┐ рдХрд╛ рддреНрдпрд╛рдЧ рдХрд░рддреЗ рд╣реИрдВ, рдФрд░ рдПрдХ рдЕрдЪреНрдЫреА рдХреИрд╢рд┐рдВрдЧ рд░рдгрдиреАрддрд┐ рдХреЗ рд╕рд╛рде рдпрд╣ рдХрд╛рдо рдХрд░ рд╕рдХрддрд╛ рд╣реИред

рдЖрдк рдЧреНрд░рд╛рдлрд┐рдХреНрд╕ рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕ (cacheAsBitmap) рдХреЛ рдХреИрд╢ рдХрд░рдХреЗ рдкрд┐рдХреНрд╕реА рдХреЗ рдбреНрд░рд╛рдЗрдВрдЧ рдПрдкреАрдЖрдИ рдХреЗ рд╕рд╛рде рд╕рдорд╛рди рдЪреАрдЬреЗрдВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЗрд╕ рддрд░рд╣ рдЖрдк рдЕрдкрдиреЗ рдкреНрд░рд╛рдЗрдореЗрдЯрд┐рд╡ рдХреЛ рдПрдХ рдмрд╛рд░ рдбреНрд░рд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдЙрдиреНрд╣реЗрдВ рдХреИрд╢ рд╕реЗ рддреЗрдЬреА рд╕реЗ рдлрд┐рд░ рд╕реЗ рдбреНрд░рд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

cacheAsBitmap рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╢рд╛рдпрдж рдЕрдЪреНрдЫрд╛ рди рд▓рдЧреЗ рдХреНрдпреЛрдВрдХрд┐ рдЧреНрд░рд╛рдлрд╝рд┐рдХреНрд╕ рдореЗрдВ рдЕрд▓рд┐рдпрд╛рд╕рд┐рдВрдЧ рд╣реЛрдЧрд╛ред рдПрдВрдЯреАрдЕрд▓рд╛рдЗрдЬреНрдб рдЧреНрд░рд╛рдлрд┐рдХреНрд╕ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдкрдХреЛ GenerateCanvasTexture рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рддреЛ рдХрд┐рд╕реА рднреА рддрд░рд╣ рд╕реЗ рдЖрдк рдХреИрдирд╡рд╛рд╕ рдХреЗ рд╕рд╛рде рд╕рдорд╛рдкреНрдд рд╣реЛрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдкрд┐рдХреНрд╕реА рдХреЗ рдЧреНрд░рд╛рдлрд┐рдХреНрд╕ рдПрдкреАрдЖрдИ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЖрдк рд╕реНрдЯреНрд░реЛрдХ рдХреЗ рд▓рд╛рдЗрди рдбреИрд╢ рдХреЛ рдмрджрд▓рдиреЗ рдЬреИрд╕реЗ рд╕рд╛рдзрд╛рд░рдг рдЪреАрдЬреЗрдВ рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рдЖрдк рдЧреНрд░рд╛рдлрд┐рдХреНрд╕ рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕ (cacheAsBitmap) рдХреЛ рдХреИрд╢ рдХрд░рдХреЗ рдкрд┐рдХреНрд╕реА рдХреЗ рдбреНрд░рд╛рдЗрдВрдЧ рдПрдкреАрдЖрдИ рдХреЗ рд╕рд╛рде рд╕рдорд╛рди рдЪреАрдЬреЗрдВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рдПрдВрдЯреАрдПрд▓рд┐рдпрд╛рдЬреНрдб рдЧреНрд░рд╛рдлрд┐рдХреНрд╕ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдкрдХреЛ GenerateCanvasTexture . рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╣реЛрдЧрд╛

рдЙрди рджреЛ рд╡рд┐рдХрд▓реНрдкреЛрдВ рдореЗрдВ рд╕реЗ рдХрд┐рд╕реА рдХреЗ рд╕рд╛рде, рдХреНрдпрд╛ рдореИрдВ рдЖрдкрдХреЗ рдЙрджрд╛рд╣рд░рдг @OSUblake рдХреА рддрд░рд╣ рддреНрд░рд┐рдЬреНрдпрд╛ рдХреЛ рдЪреЗрддрди рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ?

(рд╡реИрд╕реЗ, рдзрдиреНрдпрд╡рд╛рдж рджреЛрд╕реНрддреЛрдВ, рдореЗрд░реА рдЖрдВрдЦреЗрдВ рдЙрди рддрдХрдиреАрдХреЛрдВ рдХреЛ рдкреНрд░рд╕реНрддреБрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЦреЛрд▓ рд░рд╣рд╛ рд╣реВрдВ рдЬрд┐рдирдХреА рдореИрдВрдиреЗ рдкрд╣рд▓реЗ рдХрд▓реНрдкрдирд╛ рдирд╣реАрдВ рдХреА рдереА)ред

@trusktr рд╣рд╛рдБ, рдЖрдкрдХреЛ рдмрд╕ рдЕрд▓рдЧ-рдЕрд▓рдЧ рддреНрд░рд┐рдЬреНрдпрд╛ рдХреЗ рд╕рд╛рде рдХрдИ рдЧреНрд░рд╛рдлрд┐рдХреНрд╕ рдСрдмреНрдЬреЗрдХреНрдЯ рдмрдирд╛рдиреЗ рд╣реЛрдВрдЧреЗ рдФрд░ рдЬреЗрдирд░реЗрдЯ рдХрд┐рдП рдЧрдП рдмрдирд╛рд╡рдЯ рдХрд╛ рдирдХреНрд╢рд╛ рдмрдирд╛рдирд╛ рд╣реЛрдЧрд╛ (рддрд╛рдХрд┐ рдЖрдк рдкреНрд░рддреНрдпреЗрдХ рддреНрд░рд┐рдЬреНрдпрд╛ рдХреЗ рд▓рд┐рдП рдХреИрд╢реНрдб рдмрдирд╛рд╡рдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХреЗрдВ)ред cacheAsBitmap рдЖрдк рдмрдирд╛рд╡рдЯ рдХреЗ рдмрдЬрд╛рдп рдЧреНрд░рд╛рдлрд┐рдХреНрд╕ рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕ рдХреЛ рдореИрдк рдХрд░реЗрдВрдЧреЗ рд▓реЗрдХрд┐рди рдЖрдкрдХреЗ рдкрд╛рд╕ рдПрдВрдЯреАрдЕрд▓рд╛рдЗрдЬрд┐рдВрдЧ рдирд╣реАрдВ рд╣реЛрдЧрд╛ рдЬреИрд╕реЗ

рдЗрд╕ рддрд░рд╣ рдХрд╛ рдПрдирд┐рдореЗрд╢рди рд╕реНрдкреНрд░рд╛рдЗрдЯ рд╢реАрдЯ рдПрдирд┐рдореЗрд╢рди рд╣реИред рдЬрдм рдЖрдк рдЯреНрд░рд╛рдВрд╕рдлрд╝реЙрд░реНрдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЪреЗрддрди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рддреЛ рдмрдирд╛рд╡рдЯ рдХреИрд╢рд┐рдВрдЧ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред рдЬреИрд╕реЗ рдЕрдЧрд░ рдЖрдкрдХреЛ рдкрд░рд╡рд╛рд╣ рдирд╣реАрдВ рд╣реИ рдХрд┐ рдордВрдбрд▓рд┐рдпреЛрдВ рдХрд╛ рд╕реНрдЯреНрд░реЛрдХ рднреА рд╕реНрдХреЗрд▓ рдХрд░рддрд╛ рд╣реИ, рддреЛ рдПрдХ рд╕рд╛рдзрд╛рд░рдг рд╕реНрдХреЗрд▓ рдПрдиреАрдореЗрд╢рди рдЗрд╕реЗ рдХрд░реЗрдЧрд╛ред

рд▓реЗрдХрд┐рди рдореИрдВ рдорд╛рдирддрд╛ рд╣реВрдВ, рдХреИрдирд╡рд╛рд╕ рдореЗрдВ рдПрдХ рдмреЗрд╣рддрд░ рдбреНрд░рд╛рдЗрдВрдЧ рдПрдкреАрдЖрдИ рд╣реИ рдЗрд╕рд▓рд┐рдП рдореИрдВ рдЗрд╕рдХрд╛ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд░реВрдВрдЧрд╛ред рдФрд░ рдПрд╕рд╡реАрдЬреА рдХреЗ рд▓рд┐рдП, рдкрджрд╛рдиреБрдХреНрд░рдо рдХреЛ рдПрдЯрд▓рд╕ рдореЗрдВ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдЬреИрд╕реЗ pixi-svg-loader рдХрд░рддрд╛ рд╣реИ (рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ?)ред рдпрд╛ рдпрджрд┐ рдЖрдк рдПрдиреАрдореЗрд╢рди рдХреА рддрд░рд╣ рд╕реНрдкреНрд░рд╛рдЗрдЯ рд╢реАрдЯ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рд╡рд╣ рднреА рдХреИрдирд╡рд╛рд╕ рдкрд░ рдПрдиреАрдореЗрд╢рди рд░рд╛рдЬреНрдпреЛрдВ рдХреЛ рдЪрд┐рддреНрд░рд┐рдд рдХрд░рдХреЗ рд╕рдВрднрд╡ рд╣реИред

рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ Pixi.js рдореЗрдВ рдЗрд╕ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЯрдХрд░рд╛рд╡/рдЪреБрдирдиреЗ рдореЗрдВ рдмрджрд▓рд╛рд╡ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА? рдЬрд╛рд▓ рдХреЗ рдмрдЬрд╛рдп рдПрдХ рдЖрдпрддрд╛рдХрд╛рд░ рдмрдирд╛рд╡рдЯ рд╣реЛрдЧреАред

рдЬрдмрдХрд┐ рдмрд╣реБрднреБрдЬ рдЬрд┐рддрдирд╛ рддреЗрдЬрд╝ рдирд╣реАрдВ рд╣реИ, рдХреИрдирд╡рд╛рд╕ рдореЗрдВ рдкрде рдкрд░ рд╣рд┐рдЯ рдкрд░реАрдХреНрд╖рдг рдХрд░рдиреЗ рдХреА рд╡рд┐рдзрд┐ рд╣реИ, isPointInPath ред рдЗрд╕реЗ рдЗрд╕ рдорд╛рдирдЪрд┐рддреНрд░ рдкрд░ рдХрд╛рдо рдХрд░рддреЗ рд╣реБрдП рджреЗрдЦреЗрдВред
https://codepen.io/osublake/pen/dzYzab/?editors=0010

рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рддреАрди.рдЬреЗрдПрд╕ рдореЗрдВ рдПрдХ svgloader рд╣реИ, рд╢рд╛рдпрдж рдХреБрдЫ рдРрд╕рд╛ рдЬрд┐рд╕реЗ pixi.js рдкрд░ рдореИрдк рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ
https://github.com/mrdoob/three.js/blob/master/examples/js/loaders/SVGLoader.js

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

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

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

рд╕рдВрдмрдВрдзрд┐рдд рдореБрджреНрджреЛрдВ

courtneyvigo picture courtneyvigo  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

gaccob picture gaccob  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

softshape picture softshape  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

readygosports picture readygosports  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

samueller picture samueller  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ