Troika: рдлрд╝реАрдЪрд░: рдЯреЗрдХреНрд╕реНрдЯ рдЬреНрдпреЛрдореЗрдЯреНрд░реА рдореЗрдВ рдХреИрд░реЗрдХреНрдЯрд░/рд╡рд░реНрдб/рд▓рд╛рдЗрди рдЗрдВрдбреЗрдХреНрд╕ рдПрдЯреНрд░рд┐рдмреНрдпреВрдЯреНрд╕ рдЬреЛрдбрд╝реЗрдВ

рдХреЛ рдирд┐рд░реНрдорд┐рдд 11 рдлрд╝рд░ре░ 2021  ┬╖  18рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: protectwise/troika

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

рд╕реИрджреНрдзрд╛рдВрддрд┐рдХ рд░реВрдк рд╕реЗ рдЗрд╕рдХреЗ gl_InstanceID рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рд╣рдо рдЧреНрд▓рд┐рдлрд╝ рдХреНрд╡рд╛рдб рдХреЗ рд▓рд┐рдП рдЗрдВрд╕реНрдЯреЗрдВрд╕рд┐рдВрдЧ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред рдФрд░ рдпрд╣ рдЗрд╕ рддрд░рд╣ рдХрд╛ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ: https://codesandbox.io/s/zealous-water-m8lzq?file=/src/index.js -- рд▓реЗрдХрд┐рди gl_InstanceID рдХреЗрд╡рд▓ WebGL2 рдореЗрдВ рдЙрдкрд▓рдмреНрдз рд╣реИ, рдФрд░ рдРрд╕рд╛ рдкреНрд░рддреАрдд рд╣реЛрддрд╛ рд╣реИ void main рдХреЗ рдЕрд▓рд╛рд╡рд╛ рдЕрдиреНрдп рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рднреАрддрд░ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЬрд╛рдиреЗ рдкрд░ рдХреЛрдг рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдореЗрдВ рдЯреВрдЯрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рддреЛ рдпрд╣ рдЕрднреА рдЗрд╕рдХреЗ рд▓рд┐рдП рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд░реВрдк рд╕реЗ рдкреНрд░рдпреЛрдЧ рдХрд░рдиреЗ рдпреЛрдЧреНрдп рдирд╣реАрдВ рд╣реИред

рдЗрд╕рдХреЗ рдмрдЬрд╛рдп, рд╣рдо рдЕрдкрдиреА рдЦреБрдж рдХреА рдЗрдВрд╕реНрдЯреЗрдВрд╕ рд╡рд┐рд╢реЗрд╖рддрд╛ рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВ, рдЬреИрд╕реЗ attribute float charIndex; , рдЬреЛ рд╕рд┐рд░реНрдл рдПрдХ рд╡реГрджреНрдзрд┐рд╢реАрд▓ рд╡рд░реНрдг рдЕрдиреБрдХреНрд░рдордгрд┐рдХрд╛ рд░рдЦрддрд╛ рд╣реИред рдХрд╕реНрдЯрдо рд╢реЗрдбреНрд╕ рддрдм рдЗрд╕рдХрд╛ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд░ рд╕рдХрддреЗ рдереЗред

рдореИрдВ рд╢рд╛рдпрдж рдЗрд╕реЗ рдПрдХ рдСрдкреНрдЯ-рдЗрди рд╕реБрд╡рд┐рдзрд╛ рдмрдирд╛рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ, рдЬреИрд╕реЗ textmesh.includeCharIndexInShader = true , рдмрд╕ рдЙрд╕ рдЕрддрд┐рд░рд┐рдХреНрдд рд╡рд┐рд╢реЗрд╖рддрд╛ рд╕рд░рдгреА рдХреЛ рдмрдирд╛рдиреЗ рд╕реЗ рдмрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рдпрджрд┐ рдЗрд╕рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред

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

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

рдЪрд╛рд░рдЗрдВрдбреЗрдХреНрд╕/рдХреБрд▓рдЪрд░реНрд╕:
Screen Shot 2021-02-18 at 7 18 56 PM

charInWordIndex / TotalCharsInWord:
Screen Shot 2021-02-18 at 7 19 01 PM

charInLineIndex / TotalCharsInLine:
Screen Shot 2021-02-18 at 7 19 08 PM

WordIndex / TotalWords: (рдЗрд╕ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ charIndex/totalChars рдХреЗ рд╕рдорд╛рди рджрд┐рдЦрддрд╛ рд╣реИ рд▓реЗрдХрд┐рди рдПрдХ рд╕реВрдХреНрд╖реНрдо рдЕрдВрддрд░ рд╣реИ)
Screen Shot 2021-02-18 at 7 19 16 PM

рд╡рд░реНрдбрдЗрдирд▓рд╛рдЗрди рдЗрдВрдбреЗрдХреНрд╕ / рдЯреЛрдЯрд▓рд╡рд░реНрдбреНрд╕рдЗрдирд▓рд╛рдЗрди:
Screen Shot 2021-02-18 at 7 19 22 PM

рд▓рд╛рдЗрдирдЗрдВрдбреЗрдХреНрд╕ / рдЯреЛрдЯрд▓рд▓рд╛рдЗрдиреНрд╕:
Screen Shot 2021-02-18 at 7 19 29 PM

