WebGL рдХреЗ рд╕рд╛рде WebAssembly рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ 3D рдЧреЗрдо рд╡рд┐рдХрд╕рд┐рдд рдХрд░рдирд╛ рд╕рдВрднрд╡ рд╣реИ, рдпрджрд┐ рд╣рдо рд╕рд░рдгреА рдХреЛ рдХреЙрдкреА рдХрд┐рдП рдмрд┐рдирд╛ WebGL API рдХреЛ C++ рд╕рд░рдгреА рдкрд╛рд╕ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рд╣рдореЗрдВ рд╕рд░рдгреА рдбреЗрдЯрд╛ рдХреЛ WebGLRenderingContext.bufferData() рдкрд░ рдкрд╛рд╕ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдХреЗрд╡рд▓ JavaScript ArrayBuffer рдпрд╛ ArrayBufferView рдХреЛ рд╕реНрд╡реАрдХрд╛рд░ рдХрд░рддрд╛ рд╣реИред рдпрджрд┐ рдпрд╣ C++ array рдХреЛ рд╕реНрд╡реАрдХрд╛рд░ рдХрд░рддрд╛ рд╣реИ, рдпрд╛ рдпрджрд┐ рд╣рдо array рдбреЗрдЯрд╛ рдХреЛ рдХреЙрдкреА рдХрд┐рдП рдмрд┐рдирд╛ ArrayBufferView рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВ, рддреЛ рдпрд╣ рд╣рд▓ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред
рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╣реЛрд╕реНрдЯ рдмрд╛рдЗрдВрдбрд┐рдВрдЧ, рд╕рдВрджрд░реНрдн, рдФрд░/рдпрд╛ рдЬреАрд╕реА рдкреНрд░рд╕реНрддрд╛рд╡ WebAssembly рдЙрджрд╛рд╣рд░рдгреЛрдВ рдХреЛ рд╕реАрдзреЗ ArrayBufferViews рдмрдирд╛рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдВрдЧреЗ (рдЬрд┐рд╕реЗ рддрдм WebGL рдХреЛ рдкрд╛рд╕ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ)ред
рдпрд╣ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЖрдЬ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред WebGL рдлрд╝рдВрдХреНрд╢рди рдПрдХ ArrayBufferView рд╕реНрд╡реАрдХрд╛рд░ рдХрд░рддреЗ рд╣реИрдВ, рдФрд░ WebAssembly рдореЗрдореЛрд░реА рдкрд░ рдРрд╕рд╛ рджреГрд╢реНрдп рдмрдирд╛рдирд╛ рд╕рдВрднрд╡ рд╣реИред рдореВрд▓ рд░реВрдк рд╕реЗ рдЖрдк рдореЗрдореЛрд░реА рдХреЗ ArrayBuffer рдкрд░ рдПрдХ рдЯрд╛рдЗрдк рдХрд┐рдпрд╛ рд╣реБрдЖ рд╕рд░рдгреА рджреГрд╢реНрдп рдмрдирд╛рддреЗ рд╣реИрдВ, рдФрд░ рдлрд┐рд░ .subarray
рдХрд░рддреЗ рд╣реИрдВ ( рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП , emscripten GL рдмрд╛рдЗрдВрдбрд┐рдВрдЧ рдРрд╕рд╛ рдХрд░рддреЗ рд╣реИрдВ)ред
рдпрд╣ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ рдЕрдЧрд░ рдбреЗрдЯрд╛ рд╕реНрдореГрддрд┐ рдореЗрдВ рд╕рдкрд╛рдЯ рд╣реИред C рд╕рд░рдгреА рдпрд╛ C++ std::vector
рдХреЗ рд▓рд┐рдП рдпрд╣реА рд╕реНрдерд┐рддрд┐ рд╣реИред рддреЛ рд╡реЗрдмрдЬреАрдПрд▓ рдХреЛ рд╕реА ++ рд╕рд░рдгреА рднреЗрдЬрдирд╛ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЬреНрдпрд╛рджрд╛рддрд░ рдорд╛рдорд▓реЛрдВ рдореЗрдВ рдЪреАрдЬреЗрдВ рдЖрдЬ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддреА рд╣реИрдВред
рдпрд╣ рдЬреЗрдПрд╕ рдПрдЯреАрдПрдо рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЬрд╛рдиреЗ рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИ, рдЬреИрд╕рд╛ рдХрд┐ рдкрд╣рд▓реЗ рд╕реЗ рдЙрд╕ рд▓рд┐рдВрдХ рдореЗрдВ рдерд╛ред рд▓реЗрдХрд┐рди рд╡рд╣рд╛рдВ рдХреЛрдИ рдХреЙрдкреА рдирд╣реАрдВ рдмрдирд╛рдИ рдЬрд╛рддреА рд╣реИ! (рдЬреЗрдПрд╕ рдХреЛ рдЫреЛрдбрд╝рдирд╛ рднреА рдПрдХ рдЕрд▓рдЧ рдорд╛рдорд▓реЗ рдХреЗ рд░реВрдк рдореЗрдВ рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛, рдФрд░ рд╣рд╛рдВ, рдирдП рдЪрд╢реНрдореЗ рдЗрд╕рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдВрдЧреЗ, рдЬреИрд╕реЗ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдкреНрд░рдХрд╛рд░, рдЬреИрд╕рд╛ рдХрд┐ @Macil рдиреЗ рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рд╣реИред)
рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЪрд┐рдВрддрд╛ рдХрд╛ рдЙрддреНрддрд░ рджрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рдЗрд╕рд▓рд┐рдП рдмрдВрдж рд╣реЛ рд░рд╣рд╛ рд╣реИред рдХреГрдкрдпрд╛ рдЕрдиреНрдпрдерд╛ рдлрд┐рд░ рд╕реЗ рдЦреЛрд▓реЗрдВред
рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА
рдпрд╣ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЖрдЬ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред WebGL рдлрд╝рдВрдХреНрд╢рди рдПрдХ ArrayBufferView рд╕реНрд╡реАрдХрд╛рд░ рдХрд░рддреЗ рд╣реИрдВ, рдФрд░ WebAssembly рдореЗрдореЛрд░реА рдкрд░ рдРрд╕рд╛ рджреГрд╢реНрдп рдмрдирд╛рдирд╛ рд╕рдВрднрд╡ рд╣реИред рдореВрд▓ рд░реВрдк рд╕реЗ рдЖрдк рдореЗрдореЛрд░реА рдХреЗ ArrayBuffer рдкрд░ рдПрдХ рдЯрд╛рдЗрдк рдХрд┐рдпрд╛ рд╣реБрдЖ рд╕рд░рдгреА рджреГрд╢реНрдп рдмрдирд╛рддреЗ рд╣реИрдВ, рдФрд░ рдлрд┐рд░
.subarray
рдХрд░рддреЗ рд╣реИрдВ ( рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП , emscripten GL рдмрд╛рдЗрдВрдбрд┐рдВрдЧ рдРрд╕рд╛ рдХрд░рддреЗ рд╣реИрдВ)редрдпрд╣ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ рдЕрдЧрд░ рдбреЗрдЯрд╛ рд╕реНрдореГрддрд┐ рдореЗрдВ рд╕рдкрд╛рдЯ рд╣реИред C рд╕рд░рдгреА рдпрд╛ C++
std::vector
рдХреЗ рд▓рд┐рдП рдпрд╣реА рд╕реНрдерд┐рддрд┐ рд╣реИред рддреЛ рд╡реЗрдмрдЬреАрдПрд▓ рдХреЛ рд╕реА ++ рд╕рд░рдгреА рднреЗрдЬрдирд╛ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЬреНрдпрд╛рджрд╛рддрд░ рдорд╛рдорд▓реЛрдВ рдореЗрдВ рдЪреАрдЬреЗрдВ рдЖрдЬ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддреА рд╣реИрдВредрдпрд╣ рдЬреЗрдПрд╕ рдПрдЯреАрдПрдо рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЬрд╛рдиреЗ рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИ, рдЬреИрд╕рд╛ рдХрд┐ рдкрд╣рд▓реЗ рд╕реЗ рдЙрд╕ рд▓рд┐рдВрдХ рдореЗрдВ рдерд╛ред рд▓реЗрдХрд┐рди рд╡рд╣рд╛рдВ рдХреЛрдИ рдХреЙрдкреА рдирд╣реАрдВ рдмрдирд╛рдИ рдЬрд╛рддреА рд╣реИ! (рдЬреЗрдПрд╕ рдХреЛ рдЫреЛрдбрд╝рдирд╛ рднреА рдПрдХ рдЕрд▓рдЧ рдорд╛рдорд▓реЗ рдХреЗ рд░реВрдк рдореЗрдВ рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛, рдФрд░ рд╣рд╛рдВ, рдирдП рдЪрд╢реНрдореЗ рдЗрд╕рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдВрдЧреЗ, рдЬреИрд╕реЗ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдкреНрд░рдХрд╛рд░, рдЬреИрд╕рд╛ рдХрд┐ @Macil рдиреЗ рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рд╣реИред)