Three.js: рдлрд╝реАрдЪрд░ рдЕрдиреБрд░реЛрдз: рд╕реНрдерд╛рдирд┐рдХ рдЦреЛрдЬ рдкреЗрдбрд╝реЛрдВ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд░реЗрдХрд╛рд╕реНрдЯрд░ рдЯрдХрд░рд╛рд╡ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХреЗ рдкреНрд░рджрд░реНрд╢рди рдХреЛ рдмрдврд╝рд╛рдПрдБ

рдХреЛ рдирд┐рд░реНрдорд┐рдд 11 рджрд┐рд╕ре░ 2017  ┬╖  36рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: mrdoob/three.js

рдореИрдВрдиреЗ рд╡реЗрдмрд╡реАрдЖрд░-рд╡рд┐рд╡реЗ-рдбреНрд░реИрдЧрд┐рдВрдЧ рдХреЗ рд╕рдорд╛рди рдПрдХ рд╡реАрдЖрд░ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдмрдирд╛рдпрд╛ рд╣реИ рдЬреЛ рд╡реАрдЖрд░ рдирд┐рдпрдВрддреНрд░рдХреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХрдИ 3 рдбреА рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕ рдХреЗ рд╕рд╛рде рдмрд╛рддрдЪреАрдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХрд┐рд╕реА рд╡рд╕реНрддреБ рдХреЛ VR рдирд┐рдпрдВрддреНрд░рдХ рд╕реЗ рдкрдХрдбрд╝ рд╕рдХрддрд╛ рд╣реИ рдФрд░ рдЙрд╕реЗ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдпрд╛ рд╕реНрдХреЗрд▓ рдХрд░ рд╕рдХрддрд╛ рд╣реИред

рд╕рдорд╕реНрдпрд╛ : рдЬрдм рджреГрд╢реНрдп рдореЗрдВ рдЬрдЯрд┐рд▓ 3рдбреА рдСрдмреНрдЬреЗрдХреНрдЯ рд╣реЛрддреЗ рд╣реИрдВ, рдпрд╛рдиреА THREE.Mesh рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕ рдЬрд┐рд╕рдореЗрдВ рдмрд╣реБрдд рдмрдбрд╝реА рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рдЬреНрдпрд╛рдорд┐рддрд┐ рд╣реЛрддреА рд╣реИрдВ, рддреЛ рдЯрдХрд░рд╛рд╡ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХреЗ рджреМрд░рд╛рди рд░реЗрдХрд╛рд╕реНрдЯрд┐рдВрдЧ рдмрд╣реБрдд рдзреАрдореА рд╣реЛ рдЬрд╛рддреА рд╣реИред рдЗрд╕рд▓рд┐рдП, рд╕рдорд╕реНрдпрд╛ рдПрдХ рд╡рд╕реНрддреБ рдХреА рдЬреНрдпрд╛рдорд┐рддрд┐ рдХреА рдЬрдЯрд┐рд▓рддрд╛ рд╣реИред

рддреЗрдЬреА рд╕реЗ рд╕реНрдерд╛рдирд┐рдХ рдЦреЛрдЬ рдХреЗ рд▓рд┐рдП рдЯреНрд░реА рдбреЗрдЯрд╛ рд╕рдВрд░рдЪрдирд╛рдПрдВ рд╣реИрдВ, рдЬреИрд╕реЗ рдСрдХреНрдЯреНрд░реА рдпрд╛ рдЖрд░-рдЯреНрд░реА ред рдореБрдЭреЗ рдереНрд░реАрдСрдХреНрдЯреНрд░реА рдорд┐рд▓рд╛ рд╣реИ рдЬреЛ рдПрдХ рдЬреНрдпрд╛рдорд┐рддрд┐ рдХреЛ рдЫреЛрдЯреЗ рдЯреБрдХрдбрд╝реЛрдВ рдореЗрдВ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ рд▓реЗрдХрд┐рди рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдереЛрдбрд╝рд╛ рдкреБрд░рд╛рдирд╛ рд╣реИ (Three.js r60)ред

рдЬрд╣рд╛рдВ рддрдХ тАЛтАЛтАЛтАЛрдореИрдВ рджреЗрдЦрддрд╛ рд╣реВрдВ, THREE.Mesh рдСрдмреНрдЬреЗрдХреНрдЯ рдХреА raycast рд╡рд┐рдзрд┐ рдореЗрдВ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдХреБрдЫ рдкреНрд░рджрд░реНрд╢рди рдЕрдиреБрдХреВрд▓рди рд╣реИрдВ (рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд░реЗрдХрд╛рд╕реНрдЯ рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдмрд╛рдЙрдВрдбрд┐рдВрдЧ рдмреЙрдХреНрд╕ рдФрд░ рдХреНрд╖реЗрддреНрд░ рдХреА рдЬрд╛рдВрдЪ рдХрд░рдирд╛)ред рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рд╕реНрдерд╛рдирд┐рдХ рдЦреЛрдЬ рдкреЗрдбрд╝реЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЗрд╕ рддрд░рд╣ рдХреЗ рдПрдХ рдФрд░ рдЪреЗрдХ рдЪрд░рдг рдХрд╛ рдХреЛрдИ рдорддрд▓рдм рд╣реЛ ?! рддреБрдо рдХреНрдпрд╛ рд╕реЛрдЪрддреЗ рд╣реЛ?

рд╕рдзрдиреНрдпрд╡рд╛рдж

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

рдореИрдВрдиреЗ рдЕрддреАрдд рдореЗрдВ рд╕реНрдерд╛рдирд┐рдХ рд╕реВрдЪрдХрд╛рдВрдХ рдХреЛ рддреАрдиjs рдореЗрдВ рд╢рд╛рдорд┐рд▓ рдХрд░рдиреЗ рдХрд╛ рд╕реБрдЭрд╛рд╡ рджрд┐рдпрд╛ рд╣реИред рдЗрд╕ рджрд┐рд╢рд╛ рдореЗрдВ рдХреБрдЫ рдХрд╛рдо рд╣реБрдП рд╣реИрдВ, рдФрд░ рдореМрдЬреВрджрд╛ рдСрдХреНрдЯрд╛-рдЯреНрд░реА рдЙрджрд╛рд╣рд░рдг рдЙрдирдореЗрдВ рд╕реЗ рдПрдХ рд╣реИред рдЕрдВрддрддрдГ, рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рддреАрди рдореЗрдВ рдкреНрд░рдердо рд╢реНрд░реЗрдгреА рдХреЗ рдирд╛рдЧрд░рд┐рдХ рдХреЗ рд░реВрдк рдореЗрдВ рдЗрд╕ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХреЗ рд╕рдВрдмрдВрдз рдореЗрдВ рдореВрд▓ рд╕рдореБрджрд╛рдп рд╕реЗ рд░реБрдЪрд┐ рдХреА рдХрдореА рд╣реИред

рдореБрдЭреЗ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЗ рд▓рд┐рдП рдЕрдкрдирд╛ рдмреАрд╡реАрдПрдЪ рдХреЛрдб рджрд╛рди рдХрд░рдиреЗ рдореЗрдВ рдЦреБрд╢реА рд╣реЛрдЧреА, рдЕрдЧрд░ рдкрд░реНрдпрд╛рдкреНрдд рд░реБрдЪрд┐ рдФрд░ рдЗрд╕реЗ рдореБрдЦреНрдп рд╡рд┐рддрд░рдг рдореЗрдВ рд╢рд╛рдорд┐рд▓ рдХрд░рдиреЗ рдХрд╛ рдЗрд░рд╛рджрд╛ рд╣реИ (рдЙрджрд╛рд╣рд░рдг рдирд╣реАрдВ)ред
рдореЗрд░рд╛ рдХреЛрдб 2 рдкрд╣рд▓реБрдУрдВ рдкрд░ рдХреЗрдВрджреНрд░рд┐рдд рд╣реИ:

  • рдЧрддрд┐рд╢реАрд▓ рджреГрд╢реНрдп

    • рддреЗрдЬреА рд╕реЗ рдбрд╛рд▓реЗрдВ

    • рддреЗрдЬреА рд╕реЗ рд╣рдЯрд╛рдирд╛

    • рд░реАрдлрд┐рдЯрд┐рдВрдЧ (рдиреЛрдбреНрд╕ рдХреЛ рдлрд┐рд░ рд╕реЗ рдбрд╛рд▓реЗ рдмрд┐рдирд╛ рдЖрдХрд╛рд░ рдмрджрд▓рдиреЗ рдХреА рдХреНрд╖рдорддрд╛)

  • рдХреНрд╡реЗрд░реА рдЧрддрд┐

рдореЗрд░реЗ рдкрд╛рд╕ 2 рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд╣реИрдВ:

  • рдмрд╛рдЗрдирд░реАрдмреАрд╡реАрдПрдЪ

    • рдмрд╛рдЗрдЯрдмрдлрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдмрд╣реБрдд рдХреЙрдореНрдкреИрдХреНрдЯ

    • DataView рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ UintX рдФрд░ FloatX рдкреНрд░рдХрд╛рд░реЛрдВ рдХрд╛ рдорд┐рд╢реНрд░рдг

    • рдХреНрд░рдорд╛рдВрдХрди рдХреЗ рд▓рд┐рдП рдмрдврд╝рд┐рдпрд╛

    • lzma рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдЬреИрд╕реЗ рдорд╛рдирдХ рдЙрдкрдХрд░рдгреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╕рдВрдкреАрдбрд╝рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ

    • рдЕрдбрд┐рдЧ

    • рдирд┐рд░реНрдорд╛рдг рдЧрддрд┐ рдЕрддреНрдпрдзрд┐рдХ рдЕрдиреБрдХреВрд▓рд┐рдд рд╣реИ

    • рдХреЗрд╡рд▓ BufferGeometry рдХреЗ рд▓рд┐рдП рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ

    • рдПрд╕рдПрдПрдЪ рдЕрдиреБрдХреВрд▓рди

    • рдХрд┐рд░рдг рдкреНрд░рд╢реНрди

  • рдмреАрд╡реАрдПрдЪ

    • рдСрдмреНрдЬреЗрдХреНрдЯ рдЯреНрд░реА, рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк рдмрд╛рдЗрдирд░реА рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд╕реЗ рдмрд╣реБрдд рдмрдбрд╝рд╛ рд╣реИ

    • рдкрд░рд┐рд╡рд░реНрддрдирд╢реАрд▓

    • рдлрд╛рд╕реНрдЯ рдмрд▓реНрдХ рдЗрдВрд╕рд░реНрдЯ

    • рдлрд╛рд╕реНрдЯ рд╕рд┐рдВрдЧрд▓ рдЖрдЗрдЯрдо рдЗрдВрд╕рд░реНрдЯ

    • рд╕рд╛рдЬреЛрд╕рд╛рдорд╛рди

    • рд╕реНрдЯреИрдХ, рд░рд┐рдХрд░реНрд╕рд┐рд╡ рдФрд░ рд╕реНрдЯреИрдХ-рдХрдо рдЯреНрд░реИрд╡рд░реНрд╕рд▓ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди (рд╡рд┐рднрд┐рдиреНрди рдкреНрд░рджрд░реНрд╢рди рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ)

    • рдПрд╕рдПрдПрдЪ рдЕрдиреБрдХреВрд▓рди

    • рдХреБрдВрдард╛ рд╕рдВрдмрдВрдзреА рдкреНрд░рд╢реНрди

    • рд░реЗ рдкреНрд░рд╢реНрди