рдореИрдВ рд╕рднреА рдбреЗрдЯрд╛ рдХреЛ рдЕрдзрд┐рдХрддрдо 3 рд╡рд░реНрджреА + 2 рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдореЗрдВ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдореЗрдВ рдХрд╛рдордпрд╛рдм рд░рд╣рд╛, рдЬреЛ рдХрд┐ рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рд╣реИред рдореИрдВ рдЕрднреА рднреА рдЙрдиреНрд╣реЗрдВ рд╡реИрдХрд▓реНрдкрд┐рдХ рдмрдирд╛рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВред

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

рдпрд╣ рднреА рд╣реЛ рд╕рдХрддрд╛ рд╣реИ: wordIndex , lineIndex ...?

рд╢рдмреНрдж рдФрд░ рд░реЗрдЦрд╛ рдкреНрд░рддрд┐ рдкрдВрдХреНрддрд┐ рдФрд░ рдкреНрд░рддрд┐ рд╢рдмреНрдж рдПрдиреАрдореЗрд╢рди рд╕рдХреНрд╖рдо рд╣реЛрдВрдЧреЗ, рдЬреИрд╕реЗ https://greensock.com/splittext/ (рдЬрд┐рд╕реЗ рд╣рдо рдЗрд╕ рдкрд░рд┐рд╡рд░реНрддрди рдХреЛ рд╕рдХреНрд╖рдо рдХрд░рдиреЗ рдХрд╛ рдПрдХ рдЕрдЪреНрдЫрд╛ рдЙрджрд╛рд╣рд░рдг рдорд╛рди рд╕рдХрддреЗ рд╣реИрдВ)

рдХреНрдпрд╛ рдореИрдВ рд╕рд╣реА рдорд╛рди рд░рд╣рд╛ рд╣реВрдВ рдХрд┐ рдпрд╣ рдЯреБрдХрдбрд╝реЗ рдЯреБрдХрдбрд╝реЗ рдореЗрдВ рдкреНрд░рддрд┐-рдЯреЛрдХрди (рдЪрд╛рд░, рд╢рдмреНрдж, рд░реЗрдЦрд╛) рдкрд░рд┐рд╡рд░реНрддрди рдХреА рднреА рдЕрдиреБрдорддрд┐ рджреЗрдЧрд╛?

рдХреНрдпрд╛ рдореИрдВ рд╕рд╣реА рдорд╛рди рд░рд╣рд╛ рд╣реВрдВ рдХрд┐ рдпрд╣ рдЯреБрдХрдбрд╝реЗ рдЯреБрдХрдбрд╝реЗ рдореЗрдВ рдкреНрд░рддрд┐-рдЯреЛрдХрди (рдЪрд╛рд░, рд╢рдмреНрдж, рд░реЗрдЦрд╛) рдкрд░рд┐рд╡рд░реНрддрди рдХреА рднреА рдЕрдиреБрдорддрд┐ рджреЗрдЧрд╛?

рдЖрдкрдХреЛ рдЗрд╕реЗ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдХреЗ рд░реВрдк рдореЗрдВ рд╡рд░реНрдЯреЗрдХреНрд╕ рд╕реЗ рдЯреБрдХрдбрд╝реЗ рддрдХ рдкрд╛рд╕ рдХрд░рдирд╛ рд╣реЛрдЧрд╛, рд▓реЗрдХрд┐рди рд╣рд╛рдБред :)

рдЦрд░рдЧреЛрд╢ рдХреЗ рдЫреЗрдж рдХреЗ рдиреАрдЪреЗ рд╣рдо рдЬрд╛рддреЗ рд╣реИрдВ...

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

  • charIndex, TotalChars
  • рд╡рд░реНрдбрдЗрдВрдбреЗрдХреНрд╕, рдХреБрд▓рд╢рдмреНрдж
  • рд▓рд╛рдЗрдирдЗрдВрдбреЗрдХреНрд╕, рдЯреЛрдЯрд▓рд▓рд╛рдЗрдиреНрд╕
  • charInWordIndex, TotalCharsInWord
  • charInLineIndex, TotalCharsInLine
  • рд╡рд░реНрдбрдЗрдирд▓рд╛рдЗрдирдЗрдВрдбреЗрдХреНрд╕, рдЯреЛрдЯрд▓рд╡рд░реНрдбреНрд╕рдЗрдирд▓рд╛рдЗрди

рд╣рдо рдЗрди рд╕рднреА рдХреЛ рдСрдкреНрдЯ-рдЗрди рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдФрд░ рд╣рдорд╛рд░реЗ рджреНрд╡рд╛рд░рд╛ рдкреЗрд╢ рдХреА рдЬрд╛ рд░рд╣реА рдирдИ glsl рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдХреЛ рдХрдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рд╕реНрдорд╛рд░реНрдЯ рдкреИрдХрд┐рдВрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред рдореБрдЭреЗ рдЗрд╕рдХреЗ рд▓рд┐рдП рдПрдкреАрдЖрдИ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдФрд░ рд╕реЛрдЪрдирд╛ рд╣реЛрдЧрд╛ред

рд╣рдо рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЛ рдЙрди рд╕рднреА рдХреЛ рдЭрдВрдбреЗ рдХреЗ рд╕рд╛рде рдЪреБрдирдиреЗ рджреЗ рд╕рдХрддреЗ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП

{
рд╡рд┐рднрд╛рдЬрди: {рд╢рдмреНрдж: рд╕рддреНрдп, рд╡рд░реНрдг: рд╕рддреНрдп, рд░реЗрдЦрд╛рдПрдБ: рд╕рддреНрдп}
}

рдХреБрдЫ рд╕реНрдорд╛рд░реНрдЯ рдкреИрдХрд┐рдВрдЧ рдХрд░реЗрдВ

рдЗрд╕ рдкрд░ рдорди рдХрд╛ рд╡рд┐рд╕реНрддрд╛рд░? рдореИрдВ рдЙрддреНрд╕реБрдХ рд╣реВрдБ

рдореБрдЭреЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЛ рд╡рд┐рднрд╛рдЬрди рдЪреБрдирдиреЗ рджреЗрдиреЗ рдХрд╛ рд╡рд╣ рд╡рд┐рдЪрд╛рд░ рдкрд╕рдВрдж рд╣реИред

рдкреИрдХрд┐рдВрдЧ рд╕реЗ рдореЗрд░рд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рд╣рдо 12 рдирдП attribute float foo рдШреЛрд╖рдгрд╛рдПрдВ рдирд╣реАрдВ рдЬреЛрдбрд╝рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдпрд╛ рд╣рдо рд╕реАрдорд╛ рддрдХ рдкрд╣реБрдВрдЪ рдЬрд╛рдПрдВрдЧреЗ (рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ webgl рдореЗрдВ рдХреБрд▓ 16 рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдВ рд╣реИрдВ), рд▓реЗрдХрд┐рди рд╣рдо рдЙрдиреНрд╣реЗрдВ рдЕрдзрд┐рдХрддрдо 3 рдирдП рдореЗрдВ рдкреИрдХ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ attribute vec4 foo рдШреЛрд╖рдгрд╛рдПрдВ, рдФрд░ рдлрд┐рд░ рдЙрдиреНрд╣реЗрдВ рд╢реЗрдбрд░ рдХреЗ рднреАрддрд░ рдЕрдЪреНрдЫреЗ рджрд┐рдЦрдиреЗ рд╡рд╛рд▓реЗ float рдЪрд░ рдХреЗ рд▓рд┐рдП рдЕрдирдкреИрдХ рдХрд░реЗрдВред

рдУрд╣ рд╣рд╛рдБ, рдмрд╣реБрдд рд╕рдордЭ рдореЗрдВ рдЖрддрд╛ рд╣реИ, рдзрдиреНрдпрд╡рд╛рдж!

рдХреНрдпрд╛ charIndex рдореЗрдВ рд╡реНрд╣реЙрдЯреНрд╕рдПрдк рдХреЛ рдЕрдкрдиреА рд╡реГрджреНрдзрд┐ рдореЗрдВ рд╢рд╛рдорд┐рд▓ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП? рдпрд╛ рд╕рд┐рд░реНрдл рджреГрд╢реНрдп рдЧреНрд▓рд┐рдлрд╝ рдХреЗ рд▓рд┐рдП рд╡реЗрддрди рд╡реГрджреНрдзрд┐? рдореИрдВ рд╕рд┐рд░реНрдл рджрд┐рдЦрдиреЗ рд╡рд╛рд▓реЗ рдЧреНрд▓рд┐рдлрд╝ рдХреА рдУрд░ рдЭреБрдХ рд░рд╣рд╛ рд╣реВрдБред

рд╡реНрд╣рд╛рдЗрдЯрд╕реНрдкреЗрд╕ рдХреА рдЧрд┐рдирддреА рдЗрдВрдбреЗрдХреНрд╕ рджреНрд╡рд╛рд░рд╛ рдПрдирд┐рдореЗрдЯ рдХрд░рддреЗ рд╕рдордп рдЕрдЬреАрдм рд╕реНрдЯреИрдЧрд░реНрд╕ рдмрдирд╛рддреА рд╣реИ, рдЗрд╕рд▓рд┐рдП рдореИрдВ рднреА рджреГрд╢реНрдпрдорд╛рди рдХреА рдУрд░ рдЭреБрдХрддрд╛ рд╣реВрдВ

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

рдЪрд╛рд░рдЗрдВрдбреЗрдХреНрд╕/рдХреБрд▓рдЪрд░реНрд╕:
Screen Shot 2021-02-18 at 7 18 56 PM

charInWordIndex / TotalCharsInWord:
Screen Shot 2021-02-18 at 7 19 01 PM

charInLineIndex / TotalCharsInLine:
Screen Shot 2021-02-18 at 7 19 08 PM

WordIndex / TotalWords: (рдЗрд╕ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ charIndex/totalChars рдХреЗ рд╕рдорд╛рди рджрд┐рдЦрддрд╛ рд╣реИ рд▓реЗрдХрд┐рди рдПрдХ рд╕реВрдХреНрд╖реНрдо рдЕрдВрддрд░ рд╣реИ)
Screen Shot 2021-02-18 at 7 19 16 PM

рд╡рд░реНрдбрдЗрдирд▓рд╛рдЗрди рдЗрдВрдбреЗрдХреНрд╕ / рдЯреЛрдЯрд▓рд╡рд░реНрдбреНрд╕рдЗрдирд▓рд╛рдЗрди:
Screen Shot 2021-02-18 at 7 19 22 PM

рд▓рд╛рдЗрдирдЗрдВрдбреЗрдХреНрд╕ / рдЯреЛрдЯрд▓рд▓рд╛рдЗрдиреНрд╕:
Screen Shot 2021-02-18 at 7 19 29 PM