рд╡реНрдпрдХреНрддрд┐рдЧрдд рд░реВрдк рд╕реЗ, рдореИрдВ рдПрдХ рд╕реНрдерд╛рдирд┐рдХ рд╕реВрдЪрдХрд╛рдВрдХ рдХреЗ рдмрд┐рдирд╛ рдирд╣реАрдВ рд░рд╣ рд╕рдХрддрд╛, рдпрд╣ n ^ 2 рдФрд░ рд▓реЙрдЧ (n) рдкреНрд░рджрд░реНрд╢рди рдХреЗ рдмреАрдЪ рдХрд╛ рдЕрдВрддрд░ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдореЗрд░реА рд╡рд░реНрддрдорд╛рди рдкрд░рд┐рдпреЛрдЬрдирд╛ рдореЗрдВ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рднрд╛рдЧ рд╕реНрдерд╛рдирд┐рдХ рд╕реВрдЪрдХрд╛рдВрдХ рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддреЗ рд╣реИрдВ:

  • рдкрд░реНрдг рдкреНрд░рдгрд╛рд▓реА (рдкреЗрдбрд╝, рдлреВрд▓, рдЭрд╛рдбрд╝рд┐рдпрд╛рдБ рдЖрджрд┐)
  • рд╕рднреА рдСрдмреНрдЬреЗрдХреНрдЯ рдкреНрд▓реЗрд╕рдореЗрдВрдЯ (рдЕрдХреНрд╖рд░ рдФрд░ рдШрд░)
  • рдкрд┐рдХрд┐рдВрдЧ (рдЗрдВрдЯрд░реИрдХреНрд╢рди рдореЗрдВ рдкреНрд░рдпреБрдХреНрдд, рдЬреИрд╕реЗ рдорд╛рдЙрд╕ рдХреНрд▓рд┐рдХ)

http://server1.lazy-kitty.com/komrade

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

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

рд╕реНрдкрд╖реНрдЯ рдмрддрд╛рдиреЗ рдХреЗ рдЬреЛрдЦрд┐рдо рдкрд░, рд▓реЗрдХрд┐рди рдХреНрдпрд╛ рдЖрдкрдиреЗ threeocttree рдХреЗ рд╕рдВрд╕реНрдХрд░рдг рдХреА рдХреЛрд╢рд┐рд╢ рдХреА рд╣реИ рдЬреЛ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд░реЗрдкреЛ ( рдЙрджрд╛рд╣рд░рдг/js/Octree.js ) рдореЗрдВ рд╣реИ?

рдореИрдВ three.js рдореЗрдВ рд╕реНрдерд╛рдирд┐рдХ рдЦреЛрдЬ рдЯреНрд░реА рдХреЗ рд╣рд╛рд░реНрдб-рд╡рд╛рдпрд░реНрдб рдЙрдкрдпреЛрдЧ рдХреЗ рд▓рд┐рдП рд╡реЛрдЯ рдирд╣реАрдВ рдХрд░рддрд╛ред рдЗрд╕ рддрд░рд╣ рдХреЗ рдПрд▓реНрдЧреЛрд░рд┐рджрдо рдХреА рдУрд╡рд░рд╣реЗрдб/рдЬрдЯрд┐рд▓рддрд╛ рдХрдИ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдореЗрдВ рдкреНрд░рджрд░реНрд╢рди рд▓рд╛рдн рдХреЛ рдмрдврд╝рд╛ рджреЗрддреА рд╣реИред

рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд░реЗрдХрд╛рд╕реНрдЯ рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдмрд╛рдЙрдВрдбрд┐рдВрдЧ рдмреЙрдХреНрд╕ рдФрд░ рдЧреЛрд▓реЗ рдХреА рдЬрд╛рдБрдЪ рдХрд░рдирд╛

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

рдирдорд╕реНрддреЗ рдФрд░ рдЖрдкрдХреЗ рдЙрддреНрддрд░реЛрдВ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж,
@ Mugen87 рдореИрдВ рдорд╛рдирддрд╛ рд╣реВрдВ рдХрд┐ рдХрдИ рдЙрдкрдпреЛрдЧ рдХреЗ рдорд╛рдорд▓реЛрдВ рдореЗрдВ рдЗрддрдиреА рддреЗрдЬ рдЦреЛрдЬреЛрдВ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реЛрддреА рд╣реИред рд╣рд╛рд▓рд╛рдБрдХрд┐, 3D рд╡рд╕реНрддреБрдУрдВ рдХреЗ рд╕рд╛рде рдмрд╛рддрдЪреАрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рддрдВрддреНрд░ рд╣реЛрдирд╛ (рдФрд░ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣реА рд╡рд╣ рдорд╛рдорд▓рд╛ рд╣реИ рдЬрд┐рд╕рдХреЗ рд▓рд┐рдП рдЗрд╕рдХрд╛ рдЬреНрдпрд╛рджрд╛рддрд░ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ), THREE.Raycaster рдкрд╣рд▓реЗ рдмрд╛рдЙрдВрдбрд┐рдВрдЧ рдмреЙрдХреНрд╕/рдХреНрд╖реЗрддреНрд░ рдХреА рдЬрд╛рдБрдЪ рд╕реЗ рдХрджрдо (рдЬреЛ рдореИрдВ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЙрдЪрд┐рдд рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП рд╕рд╣рдордд рд╣реВрдБ) ) рдорд╛рди рд▓реЗрдВ рдХрд┐ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд░реЗрдХрд╛рд╕реНрдЯ рдХрд░рддреЗ рд╕рдордп рдПрдХ рд░реИрдЦрд┐рдХ рд╕рдордп рдкреНрд░рдпрд╛рд╕ рдХреЗ рд▓рд┐рдП рдирд┐рд░рдВрддрд░ рд╕рдордп рдХрд╛рдлреА рдмрдбрд╝рд╛ рд╣реЛрддрд╛ рд╣реИред рдореИрдВ рдПрдХ рд╡реИрд╢реНрд╡рд┐рдХ рдЦреЛрдЬ рдкреЗрдбрд╝ рдХреЗ рдмрдЬрд╛рдп "рдкреНрд░рддрд┐-рдЬреНрдпрд╛рдорд┐рддрд┐-рдЦреЛрдЬ рдкреЗрдбрд╝" рдХреА рдХрд▓реНрдкрдирд╛ рдХрд░ рд╕рдХрддрд╛ рдерд╛ред рдЬрдм рддрдХ рдЬреНрдпрд╛рдорд┐рддрд┐ рдирд╣реАрдВ рдмрджрд▓рддреА (рдХрдИ рдмрд╛рд░ рдкрд░рд┐рд╡рд░реНрддрди рдЬреНрдпрд╛рдорд┐рддрд┐ рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдмрд╣реБрдд рдЕрдзрд┐рдХ рд╣реЛрдиреЗ рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рд╣реЛрддреА рд╣реИ) рдЦреЛрдЬ рдЯреНрд░реА рдХреЛ рдЕрджреНрдпрддрди рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реЛрддреА рд╣реИред

рдЗрд╕рд▓рд┐рдП рдореИрдВрдиреЗ рд╕реЛрдЪрд╛, рд╕реНрдерд╛рдирд┐рдХ рдЦреЛрдЬ рдЯреНрд░реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдХрд╛ рдЕрдиреБрдХреВрд▓рди three.js рдХрд╛ рдЕрдзрд┐рдХ рдЕрднрд┐рдиреНрди рдЕрдВрдЧ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рд▓реЗрдХрд┐рди рдореИрдВ рдпрд╣ рднреА рд╕рдордЭрддрд╛ рд╣реВрдВ рдХрд┐ рдпрд╣ рдЕрддрд┐рд░рд┐рдХреНрдд рдЬрдЯрд┐рд▓рддрд╛ рдФрд░ рдЙрдкрд░рд┐ рдХрд╛ рдХрд╛рд░рдг рдмрдирддрд╛ рд╣реИред

@moraxy рдореИрдВ рдЙрджрд╛рд╣рд░рдг рд╕рдВрд╕реНрдХрд░рдг рдкрд░ рдПрдХ рдирдЬрд╝рд░ рдбрд╛рд▓реЗрдЧрд╛ред рдореИрдВ рд╕рд┐рд░реНрдл рдпрд╣ рдЬрд╛рдирдирд╛ рдЪрд╛рд╣рддрд╛ рдерд╛ рдХрд┐ рдХреНрдпрд╛ рдРрд╕реА рд╕реБрд╡рд┐рдзрд╛ рдХрд╛ рдХреЛрдИ рдорддрд▓рдм рд╣реЛрдЧрд╛ред

рдкреБрдирдГ рдзрдиреНрдпрд╡рд╛рдж рдПрд╡рдВ рд╕рд╛рджрд░ рдкреНрд░рдгрд╛рдо

рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдПрдХ рд╕рд░рд▓ рдЦреЛрдЬ рдЯреНрд░реА рдХреЛ THREE.BufferGeometry рдореЗрдВ рдПрдХреАрдХреГрдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХреЗред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП computeBoundingBox рдкрд░ рдХреЙрд▓ рдХрд░рдиреЗ рд╕реЗ рдПрдХ рдкреНрд░рдХрд╛рд░ рдХрд╛ рдХреЗрд╡рд▓-рдкрдврд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдЦреЛрдЬ рдЯреНрд░реА рднреА рдмрди рд╕рдХрддрд╛ рд╣реИ рдЬреЛ рд╕рдВрдмрдВрдзрд┐рдд рд╢реАрд░реНрд╖реЛрдВ рдХреЛ рд╕рдВрджрд░реНрднрд┐рдд рдХрд░рддрд╛ рд╣реИред рдЪреВрдВрдХрд┐ THREE.BufferGeometry рд╣реИ

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

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

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

рдПрдлрдбрдмреНрд▓реНрдпреВрдЖрдИрдбрдмреНрд▓реНрдпреВ, рдореБрдЭреЗ рд╡рд┐рд╢реНрд╡рд╛рд╕ рдирд╣реАрдВ рд╣реИ рдХрд┐ рдпрд╣ рдПрдХ рд╕рддреНрдп рдХрдерди рд╣реИред

@WestLangley рдЙрджреНрдзрд░рдг THREE.BufferGeometry рдкреНрд░рд▓реЗрдЦрди рд╕реЗ

рддреАрди.рдмрдлрд╝рд░ рдЬреНрдпрд╛рдорд┐рддрд┐ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝реАрдХрд░рдг

рдЗрд╕реЗ рд╢рд╛рдпрдж рд╣рдЯрд╛ рджрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП - рдХрд┐рд╕реА рднреА рдорд╛рдорд▓реЗ рдореЗрдВ, рдореБрдЭреЗ рдирд╣реАрдВ рд▓рдЧрддрд╛ рдХрд┐ рдЗрд╕рдХрд╛ рдорддрд▓рдм рдХрд┐рд╕реА рднреА рдкреНрд░рдХрд╛рд░ рдХреЗ рддрдХрдиреАрдХреА рдХрдерди рдХреЗ рд░реВрдк рдореЗрдВ рд╣реИ, рдмрд▓реНрдХрд┐ рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рд▓рд┐рдП рдЬреНрдпрд╛рдорд┐рддрд┐ рдореЗрдВ рд╣реЗрд░рдлреЗрд░ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж рдЗрд╕реЗ рдмрдирд╛рдирд╛ рдореБрд╢реНрдХрд┐рд▓ рд╣реИред

рдЗрд╕реЗ рд╢рд╛рдпрдж рд╣рдЯрд╛ рджрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП

рд╕рдмрд╕реЗ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗред

рдореИрдВрдиреЗ рдЕрднреА PlaneBufferGeometry рдкрд░ рд░реЗрдХрд╛рд╕реНрдЯрд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рдПрдХ рдмреЗрд╣рддрд░ рддрд░реАрдХрд╛ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рд╣реИред рдореИрдВ рджреВрд░ рдкреИрд░рд╛рдореАрдЯрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВ рдФрд░ рдкрд╣рд▓реА рдФрд░ рдЖрдЦрд┐рд░реА рдЗрдВрдбреЗрдХреНрд╕ рд╕реНрдерд┐рддрд┐ рдвреВрдВрдврддрд╛ рд╣реВрдВред рдпрд╣ рдкреНрд▓реЗрдирдмрдлрд░ рдореЗрдВ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рд╕реВрдЪрдХрд╛рдВрдХ рд╕рд░рдгреА x/y рдХреНрд░рдо рдореЗрдВ рд╣реИред рдПрдХ рдмрд╛рд░ рдПрдХреНрд╕/рд╡рд╛рдИ рдмрд╛рдЙрдВрдбрд┐рдВрдЧ рдмреЙрдХреНрд╕ рдХреЗ рдмрд╛рд╣рд░ рд╕рднреА рдЯрдХрд░рд╛рд╡ рджреВрд░ рд╕реАрдорд╛ рд╕реЗ рдмрд╛рд╣рд░ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рдХрд╣реАрдВ рдРрд╕рд╛ рдХрд░рдиреЗ рдХреА рдХреЛрдИ рдЗрдЪреНрдЫрд╛ рддреЛ рдирд╣реАрдВ рд╣реИ? рд╡рд░реНрддрдорд╛рди рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдореЗрд░реЗ рдЙрдкрдпреЛрдЧ рдХреЗ рдорд╛рдорд▓реЗ рдХреЗ рд▓рд┐рдП рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╣реИ рд▓реЗрдХрд┐рди рдЕрдЧрд░ рд╡рд╛рдВрдЫрд┐рдд рд╣реИ рддреЛ рдореИрдВ рдХреЛрд╢рд┐рд╢ рдХрд░рдиреЗ рдФрд░ рдЕрдзрд┐рдХ рд╕рд╛рдорд╛рдиреНрдп рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рд╣реВрдВред рдореИрдВ рдПрдХ рдмрдбрд╝реЗ рд╡рд┐рдорд╛рди рдмрдлрд░ (2.5 рд╕реЗрдХрдВрдб рд╕реЗ 10ms) рдкрд░ рдЕрдкрдиреЗ рд░реЗрдХрд╛рд╕реНрдЯрд┐рдВрдЧ рдкреНрд░рджрд░реНрд╢рди рдХреЛ рдХрд╛рдлреА рдХрдо рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдерд╛ред