рдореИрдВ рд╕рднреА рдбреЗрдЯрд╛ рдХреЛ рдЕрдзрд┐рдХрддрдо 3 рд╡рд░реНрджреА + 2 рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдореЗрдВ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдореЗрдВ рдХрд╛рдордпрд╛рдм рд░рд╣рд╛, рдЬреЛ рдХрд┐ рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рд╣реИред рдореИрдВ рдЕрднреА рднреА рдЙрдиреНрд╣реЗрдВ рд╡реИрдХрд▓реНрдкрд┐рдХ рдмрдирд╛рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВред

рдЕрджреНрднреБрдд! рдЬрдм рдЖрдкрдХреЗ рдкрд╛рд╕ рдкрд░реАрдХреНрд╖рдг рд╕рдВрд╕реНрдХрд░рдг рддреИрдпрд╛рд░ рд╣реЛ рддреЛ рдореБрдЭреЗ рдмрддрд╛рдПрдВ

рдореИрдВ рдПрдХ рдРрд╕реА рд╕реБрд╡рд┐рдзрд╛ рдХреА рддрд▓рд╛рд╢ рдореЗрдВ рдерд╛ рдЬрд┐рд╕реЗ рдпрд╣ рд╕рдВрдмреЛрдзрд┐рдд рдХрд░ рд╕рдХреЗред рдореЗрд░реЗ рдкрд╛рд╕ рдПрдХ рдЧреЛрд▓реЗ рдХреЗ рдЪрд╛рд░реЛрдВ рдУрд░ рд▓рдЧрд╛рдиреЗ рдХреЗ рд▓рд┐рдП 3 рдЕрдХреНрд╖рд░ рдХреЗ рд▓реЗрдмрд▓ рдХрд╛ рдПрдХ рдЧреБрдЪреНрдЫрд╛ рд╣реИред рдореИрдВ рдЙрдиреНрд╣реЗрдВ рд╣рдореЗрд╢рд╛ рджрд░реНрд╢рдХреЛрдВ рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░рдиреЗ рдФрд░ рд╕рдорд╛рдпреЛрдЬрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрдирд╛ рд░рд╣рд╛ рд╣реВрдВ рддрд╛рдХрд┐ рд╕реНрдХреНрд░реАрди рдкрд░ рд╡реЗ рд╣рдореЗрд╢рд╛ рдПрдХ рд╣реА рдЖрдХрд╛рд░ рдХреЗ рд╣реЛрдВ, рдЪрд╛рд╣реЗ рджреГрд╢реНрдп рдореИрдЯреНрд░рд┐рдХреНрд╕ рдпрд╛ рдореЙрдбрд▓рд┐рдВрдЧ рдореИрдЯреНрд░рд┐рдХреНрд╕ рдореЗрдВ рд╕реНрдХреЗрд▓рд┐рдВрдЧ рд▓рд╛рдЧреВ рд╣реЛред
рдЕрднреА, рдореИрдВ рдкреНрд░рддрд┐ рд▓реЗрдмрд▓ рдПрдХ Text рдСрдмреНрдЬреЗрдХреНрдЯ рдмрдирд╛рддрд╛ рд╣реВрдВ рдФрд░ рдПрдХ рдкрд░рд┐рд╡рд░реНрддрди рд▓рд╛рдЧреВ рдХрд░рддрд╛ рд╣реВрдВред
рдореИрдВ рд╕реЛрдЪ рд░рд╣рд╛ рдерд╛ рдХрд┐ рдореИрдВ рд╕рднреА рд▓реЗрдмрд▓реЛрдВ рдХреЛ рдПрдХ рд╣реА рдЯреЗрдХреНрд╕реНрдЯ рдореЗрдВ рдкреИрдХ рдХрд░рдХреЗ рдмреЗрд╣рддрд░ рдкреНрд░рджрд░реНрд╢рди рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ рдФрд░ рд╡рд░реНрдЯреЗрдХреНрд╕ рд╢реЗрдбрд░ рдореЗрдВ рд╕рд╣реА рдкрд░рд┐рд╡рд░реНрддрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░рддреНрдпреЗрдХ рд▓реЗрдмрд▓ рдХреЗ рдХреНрд╖реЗрддреНрд░ рдореЗрдВ рд╕реНрдерд┐рддрд┐ рд░рдЦрдиреЗ рдХреА рд╡рд┐рд╢реЗрд╖рддрд╛ рд╣реИред
@lojjic рдХреНрдпрд╛ рдЖрдк рдХрд╕реНрдЯрдо рд╢реЗрдбрд░реНрд╕ рдмрдирд╛рдиреЗ рдХрд╛ рджрд╕реНрддрд╛рд╡реЗрдЬреАрдХрд░рдг рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ? рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╡рд┐рд╢реЗрд╖рддрд╛ рдЬреЛрдбрд╝рдирд╛ рдореБрд╢реНрдХрд┐рд▓ рдирд╣реАрдВ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП рдХреНрдпреЛрдВрдХрд┐ рдореМрдЬреВрджрд╛ рд╡рд┐рдзрд┐ setAttribute рдХреА BufferGeometry рдХреЛ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред

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