@kpetrow рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рддреАрди.рдЬреЗрдПрд╕ рдСрдХреНрдЯреНрд░реА рдЙрджрд╛рд╣рд░рдг рдкрд░реНрдпрд╛рдкреНрдд рд╣реИрдВред рдЖрдк рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ GitHub рдкрд░ рдЕрдкрдирд╛ рдХреЛрдб рд╕рд╛рдЭрд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реНрд╡рддрдВрддреНрд░ рд╣реИрдВ рдпрджрд┐ рдЖрдкрдХреЛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рджреВрд╕рд░реЛрдВ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧреА рд╣реЛрдЧрд╛ред

рдореИрдВрдиреЗ рдЕрддреАрдд рдореЗрдВ рд╕реНрдерд╛рдирд┐рдХ рд╕реВрдЪрдХрд╛рдВрдХ рдХреЛ рддреАрдиjs рдореЗрдВ рд╢рд╛рдорд┐рд▓ рдХрд░рдиреЗ рдХрд╛ рд╕реБрдЭрд╛рд╡ рджрд┐рдпрд╛ рд╣реИред рдЗрд╕ рджрд┐рд╢рд╛ рдореЗрдВ рдХреБрдЫ рдХрд╛рдо рд╣реБрдП рд╣реИрдВ, рдФрд░ рдореМрдЬреВрджрд╛ рдСрдХреНрдЯрд╛-рдЯреНрд░реА рдЙрджрд╛рд╣рд░рдг рдЙрдирдореЗрдВ рд╕реЗ рдПрдХ рд╣реИред рдЕрдВрддрддрдГ, рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рддреАрди рдореЗрдВ рдкреНрд░рдердо рд╢реНрд░реЗрдгреА рдХреЗ рдирд╛рдЧрд░рд┐рдХ рдХреЗ рд░реВрдк рдореЗрдВ рдЗрд╕ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХреЗ рд╕рдВрдмрдВрдз рдореЗрдВ рдореВрд▓ рд╕рдореБрджрд╛рдп рд╕реЗ рд░реБрдЪрд┐ рдХреА рдХрдореА рд╣реИред

рдореБрдЭреЗ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЗ рд▓рд┐рдП рдЕрдкрдирд╛ рдмреАрд╡реАрдПрдЪ рдХреЛрдб рджрд╛рди рдХрд░рдиреЗ рдореЗрдВ рдЦреБрд╢реА рд╣реЛрдЧреА, рдЕрдЧрд░ рдкрд░реНрдпрд╛рдкреНрдд рд░реБрдЪрд┐ рдФрд░ рдЗрд╕реЗ рдореБрдЦреНрдп рд╡рд┐рддрд░рдг рдореЗрдВ рд╢рд╛рдорд┐рд▓ рдХрд░рдиреЗ рдХрд╛ рдЗрд░рд╛рджрд╛ рд╣реИ (рдЙрджрд╛рд╣рд░рдг рдирд╣реАрдВ)ред
рдореЗрд░рд╛ рдХреЛрдб 2 рдкрд╣рд▓реБрдУрдВ рдкрд░ рдХреЗрдВрджреНрд░рд┐рдд рд╣реИ:

  • рдЧрддрд┐рд╢реАрд▓ рджреГрд╢реНрдп

    • рддреЗрдЬреА рд╕реЗ рдбрд╛рд▓реЗрдВ

    • рддреЗрдЬреА рд╕реЗ рд╣рдЯрд╛рдирд╛

    • рд░реАрдлрд┐рдЯрд┐рдВрдЧ (рдиреЛрдбреНрд╕ рдХреЛ рдлрд┐рд░ рд╕реЗ рдбрд╛рд▓реЗ рдмрд┐рдирд╛ рдЖрдХрд╛рд░ рдмрджрд▓рдиреЗ рдХреА рдХреНрд╖рдорддрд╛)

  • рдХреНрд╡реЗрд░реА рдЧрддрд┐

рдореЗрд░реЗ рдкрд╛рд╕ 2 рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд╣реИрдВ:

  • рдмрд╛рдЗрдирд░реАрдмреАрд╡реАрдПрдЪ

    • рдмрд╛рдЗрдЯрдмрдлрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдмрд╣реБрдд рдХреЙрдореНрдкреИрдХреНрдЯ

    • DataView рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ UintX рдФрд░ FloatX рдкреНрд░рдХрд╛рд░реЛрдВ рдХрд╛ рдорд┐рд╢реНрд░рдг

    • рдХреНрд░рдорд╛рдВрдХрди рдХреЗ рд▓рд┐рдП рдмрдврд╝рд┐рдпрд╛

    • lzma рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдЬреИрд╕реЗ рдорд╛рдирдХ рдЙрдкрдХрд░рдгреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╕рдВрдкреАрдбрд╝рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ

    • рдЕрдбрд┐рдЧ

    • рдирд┐рд░реНрдорд╛рдг рдЧрддрд┐ рдЕрддреНрдпрдзрд┐рдХ рдЕрдиреБрдХреВрд▓рд┐рдд рд╣реИ

    • рдХреЗрд╡рд▓ BufferGeometry рдХреЗ рд▓рд┐рдП рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ

    • рдПрд╕рдПрдПрдЪ рдЕрдиреБрдХреВрд▓рди

    • рдХрд┐рд░рдг рдкреНрд░рд╢реНрди

  • рдмреАрд╡реАрдПрдЪ

    • рдСрдмреНрдЬреЗрдХреНрдЯ рдЯреНрд░реА, рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк рдмрд╛рдЗрдирд░реА рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд╕реЗ рдмрд╣реБрдд рдмрдбрд╝рд╛ рд╣реИ

    • рдкрд░рд┐рд╡рд░реНрддрдирд╢реАрд▓

    • рдлрд╛рд╕реНрдЯ рдмрд▓реНрдХ рдЗрдВрд╕рд░реНрдЯ

    • рдлрд╛рд╕реНрдЯ рд╕рд┐рдВрдЧрд▓ рдЖрдЗрдЯрдо рдЗрдВрд╕рд░реНрдЯ

    • рд╕рд╛рдЬреЛрд╕рд╛рдорд╛рди

    • рд╕реНрдЯреИрдХ, рд░рд┐рдХрд░реНрд╕рд┐рд╡ рдФрд░ рд╕реНрдЯреИрдХ-рдХрдо рдЯреНрд░реИрд╡рд░реНрд╕рд▓ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди (рд╡рд┐рднрд┐рдиреНрди рдкреНрд░рджрд░реНрд╢рди рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ)

    • рдПрд╕рдПрдПрдЪ рдЕрдиреБрдХреВрд▓рди

    • рдХреБрдВрдард╛ рд╕рдВрдмрдВрдзреА рдкреНрд░рд╢реНрди

    • рд░реЗ рдкреНрд░рд╢реНрди

рд╡реНрдпрдХреНрддрд┐рдЧрдд рд░реВрдк рд╕реЗ, рдореИрдВ рдПрдХ рд╕реНрдерд╛рдирд┐рдХ рд╕реВрдЪрдХрд╛рдВрдХ рдХреЗ рдмрд┐рдирд╛ рдирд╣реАрдВ рд░рд╣ рд╕рдХрддрд╛, рдпрд╣ n ^ 2 рдФрд░ рд▓реЙрдЧ (n) рдкреНрд░рджрд░реНрд╢рди рдХреЗ рдмреАрдЪ рдХрд╛ рдЕрдВрддрд░ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдореЗрд░реА рд╡рд░реНрддрдорд╛рди рдкрд░рд┐рдпреЛрдЬрдирд╛ рдореЗрдВ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рднрд╛рдЧ рд╕реНрдерд╛рдирд┐рдХ рд╕реВрдЪрдХрд╛рдВрдХ рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддреЗ рд╣реИрдВ:

  • рдкрд░реНрдг рдкреНрд░рдгрд╛рд▓реА (рдкреЗрдбрд╝, рдлреВрд▓, рдЭрд╛рдбрд╝рд┐рдпрд╛рдБ рдЖрджрд┐)
  • рд╕рднреА рдСрдмреНрдЬреЗрдХреНрдЯ рдкреНрд▓реЗрд╕рдореЗрдВрдЯ (рдЕрдХреНрд╖рд░ рдФрд░ рдШрд░)
  • рдкрд┐рдХрд┐рдВрдЧ (рдЗрдВрдЯрд░реИрдХреНрд╢рди рдореЗрдВ рдкреНрд░рдпреБрдХреНрдд, рдЬреИрд╕реЗ рдорд╛рдЙрд╕ рдХреНрд▓рд┐рдХ)

http://server1.lazy-kitty.com/komrade

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

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

рдПрдХ рдмрд╛рдд рдЬреЛ рдореИрдВрдиреЗ рдиреЛрдЯрд┐рд╕ рдХреА рд╣реИ, рд╡рд╣ рдпрд╣ рд╣реИ рдХрд┐ рдПрдХ рдмрд╛рд░ рдЬреНрдпрд╛рдорд┐рддрд┐ рдХреЛ рдЕрдиреБрдХреНрд░рдорд┐рдд рдмрдлрд░ рд╕рд░рдгреА рдореЗрдВ рдмрджрд▓ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдпрд╣ рдЕрдм рдореВрд▓ рдЬреНрдпрд╛рдорд┐рддрд┐ рдХреЗ рдЧреБрдгреЛрдВ рдХрд╛ рд╕реНрдорд╛рд░реНрдЯ рддрд░реАрдХреЗ рд╕реЗ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред рдЬреИрд╕рд╛ рдХрд┐ рдКрдкрд░ рдмрддрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ рдХрд┐ рдкреНрд▓реЗрди рдмрдлрд░ рдЬреНрдпреЛрдореЗрдЯреНрд░реА рдХреЛ рдпрд╣ рдЬрд╛рдирдХрд░ рд╕реБрдкрд░ рдСрдкреНрдЯрд┐рдорд╛рдЗрдЬрд╝ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдПрд░реЗрдмрдлрд╝рд░ рдкреНрд▓реЗрдирдЧреЛрдореЗрдЯреНрд░реА рд╕реЗ рдЖрдпрд╛ рд╣реИред рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ MESH.raycast ( raycaster, intersects ) рд╡рд┐рдзрд┐ рдХреЛ рдЬреНрдпрд╛рдорд┐рддрд┐ рдкреНрд░рдХрд╛рд░ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдЕрдзрд┐рд▓реЗрдЦрд┐рдд рдХрд░ рджрд┐рдпрд╛ рдЬрд╛рдП?

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

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

  • рд╕реНрдерд╛рдирд┐рдХ рдХрд▓рд┐рдВрдЧ (рдлреНрд░рд╕реНрдЯрдо рдХрд▓рд┐рдВрдЧ рд╕реЛрдЪреЗрдВ)
  • рджреГрд╢реНрдпрддрд╛ рдкреНрд░рд╢реНрди рдХрд░рдирд╛
  • рдкрде рдЕрдиреБрд░реЗрдЦрдг рд░реЗрдВрдбрд░рд░ рдХрд╛ рдирд┐рд░реНрдорд╛рдг
  • рддреЗрдЬреА рд╕реЗ рдЫрдБрдЯрд╛рдИ (рдбреЗрдЯрд╛ рдЗрд▓рд╛рдХреЗ рдХрд╛ рд╢реЛрд╖рдг)

рд╡рд░реНрддрдорд╛рди рдореЗрдВ рддреАрди.js рдЗрдирдореЗрдВ рд╕реЗ 2 рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ (рд╕реЙрд░реНрдЯрд┐рдВрдЧ рдФрд░ рдХрд▓рд┐рдВрдЧ) рдХрд░рддрд╛ рд╣реИ рдФрд░ 1 рдЙрджрд╛рд╣рд░рдгреЛрдВ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ (рд░реЗ-рдЯреНрд░реЗрд╕рд┐рдВрдЧ рд░реЗрдВрдбрд░рд░)

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

рдЖрдк рд╕рд┐рд░реНрдл GPU рдкрд┐рдХрд┐рдВрдЧ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреНрдпреЛрдВ рдирд╣реАрдВ рдХрд░рддреЗ? рдЖрд╕рдкрд╛рд╕ рдХреБрдЫ рдЙрджрд╛рд╣рд░рдг рд╣реИрдВ рдФрд░ рдЗрд╕реЗ рд▓рд╛рдЧреВ рдХрд░рдирд╛ рдХрд╛рдлреА рдЖрд╕рд╛рди рд╣реИред рдкреНрд░рджрд░реНрд╢рди рд░рд╛рдд рдФрд░ рджрд┐рди рд╣реИред рд╣рдорд╛рд░реЗ рдЙрдкрдпреЛрдЧ рдХреЗ рдорд╛рдорд▓реЛрдВ рдореЗрдВ, рдПрдХ рдорд┐рд▓рд┐рдпрди рд╕реЗ рдЕрдзрд┐рдХ рдкреЙрд▓реАрдЧреЙрди рдХреЗ рдореЙрдбрд▓ рдХреЗ рд╕рд╛рде, рдореЙрдбрд▓ рдХреЗ рдКрдкрд░ рдЪреАрдЬреЛрдВ рдХреЛ рдЦреАрдВрдЪрддреЗ рд╕рдордп рдкрд┐рдХрд┐рдВрдЧ рд▓рдЧрднрдЧ рдПрдХ рд╕реЗрдХрдВрдб рд╕реЗ 60fps рдкрд░ рд░реАрдпрд▓рдЯрд╛рдЗрдо рдореЗрдВ рдЪрд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдЪрд▓рд╛ рдЧрдпрд╛ред

https://github.com/brianxu/GPUPicker

@hccampos
рдЬреАрдкреАрдпреВ рдкрд┐рдХрд┐рдВрдЧ рдЬрд░реВрд░реА рдирд╣реАрдВ рдХрд┐ рд╕реАрдкреАрдпреВ рдкрд░ рдХрд░рдиреЗ рд╕реЗ рддреЗрдЬ рд╣реЛ, рдЬреАрдкреАрдпреВ рдХреЗ рд▓рд┐рдП рдЖрдкрдХреЛ рдЕрдкрдиреА рдЗрдЪреНрдЫрд╛ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдЖрдиреБрдкрд╛рддрд┐рдХ рд░реВрдк рд╕реЗ рд░рд┐рдЬрд╝реЙрд▓реНрдпреВрд╢рди рдкрд░ рд░реЗрдВрдбрд░ рдХрд░рдирд╛ рд╣реЛрдЧрд╛, рдЗрд╕рд▓рд┐рдП рдпрджрд┐ рдЖрдк рдкрд┐рдХреНрд╕реЗрд▓ рд╕рдЯреАрдХрддрд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ - рддреЛ рдЖрдкрдХреЛ 1: 1 рд╕реНрдХреНрд░реАрди рд░рд┐рдЬрд╝реЙрд▓реНрдпреВрд╢рди рдкрд░ рд░реЗрдВрдбрд░ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рдзреНрдпрд╛рди рд░рдЦреЗрдВ рдХрд┐ рдпрд╣ рдПрдХ рдЕрд▓рдЧ рд░реЗрдВрдбрд░ рдкрд╛рд╕ рд╣реИ, рдЖрдк рд╡рд╕реНрддреБрдУрдВ рдХреЛ рдЕрд▓рдЧ рдЕрд▓рдЧ рд░рдВрдЧреЛрдВ рдХреЗ рд░реВрдк рдореЗрдВ рдкреНрд░рд╕реНрддреБрдд рдХрд░ рд░рд╣реЗ рд╣реИрдВред рдПрдХ рдЕрддрд┐рд░рд┐рдХреНрдд рд░реЗрдВрдбрд░ рдкрд╛рд╕ рдХрд╛ рдЕрд░реНрде рд╣реИ рдЧреНрд░рд╛рдлрд┐рдХреНрд╕ рдореЗрдореЛрд░реА рдЙрдкрдпреЛрдЧ (рдЖрд╕реНрдердЧрд┐рдд рдкрд╛рдЗрдкрд▓рд╛рдЗрди рдХреЗ рд▓рд┐рдП рд╡рд┐рд╢рд┐рд╖реНрдЯ)ред
рдмрд╛рдЗрдирд░реА рд╕реНрдкреЗрд╕ рдкрд╛рд░реНрдЯреАрд╢рдирд┐рдВрдЧ рдЗрдВрдбреЗрдХреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╕реЗ рдЖрдкрдХреЛ рдЕрдкрдиреА рдкрд┐рдХрд┐рдВрдЧ рдкрд░ рд▓реЙрдЧ (рдПрди) рдЯрд╛рдЗрдорд┐рдВрдЧ рдкреНрд░реЛрдлрд╛рдЗрд▓ рдорд┐рд▓рддреА рд╣реИ, рдЗрд╕рд▓рд┐рдП 1,000,000 рдкреЙрд▓реАрдЧреЙрди рдХреЗ рд▓рд┐рдП рдЖрдк рд░реЗ рдХреНрд╡реЗрд░реА рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд▓рдЧрднрдЧ 14 рдСрдкрд░реЗрд╢рди рджреЗрдЦ рд░рд╣реЗ рд╣реЛрдВрдЧреЗред рдЖрдкрдХреА рдбреЗрдЯрд╛ рд╕рдВрд░рдЪрдирд╛ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ - рдЗрд╕рдореЗрдВ рдХреБрдЫ рдорд╛рдЗрдХреНрд░реЛрд╕реЗрдХрдВрдб рд▓рдЧрдиреЗ рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рд╣реИ, рдЬрд┐рд╕рд╕реЗ рдЖрдк рдЕрдкрдиреЗ рдлреНрд░реЗрдо рдмрдЬрдЯ рдореЗрдВ рд╕реЗрдВрдз рд▓рдЧрд╛рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рд╣рдЬрд╛рд░реЛрдВ рдкреНрд░рд╢реНрдиреЛрдВ рдХреА рдЕрдиреБрдорддрд┐ рджреЗ рд╕рдХрддреЗ рд╣реИрдВред

рдЖрдЗрдП рддреБрд▓рдирд╛ рдХрд░реЗрдВ, рдорд╛рди рд▓реЗрдВ рдХрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ 1m рдкреЙрд▓реА рдореЙрдбрд▓ рд╣реИ, рдФрд░ рдЖрдк рд╕реНрдХреНрд░реАрди рд╕реНрдкреЗрд╕ рд╕реЗ рд╕реАрдзреЗ рдХреИрдорд░реЗ рдХреА рджрд┐рд╢рд╛ рдХреЗ рд╕рд╛рде рджреГрд╢реНрдп рдореЗрдВ рдПрдХ рдХрд┐рд░рдг рдбрд╛рд▓рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ (рдЙрдкрдпреЛрдЧ-рдорд╛рдорд▓рд╛ рдЪреБрдирдирд╛)ред рдЖрдЗрдП рдорд╛рди рд▓реЗрдВ рдХрд┐ рдЖрдк рдмреИрд░рд▓ рд░рд┐рдЬрд╝реЙрд▓реНрдпреВрд╢рди рдХреЗ рдирд┐рдЪрд▓реЗ рднрд╛рдЧ, "рдкреВрд░реНрдг рдПрдЪрдбреА", рдпрд╛ 1920 ├Ч 1080 рдХреЗ рд╕рд╛рде рдЬрд╛ рд░рд╣реЗ рд╣реИрдВред рдорд╛рди рд▓реЗрдВ рдХрд┐ рдЖрдк рдХреЗрд╡рд▓ рдЖрд░рдЬреАрдмреА (24 рдмрд┐рдЯ рдкреНрд░рддрд┐ рдкрд┐рдХреНрд╕реЗрд▓) рдкреНрд░рд╕реНрддреБрдд рдХрд░рддреЗ рд╣реИрдВ, рдЖрдкрдХреЛ рд░реЗрдВрдбрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП 6220800рдмрд╛рдЗрдЯ (рд▓рдЧрднрдЧ 6 рдПрдордмреА) рдпрд╛ рдЧреНрд░рд╛рдлрд┐рдХреНрд╕ рд░реИрдо рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреАред рд╡рд╣ред рдпрджрд┐ рдЖрдк CPU рд╕рдорд╛рдзрд╛рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдорд╛рди рд▓реЗрдВ рдХрд┐ рдЖрдк AABB BVH рдХреЗ рд╕рд╛рде 10 рдкреЙрд▓реАрдЧреЙрди рдкреНрд░рддрд┐ рдкрддреНрддреА рдХреЗ рд╕рд╛рде рдЬрд╛рддреЗ рд╣реИрдВ, рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рдЖрдкрдХреЛ рд▓рдЧрднрдЧ 200,000 рдиреЛрдбреНрд╕ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдорд╛рди рд▓реЗрдВ рдХрд┐ рдкреНрд░рддреНрдпреЗрдХ рдиреЛрдб рдирд┐рд░реНрджреЗрд╢рд╛рдВрдХ рдХреЗ рд▓рд┐рдП рд▓рдЧрднрдЧ 6 * 8bytes рд╣реИ, рдЗрдВрдЯрд░рдореАрдбрд┐рдПрдЯ рдиреЛрдбреНрд╕ рдореЗрдВ рдЪрд╛рдЗрд▓реНрдб рдкреЙрдЗрдВрдЯрд░реНрд╕ рдХреЗ рд▓рд┐рдП рдЕрддрд┐рд░рд┐рдХреНрдд 2 * 4 рдмрд╛рдЗрдЯреНрд╕ рд╣реИрдВред рдФрд░ рд▓реАрдл рдиреЛрдбреНрд╕ рдореЗрдВ рдкреЙрд▓реАрдЧреЙрди рдкреЙрдЗрдВрдЯрд░ рдХреЗ рд▓рд┐рдП 10 * 4 рдмрд╛рдЗрдЯреНрд╕ рд╣реИрдВ, рдЬреЛ рдХрд┐ 14,400,000 рдмрд╛рдЗрдЯреНрд╕ (рд▓рдЧрднрдЧ 14Mb) рд╣реИрдВред рдореБрдЦреНрдп рдЕрдВрддрд░ рддрдм рд╕рд╛рдордиреЗ рдЖрддрд╛ рд╣реИ рдЬрдм рдЖрдк рдЗрд╕ рддрдереНрдп рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░рддреЗ рд╣реИрдВ рдХрд┐ GPU рдХреЗрд╕ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдЖрдкрдХреЗ BVH рдкреНрд░рд╢реНрдиреЛрдВ рдХреА RAM рдмреИрдВрдбрд╡рд┐рдбреНрде рдкрд░ рдмрд╣реБрдд рдХрдо рдорд╛рдВрдЧ рд╣реИ, рдФрд░ рдкреВрд░реНрдг 1m рдкреЙрд▓реА рдЬреНрдпреЛрдореЗрдЯреНрд░реА рдкреНрд░рджрд╛рди рдХрд░рдиреЗ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдкреНрд░рддрд┐ рдХреНрд╡реЗрд░реА рдХреЗрд╡рд▓ рдХреБрдЫ рдореБрдЯреНрдареА рднрд░ рдСрдкрд░реЗрд╢рди рд╢рд╛рдорд┐рд▓ рд╣реИрдВред
рдпрджрд┐ рдЖрдк 2560x1440 рдЬреИрд╕реЗ рдбреЗрд╕реНрдХрдЯреЙрдк рдХреЗ рд▓рд┐рдП рдЕрдзрд┐рдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╕рдВрдХрд▓реНрдк рд▓реЗрддреЗ рд╣реИрдВ, рддреЛ рдЖрдк 11059200рдмрд╛рдЗрдЯ рд░реЗрдВрдбрд░ рд▓рдХреНрд╖реНрдп (11Mb) рдХреЗ рд╕рд╛рде рд╕рдорд╛рдкреНрдд рд╣реЛрддреЗ рд╣реИрдВред

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