@FunMiles рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЖрдк рд╕рд╣реА рд╣реИрдВ, рдЗрд╕рд╕реЗ рдЙрд╕ рддрд░рд╣ рдХреА рд╕реБрд╡рд┐рдзрд╛ рд╣реЛ рд╕рдХрддреА рд╣реИред рдЕрдЧрд░ рдореИрдВ рдЗрд╕реЗ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рд╕рдордЭ рд░рд╣рд╛ рд╣реВрдВ, рддреЛ рдЕрдиреБрдХреВрд▓рди рдореЗрдВ рджреЛ рднрд╛рдЧ рд╢рд╛рдорд┐рд▓ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ:

  1. рд╕реАрдкреАрдпреВ-рд╕рд╛рдЗрдб рдЬреЗрдПрд╕ рд╕реЗ рдЬреАрдкреАрдпреВ-рд╕рд╛рдЗрдб рд╡рд░реНрдЯреЗрдХреНрд╕ рд╢реЗрдбрд░ рд▓реЙрдЬрд┐рдХ рдореЗрдВ рд░реЛрдЯреЗрд╢рди/рд╕реНрдХреЗрд▓рд┐рдВрдЧ рд▓реЙрдЬрд┐рдХ рдХреЛ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рдирд╛
  2. рд╡рд╣ _plus_ рдЯреЗрдХреНрд╕реНрдЯ рдХреЗ рдХрдИ рдЯреБрдХрдбрд╝реЛрдВ рдХреЛ рдПрдХ рдбреНрд░реЙ рдХреЙрд▓ рдореЗрдВ рдорд┐рд▓рд╛рдирд╛

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

2 рдХреЗ рд▓рд┐рдП, рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЖрдк рд╕рд╣реА рд╣реИрдВ рдЖрдк рдПрдХ рдЯреЗрдХреНрд╕реНрдЯ рдкреНрд░рд╕реНрддреБрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдлрд┐рд░ рдЕрдкрдиреЗ рдХреНрд╖реЗрддреНрд░ рдХреЗ рдЪрд╛рд░реЛрдВ рдУрд░ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдкрд╛рддреНрд░реЛрдВ рдХреЛ рд╡рд┐рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП _some_ рд╡рд┐рд╢реЗрд╖рддрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЗрд╕ рдЕрдВрдХ рдореЗрдВ рд╡рд░реНрдгрд┐рдд рдирдИ рдЪрд╛рд░/рд╢рдмреНрдж рдЕрдиреБрдХреНрд░рдордгрд┐рдХрд╛ рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдБ рдХреБрдЫ рдорджрджрдЧрд╛рд░ рд╣реЛ рд╕рдХрддреА рд╣реИрдВ, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдпрдХреАрди рдирд╣реАрдВ рд╣реИ рдХрд┐ рд╡реЗ рдЖрд╡рд╢реНрдпрдХ рднреА рд╣реИрдВред рдЖрдк рд╢рд╛рдпрдж рдЙрди рд╡рд┐рд╕реНрдерд╛рдкрдиреЛрдВ рдХреЛ рдПрдХ рдирдП InstancedBufferAttribute рдореЗрдВ рдПрдиреНрдХреЛрдб рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЬрд╣рд╛рдВ рдЗрд╕рдХреЗ рдкреНрд░рддреНрдпреЗрдХ рд╡реЗрдХреНрдЯрд░ рдореЗрдВ рдПрдХ рд╡рд░реНрдг рдХреЗ рд▓рд┐рдП рд╡рд┐рд╕реНрдерд╛рдкрди рд╣реЛрддрд╛ рд╣реИ (рдкрд╛рда рдХреА рдЬреНрдпрд╛рдорд┐рддрд┐ рдПрдХ рд╕рд╛рдзрд╛рд░рдг рдХреНрд╡рд╛рдб рд╣реИ рдЬрд┐рд╕реЗ рдкреНрд░рддреНрдпреЗрдХ рдЧреНрд▓рд┐рдл рдХреЗ рд▓рд┐рдП рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдкреНрд░рддреНрдпреЗрдХ рдЧреНрд▓рд┐рдл рдХреЗ рд▓рд┐рдП рдЕрддрд┐рд░рд┐рдХреНрдд рдЗрдВрд╕реНрдЯреЗрдВрд╕рдмрдлрд░ рдПрдЯреНрд░рд┐рдмреНрдпреВрдЯреНрд╕ рдХреЛ рдЖрдЧреЗ рдмрдврд╝рд╛рдпрд╛ рдЬрд╛рдПрдЧрд╛ред)

рдореБрдЭреЗ рдпрд╣ рджреЗрдЦрдиреЗ рдореЗрдВ рджрд┐рд▓рдЪрд╕реНрдкреА рд╣реИ рдХрд┐ рдХреНрдпрд╛ рдЖрдкрдХреЗ рдкрд╛рд╕ рдРрд╕рд╛ рдХрд░рдиреЗ рдХрд╛ рдХреЛрдИ рднрд╛рдЧреНрдп рд╣реИ!