@Usnul рдмрд┐рд▓реНрдХреБрд▓, рд▓реЗрдХрд┐рди рдпрд╣ рд╢рд╛рдпрдж рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХрд╛ рд╕рдмрд╕реЗ рдЖрд╕рд╛рди рд╕рдорд╛рдзрд╛рди рд╣реИред рд╕реНрдерд╛рдирд┐рдХ рд╕реВрдЪрдХрд╛рдВрдХ рдбреЗрдЯрд╛ рд╕рдВрд░рдЪрдирд╛рдУрдВ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдирд╛ рдФрд░ рдмрдирд╛рдП рд░рдЦрдирд╛ рд╕рдВрднрд╡рддрдГ рдереНрд░реАрдЬреЗ рдЕрдиреБрд░рдХреНрд╖рдХреЛрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рдЧреИрд░-рдорд╣рддреНрд╡рдкреВрд░реНрдг рдмреЛрдЭ рд╣реЛрдЧрд╛ред

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

рдореИрдВ рдЕрдкрдиреЗ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд┐рдП рдЧрдП рдЬреНрдпрд╛рдорд┐рддрд┐ рдХреЗ рд▓рд┐рдП рдЗрд╕ рддрд░рд╣ рдХреЗ рдПрдХ рд╕реНрдерд╛рдирд┐рдХ рд╕реВрдЪрдХрд╛рдВрдХ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЙрддреНрд╕реБрдХ рдерд╛, рдЗрд╕рд▓рд┐рдП рдореИрдВрдиреЗ рдПрдХ рдмрд╣реБрдд рд╣реА рд╕рд░рд▓ рдСрдХреНрдЯреНрд░реА (рдХреЗрд╡рд▓ рдмрдирд╛рдПрдВ рдФрд░ рдЦреЛрдЬреЗрдВ) рдХреЛ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬреЛ рдореЗрд░реА рдмрдлрд░рдЬреАрдУрдореЗрдЯреНрд░реА рдХреЛ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд░рддрд╛ рд╣реИред рдЗрд╕ рд╕рд░рд▓ рд╕рдорд╛рдзрд╛рди рдХреЗ рд╕рд╛рде рдореИрдВрдиреЗ рдХрд╛рдлреА рдЖрд╢рд╛рдЬрдирдХ рдкрд░рд┐рдгрд╛рдо рдкреНрд░рд╛рдкреНрдд рдХрд┐рдП: рд▓рдЧрднрдЧ 500K рдХреЛрдиреЗ рдХреЗ рд╕рд╛рде рдПрдХ рдЬреНрдпрд╛рдорд┐рддрд┐ рдкрд░ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЧрдпрд╛, рдЬрд┐рд╕рд╕реЗ рд░реЗрдХрд╛рд╕реНрдЯ рдХрд╛ рд╕рдордп ~ 120ms рд╕реЗ ~ 2.3ms рддрдХ рдХрдо рд╣реЛ рдЧрдпрд╛ред рдкреЗрдбрд╝ рдХреЗ рдирд┐рд░реНрдорд╛рдг рдореЗрдВ рд╡рд░реНрддрдорд╛рди рдореЗрдВ ~ 500ms рд▓рдЧрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЪреВрдВрдХрд┐ рдПрдХ рд╡реЗрдм рдХрд╛рд░реНрдпрдХрд░реНрддрд╛ рдХреЗ рдЕрдВрджрд░ рдЬреНрдпрд╛рдорд┐рддрд┐ рдФрд░ рд╡реГрдХреНрд╖ рдирд┐рд░реНрдорд╛рдг рдХреЗрд╡рд▓ рдПрдХ рдмрд╛рд░ рдЖрд╡реЗрджрди рд╢реБрд░реВ рд╣реЛрдиреЗ рдкрд░ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдпрд╣ рдРрд╕реА рдХреЛрдИ рд╕рдорд╕реНрдпрд╛ рдирд╣реАрдВ рд╣реИред

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдПрд▓реНрдЧреЛрд░рд┐рджрдо рдХреЛ THREE.BufferGeometry рдореЗрдВ рдЖрд╕рд╛рдиреА рд╕реЗ рдПрдХреАрдХреГрдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдФрд░ рд╢рд╛рдпрдж THREE.BufferAttribute рдХреЗ dynamic рдЬреИрд╕реЗ рдзреНрд╡рдЬ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЪрд╛рд▓реВ рдпрд╛ рдмрдВрдж рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдЗрд╕ рддрд░рд╣, рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреЗрд╡рд▓ рддрднреА рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдЬрдм BufferGeometry рдХреЛ рдмрджрд▓рдирд╛ рдирд╣реАрдВ рдЪрд╛рд╣рд┐рдПред рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ, рдореБрдЭреЗ THREE.Mesh рдХреА raycast рд╡рд┐рдзрд┐ рдХреЛ рдЕрдзрд┐рд▓реЗрдЦрд┐рдд рдХрд░рдирд╛ рдкрдбрд╝рд╛, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдореБрдЭреЗ рдЗрд╕рдореЗрдВ рдХреЗрд╡рд▓ рджреЛ рдкрдВрдХреНрддрд┐рдпреЛрдВ рдХреЛ рдмрджрд▓рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдереА (рдСрдХреНрдЯреНрд░реА рдЦреЛрдЬ рдХреЙрд▓ рдФрд░ рд╕реНрдерд┐рддрд┐ рд╕рд░рдгреА рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐)ред

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

рдЕрджреНрдпрддрди рдХрд░реЗрдВ рдореИрдВрдиреЗ рд░реЗрдХрд╛рд╕реНрдЯ рд╕рдордп рдХреЛ рдорд╛рдкрдиреЗ рдореЗрдВ рдЧрд▓рддреА рдХреА рд╣реИред рд╕рд╣реА рдорд╛рди ~2.3ms (~0.3ms рдХреЗ рдмрдЬрд╛рдп) рд╣реИред рдореИрдВрдиреЗ рдЙрдкрд░реЛрдХреНрдд рдорд╛рди рдХреЛ рддрджрдиреБрд╕рд╛рд░ рдмрджрд▓ рджрд┐рдпрд╛ред

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рддреАрди.рдЬреЗрдПрд╕ рдХреЗ рд╢реАрд░реНрд╖ рдкрд░ рдирд┐рд░реНрдорд┐рдд рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рдЬрдЯрд┐рд▓ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдореЗрдВ рддреЗрдЬреА рд╕реЗ рд╕реНрдерд╛рдирд┐рдХ рд▓реБрдХрдЕрдк рдХрд░рдиреЗ рдХрд╛ рдПрдХ рдСрдкреНрдЯ-рдЗрди рддрд░реАрдХрд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдПрдХ 3D рд╕рдВрдкрд╛рджрдХред рдореИрдВрдиреЗ рд╡рд╣рд╛рдВ рдХреБрдЫ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЗ рд╕рд╛рде рдЦрд┐рд▓рд╡рд╛рдбрд╝ рдХрд┐рдпрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рд╡реЗ рдпрд╛ рддреЛ рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдПрдХреАрдХреГрдд рдирд╣реАрдВ рд╣реЛрддреЗ рд╣реИрдВ, рдпрд╛ рддреАрди.рдЬреЗрдПрд╕ рдХреЗ рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ рдмрд╣реБрдд рдХрд╕рдХрд░ рд▓рдкреЗрдЯрддреЗ рд╣реИрдВред рдЗрд╕рд▓рд┐рдП рдЕрдЧрд░ рдХрд┐рд╕реА рдХреЗ рдкрд╛рд╕ рддреАрди.рдЬреЗрдПрд╕ рдХреЗ рдирдП рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдореЗрдВ рдЕрдкрдЧреНрд░реЗрдб рдкрде рдХреЛ рддреЛрдбрд╝реЗ рдмрд┐рдирд╛ рдЗрд╕реЗ рдХрд░рдиреЗ рдХрд╛ рдСрдкреНрдЯ-рдЗрди рддрд░реАрдХрд╛ рд╣реИ рддреЛ рдпрд╣ рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛ред

@ рдореИрдерд┐рдпрд╛рд╕-рдбрдмреНрд▓реНрдпреВ рдореИрдВрдиреЗ рдПрдХ рдУрдмреАрдЬреЗ рдореЙрдбрд▓ рдХреЗ рд▓рд┐рдП рд░реЗрдХрд╛рд╕реНрдЯрд░ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА рд▓реЗрдХрд┐рди рдирд┐рдпрдВрддреНрд░рдХ рдХреБрдЫ рднреА рдкрддрд╛ рдирд╣реАрдВ рд▓рдЧрд╛ рд░рд╣рд╛ рд╣реИред рдХрд┐рд░рдгреЗрдВ рдореЙрдбрд▓ рд╕реЗ рдЧреБрдЬрд░ рд░рд╣реА рд╣реИрдВред рдХреНрдпрд╛ рдЖрдк рдореБрдЭреЗ рдмрддрд╛ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдЖрдкрдиреЗ рдЙрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЛ рдХреИрд╕реЗ рдареАрдХ рдХрд┐рдпрд╛

рд╡реИрдХрд▓реНрдкрд┐рдХ рд╕реНрдерд╛рдирд┐рдХ рд╕реВрдЪрдХрд╛рдВрдХ рд░рдЦрдиреЗ рдХреЗ рд╡рд┐рд╖рдп рдкрд░ред рдореЗрд░рд╛ рдорд╛рдирдирд╛ тАЛтАЛрд╣реИ рдХрд┐ рдпрд╣ рд░реЗрдВрдбрд░рд░ рдХреЗ рд▓рд┐рдП рднреА рдкрд░реНрдпрд╛рдкреНрдд рд░реВрдк рд╕реЗ рдЙрдкрдпреЛрдЧреА рд╣реИ (рдЬреИрд╕реЗ: рдХрд▓рд┐рдВрдЧ рдХреЗ рд▓рд┐рдП) рдЗрдВрдЬрди рдХрд╛ рдПрдХ рдЕрднрд┐рдиреНрди рдЕрдВрдЧ рд╣реЛрдирд╛ред рдпрд╣рд╛рдБ рдПрдХ рд╕рдВрдмрдВрдзрд┐рдд рдЪрд░реНрдЪрд╛ рд╣реИ:

13909

рдЕрд░реЗ! рдореБрдЭреЗ рдЗрд╕рдореЗрдВ рдереЛрдбрд╝реА рджрд┐рд▓рдЪрд╕реНрдкреА рдереА, рд╕рд╛рде рд╣реА (рд╣рд╛рд▓рд╛рдВрдХрд┐ рдореБрдЭреЗ рддрдм рд╕реЗ рд╣рдорд╛рд░реА рд░реЗрдХрд╛рд╕реНрдЯ рдЬрд░реВрд░рддреЛрдВ рдХреЗ рд▓рд┐рдП рдЕрдиреНрдп рд╕рдорд╛рдзрд╛рди рдорд┐рд▓ рдЧрдП рд╣реИрдВ), рд▓реЗрдХрд┐рди рдореБрдЭреЗ рд▓рдЧрд╛ рдХрд┐ рдореИрдВ рдЕрдкрдиреЗ рдХреБрдЫ рдкреНрд░рдпреЛрдЧреЛрдВ рдореЗрдВ рднреА рдпреЛрдЧрджрд╛рди рджреВрдВрдЧрд╛ред рдпрд╣ рдереЛрдбрд╝рд╛ рдореЛрдЯрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдореИрдВрдиреЗ рдЗрд╕реЗ рдХреБрдЫ рдорд╣реАрдиреЗ рдкрд╣рд▓реЗ рдПрдХ рд╕рд╛рде рд░рдЦрд╛ рдерд╛:

https://github.com/gkjohnson/threejs-fast-raycast

рдпрд╣ рддреАрди рдЬреНрдпрд╛рдорд┐рддрд┐ рд╡рд╕реНрддреБрдУрдВ рдореЗрдВ computeBoundsTree рдлрд╝рдВрдХреНрд╢рди рдЬреЛрдбрд╝рддрд╛ рд╣реИ рдФрд░ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд░реЗрдХрд╛рд╕реНрдЯ рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдУрд╡рд░рд░рд╛рдЗрдб рдХрд░рддрд╛ рд╣реИ (рдФрд░ рдХреЗрд╡рд▓ рдПрдХ рдЕрддрд┐рд░рд┐рдХреНрдд рдЕрдиреБрдХреВрд▓рди рдХреЗ рд░реВрдк рдореЗрдВ рдкрд╣рд▓реА рд╣рд┐рдЯ рджреЗрддрд╛ рд╣реИ)ред рдпрд╣ рдХреЗрд╡рд▓ рд╕реНрдерд┐рд░, рдЕрддреНрдпрдзрд┐рдХ рдЬрдЯрд┐рд▓ рдореЗрд╢ рдХреЗ рд▓рд┐рдП рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдлрд╛рдпрджреЗрдордВрдж рд╣реИ рдФрд░ рджреГрд╢реНрдп рдХреЛ рд╕реНрдерд╛рдирд┐рдХ рд░реВрдк рд╕реЗ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рднреА рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред рдпрд╣рд╛рдВ рдбреЗрдореЛ рд╣реИ рдЬрд╣рд╛рдВ рдЖрдк 80,000 рддреНрд░рд┐рдХреЛрдг рдЬрд╛рд▓ рдкрд░ рд░реЗрдХрд╛рд╕реНрдЯ рдкреНрд░рджрд░реНрд╢рди рдореЗрдВ рдЕрдВрддрд░ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВред рдмрд╛рдЙрдВрдб рдЯреНрд░реА рдХреА рдЧрдгрдирд╛ рдХрд░рдирд╛ рдереЛрдбрд╝рд╛ рдзреАрдорд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдереЛрдбрд╝реЗ рд╕реЗ рдХрд╛рдо рд╕реЗ рдпрд╣ рд╢рд╛рдпрдж рдЖрд╕рд╛рди рд╣реЛ рд╕рдХрддрд╛ рд╣реИред

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

@Usnul @matthias-w рдХреНрдпрд╛ рдЖрдкрдХреЗ рдСрдХреНрдЯреНрд░реА/рдмреАрд╡реАрдПрдЪ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдореЗрдВ рд╕реЗ рдХреЛрдИ рдПрдХ рдЦреБрд▓рд╛ рд╕реНрд░реЛрдд рд╣реИ рдпрд╛ рдСрдирд▓рд╛рдЗрди рдЙрдкрд▓рдмреНрдз рд╣реИ? рдореБрдЭреЗ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдПрдХ рдирдЬрд╝рд░ рдбрд╛рд▓рдиреЗ рдореЗрдВ рджрд┐рд▓рдЪрд╕реНрдкреА рд╣реЛрдЧреА!

@gkjohnson

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

рдХреЛрдб рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдЦреБрд▓рд╛ рд╕реНрд░реЛрдд рдирд╣реАрдВ рд╣реИред рдпрджрд┐ рдЖрдк рдореБрдЭрд╕реЗ рдирд┐рдЬреА рддреМрд░ рдкрд░ рд╕рдВрдкрд░реНрдХ рдХрд░рддреЗ рд╣реИрдВ рддреЛ рдореИрдВ рдЖрдкрдХреЛ рд╕реНрд░реЛрдд рдкреНрд░рджрд╛рди рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВред

рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдореИрдВрдиреЗ рдПрдХ рдЙрджрд╛рд╣рд░рдг рджрд┐рдпрд╛ рд╣реИ:
http://server1.lazy-kitty.com/tests/instanced-foliage-1mil/
рдЙрдкрд░реЛрдХреНрдд рдЙрджрд╛рд╣рд░рдг рдореЗрдВ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╢рд╛рдорд┐рд▓ рд╣реИрдВ:

  • BVH рдХреЛ рдЧрддрд┐рд╢реАрд▓ рд░реВрдк рд╕реЗ рдЕрдкрдбреЗрдЯ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдЯреНрд░реА рдореЗрдВ рдирдП рдЗрдВрд╕реНрдЯреЗрдВрд╕ рдбрд╛рд▓реЗ рдЬрд╛рддреЗ рд╣реИрдВ
  • BVH рдХреЛ рдордХреНрдЦреА рдкрд░ 1-2 рдШреБрдорд╛рд╡реЛрдВ рдХреА рдЧрд╣рд░рд╛рдИ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХреНрд░рдорд┐рдХ рд░реВрдк рд╕реЗ рдЕрдиреБрдХреВрд▓рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ
  • BVH рдХреЛ рдПрдХ рдлреНрд░рд╕реНрдЯрдо рдХреНрд╡реЗрд░реА рдХреЗ рд╕рд╛рде рд╕реИрдВрдкрд▓ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рдЗрдВрд╕реНрдЯреЗрдВрд╕ рдХреЛ рд░реЗрдВрдбрд░ рдХрд░рдирд╛ рд╣реЛрддрд╛ рд╣реИ

рдореЗрд░реЗ рдкрд╛рд╕ рдЗрд╕рдХрд╛ рдПрдХ рд╕рдВрд╕реНрдХрд░рдг рд╣реИ рдЬреЛ рдЙрд╕ рдЧреЗрдо рдореЗрдВ рдЪрд▓ рд░рд╣рд╛ рд╣реИ рдЬрд┐рд╕ рдкрд░ рдореИрдВ рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реВрдВ:
http://server1.lazy-kitty.com/komrade/

рдЖрдкрдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЗ рд╕рдВрдмрдВрдз рдореЗрдВред рдореБрдЭреЗ рдпрд╣ рдкрд╕рдВрдж рд╣реИ, рдореЗрд░рд╛ 2 рдкреНрд░рдореБрдЦ рддрд░реАрдХреЛрдВ рд╕реЗ рдЕрд▓рдЧ рд╣реИ:

  • рдореИрдВ рдкреНрд░рджрд░реНрд╢рди рдкрд░ рдзреНрдпрд╛рди рдХреЗрдВрджреНрд░рд┐рдд рдХрд░рддрд╛ рд╣реВрдВ
  • рдореИрдВ рд╕реНрдореГрддрд┐ рдкрджрдЪрд┐рд╣реНрди рдкрд░ рдзреНрдпрд╛рди рдХреЗрдВрджреНрд░рд┐рдд рдХрд░рддрд╛ рд╣реВрдВ
  • рдореИрдВ рдХрдИ рдЬрдЧрд╣реЛрдВ рдкрд░ рдХреВрдбрд╝рд╛ рдЙрдард╛рдиреЗ рд╕реЗ рдмрдЪрддрд╛ рд╣реВрдВ

рдХреБрдЫ рдФрд░ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдмрд┐рдВрджреБ:

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

@Usnul рдореИрдВ рдЖрдкрдХрд╛ рдИрдореЗрд▓ рдкрддрд╛ рдпрд╛ рдХреБрдЫ рднреА рдирд╣реАрдВ рджреЗрдЦ рд╕рдХрддрд╛, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдЖрдкрдХреЗ рд╕реНрдерд╛рдирд┐рдХ рдЕрдиреБрдХреНрд░рдордг рд╕рдорд╛рдзрд╛рди рдХрд╛ рдЕрдзреНрдпрдпрди рдХрд░рдиреЗ рдореЗрдВ рдХрд╛рдлреА рджрд┐рд▓рдЪрд╕реНрдкреА рд╣реИред

рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдореИрдВ рд╕рд┐рд░реНрдл рд╕рднреА рдкреНрд░рд╛рд╕рдВрдЧрд┐рдХ рджреГрд╢реНрдп рд╡рд╕реНрддреБрдУрдВ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд▓реВрдк рдХрд░рддрд╛ рд╣реВрдВ рдФрд░ рдХреИрдорд░реЗ рд╕реЗ рджреВрд░реА рдХреА рдЧрдгрдирд╛ рдХрд░рддрд╛ рд╣реВрдВред рд╕рдмрд╕реЗ рдЗрд╖реНрдЯрддрдо рддрд░реАрдХрд╛ рдирд╣реАрдВ рд╣реИред

@titansofttime
рдпрд╣ рд╣реИ
travnick at gmail com
рдпрд╣ рдирд╣реАрдВ рдкрддрд╛ рдерд╛ рдХрд┐ рдпрд╣ рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рд░реВрдк рд╕реЗ рдЙрдкрд▓рдмреНрдз рдирд╣реАрдВ рд╣реИред рдореЗрд░реА рдЧрд▓рддреАред

@ рдЙрд╕реНрдиреБрд▓ рдореБрдЭреЗ 1 рдорд┐рд▓рд┐рдпрди рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдореЗрдВ рднреА рджрд┐рд▓рдЪрд╕реНрдкреА рд╣реИред рд╣реЛ рд╕рдХреЗ рддреЛ 10 рдпрд╛ 20 рдХрд░реЛрдбрд╝ рднреАред рдХреГрдкрдпрд╛ рдореБрдЭреЗ рдИрдореЗрд▓ рдХрд░реЗрдВ: kaori.nakamotoред [email protected]

рдмрд╣реБрдд-рдмрд╣реБрдд рдзрдиреНрдпрд╡рд╛рдж!

http://server1.lazy-kitty.com/tests/instanced-foliage-10mil/
рдпрд╣ 10 рдорд┐рд▓рд┐рдпрди рд╡рд╛рд▓рд╛ рд╕рдВрд╕реНрдХрд░рдг рд╣реИ

рджреЗрд░реА рд╕реЗ рдЬрд╡рд╛рдм рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рдорд╛рдлреАред
@gkjohnson рдХреЛрдб рдЦреБрд▓рд╛ рд╕реНрд░реЛрдд рдирд╣реАрдВ рд╣реИред рдЗрд╕рдХреЗ рдЕрддрд┐рд░рд┐рдХреНрдд, рдЖрдкрдХрд╛ рд╕рдорд╛рдзрд╛рди рдореЗрд░реЗ рд╕реЗ рдХрд╣реАрдВ рдЕрдзрд┐рдХ рдкрд░рд┐рд╖реНрдХреГрдд рд▓рдЧрддрд╛ рд╣реИред рдЗрд╕ рдкреНрд░рдХрд╛рд░, рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдореЗрд░реЗ рд╕рдорд╛рдзрд╛рди рд╕реЗ рд╕реАрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдХреБрдЫ рдирд╣реАрдВ рд╣реИред

@ sid3007 рдореБрдЭреЗ рдпрдХреАрди рдирд╣реАрдВ рд╣реИ рдХрд┐ рдореИрдВ рдЖрдкрдХреА рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╕рдордЭрддрд╛ рд╣реВрдВред рдореИрдВ рдЕрдкрдиреЗ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХреА рд╡реНрдпрд╛рдЦреНрдпрд╛ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВред рд╢рд╛рдпрдж рдпрд╣ рдорджрджрдЧрд╛рд░ рд╣реИред