@lojjic рдЖрдк рд╕рд╣реА рдврдВрдЧ рд╕реЗ рд╕рдордЭ рдЧрдПред рдФрд░ рдЖрдкрдХреЗ рджреНрд╡рд╛рд░рд╛ рд▓рд┐рдВрдХ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдХреЛрдб 90% рдХрд░рддрд╛ рд╣реИ рдЬреЛ рдореБрдЭреЗ рдЪрд╛рд╣рд┐рдП (1)ред рдЖрдкрдХрд╛ рдбреЗрдореЛ рдореЗрд░реЗ рдЙрдкрдпреЛрдЧ рдХреЗ рдорд╛рдорд▓реЗ рд╕реЗ рдкреВрд░реА рддрд░рд╣ рдореЗрд▓ рдЦрд╛рддрд╛ рд╣реИред
рдпрджрд┐ рдореИрдВ рдЖрдкрд╕реЗ рдЕрдкрдиреА рд╕рдордЭ рдХреЛ рдареАрдХ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╣реВрдВ, рддреЛ рдореИрдВ рдпрд╣ рджреЗрдЦ рд╕рдХрддрд╛ рд╣реВрдВ рдХрд┐ рдЖрдк рдХреНрдпрд╛ рдХрд░ рд░рд╣реЗ рд╣реИрдВ:

  • mvPosition рдХреЛ рдореЙрдбрд▓-рд╡реНрдпреВ рд╕реНрдкреЗрд╕ рдореЗрдВ рд╕рдВрджрд░реНрдн рдмрд┐рдВрджреБ рд╕реНрдерд┐рддрд┐ рдХреЗ рд╕рд╛рде рдкреНрд░рд╛рд░рдВрдн рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╕рдВрджрд░реНрдн рдмрд┐рдВрджреБ рд▓рдВрдЧрд░ рдмрд┐рдВрджреБ рд╣реИред рдХреНрдпрд╛ рд╡рд╣ рд╕рд╣реА рд╣реИ?
  • position рдЙрд╕ рд╕рдВрджрд░реНрдн рдмрд┐рдВрджреБ рд╕реЗ рдСрдлрд╕реЗрдЯ рд╣реИ рдФрд░ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЗрд╕рдореЗрдВ рдХреЗрд╡рд▓ x рдФрд░ y рдЧреИрд░-рд╢реВрдиреНрдп рдирд┐рд░реНрджреЗрд╢рд╛рдВрдХ рд╣реИрдВред (рдЬреЛ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЖрдк рдкреИрдорд╛рдиреЗ рдХреЗ z-рдШрдЯрдХ рдХреА рдЧрдгрдирд╛ рдХрд░рдирд╛ рдЫреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВ?) (PS: рдЗрдВрд╕реНрдЯреЗрдВрдЯ рд░реЗрдВрдбрд░рд┐рдВрдЧ рд╡рд░реНрдЯреЗрдХреНрд╕ рд╢реЗрдбрд░ рдХреЛрдб рдХреЛ рджреЗрдЦрддреЗ рд╣реБрдП, рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдХреЛрдИ рдЯреЗрдХреНрд╕реНрдЯ рдХреЛ рдШреБрдорд╛ рд╕рдХрддрд╛ рд╣реИ, рдЬрд┐рд╕ рд╕реНрдерд┐рддрд┐ рдореЗрдВ z рдШрдЯрдХ рд╢реВрдиреНрдп рдирд╣реАрдВ рд╣реЛрдЧрд╛)
  • рдкреНрд░рддреНрдпреЗрдХ рджрд┐рд╢рд╛ рдореЗрдВ рдкреИрдорд╛рдирд╛ рдЗрд╕ рдзрд╛рд░рдгрд╛ рдкрд░ рдкреБрдирдГ рдкреНрд░рд╛рдкреНрдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдХрд┐ 3x3 рдмреНрд▓реЙрдХ рдореЗрдВ рдХреЗрд╡рд▓ рд╕реНрдХреЗрд▓рд┐рдВрдЧ рдФрд░ рдШреБрдорд╛рд╡ рдХреА рдПрдХ рд╕рдВрд░рдЪрдирд╛ рд╣реЛрддреА рд╣реИред
  • рд╕реНрдХреЗрд▓ рдХрд┐рдпрд╛ рдЧрдпрд╛ position рдЬреЛрдбрд╝рд╛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рдпрджрд┐ z-рдШрдЯрдХ рд╢реВрдиреНрдп рд╣реИ, рддреЛ рдпрд╣ рдпреЛрдЧрджрд╛рди рдкреНрд░реЛрдЬреЗрдХреНрд╢рди рдкреНрд▓реЗрди рдХреЗ рд╕рдорд╛рдирд╛рдВрддрд░ рдПрдХ рдкреНрд▓реЗрди рдореЗрдВ рд╕реНрдерд┐рддрд┐ рдХреЛ рдмрдирд╛рдП рд░рдЦрддрд╛ рд╣реИред

рдореЗрд░реЗ рд▓рд┐рдП рдЗрд╕ рдХреЛрдб рдореЗрдВ рдХреЗрд╡рд▓ (1) рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░рд┐рд╡рд░реНрддрди рдЬреНрдпрд╛рджрд╛рддрд░ рд╕реНрдХреЗрд▓рд┐рдВрдЧ рдФрд░ рдПрдХ рдорд╛рдореВрд▓реА рд╕рдордиреНрд╡рдп рд╢рд┐рдлреНрдЯ рдореЗрдВ рд╣реЛрдВрдЧреЗ рддрд╛рдХрд┐ рдЯреЗрдХреНрд╕реНрдЯ рдореЗрд░реЗ рдкрд╛рд╕ рдореМрдЬреВрдж рдХреНрд╖реЗрддреНрд░ рд╕реЗ рдмрд╛рд╣рд░ рд░рд╣реЗред