рдореЗрд░рд╛ рдЙрдкрдпреЛрдЧ рдорд╛рдорд▓рд╛ рдХрд╛рдлреА рд╕рд░рд▓ рд╣реИред рдЬрдм рдореЗрд░рд╛ рдЖрд╡реЗрджрди рд╢реБрд░реВ рд╣реЛрддрд╛ рд╣реИ, рддреЛ рд╡рд┐рднрд┐рдиреНрди рдореЙрдбрд▓реЛрдВ рдХреЗ рд▓рд┐рдП рдЬреНрдпрд╛рдорд┐рддрд┐ рд▓реЛрдб рд╣реЛ рдЬрд╛рддреА рд╣реИрдВред рдЗрди рдореЙрдбрд▓реЛрдВ рдХреЛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рджреНрд╡рд╛рд░рд╛ рд░реВрдкрд╛рдВрддрд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдЬреНрдпрд╛рдорд┐рддрд┐ рдирд╣реАрдВ рдмрджрд▓рддреА рд╣реИред рдХреЛрдИ рдЬреНрдпрд╛рдорд┐рддрд┐ рд╡рд┐рдХреГрддрд┐ рдирд╣реАрдВ рд╣реИрдВред рдЗрд╕рд▓рд┐рдП, рдореИрдВрдиреЗ рдПрдХ рдмрд╣реБрдд рд╣реА рд╕рд░рд▓ рдСрдХреНрдЯреНрд░реА рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬреЛ рдХрд┐ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╢реБрд░реВ рд╣реЛрдиреЗ рдкрд░ рдкреНрд░рддреНрдпреЗрдХ рдЬреНрдпрд╛рдорд┐рддрд┐ рдХреЗ рд▓рд┐рдП рдПрдХ рдмрд╛рд░ рдмрдирд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдСрдХреНрдЯреНрд░реА рдЧрддрд┐рд╢реАрд▓ рдирд╣реАрдВ рд╣реИред рдпрд╣ рджреА рдЧрдИ рдЬреНрдпрд╛рдорд┐рддрд┐ рдХреЗ рдмрд╛рдЙрдВрдбрд┐рдВрдЧ рдмреЙрдХреНрд╕ рдФрд░ рд╢реАрд░реНрд╖реЛрдВ рдХреА рд╕рд░рдгреА рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рд╣реИред рдЗрд╕рдХреЗ рдирд┐рд░реНрдорд╛рдг рдХреЗ рджреМрд░рд╛рди рдпрд╣ рдЬрд╛рдВрдЪрддрд╛ рд╣реИ рдХрд┐ рдХреНрдпрд╛ рдСрдХреНрдЯреЗрдВрдЯ рдореЗрдВ рдПрдХ рд╢реАрд░реНрд╖ рд╣реИ рдпрд╛ рдСрдХреНрдЯреЗрдВрдЯ рдХрд╛ Box3 рдмрд╛рдЙрдВрдбрд┐рдВрдЧ рдмреЙрдХреНрд╕ рдПрдХ рддреНрд░рд┐рднреБрдЬ (рдЧреИрд░-рдЕрдиреБрдХреНрд░рдорд┐рдд рдЬреНрдпрд╛рдорд┐рддрд┐ рдореЗрдВ рд▓рдЧрд╛рддрд╛рд░ рддреАрди рдХреЛрдиреЗ) рдХреЗ рд╕рд╛рде рдкреНрд░рддрд┐рдЪреНрдЫреЗрдж рдХрд░рддрд╛ рд╣реИ рдФрд░ рдСрдХреНрдЯреНрд░реА рдХреЗ рдиреЛрдб рдХреЗ рд╕рд╛рде рд╢реАрд░реНрд╖ рд╕рд░рдгреА рд╕рдВрджрд░реНрднреЛрдВ рдХреЛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рддрд╛ рд╣реИред
рдкреНрд░рддрд┐ рдЬрд╛рд▓ рдСрдХреНрдЯреНрд░реА рддрдм рдЬрд╛рд▓ рдХреЗ рд╕рд╛рде рдЬрдорд╛ рд╣реЛ рдЬрд╛рддреА рд╣реИред рдореИрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдСрдХреНрдЯреНрд░реА рдЪреМрд░рд╛рд╣реЗ рдкрд░реАрдХреНрд╖рдг рд╡рд┐рдзрд┐ рдХреЛ рдХреЙрд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдкрдиреЗ рдЬрд╛рд▓ рдЙрджрд╛рд╣рд░рдгреЛрдВ' THREE.Mesh рдХреА raycast рд╡рд┐рдзрд┐ (рд╕рд┐рд░реНрдл рдПрдХ рдкрдВрдХреНрддрд┐) рдХреЛ рднреА рдЕрдзрд┐рд▓реЗрдЦрд┐рдд рдХрд░ рджреЗрддрд╛ рд╣реВрдВред рдпрд╣ рдЬреНрдпрд╛рдорд┐рддрд┐ рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░рддрд╛ рд╣реИ рдЬреЛ рд╢реАрд░реНрд╖ рд╕реВрдЪрдХрд╛рдВрдХреЛрдВ рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░рддрд╛ рд╣реИ рдЬрд┐рд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдЬрд╛рд▓ рдХреЗ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдЪреМрд░рд╛рд╣реЗ рддрд░реНрдХ рджреНрд╡рд╛рд░рд╛ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
рдореИрдВрдиреЗ рдПрдХ рдЕрдиреБрдХреВрд▓рди рдХрд┐рдпрд╛: рдСрдХреНрдЯреНрд░реА рдирд┐рд░реНрдорд╛рдг рдПрдХ рдмрд╛рд░ рд╡реЗрдмрд╡рд░реНрдХрд░ (рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╢реНрд░рдорд┐рдХреЛрдВ рдХрд╛ рдПрдХ рдкреВрд▓) рдХреЗ рдЕрдВрджрд░ рдРрдк рд╢реБрд░реВ рд╣реЛрдиреЗ рдкрд░ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЗрд╕рдХрд╛ рдХрд╛рд░рдг рдпрд╣ рд╣реИ рдХрд┐ рдмрдбрд╝реА рдЬреНрдпрд╛рдорд┐рддрд┐ рдХреЗ рд▓рд┐рдП рд╡реГрдХреНрд╖ рдирд┐рд░реНрдорд╛рдг рдореЗрдВ рдХрд╛рдлреА рд╕рдордп (рдХреБрдЫ рд╕реЗрдХрдВрдб) рд▓рдЧрддрд╛ рд╣реИред рдпрд╣ рдмреНрд░рд╛рдЙрдЬрд╝рд░ UI рдХреЛ рдмреНрд▓реЙрдХ рдХрд░ рджреЗрдЧрд╛ рдЗрд╕рд▓рд┐рдП рдореИрдВрдиреЗ рдЗрд╕реЗ рджреВрд╕рд░реЗ рдереНрд░реЗрдб рдореЗрдВ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░ рджрд┐рдпрд╛ред
рдореБрдЭреЗ рдЖрд╢рд╛ рд╣реИ рдХрд┐ рдореЗрд░рд╛ рджреГрд╖реНрдЯрд┐рдХреЛрдг рд╕реНрдкрд╖реНрдЯ рд╣реЛ рдЬрд╛рдПрдЧрд╛ред

@ рдордерд╛рдпрд╕-рдбрдмреНрд▓реНрдпреВ рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рдХрд╛рдо рд▓рдЧрддрд╛ рд╣реИ! рдореИрдВрдиреЗ рд╕реНрд╡рддрдВрддреНрд░ рд░реВрдк рд╕реЗ рд▓рдЧрднрдЧ рдРрд╕рд╛ рд╣реА рдХрд┐рдпрд╛, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдирд╣реАрдВ рд▓рдЧрддрд╛ рдХрд┐ рдореИрдВрдиреЗ рдкреНрд░рджрд░реНрд╢рди рдореЗрдВ рд▓рдЧрднрдЧ рдЙрддрдирд╛ рд╣реА рдмрдбрд╝рд╛ рд╕реБрдзрд╛рд░ рдХрд┐рдпрд╛ рд╣реИред https://discourse.threejs.org/t/octree-injection-for-faster-raytracing/8291/2 (рд╡рд╕реНрддреБ-рдЙрдиреНрдореБрдЦ рдСрдХреНрдЯреНрд░реА рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди, рдФрд░ Mesh.raycast рдореЗрдВ рдХрдо рд╕рд╛рдл рд╕рдВрд╢реЛрдзрди)

рдХреНрдпрд╛ рдЖрдкрдХреЗ рд▓рд┐рдП рдСрдХреНрдЯреНрд░реА рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЛ рдУрдкрди-рд╕реЛрд░реНрд╕/рдпреЛрдЧрджрд╛рди рджреЗрдирд╛ рд╕рдВрднрд╡ рд╣реЛрдЧрд╛, рдЬрд┐рд╕рд╕реЗ рджреВрд╕рд░реЛрдВ рджреНрд╡рд╛рд░рд╛ рдЕрдзрд┐рдХ рдкреНрд░рдпреЛрдЧ рдХрд┐рдП рдЬрд╛ рд╕рдХреЗрдВ?

@EliasHasle рдзрдиреНрдпрд╡рд╛рджред рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдкреНрд░рджрд░реНрд╢рди рд▓рд╛рдн рдЙрддрдирд╛ рдЕрдЪреНрдЫрд╛ рдирд╣реАрдВ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдореИрдВрдиреЗ рдЕрдкрдиреЗ рдкрд╣рд▓реЗ рдЙрдкрд╛рдпреЛрдВ рдореЗрдВ рдЧрд▓рддреА рдХреА рдереАред рдореИрдВрдиреЗ рдореВрд▓реНрдп рдХреЛ рд╕рд╣реА рдХрд┐рдпрд╛ (рдКрдкрд░ рдореЗрд░реА рдкреЛрд╕реНрдЯ рджреЗрдЦреЗрдВ)ред рдСрдХреНрдЯреНрд░реА рдХреА рд▓реЙрдЧрд░рд┐рджрдорд┐рдХ рдЦреЛрдЬ рдЬрдЯрд┐рд▓рддрд╛ рдХреЗ рд╕рдВрдмрдВрдз рдореЗрдВ рд╕рдордп рдЕрдм тАЛтАЛрдЕрдзрд┐рдХ рд╕рдордЭ рдореЗрдВ рдЖрддрд╛ рд╣реИред рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ, рдореИрдВ рдЗрд╕ рд╕рдордп рдХреЛрдб рдЙрдкрд▓рдмреНрдз рдирд╣реАрдВ рдХрд░рд╛ рд╕рдХрддрд╛, рд▓реЗрдХрд┐рди рд╢рд╛рдпрдж рдЗрд╕ рд╡рд░реНрд╖ рдХреЗ рдЕрдВрдд рдореЗрдВред рд╡реИрд╕реЗ рднреА, рдореЗрд░рд╛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХрд╛рдлреА рд╕реАрдзрд╛ рд╣реИ (рдФрд░ рд╡рд╣ рд╕рд╛рдл BTW рдирд╣реАрдВ рд╣реИ;))ред рдЗрд╕рд▓рд┐рдП рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдХреЛрдИ рд╡рд┐рд╢реЗрд╖ рдЕрдВрддрд░реНрджреГрд╖реНрдЯрд┐ рдирд╣реАрдВ рд╣реЛрдЧреАред

@ рдореИрдерд┐рдпрд╛рд╕-рдбрдмреНрд▓реНрдпреВ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ 500k рд╡рд░реНрдЯреЗрдХреНрд╕ рдЬрд╛рд▓ рдкрд░ рдПрдХ рд░реЗрдХрд╛рд╕реНрдЯ рдХреЗ рд▓рд┐рдП 2.3 рдПрдордПрд╕ рдмрдирд╛рдо 120 рдПрдордПрд╕ рдЕрднреА рднреА рдПрдХ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╕реБрдзрд╛рд░ рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЧреЗрдо рдореЗрдВ рдлрд╛рдпрд░ рдХреА рдЧрдИ рдЧреЛрд▓рд┐рдпреЛрдВ рдХреЗ рд░реАрдпрд▓-рдЯрд╛рдЗрдо рд░рд┐рдЬрд╝реЙрд▓реНрдпреВрд╢рди рдХреЛ рд╕рдХреНрд╖рдо рдмрдирд╛рддрд╛ рд╣реИ (рдЧрдгрдирд╛ рдХреЗ рдХрд╛рдлреА рдмрдбрд╝реЗ рд╣рд┐рд╕реНрд╕реЗ рдкрд░) рдкреНрд░рддрд┐ рдлреНрд░реЗрдо рдмрдЬрдЯ)ред

рдХреНрдпрд╛ рдЖрдкрдиреЗ рднреА рдкреБрди: рдЕрдиреБрд░реЗрдЦрдг рдХреА рдХреЛрд╢рд┐рд╢ рдХреА?

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

@EliasHasle