рдЖрдк 2 рдХреЛ рднреА рд╕рдордЭ рдЧрдПред рд╣рд╛рд▓рд╛рдБрдХрд┐ рдореИрдВ рдХреЛрдб рдкрдврд╝рддреЗ рд╕рдордп рдереЛрдбрд╝рд╛ рднреНрд░рдорд┐рдд рд╣реВрдБред рдореБрдЭреЗ рдПрд╣рд╕рд╛рд╕ рдирд╣реАрдВ рд╣реБрдЖ рдерд╛ рдХрд┐ рдЯреЗрдХреНрд╕реНрдЯ рд░реЗрдВрдбрд░рд┐рдВрдЧ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЗрдВрд╕реНрдЯреЗрдВрд╕ рд░реЗрдВрдбрд░рд┐рдВрдЧ рд╣реИред рдореБрдЭреЗ рдЬреЛ рднреНрд░рдорд┐рдд рдХрд░рддрд╛ рд╣реИ рд╡рд╣ рдпрд╣ рд╣реИ рдХрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ GlyphsGeometry рд╣реИ рдЬреЛ InstancedBufferAttribute рд╕реЗ рдкреНрд░рд╛рдкреНрдд рд╣реЛрддрд╛ рд╣реИ рдФрд░ рдлрд┐рд░ рднреА Text Mesh рдХрд╛ рдЙрдкрд╡рд░реНрдЧ рд╣реИ рди рдХрд┐ InstancedMesh ред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдореБрдЭреЗ рддреАрди.рдЬреЗрдПрд╕ рдореЗрдВ рдЧрд╣рд░реА рдЦреБрджрд╛рдИ рдХрд░рдиреА рд╣реЛрдЧреАред
рдЕрдиреНрдпрдерд╛, рдпрд╣ рджреЗрдЦрддреЗ рд╣реБрдП рдХрд┐ рдкреНрд░рддреНрдпреЗрдХ рд╡рд░реНрдг рдХреЛ рдЗрдВрд╕реНрдЯреЗрдВрд╕ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдореБрдЭреЗ рдкреНрд░рддреНрдпреЗрдХ рдЧреНрд▓рд┐рдлрд╝ рдЗрдВрд╕реНрдЯреЗрдВрд╕ рдХреЗ рд▓рд┐рдП position рдСрдлрд╝рд╕реЗрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╡реЗрдХреНрдЯрд░ рдХреЗ рд╕рд╛рде рдХреЗрд╡рд▓ рдПрдХ рд╡рд┐рд╢реЗрд╖рддрд╛ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреАред рдХреНрдпрд╛ рд╡рд╣ рд╕рд╣реА рд╣реИ?

рдореБрдЭреЗ рдЗрд╕рд╕реЗ рдХреБрдЫ рд╕рдордп рдХреЗ рд▓рд┐рдП рджреВрд░ рдЬрд╛рдирд╛ рдкрдбрд╝рд╛, рд▓реЗрдХрд┐рди рдпрд╣рд╛рдВ рдПрдХ рддреНрд╡рд░рд┐рдд рд╕реНрдерд┐рддрд┐ рдЕрдкрдбреЗрдЯ рд╣реИ:

рдкреАрдЖрд░ #109 рд╡рд┐рднрд┐рдиреНрди рдЧрдгрдирд╛рдУрдВ рдХреЛ рдЗрдХрдЯреНрдард╛ рдХрд░рдиреЗ рдФрд░ рдЙрдЬрд╛рдЧрд░ рдХрд░рдиреЗ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ рдХрд╛рдлреА рдареЛрд╕ рд▓рдЧрддрд╛ рд╣реИред рдореИрдВ рдЙрдиреНрд╣реЗрдВ рдСрдкреНрдЯ-рдЗрди рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рд▓реЗрдХрд┐рди рдЕрдиреНрдпрдерд╛ рдореИрдВ рдЦреБрд╢ рд╣реВрдВ рдХрд┐ рдпрд╣ рдХрд╣рд╛рдВ рд╣реИред

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

  • рд╡рд░реНрддрдорд╛рди рдЧреНрд▓рд┐рдлрд╝ рдХреА рдХреНрд╡рд╛рдб рд╕реАрдорд╛
  • рдХреБрд▓ рдорд┐рд▓рд╛рдХрд░ рдмреНрд▓реЙрдХ рд╕реАрдорд╛
  • рдлрд╝реЙрдиреНрдЯ рдореАрдЯреНрд░рд┐рдХ рдЬрд╛рдирдХрд╛рд░реА рдЬреИрд╕реЗ рдмреЗрд╕рд▓рд╛рдЗрди/рдПрд╕реНрдХреЗрдВрдбрд░/рдЕрд╡рд░реЛрд╣реА рдЬреЛ рдХреНрд╡рд╛рдб рд╕реЗ рдЕрдиреБрдорд╛рди рдирд╣реАрдВ рд▓рдЧрд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ
  • рдЕрдиреНрдп?

рдЗрдирдореЗрдВ рд╕реЗ рдХреБрдЫ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рддрдХрдиреАрдХреА рд░реВрдк рд╕реЗ рд╢реЗрдбрд░ рдореЗрдВ рдореМрдЬреВрдж рд╣реИрдВ, рд▓реЗрдХрд┐рди рдпрджрд┐ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЙрди рдкрд░ рдирд┐рд░реНрднрд░ рд╣реЛрдиреЗ рдЬрд╛ рд░рд╣реЗ рд╣реИрдВ, рддреЛ рдЙрдиреНрд╣реЗрдВ рджреЛрд╕реНрддрд╛рдирд╛ рдирд╛рдореЛрдВ рдХреЗ рд╕рд╛рде рдЙрдЬрд╛рдЧрд░ рдХрд░рдиреЗ рдФрд░ рдПрдХ рд╡рд┐рд╢реНрд╡рд╕рдиреАрдп рдЕрдиреБрдмрдВрдз рдХреЗ рд░реВрдк рдореЗрдВ рдкреНрд░рд▓реЗрдЦрд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреАред

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