рдпрджрд┐ рдЖрдк рд╕реНрдереИрддрд┐рдХ рдЬреНрдпрд╛рдорд┐рддрд┐ рдХреЗ рдЦрд┐рд▓рд╛рдл рд░реЗрдХрд╛рд╕реНрдЯрд┐рдВрдЧ рдореЗрдВ рд░реБрдЪрд┐ рд░рдЦрддреЗ рд╣реИрдВ I рдФрд░ рдЕрдиреНрдп рдиреЗ рддреАрди-рдореЗрд╖- рдмреАрд╡реАрдПрдЪ рдореЗрдВ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдкреНрд░рдпрд╛рд╕ рдХрд┐рдП рд╣реИрдВ, рдЬреЛ рддреНрд░рд┐рдХреЛрдгреЛрдВ рдХреЛ рдЕрдиреБрдХреНрд░рдорд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмреАрд╡реАрдПрдЪ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ рдФрд░ рдЙрдЪреНрдЪ-рдкреНрд░рджрд░реНрд╢рди рд░реЗрдХрд╛рд╕реНрдЯрд┐рдВрдЧ рдХреЗ рд╕рд╛рде-рд╕рд╛рде рд╕реНрдерд┐рд░ рдЬрдЯрд┐рд▓ рдЬреНрдпрд╛рдорд┐рддрд┐ рдХреЗ рдЦрд┐рд▓рд╛рдл рдЪреМрд░рд╛рд╣реЗ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рд╡реГрдХреНрд╖ рдирд┐рд░реНрдорд╛рдг рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдЕрдзрд┐рдХ рдЬрдЯрд┐рд▓ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЗрд╕рдореЗрдВ рдереЛрдбрд╝рд╛ рдЕрдзрд┐рдХ рд╕рдордп рд▓рдЧрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рд╕реИрдХрдбрд╝реЛрдВ рд╣рдЬрд╛рд░реЛрдВ рддреНрд░рд┐рдХреЛрдгреЛрдВ рдХреЗ рд╕рд╛рде рдЬреНрдпрд╛рдорд┐рддрд┐ рдХреЗ рдЦрд┐рд▓рд╛рдл рд░реЗрдХрд╛рд╕реНрдЯрд┐рдВрдЧ рдХрд░рддреЗ рд╕рдордп рдПрдХ рдорд┐рд▓реАрд╕реЗрдХрдВрдб рдХреЗ рдиреАрдЪреЗ рдФрд░ рдЕрдХреНрд╕рд░ 0.1ms рд╕реЗ рдХрдо рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред

рдирд┐рд░реНрдорд╛рдг рд╕рдордп рдореЗрдВ рдХреБрдЫ рдЕрд▓рдЧ рддрд░реАрдХреЛрдВ рд╕реЗ рд╕реБрдзрд╛рд░ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдореИрдВ рдЗрд╕рдХреЗ рд╕рд╛рде рдЬреЛ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рдерд╛ рдЙрд╕рдХреЗ рд▓рд┐рдП рдпрд╣ рдХрд╛рдлреА рдЕрдЪреНрдЫрд╛ рд░рд╣рд╛ рд╣реИ - рд╣рд╛рд▓рд╛рдВрдХрд┐ рд╕реВрдЪреА рдореЗрдВ рд╕реБрдзрд╛рд░ рдХрд░рдирд╛ рд╣реИред

рдореИрдВ рдмрд╣реБрдд рд╕рд╛рд░реЗ рдореЗрд╢ рд╡рд╛рд▓реЗ рджреГрд╢реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП рдмреЗрд╣рддрд░ рд░реЗрдХрд╛рд╕реНрдЯрд┐рдВрдЧ рдФрд░ рдЯрдХреНрдХрд░ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдЧрддрд┐рд╢реАрд▓ рджреГрд╢реНрдп-рдЖрдзрд╛рд░рд┐рдд рдСрдХреНрдЯреНрд░реА рдмрдирд╛рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ, рд▓реЗрдХрд┐рди рдореЗрд░реЗ рдкрд╛рд╕ рд╕реНрд╡рдпрдВ рдПрдХ рдЕрдЪреНрдЫрд╛ рдЙрдкрдпреЛрдЧ рдХреЗрд╕ рдирд╣реАрдВ рд╣реИред рд╢рд╛рдпрдж рдХрд┐рд╕реА рджрд┐рди!

@EliasHasle рдореЗрд░рд╛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди JS рдХреНрд▓рд╛рд╕ рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕ рдХрд╛ рдПрдХ рдЯреНрд░реА рд╣реИ (рдореИрдВ ES6 рдХреНрд▓рд╛рд╕реЗрд╕, рдпрд╛рдиреА рдкреНрд░реЛрдЯреЛрдЯрд╛рдЗрдк рдЗрдВрд╕реНрдЯреЗрдВрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВ)ред рдореВрд▓ рд░реВрдк рд╕реЗ, рдореЗрд░реЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдореЗрдВ рдПрдХ рдиреЛрдб рдПрдХ рдкреЗрдбрд╝ рд╣реИред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдореЗрд░реЗ рдкрд╛рд╕ рдПрдХ рдЕрддрд┐рд░рд┐рдХреНрдд рдСрдХреНрдЯреНрд░реА рдХреНрд▓рд╛рд╕ рд╣реИ рдЬреЛ рд░реВрдЯ рдиреЛрдб рд░рдЦрддреА рд╣реИ рдФрд░ рдкреЗрдбрд╝ рдХреЗ рдирд┐рд░реНрдорд╛рдг рдФрд░ рдЦреЛрдЬ (рдФрд░ рдХреБрдЫ рдбрд┐рдмрдЧрд┐рдВрдЧ рдФрд░ рд╡рд┐рдЬрд╝реБрдЕрд▓рд╛рдЗрдЬрд╝реЗрд╢рди) рдХреЗ рддрд░реАрдХреЛрдВ рдХреЛ рдкреНрд░рджрд╛рди рдХрд░рддреА рд╣реИред

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

рдореИрдВ рдПрдХ рдРрд╕реА рдкреБрд╕реНрддрдХ рдХреА рд╕рд┐рдлрд╛рд░рд┐рд╢ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ рдЬреЛ рдЯрдХреНрдХрд░ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХреЗ рджреГрд╖реНрдЯрд┐рдХреЛрдгреЛрдВ рдХрд╛ рдПрдХ рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рд╕рдВрдЧреНрд░рд╣ рд╣реИ: рд╕реА рдПрд░рд┐рдХреНрд╕рди, рд░реАрдпрд▓-рдЯрд╛рдЗрдо рдХреЛрд▓рд┐рдЬрди рдбрд┐рдЯреЗрдХреНрд╢рди, рд╕реАрдЖрд░рд╕реА рдкреНрд░реЗрд╕, 2004

@gkjohnson рдпрд╣ рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рд▓рдЧ рд░рд╣рд╛ рд╣реИ! рдкреНрд░рджрд░реНрд╢рди рдкреНрд░рднрд╛рд╡рд╢рд╛рд▓реА рд╣реИред рдЖрдк рдХрд┐рд╕ рдкреНрд░рдХрд╛рд░ рдХреЗ рдмреАрд╡реАрдПрдЪ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВ?

@ рдордерд╛рдпрд╕-рдбрдмреНрд▓реНрдпреВ рдзрдиреНрдпрд╡рд╛рдж!

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

@gkjohnson рддреЛ рдлрд┐рд░ рдмреАрд╡реАрдПрдЪ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдПрдХ рдкреНрд░рдХрд╛рд░ рдХрд╛ рдЕрд╕рдВрддреБрд▓рд┐рдд рдХреЗрдбреА-рдкреЗрдбрд╝ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдзреБрд░реА рдЪрдпрди рдмреЙрдХреНрд╕ рдЖрдХрд╛рд░ рдкрд░ рдирд┐рд░реНрднрд░ рд╣реИ, рд╣реИ рдирд╛? рдпрджрд┐ рдРрд╕рд╛ рд╣реИ, рддреЛ рдореИрдВ рдРрд╕рд╛ рдХреБрдЫ рдХрд░рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕реЛрдЪ рд░рд╣рд╛ рдерд╛ рдЬрд╣рд╛рдВ рд░реВрдЯ рдмреАрдмреА рдШрди рд╕реЗ рдмрд╣реБрдд рджреВрд░ рдерд╛, рдФрд░ рдлрд┐рд░ рд╕рд╢рд░реНрдд рд╡рд┐рднрд╛рдЬрди рдХреЗ рдмрд╛рдж рдСрдХреНрдЯреЗрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рдерд╛ред рдпрд╣ рд╕рдВрднрд╡рддрдГ @Usnul рдХреЗ рдорд╛рдирдЪрд┐рддреНрд░ рдХреА рджреБрдирд┐рдпрд╛ рдЬреИрд╕реЗ рдорд╛рдорд▓реЛрдВ рдкрд░ рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рд▓рд╛рдЧреВ рд╣реЛрдЧрд╛, рдЬрд╣рд╛рдВ рдкреНрд░рд╛рд░рдВрднрд┐рдХ рд╡рд┐рднрд╛рдЬрди рджреЛ "рдорд╛рдирдЪрд┐рддреНрд░" рдЖрдпрд╛рдореЛрдВ рдореЗрдВ рд╣реЛрдЧрд╛ рдФрд░ рдмрд╛рдж рдореЗрдВ рд╡рд┐рднрд╛рдЬрди 3D рдореЗрдВ рдЖрдЧреЗ рдмрдврд╝реЗрдЧрд╛ред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдореЗрд░реА рддреБрд▓рдирд╛ рдореЗрдВ рдПрдХ рдмреЗрд╣рддрд░ рд╕рдорд╛рдзрд╛рди рд╣реИ, рдЬреЛ рд░реВрдЯ рдмреАрдмреА рдХреЛ рдПрдХ рд╣реА рдХреЗрдВрджреНрд░ рдХреЗ рд╕рд╛рде рдПрдХ рдмрд╛рдЙрдВрдбрд┐рдВрдЧ рдХреНрдпреВрдм рдореЗрдВ рд╡рд┐рд╕реНрддрд╛рд░рд┐рдд рдХрд░рдирд╛ рд╣реИ, рдФрд░ рдлрд┐рд░ рд╕рднреА рддрд░рд╣ рд╕реЗ рдСрдХреНрдЯреНрд░реА рд╕реНрдкреНрд▓рд┐рдЯрд┐рдВрдЧ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╣реИред

рдореИрдВрдиреЗ рдЕрднреА PlaneBufferGeometry рдкрд░ рд░реЗрдХрд╛рд╕реНрдЯрд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рдПрдХ рдмреЗрд╣рддрд░ рддрд░реАрдХрд╛ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рд╣реИред

@kpetrow рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ PlaneBufferGeometry рдкрд░ рд░реЗрдХрд╛рд╕реНрдЯ рдХреЛ рдЕрдиреБрдХреВрд▓рд┐рдд рдХрд░рдирд╛, рдпрд╣ рдзрд╛рд░рдгрд╛ рдХрд┐ рд╢реАрд░реНрд╖ рдкрджреЛрдВ рдореЗрдВ рдмрджрд▓рд╛рд╡ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛, рдЙрдЪреНрдЪ-рд░рд┐рдЬрд╝реЙрд▓реНрдпреВрд╢рди рдЬреНрдпрд╛рдорд┐рддрд┐ рдХреЗ рд▓рд┐рдП рдорд╛рдиреНрдп рдирд╣реАрдВ рд╣реЛрдЧрд╛ рдЬрд╣рд╛рдВ рдПрдХ рд░реИрдЦрд┐рдХ рдЦреЛрдЬ рдЕрдкрд░реНрдпрд╛рдкреНрдд рд╣реИред рдЬрд╣рд╛рдВ рддрдХ тАЛтАЛтАЛтАЛрдореИрдВ рдмрддрд╛ рд╕рдХрддрд╛ рд╣реВрдВ, рдЙрдЪреНрдЪ-рд░рд┐рдЬрд╝реЙрд▓реНрдпреВрд╢рди PlaneBufferGeometry рдХрд╛ рдореБрдЦреНрдп рдЙрдкрдпреЛрдЧ рдЯреЛрдкреЛрд▓реЙрдЬреА рдХреЛ рдмрдирд╛рдП рд░рдЦрддреЗ рд╣реБрдП, рдЬреИрд╕реЗ рдХрд┐ рдЗрд▓рд╛рдХреЗ рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдХреЛрдиреЗ рдХреЛ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рдХреЗ рдЗрд╕реЗ рдлрд┐рд░ рд╕реЗ рдЖрдХрд╛рд░ рджреЗрдирд╛ рд╣реИред

#13909 рдХреЗ рдкрдХреНрд╖ рдореЗрдВ рд╕рдорд╛рдкрдиред

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

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

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

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

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

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

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