@lojjic рдмрд╕ рдЗрд╕ рд╕реБрд╡рд┐рдзрд╛ рдореЗрдВ рдЕрдкрдиреА рд░реБрдЪрд┐ рд╡реНрдпрдХреНрдд рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ

рдореИрдВрдиреЗ рдпрд╣рд╛рдВ рдирд╡реАрдирддрдо рдорд╛рд╕реНрдЯрд░ рдХреЗ рд╕рд╛рде рдХреБрдЫ рдорд░реНрдЬ рд╕рдВрдШрд░реНрд╖реЛрдВ рдХрд╛ рд╕рдорд╛рдзрд╛рди рдХрд┐рдпрд╛: https://github.com/canadaduane/troika/tree/char-indices

рдореБрдЭреЗ рдЕрднреА рддрдХ рдЗрд╕рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд░рдиреЗ рдХрд╛ рдореМрдХрд╛ рдирд╣реАрдВ рдорд┐рд▓рд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЕрдЧрд▓реЗ рдХреБрдЫ рджрд┐рдиреЛрдВ рдореЗрдВ рдЗрд╕рдХрд╛ рдЗрд░рд╛рджрд╛ рд╣реИред

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

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐, рдЬреИрд╕рд╛ рдХрд┐ @lojjic рдиреЗ рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рд╣реИ, рдореБрдЭреЗ рд╢рдмреНрджреЛрдВ рдкрд░ рдХреБрдЫ рд╕реАрдорд╛рдУрдВ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреАред рдпрд╛ рдХрдо рд╕реЗ рдХрдо, рдореЗрд░реЗ рдЙрдкрдпреЛрдЧ рдХреЗ рд▓рд┐рдП, рдкреНрд░рддреНрдпреЗрдХ рд╢рдмреНрдж рдХрд╛ рдХреЗрдВрджреНрд░ред
рдЗрд╕реЗ рдЕрдиреНрдпрдерд╛ рдХреИрд╕реЗ рдХрд░реЗрдВ рдпрд╛ рдЙрд╕ рдХреЗрдВрджреНрд░ рдХреЛ рдХреИрд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ, рдЗрд╕ рдкрд░ рдХреЛрдИ рдЕрдиреНрдп рд╕реБрдЭрд╛рд╡?

https://flightlog-beta.vercel.app/circles?route=BRU-HER-ATH-IST-AMM-CAI-TUN-CMN-RAK-MAD-LIS-ZRH-GVA-NCE-CDG-DUS-FRA- MUC-LHR-LCY-LGW-DUB-HBA-SYD-MEL-CNS-KTM-DEL-BLR-COK-MAA-CMB-MLE-HKG-HND-NRT-KIX-ICN-GMP-MNL-DPS-JOG- рд╕реАрдЬреАрдХреЗ-рд╕рд┐рди-рдХреБрд▓-рдкреЗрди-рдПрд▓рдЬреАрдХреЗ-рдмреАрдХреЗрдХреЗ-рдПрд╕рдЬреАрдПрди-рд╣рди-рдПрд▓рдкреАрдХреНрдпреВ-рд╕реАрдПрдирдПрдХреНрд╕-рджреЛрд╣-рдПрдпреВрдПрдЪ-рдбреАрдПрдХреНрд╕рдмреА-рдЬреЗрдПрдирдмреА-рд╕реАрдкреАрдЯреА-рдПрд▓рд╡реАрдЖрдИ-рдЬреЗрдбрдПрдирдЬреЗрдб-рдЬреЗрдЖрд░рдУ-рджрд╛рд░-рдПрд╕рдПрд╕рдПрдЪ-рдмрдб-рдУрдЯреАрдкреА-рдЖрдИрдкреАрд╕реА-рдПрд╕рд╕реАрдПрд▓-рдкреАрдПрдорд╕реА- GRU-EZE-GIG-BSB-LIM-LPB-BOG-PTY-SJO-SJU-CUN-ACA-MEX-MTY-JFK-BOS-PHL-DCA-IAD-BWI-CLT-ATL-MSP-MIA-DFW- DTW-ORD-IAH-COS-DEN-PHX-SAN-LAX-SJC-SFO-SEA-PDX-YVR-YYZ-YUL-LGA-EWR-ASP-BNE-AKL-CHC-ZQN-VIE-SJJ-VCE- MXP-FCO-BCN-PEK-PVG-HNL-OGG-KOA-HIJ-RGN-PBH-TIP-AMS-CPH-SLC-CVG-GSP-TPE-ULN-PNH-VTE-ABQ-BUF-MCO-HKT- рдПрдордбреАрдПрд▓-

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

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

drcmda picture drcmda  ┬╖  11рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

natarius picture natarius  ┬╖  14рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

atlmtw picture atlmtw  ┬╖  47рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

Ocelyn picture Ocelyn  ┬╖  13рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

asbjornlystrup picture asbjornlystrup  ┬╖  7рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