Three.js: рдЬреАрдПрд▓рдЯреАрдПрдлрдирд┐рд░реНрдпрд╛рддрдХ

рдХреЛ рдирд┐рд░реНрдорд┐рдд 15 рдЕрдЧре░ 2017  ┬╖  85рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: mrdoob/three.js

рдореИрдВ GLTF2 рдирд┐рд░реНрдпрд╛рддрдХ рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдХрд╛ рдЯреНрд░реИрдХ рд░рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдЗрд╕ рдореБрджреНрджреЗ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣реВрдВрдЧрд╛ред рдореИрдВрдиреЗ рдкреАрдЖрд░ https://github.com/mrdoob/three.js/pull/11917 рдкрд░ рдЪрд░реНрдЪрд╛ рдХреА рдЧрдИ рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдХреА рдкреНрд░рд╛рд░рдВрднрд┐рдХ рд╕реВрдЪреА рдХреА рдкреНрд░рддрд┐рд▓рд┐рдкрд┐ рдмрдирд╛рдИ рд╣реИ рдФрд░ рдЬреИрд╕реЗ-рдЬреИрд╕реЗ рд╣рдо рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдореЗрдВ рдкреНрд░рдЧрддрд┐ рдХрд░реЗрдВрдЧреЗ, рдореИрдВ рд╕реВрдЪреА рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░рддрд╛ рд░рд╣реВрдВрдЧрд╛ред

рд╕реБрд╡рд┐рдзрд╛рдПрдБ / рдЯреВ-рдбреВ

  • [x] рдирд┐рд░реНрдпрд╛рдд рд╡рд┐рдХрд▓реНрдк

    • [x] trs рдореИрдЯреНрд░рд┐рдХреНрд╕ рдХреЗ рдмрдЬрд╛рдп рдЯреАрдЖрд░рдПрд╕ рдирд┐рд░реНрдпрд╛рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП

    • [рдПрдХреНрд╕] input :

    • [x] рд╕рд┐рдВрдЧрд▓ рд╕реАрди

    • [x] рджреГрд╢реНрдпреЛрдВ рдХреА рд╕рд░рдгреА

    • [x] рдПрдХрд▓ рд╡рд╕реНрддреБ

    • [x] рд╡рд╕реНрддреБрдУрдВ рдХреА рд╕рд░рдгреА

    • [x] truncateDrawRange : drawRange рджреНрд╡рд╛рд░рд╛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХреЗрд╡рд▓ рд╡рд┐рд╢реЗрд╖рддрд╛ рдорд╛рдиреЛрдВ рдХреЛ рдирд┐рд░реНрдпрд╛рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╛рдзреНрдп рдХрд░реЗрдВ:

    • [x] рдЧреИрд░-рд╕реВрдЪрдХрд╛рдВрдХ рдмрдлрд░ рдЬреНрдпрд╛рдорд┐рддрд┐

    • [x] рдЕрдиреБрдХреНрд░рдорд┐рдд рдмрдлрд░ рдЬреНрдпрд╛рдорд┐рддрд┐

  • [x] userData рдХреЛ extras ?
  • [x] рджреГрд╢реНрдп

    • [x] рдХрдИ рджреГрд╢реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдерди

  • [x] рдиреЛрдбреНрд╕

    • [x] рдореЗрд╖

    • [x] рдЖрджрд┐рдо рдореЛрдб:



      • [x] рддреНрд░рд┐рдХреЛрдг


      • [x] TRIANGLE_STRIP


      • [x] TRIANGLE_SPAN


      • [x] рдЕрдВрдХ


      • [x] рд▓рд╛рдЗрдиреНрд╕


      • [x] LINE_STRIP


      • [x] LINE_LOOP



    • [x] рдЬреНрдпрд╛рдорд┐рддрд┐ рдкреНрд░рдХрд╛рд░:



      • [рдПрдХреНрд╕] рдмрдлрд░рдЬреНрдпреЛрдореЗрдЯреНрд░реА


      • [x] рдЬреНрдпрд╛рдорд┐рддрд┐



    • [x] рдЖрджрд┐рдо рдЧреБрдг:



      • [x] рд╕реНрдерд┐рддрд┐


      • [x] рд╕рд╛рдорд╛рдиреНрдп


      • [рдПрдХреНрд╕] рдЯреЗрдХреНрд╕рдХреЛрд░реНрдб_0


      • [x] рдЯреЗрдХреНрд╕рдХреЛрд░реНрдб_1


      • [рдПрдХреНрд╕] COLOR_0


      • [рдПрдХреНрд╕] рдЬреЙрдЗрдВрдЯреНрд╕_0


      • [рдПрдХреНрд╕] рд╡рдЬрди_0


      • [x] рд╕реНрдкрд░реНрд╢рд░реЗрдЦрд╛



    • [x] рдЖрджрд┐рдо рдХреЗ рд░реВрдк рдореЗрдВ рдмрд╣реБ-рд╕рд╛рдордЧреНрд░реА рдЬрд╛рд▓

    • [x] рд░реЛрд╢рдиреА

    • [рдПрдХреНрд╕] рдХреИрдорд░рд╛

    • [рдПрдХреНрд╕] рддреНрд╡рдЪрд╛

  • [ ] рд╕рд╛рдордЧреНрд░реА :

    • [x] рдЕрдЧрд░ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд╕рд╛рдордЧреНрд░реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИ рддреЛ рдзреНрдпрд╛рди рди рджреЗрдВ

    • [x] рд▓рд╛рдЗрдиреЛрдВ рдХреЗ рд░реВрдк рдореЗрдВ рдирд┐рд░реНрдпрд╛рдд рдХрд░реЗрдВ рдпрджрд┐ material.wireframe === true

    • [x] pbrMetallicRoughness рд▓рд┐рдП MeshStandardMaterial

    • [рдПрдХреНрд╕] рдЧреБрдг:



      • [рдПрдХреНрд╕] baseColorFactor


      • [рдПрдХреНрд╕] metallicFactor


      • [рдПрдХреНрд╕] roughnessFactor


      • [x] baseColorTexture : рдпрд╣ рд╕рдорд░реНрдерд┐рдд рд╣реИ ( material.map ) рд▓реЗрдХрд┐рди texCoord рд╣рдореЗрд╢рд╛ 0 рдкрд░ рд╕реЗрдЯ рд╣реЛрддрд╛ рд╣реИред



    • [рдПрдХреНрд╕] doubleSided

    • [x] KHR_material_unlit

  • [x] рд╕реИрдореНрдкрд▓рд░реНрд╕
  • [] рдЫрд╡рд┐рдпрд╛рдВ

    • [x] uri рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ map.image.src

    • [x] uri рдмреЗрд╕64

    • [рдПрдХреНрд╕] bufferView

    • [x] flipY рдЫрд╡рд┐рдпреЛрдВ рдХреЗ рд╕рд╛рде рдбреАрд▓ рдХрд░реЗрдВ

    • [ ] рдЪреИрдирд▓реЛрдВ рдХреЛ рдПрдХ рдмрдирд╛рд╡рдЯ рдореЗрдВ рдорд┐рд▓рд╛рдПрдВ

  • [] рдПрдХреНрд╕реЗрд╕рд░реНрд╕

    • [ ] рд╕рдорд╛рди рдШрдЯрдХ рдХреЗ рд▓рд┐рдП рд╕рдорд╛рди bufferView рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ, рдкреНрд░рддреНрдпреЗрдХ рд╡рд┐рд╢реЗрд╖рддрд╛ рдХреЗ рд▓рд┐рдП рдПрдХ рдирдпрд╛ рдмрдирд╛рдиреЗ рдХреЗ рдмрдЬрд╛рдп рдЯрд╛рдЗрдк рдХрд░реЗрдВ (WIP @takahirox)
    • [x] рд╕рдорд░реНрдерди sparse ?
    • [ ] рдЧреБрдг :
    • [рдПрдХреНрд╕] bufferView
    • [ ] byteOffset : рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдпрд╣ рд╣рдореЗрд╢рд╛ 0 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдореИрдВ рдкреНрд░рддреНрдпреЗрдХ рдПрдХреНрд╕реЗрд╕рд░ рдХреЗ рд▓рд┐рдП рдПрдХ рдирдпрд╛ рдмрдлрд░ рд╡реНрдпреВ рдмрдирд╛ рд░рд╣рд╛ рд╣реВрдВред
    • [рдПрдХреНрд╕] componentType
    • [рдПрдХреНрд╕] count
    • [рдПрдХреНрд╕] max
    • [рдПрдХреНрд╕] min
    • [x] type :

      • [x] SCALAR

      • [рдПрдХреНрд╕] VEC2

      • [рдПрдХреНрд╕] VEC3

      • [рдПрдХреНрд╕] VEC4

  • [ ] BufferViews : рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдореИрдВ рдкреНрд░рддреНрдпреЗрдХ Accessor bufferView рд▓рд┐рдП рдПрдХ рдирдпрд╛ componentType рд╕рд╛рдЭрд╛ рдХрд░рддреЗ рд╣реИрдВ

    • [рдПрдХреНрд╕] рдЧреБрдг:
    • [рдПрдХреНрд╕] buffer
    • [рдПрдХреНрд╕] byteOffset
    • [x] byteLength
    • [рдПрдХреНрд╕] byteStride
    • [x] target
  • [x] рдмрдлрд╝рд░реНрд╕ : рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдореИрдВ рд╕рдм рдХреБрдЫ рдПрдХ рд╣реА рдмрдлрд╝рд░ рдореЗрдВ рд╕рд╣реЗрдЬ рд░рд╣рд╛ рд╣реВрдБ, рдЗрд╕рд▓рд┐рдП рдпрд╣ рдмрдлрд╝рд░реНрд╕ рд╕рд░рдгреА рдореЗрдВ рдХреЗрд╡рд▓ рдПрдХ рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐ рд╣реЛрдЧреАред

    • [рдПрдХреНрд╕] рдмрд╛рдЗрдЯ рд▓рдореНрдмрд╛рдИ

    • [рдПрдХреНрд╕] рдпреВрд░реА

  • [x] рдПрдирд┐рдореЗрд╢рди
  • [] рд╡рд┐рд╡рд┐рдз :

    • [ ] рдЖрдЙрдЯрдкреБрдЯ рдХреА рдкреБрд╖реНрдЯрд┐ рдХрд░реЗрдВ (https://github.com/KhronasGroup/glTF-Validator)

    • [ ] рдирд┐рд░реНрдпрд╛рдд рдХреА рдЧрдИ рд╡рд╕реНрддреБрдУрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдФрд░ рд╢рд╛рдпрдж рдХреБрдЫ рд╕рдордп рд▓реЙрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП stats рд╡рд┐рдХрд▓реНрдк рд╢рд╛рдорд┐рд▓ рдХрд░реЗрдВ?

  • [рдПрдХреНрд╕] рдЬреАрдПрд▓рдмреА

рдЙрджрд╛рд╣рд░рдг

рд╡рд░реНрддрдорд╛рди рдбреЗрдореЛ:
image

рдирд┐рд░реНрдпрд╛рдд рдХрд┐рдП рдЧрдП gltf рдХреЛ
image

рдЬреАрдПрд▓рдЯреАрдПрдл: https://gist.github.com/fernandojsg/0e86638d81839708bcbb78ab67142640

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

рдЖрд╢рд╛ рд╣реИ рдХрд┐ рдорд▓реНрдЯреА-рдордЯреЗрд░рд┐рдпрд▓ рдореЗрд╢ рдХреЛ рдпрдерд╛рд╢реАрдШреНрд░ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ рдХреНрдпреЛрдВрдХрд┐ рдЕрдзрд┐рдХрд╛рдВрд╢ 3D рдореЙрдбрд▓ рдорд▓реНрдЯреА-рдореИрдЯреЗрд░рд┐рдпрд▓реНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВред

рдЬреИрд╕рд╛ рдХрд┐ рдореИрдВрдиреЗ рджреВрд╕рд░реЗ рд╕реВрддреНрд░ рдореЗрдВ рдХрд╣рд╛, рдореИрдВ рдЗрд╕ рдкрд░ рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реВрдВред

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

рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЕрдЪреНрдЫрд╛ рд▓рдЧ рд░рд╣рд╛ рд╣реИ!

рд╡реИрд╕реЗ, рд╣рдо THREE.GLTFLoader рдХреЛ рд╣рдЯрд╛рдиреЗ рдФрд░ GLTF2Loader тЖТ GLTFLoader рдирд╛рдо рдмрджрд▓рдиреЗ рдХреА рдпреЛрдЬрдирд╛ рдмрдирд╛ рд░рд╣реЗ рд╣реИрдВред рдХрд┐рд╕реА рднреА рднреНрд░рдо рд╕реЗ рдмрдЪрдиреЗ рдХреЗ рд▓рд┐рдП r87 рднреВрдорд┐ рд╕реЗ рдкрд╣рд▓реЗ рдирд┐рд░реНрдпрд╛рддрдХ рдХрд╛ рдирд╛рдо GLTFExporter рдХреЗ рд░реВрдк рдореЗрдВ рдмрджрд▓рдирд╛ рдПрдХ рдЕрдЪреНрдЫрд╛ рд╡рд┐рдЪрд╛рд░ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдФрд░ рдЗрд╕рд▓рд┐рдП рд░рд┐рд▓реАрдЬрд╝ рдХреЗ рдмреАрдЪ рдирд╛рдо рдкрд░рд┐рд╡рд░реНрддрди рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реЛрдЧреАред рдУрд╣, рдореБрдЭреЗ рдпрд╛рдж рдЖрдпрд╛ рдХрд┐ рдЖрдкрдиреЗ рдЗрд╕реЗ рдкрд╣рд▓реЗ рд╣реА рдЗрд╕ рддрд░рд╣ рдирд╛рдо рджрд┐рдпрд╛ рд╣реИ.. рдЬрд╛рд░реА рд░рдЦреЗрдВ! рдореИрдВ


* @mrdoob , рдРрд╕рд╛ рдХрдм рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рдЗрд╕ рдкрд░ рдХреЛрдИ рд╡рд░реАрдпрддрд╛? IMO рд╣рдо рдЗрд╕реЗ рдЕрднреА рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЬрдм рддрдХ рдХрд┐ рд╣рдо GLTFLoader рдХреЛ r87 рдореЗрдВ рдХреЗрд╡рд▓ рдПрдХ рдкрджрд╛рд╡рдирддрд┐ рдЪреЗрддрд╛рд╡рдиреА рдХреЗ рд╕рд╛рде рд░рдЦрдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рдФрд░ рдЗрд╕реЗ r88 рдореЗрдВ рд╣рдЯрд╛ рджреЗрдВ?

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЬрд┐рддрдиреА рдЬрд▓реНрджреА рд╣реЛ рдЙрддрдирд╛ рдЕрдЪреНрдЫрд╛ред рдЬрдм рддрдХ рдирдпрд╛ GLTFLoader 1.0 рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реИ рдФрд░ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рдЪреЗрддрд╛рд╡рдиреА рджреЗрддрд╛ рд╣реИ рдХрд┐ рд╣рдо рдХреЗрд╡рд▓ 2.0+ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддреЗ рд╣реИрдВред

рдЬреИрд╕рд╛ рдХрд┐ рдореИрдВрдиреЗ рдкрд╣рд▓реЗ рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рд╣реИ, рдЖрдИрдЖрдИрдЖрд░рд╕реА рд╣рдо asset рджреЗрдЦрдХрд░ рдкрддрд╛ рд▓рдЧрд╛ рд╕рдХрддреЗ рд╣реИрдВред

рдЬреИрд╕рд╛ рдХрд┐ рдореИрдВрдиреЗ рдкрд╣рд▓реЗ рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рд╣реИ, рдЖрдИрдЖрдИрдЖрд░рд╕реА рд╣рдо рд╕рдВрдкрддреНрддрд┐ рдХреЛ рджреЗрдЦрдХрд░ рдкрддрд╛ рд▓рдЧрд╛ рд╕рдХрддреЗ рд╣реИрдВред

рд╣рд╛рдБ! https://github.com/mrdoob/three.js/pull/11864

рдардВрдбрд╛! рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдПрдХ рдЫреЛрдЯреА рд╕реА рдмрдЧ рдорд┐рд▓реА рд╣реИред рдореИрдВ рдЕрднреА рдкреАрдЖрд░ рдмрдирд╛ рд░рд╣рд╛ рд╣реВрдВред рдирд╛рдо рдмрджрд▓рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдЖрдЗрдП рд╡рд┐рд▓рдп рдХрд░реЗрдВред

рдХреНрдпрд╛ рд╣рдо рдЙрди рд╡рд╕реНрддреБрдУрдВ рдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдЬрд┐рди рдкрд░ рдХреЛрдИ рд╡реНрдпрдХреНрддрд┐ рдЪреЗрдХрд▓рд┐рд╕реНрдЯ рдореЗрдВ рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реИ?

@takahirox рдпрдХреАрди рд╣реИ! рд▓реЛрдЧ рдпрд╣рд╛рдВ рдХреЗрд╡рд▓ рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдВ рд▓рд┐рдЦ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдореИрдВ рд╕реВрдЪреА рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ рдФрд░ рдкреАрдЖрд░ рдХреЛ рдЗрдВрдЧрд┐рдд рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ рдпрджрд┐ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдХреБрдЫ рдЪрд▓ рд░рд╣рд╛ рд╣реИ

рдЕрдЧрд▓реА рдЪреАрдЬрд╝ рдЬреЛ рдореИрдВ рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реВрдБ рд╡рд╣ рдмрдирд╛рд╡рдЯ рдкрд░ рд╣реИ, рдЙрдиреНрд╣реЗрдВ рдХреЗрд╡рд▓ url рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рдмрдЬрд╛рдп рдмреЗрд╕ 64 рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд░рдирд╛ рд╣реИ

рдзрдиреНрдпрд╡рд╛рдж! рдореИрдВ рдЬреАрдПрд▓рдЯреАрдПрдл рдирд┐рд░реНрдпрд╛рддрдХ рдмрдирд╛рдиреЗ рдореЗрдВ рдорджрдж рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВред рдореИрдВ рджреЗрдЦ рд░рд╣рд╛ рд╣реВрдБ рдХрд┐ рдореИрдВ рдЪреЗрдХрд▓рд┐рд╕реНрдЯ рдореЗрдВ рдХреНрдпрд╛ рдорджрдж рдХрд░ рд╕рдХрддрд╛ рд╣реВрдБ...

рдмреАрдЯреАрдбрдмреНрд▓реНрдпреВ рдХреНрдпрд╛ рдЖрдкрдиреЗ рдЬрд╛рдирдмреВрдЭрдХрд░ рджреЛ рдЪрд░ WEBGL_CONSTANTS рдФрд░ THREE_TO_WEBGL рд╡реИрд╢реНрд╡рд┐рдХ рд╣реЛрдиреЗ рджрд┐рдпрд╛ рд╣реИ?

@takahirox рдХреВрд▓!
рджреЛ рдЪрд░ рдХреЗ рд╕рдВрдмрдВрдз рдореЗрдВ, рдпрд╣ рдХреБрдЫ рдРрд╕рд╛ рд╣реИ рдЬрд┐рд╕реЗ рдореИрдВ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдкреАрдЖрд░ рдореЗрдВ рд╕рдВрдмреЛрдзрд┐рдд рдХрд░рдиреЗ рдЬрд╛ рд░рд╣рд╛ рд╣реВрдВ рддрд╛рдХрд┐ рдЗрд╕реЗ WebGLUtils рдХрд╛ рд╣рд┐рд╕реНрд╕рд╛ рдмрдирд╛рдпрд╛ рдЬрд╛ рд╕рдХреЗ рдФрд░ рдЗрд╕реЗ рдЖрдпрд╛рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХреЗред рдЗрд╕рдХрд╛ рдХреЛрдИ рдорддрд▓рдм рдирд╣реАрдВ рд╣реИ рдХрд┐ рдЗрди рд╕реНрдерд┐рд░рд╛рдВрдХреЛрдВ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╡рд╛рд▓реЗ рдкреНрд░рддреНрдпреЗрдХ рд╡реНрдпрдХреНрддрд┐ рдХреЛ рд╣рд░ рдмрд╛рд░ рдЙрдиреНрд╣реЗрдВ рдлрд┐рд░ рд╕реЗ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред

@takahirox btw рдкрд╛рдареНрдпрдХреНрд░рдо рдХреА рд╕реВрдЪреА рдореЗрдВ рдирдИ рд╡рд╕реНрддреБрдУрдВ рдХрд╛ рдкреНрд░рд╕реНрддрд╛рд╡ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реНрд╡рддрдВрддреНрд░ рдорд╣рд╕реВрд╕ рдХрд░реЗрдВ! ;)

@fernandojsg рдЬрд╝рд░реВрд░! рдЪрд░ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ, рдореИрдВ рдЙрдиреНрд╣реЗрдВ рдХрд╣реАрдВ рдФрд░ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рд╕реНрддрд╛рд╡ рджреЗрдирд╛ рдЪрд╛рд╣рддрд╛ рдерд╛ рдпрджрд┐ рдЙрдиреНрд╣реЗрдВ рдЬрд╛рдирдмреВрдЭрдХрд░ рд╡реИрд╢реНрд╡рд┐рдХ рдШреЛрд╖рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдпрд╣ рдЬрд╛рдирдирд╛ рдЕрдЪреНрдЫрд╛ рд╣реИ рдХрд┐ рдЖрдк рдХрд░рддреЗ рд╣реИрдВред

рдореИрдВ рд╕рд╛рдЭрд╛ рдмрдлрд░ рд╡реНрдпреВ рдкрд░ рдХрд╛рдо рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВред

рдмрдлрд░ рд╡реНрдпреВ: рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдореИрдВ рдкреНрд░рддреНрдпреЗрдХ рдПрдХреНрд╕реЗрд╕рд░ рдХреЗ рд▓рд┐рдП рдПрдХ рдирдпрд╛ рдмрдлрд░ рд╡реНрдпреВ рдмрдирд╛ рд░рд╣рд╛ рд╣реВрдВ, рдЗрд╕реЗ рдЗрди рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдХреЗрд╡рд▓ рдПрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рддрдп рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рдЬреЛ рд╕рдорд╛рди рдШрдЯрдХ рдкреНрд░рдХрд╛рд░ рд╕рд╛рдЭрд╛ рдХрд░рддреЗ рд╣реИрдВ

рдПрдХ рд╣реА рдШрдЯрдХ рдкреНрд░рдХрд╛рд░ рд╕рд╛рдЭрд╛ рдХрд░рдиреЗ рд╡рд╛рд▓реА рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рдХрд╛рд░рдг, рд╕рднреА рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рдирд╣реАрдВ, рдбреЗрдЯрд╛ рд╕рдВрд░реЗрдЦрдг рдХреЗ рд▓рд┐рдП рд╕рд╣реА рд╣реИ?

https://github.com/KhrosGroup/glTF/tree/master/specification/2.0#data -alignment

рдмрдврд╝рд┐рдпрд╛, рдореИрдВрдиреЗ рдЕрднреА рдЖрдкрдХреЛ рд╕реВрдЪреА рдореЗрдВ рдЬреЛрдбрд╝рд╛ рд╣реИ рд╣рд╛рдВ, рдореВрд▓ рд░реВрдк рд╕реЗ рдЖрдк рдПрдХ рд╣реА рдкреНрд░рдХрд╛рд░ рдХреЗ рдШрдЯрдХ рдХреЗ рд▓рд┐рдП рдПрдХ рд╣реА рдмрдлрд░ рджреГрд╢реНрдп рд╕рд╛рдЭрд╛ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдпрджрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рд╕реНрдерд┐рддрд┐ рдФрд░ рд╕рд╛рдорд╛рдиреНрдп рд╣реИ рддреЛ рдЖрдкрдХреЗ рдкрд╛рд╕ рджреЛ рд╡реАрдИрд╕реА 3 рдПрдХреНрд╕реЗрд╕рд░реНрд╕ рд╣реЛрдВрдЧреЗ рд▓реЗрдХрд┐рди рд╡реЗ рдЗрдВрдЧрд┐рдд рдХрд░реЗрдВрдЧреЗ рдПрдХ рд╣реА рдмрдлрд░рд╡реНрдпреВ рдХреЗ рд▓рд┐рдПред рдпрд╣ рдПрдХ рдорд╣рд╛рди рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдмрд┐рдВрджреБ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ;)

рдореЗрд░рд╛ рдорддрд▓рдм рдерд╛, рдХрд╛рд░рдг рд╣реИ рдХрд┐ рд╣рдо рдЕрд▓рдЧ-рдЕрд▓рдЧ рдШрдЯрдХреЛрдВ рдХреЗ рдмреАрдЪ рдмрдлрд░ рд╡реНрдпреВ рдХреЛ рд╕рд╛рдЭрд╛ рдирд╣реАрдВ рдХрд░рдиреЗ рджреЗрддреЗ рд╣реИрдВ (рдЙрджрд╛: рдлреНрд▓реЛрдЯ рдФрд░ рд╢реЙрд░реНрдЯ) рдЕрдЪреНрдЫрд╛ рдбреЗрдЯрд╛ рд╕рдВрд░реЗрдЦрдг рд░рдЦрдирд╛ рд╣реИ, рд╕рд╣реА рд╣реИ?

рдореЗрд░рд╛ рдорд╛рдирдирд╛ тАЛтАЛтАЛтАЛрд╣реИ рдХрд┐ рдЖрдк рдПрдХ рд╣реА рдмрдлрд░ рд╡реНрдпреВ рдореЗрдВ рд╡рд┐рднрд┐рдиреНрди рдШрдЯрдХ рдкреНрд░рдХрд╛рд░реЛрдВ рдХреЛ рддрдм рддрдХ рд╕реНрдЯреЛрд░ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдЬрдм рддрдХ рдЙрдирдХреЗ рдкрд╛рд╕ рд╕рдорд╛рди target , рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП normal (Vec3) , position (Vec3) рдФрд░ uv (Vec2) рдПрдХ рд╣реА рдмрдлрд░ рджреГрд╢реНрдп рдореЗрдВ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рд▓реЗрдХрд┐рди indices рдирд╣реАрдВред @donmccurdy рдХреНрдпрд╛ рдЖрдк рдЗрд╕рдХреА рдкреБрд╖реНрдЯрд┐ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ?

рд╣рд╛рдБ, рд╕рд╣рдордд рд╣реБрдПред рдФрд░ рдЬреИрд╕рд╛ рдХрд┐ рдЗрд╕ glTF рд╡рд┐рдирд┐рд░реНрджреЗрд╢ рдХрд╛ рдЙрд▓реНрд▓реЗрдЦ рд╣реИ

https://github.com/KhrosGroup/glTF/tree/master/specification/2.0#data -alignment

рдПрдХ рдПрдХреНрд╕реЗрд╕рд░ рдХрд╛ рдмрдлрд╝рд░ рд╡реНрдпреВ (рдпрд╛рдиреА, рдПрдХреНрд╕реЗрд╕рд░.рдмрд╛рдЗрдЯрдСрдлрд╝рд╕реЗрдЯ) рдореЗрдВ рдСрдлрд╝рд╕реЗрдЯ рдФрд░ рдПрдХ рдПрдХреНрд╕реЗрд╕рд░ рдХрд╛ рдмрдлрд░ рдореЗрдВ рдСрдлрд╝рд╕реЗрдЯ (рдпрд╛рдиреА, рдПрдХреНрд╕реЗрд╕рд░.рдмрд╛рдЗрдЯрдСрдлрд╝рд╕реЗрдЯ + рдмрдлрд░рд╡реНрдпреВ.рдмрд╛рдЗрдЯрдСрдлрд╝рд╕реЗрдЯ) рдПрдХреНрд╕реЗрд╕рд░ рдХреЗ рдШрдЯрдХ рдкреНрд░рдХрд╛рд░ рдХреЗ рдЖрдХрд╛рд░ рдХрд╛ рдПрдХ рдмрд╣реБ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред

рдпрд╣ рдПрдХ рдЕрдЪреНрдЫрд╛ рд╡рд┐рдЪрд╛рд░ рд╣реИ рдХрд┐ рд╣рдо рд╕рд░рд▓рддрд╛ рдХреЗ рд▓рд┐рдП рдЕрд▓рдЧ-рдЕрд▓рдЧ рдХрдВрдкреЛрдиреЗрдВрдЯ рдЯрд╛рдЗрдк (= рдбреЗрдЯрд╛ рдЯрд╛рдЗрдк рдЬреИрд╕реЗ рдлреНрд▓реЛрдЯ рдФрд░ рд╢реЙрд░реНрдЯ, рди рдХрд┐ vec2 рдпрд╛ vec3) рдХреЗ рдмреАрдЪ рдмрдлрд░ рд╡реНрдпреВ рдХреЛ рдЕрд▓рдЧ рдХрд░рддреЗ рд╣реИрдВред рдпрджрд┐ рд╣рдо рдЙрдиреНрд╣реЗрдВ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдбреЗрдЯрд╛ рд▓рдВрдмрд╛рдИ рдХреЗ рдШрдЯрдХ рдкреНрд░рдХрд╛рд░ рдХреЗ рдмреАрдЪ рдЕрд▓рдЧ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдпрд╣ рдЕрдзрд┐рдХ рдЕрдиреБрдХреВрд▓рд┐рдд рд╣реЛрдЧрд╛ред

рдмреАрдЯреАрдбрдмреНрд▓реНрдпреВ рдХреНрдпрд╛ рдХреЛрдИ рд╡рд┐рд╢реЗрд╖ рдХрд╛рд░рдг рд╣реИ рдХрд┐ рд╡рд░реНрддрдорд╛рди рдирд┐рд░реНрдпрд╛рддрдХ рдХреЗрд╡рд▓ accessor.componentType рдлреНрд▓реЛрдЯ, рдпреВрдВрдЯ рдФрд░ рдпреВрд╢реЙрд░реНрдЯ рдХрд╛ рд╕рдорд░реНрдерди рдХреНрдпреЛрдВ рдХрд░рддрд╛ рд╣реИ? glTF 2.0 рдЙрдирдХреЗ рдЕрд▓рд╛рд╡рд╛ char, uchar, рдФрд░ short рдХреЛ рднреА рд╣реИрдВрдбрд▓ рдХрд░ рд╕рдХрддрд╛ рд╣реИред

https://github.com/KhronasGroup/glTF/tree/master/specification/2.0#accessorcomponenttype -white_check_mark

@takahirox рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдирд╣реАрдВ, рдореИрдВрдиреЗ рдЕрднреА рддрдХ рдЗрдиреНрд╣реЗрдВ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд┐рдпрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рд╡реЗ рдЙрди рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреЗ рдкреНрд░рдХрд╛рд░ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ рдЬрд┐рдирдХрд╛ рд╣рдо рдЕрднреА рд╕рдорд░реНрдерди рдХрд░рддреЗ рд╣реИрдВ (рд╕реНрдерд┐рддрд┐, рдорд╛рдирджрдВрдб, рд░рдВрдЧ, рдпреВрд╡реА, рд╕реВрдЪрдХрд╛рдВрдХ ..)ред
рдЕрдЧрд▓рд╛ рдЪрд░рдг рдЬрд┐рд╕ рдкрд░ рдореИрдВ рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реВрдВ, рд╡рд╣ рд╣реИ рдЯреЗрдХреНрд╕рдЪрд░реНрд╕ рдЗрд╕рд▓рд┐рдП рд╡рд╣рд╛рдВ рд╣рдореЗрдВ рдЕрдиреНрдп рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА рдЬреИрд╕реЗ uchar рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП

рдареАрдХ рд╣реИ, рддреЛ рдореИрдВ рдкрд╣рд▓реЗ accessor.componentType s рдкрд░ рдХрд╛рдо рдХрд░реВрдВрдЧрд╛ рдЬрдм рддрдХ рдХрд┐ рдЖрдк рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдирд┐рд╣рд┐рдд рдХрд░рдирд╛ рд╢реБрд░реВ рдирд╣реАрдВ рдХрд░ рджреЗрддреЗред

рд▓рдЧрднрдЧ рддреИрдпрд╛рд░ рд▓реЗрдХрд┐рди рдореЗрд░реЗ рдкреАрдЖрд░ рдХреЛ #11978 рдХреЗ рд╕рд╛рде рд╕рдВрдШрд░реНрд╖ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред
рдПрдХ рдмрд╛рд░ #11978 рдХреЗ рд╡рд┐рд▓рдп рдХреЗ рдмрд╛рдж рдореИрдВ рдЕрдкрдирд╛ рднреЗрдЬрддрд╛ рд╣реВрдВ рдФрд░ рдореИрдВ рд╕рдВрдШрд░реНрд╖ рдХреЛ рдареАрдХ рдХрд░рддрд╛ рд╣реВрдВред

рдХреНрдпрд╛ рдЖрдк рд╕реВрдЪреА рдореЗрдВ рдПрдирд┐рдореЗрд╢рди рдЬреЛрдбрд╝реЗрдВрдЧреЗ?

@takahirox рдпрдХреАрди рд╣реИ, рдПрдиреАрдореЗрд╢рди рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдпрд╣ рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рдореИрдВрдиреЗ рдЗрд╕реЗ рд╕рд┐рд░реНрдл рдЗрд╕рд▓рд┐рдП рдирд╣реАрдВ рдЬреЛрдбрд╝рд╛ рдХреНрдпреЛрдВрдХрд┐ рдореИрдВ рддреАрди.рдЬреЗрдПрд╕ рдкрд░ рдПрдиреАрдореЗрд╢рди рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдХреА рд╡рд░реНрддрдорд╛рди рд╕реНрдерд┐рддрд┐ рд╕реЗ рдкрд░реНрдпрд╛рдкреНрдд рдкрд░рд┐рдЪрд┐рдд рдирд╣реАрдВ рдерд╛, рд▓реЗрдХрд┐рди рдЕрдЧрд░ рдЖрдк рдЗрд╕реЗ рд▓реЗрдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рдпрд╣ рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛;)

рдХреНрдпрд╛ рдЖрдк BufferGeometry рд╕рдореВрд╣реЛрдВ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдиреЗ рдХреА рдпреЛрдЬрдирд╛ рдмрдирд╛ рд░рд╣реЗ рд╣реИрдВ?
рдХреНрдпрд╛ рдЬреАрдПрд▓рдЯреАрдПрдл рд╡рд┐рдирд┐рд░реНрджреЗрд╢ рдЗрд╕реЗ рдХрд╡рд░ рдХрд░рддреЗ рд╣реИрдВ рдпрд╛ рдЗрд╕рдХреЗ рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк рдкреНрд░рддреНрдпреЗрдХ рд╕рдореВрд╣ рдХреЗ рд▓рд┐рдП рдПрдХ рдирдпрд╛ рдЬрд╛рд▓ рддреИрдпрд╛рд░ рд╣реЛрдЧрд╛?
рдпрд╣ рднреА рдзреНрдпрд╛рди рд░рдЦрдирд╛ рдЪрд╛рд╣рд┐рдП, рдореЗрд╖ рдХреА рднреМрддрд┐рдХ рд╕рдВрдкрддреНрддрд┐ рд╕рд╛рдордЧреНрд░реА рдХреА рдПрдХ рд╕рд░рдгреА рд╣реИред

@marcatec glTF рд╕реНрдкреЗрдХ рдореЗрдВ "рдореЗрд╖" рдмрдирд╛рдо "рдЖрджрд┐рдо" рднреЗрдж рд╣реЛрддрд╛ рд╣реИ рдЬреЛ рдЖрдкрдХреЛ BufferGeometry рд╕рдореВрд╣ рдмрдирд╛рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ рдЬреЛ рдкреНрд░рддреНрдпреЗрдХ рдПрдХ рдЕрд▓рдЧ рд╕рд╛рдордЧреНрд░реА рдХрд╛ рд╕рдВрджрд░реНрдн рджреЗ рд╕рдХрддрд╛ рд╣реИред рд╡рд░реНрддрдорд╛рди рдореЗрдВ THREE.GLTFLoader рд▓реЛрдбрд┐рдВрдЧ рдкреНрд░рд┐рдорд┐рдЯрд┐рд╡ рдХреЛ рдСрдкреНрдЯрд┐рдорд╛рдЗрдЬрд╝ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ - рдпрд╣ рдЕрд▓рдЧ рдореЗрд╢ рдмрдирд╛рддрд╛ рд╣реИ - рд▓реЗрдХрд┐рди рдЗрд╕реЗ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

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

рдореИрдВ рд╕рд╣рдордд рд╣реВрдБ, рдмрдврд╝рд┐рдпрд╛ рдХрд╛рдо!

рдХреНрдпрд╛ рдорд╛рдирдХ рд╕рд╛рдордЧреНрд░реА рдХреЗ рдЕрд▓рд╛рд╡рд╛ рдЕрдиреНрдп рд╕рд╛рдордЧреНрд░рд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдерди рдЬреЛрдбрд╝рдиреЗ рдХреА рдпреЛрдЬрдирд╛ рд╣реИ?

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

@homerjam MeshStandardMaterial рдХреЗ рд╕рд╛рде рд╕рд╛рдЭрд╛ рдХрд┐рдП map рдФрд░ normalMap рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╡рд╛рд▓рд╛ MeshPhongMaterial рдЙрди рдмрдирд╛рд╡рдЯреЛрдВ рдХреЗ рд╕рд╛рде рдирд┐рд░реНрдпрд╛рдд рдХрд░реЗрдЧрд╛, рд▓реЗрдХрд┐рди рдЬрдм рдЖрдк рдЗрд╕реЗ рд╡рд╛рдкрд╕ рддреАрди рдореЗрдВ рдЖрдпрд╛рдд рдХрд░рддреЗ рд╣реИрдВред рдПрдХ MeshStandardMaterial рд╣реЛрдЧрд╛ред рдирд┐рд░реНрдпрд╛рддрдХ рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдЗрд╕рдХреЗ рд▓рд┐рдП рдкреАрдмреАрдЖрд░ рдореЗрдВ рдПрдХ рд╕рд░рд▓ рд░реВрдкрд╛рдВрддрд░рдг рдХрд░рддрд╛ рд╣реИред

рд░рд╛рдЙрдВрдб-рдЯреНрд░рд┐рдк рд╕рдорд░реНрдерди (GLTFExporter рд╕реЗ рдирд┐рд░реНрдпрд╛рдд рдлреЛрдВрдЧ, GLTFLoader рд╕реЗ рд▓реЛрдб рдлреЛрдВрдЧ) рдХреЛ glTF рдкреНрд░рд╛рд░реВрдк рдкрд░ рдкреНрд░рдЧрддрд┐ рдкрд░ рдХрд╛рдо рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА: https://github.com/KhronosGroup/glTF/pull/1150

baseColorTexture : рдпрд╣ рд╕рдорд░реНрдерд┐рдд рд╣реИ (material.map) рд▓реЗрдХрд┐рди texCoord рд╣рдореЗрд╢рд╛ 0 рдкрд░ рд╕реЗрдЯ рд╣реЛрддрд╛ рд╣реИ

@fernandojsg рдХреНрдпрд╛ рдЖрдк рд╕реНрдкрд╖реНрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдпрд╣рд╛рдБ рдХреНрдпрд╛ рдпрд╛рдж рдЖ рд░рд╣реА рд╣реИ? рдЪреВрдБрдХрд┐ .map рд╣рдореЗрд╢рд╛ рддреАрди.js рдореЗрдВ рдкрд╣рд▓рд╛ UV рд╕реЗрдЯ рд╣реЛрддрд╛ рд╣реИ, рдпрд╣ glTF рдореЗрдВ рдЗрд╕рдХрд╛ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХрд░рдиреЗ рдХрд╛ рд╕рд╣реА рддрд░реАрдХрд╛ рд▓рдЧрддрд╛ рд╣реИ?

рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдореИрдВрдиреЗ рд╕реВрдЪреА рдореЗрдВ рддреАрди рд╡рд╕реНрддреБрдУрдВ рдХреЛ рдкрд╛рд░ рдХрд┐рдпрд╛ред рдиреАрдЪреЗ рддрд░реНрдХ:

  • рд╕реНрдкрд░реНрд╢рд░реЗрдЦрд╛

    • three.js рдХреЗрд╡рд▓ рдЙрдирдХреА рдЧрдгрдирд╛ GPU рдкрд░ рдХрд░рддрд╛ рд╣реИ; рдХреЗрд╡рд▓ рдирд┐рд░реНрдпрд╛рддрдХ рдХреЗ рд▓рд┐рдП рдПрдХ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдЬреЛрдбрд╝рдирд╛ рдЖрджрд░реНрд╢ рдирд╣реАрдВ рд▓рдЧрддрд╛ред

  • рд╡рд┐рд░рд▓ рдПрдХреНрд╕реЗрд╕рд░реНрд╕

    • рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдкреЛрд╕реНрдЯ-рдПрдХреНрд╕рдкреЛрд░реНрдЯ рдСрдкреНрдЯрд┐рдорд╛рдЗрдЬрд╝реЗрд╢рди рдХреЗ рд▓рд┐рдП рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рдЫреЛрдбрд╝ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЬреИрд╕реЗ mattdesl's script ред

  • рдЬрд╛рдВрдЪреЗрдВ рдХрд┐ рдХреНрдпрд╛ рд╕рд╛рдордЧреНрд░реА glTF рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд╕реЗ рдореЗрд▓ рдЦрд╛рддреА рд╣реИ рдФрд░ рдЗрд╕реЗ рдЫреЛрдбрд╝ рджреЗрдВ

    • рдПрдХ рдХрд┐рдирд╛рд░реЗ рдХреЗ рдорд╛рдорд▓реЗ / рдЕрд╡реНрдпрд╡рд╕реНрдерд╛ рдХреА рддрд░рд╣ рд▓рдЧрддрд╛ рд╣реИ, рдЕрдЧрд░ рдХреЛрдИ рджреГрдврд╝рддрд╛ рд╕реЗ рдорд╣рд╕реВрд╕ рдХрд░рддрд╛ рд╣реИ рддреЛ рдЗрд╕реЗ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдореЗрдВ рд╕рдВрдХреЛрдЪ рди рдХрд░реЗрдВ

рд╕рдВрдкрд╛рджрдХ рд╕реЗ GLB рдХреЛ рдирд┐рд░реНрдпрд╛рдд рдХрд░рдХреЗ рдореИрдВрдиреЗ рджреЗрдЦрд╛ рд╣реИ рдХрд┐ alphaMap , roughnessMap рдФрд░ metalnessMap рдирд┐рд░реНрдпрд╛рдд рдирд╣реАрдВ рд╣реЛрддреЗ рд╣реИрдВред

#13397 рдореЗрдВ рдореИрдВрдиреЗ рдХрд╣рд╛ рдерд╛ рдХрд┐ normalMap рди рддреЛ рдирд┐рд░реНрдпрд╛рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рд▓реЗрдХрд┐рди рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдореИрдВ рдЧрд▓рдд рдерд╛ред

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

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

@donmccurdy

рд╡рд┐рд░рд▓ рдПрдХреНрд╕реЗрд╕рд░реНрд╕
рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдкреЛрд╕реНрдЯ-рдПрдХреНрд╕рдкреЛрд░реНрдЯ рдСрдкреНрдЯрд┐рдорд╛рдЗрдЬрд╝реЗрд╢рди рдХреЗ рд▓рд┐рдП рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рдмрдЪрд╛ рд╣реИ, рдЬреИрд╕реЗ рдореИрдЯрдбреЗрд╕рд▓ рдХреА рд╕реНрдХреНрд░рд┐рдкреНрдЯред

рдРрд╕рд╛ рдорд╣рд╕реВрд╕ рд╣реЛ рд░рд╣рд╛ рд╣реИ рдХрд┐ рдирд┐рд░реНрдпрд╛рддрдХ рдХреЛ рдореЙрд░реНрдл рдХреЗ рд▓рд┐рдП рд╡рд┐рд░рд▓ рдПрдХреНрд╕реЗрд╕рд░реНрд╕ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдиреЗ рджреЗрдирд╛ рд╣реИред рдореЗрд░реА рдмрд╛рдж рдореЗрдВ рдХреЛрд╢рд┐рд╢ рд░рд╣реЗрдЧреАред

@takahirox рдХреВрд▓! рдЖрдЧреЗ рдмрдврд╝реЛ!

рдореБрдЭреЗ рдирд╣реАрдВ рд▓рдЧрддрд╛ рдХрд┐ alphaMap glTF 2.0 рдореЗрдВ рд╕рдорд░реНрдерд┐рдд рд╣реИред

https://github.com/KhronasGroup/glTF/tree/master/specification/2.0#material

рд╣рд╛рдБ, рдореБрдЭреЗ рдбрд░ рдерд╛ рдХрд┐.... metalnessMap рдФрд░ roughnessMap рдХреНрдпрд╛?

рдореИрдВ рдЕрдм рдЙрди рдкрд░ рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реВрдБ!

13415

рдЫрд╡рд┐ рдкреНрд░рд╛рд░реВрдкреЛрдВ рдХреЗ рд╕рдВрдмрдВрдз рдореЗрдВред glTF 2.0 рдмрд╛рд╣рд░реА рдЫрд╡рд┐ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рд░реВрдк рдореЗрдВ рдХреЗрд╡рд▓ .png рдФрд░ .jpg рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИред рдореИрдВ рдЧреИрд░ embedImages рдореЛрдб рдкрд░ рдЧреИрд░ рд╕рдорд░реНрдерд┐рдд рдЫрд╡рд┐ рдкреНрд░рд╛рд░реВрдк рдлрд╝рд╛рдЗрд▓реЛрдВ (рдЬреИрд╕реЗ: .bmp) рдХреЛ рд╕рдВрднрд╛рд▓рдиреЗ рдХреЗ рддрд░реАрдХреЗ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░ рд░рд╣рд╛ рд╣реВрдВред

  1. .png рдпрд╛ .jpg рдореЗрдВ рдХрдирд╡рд░реНрдЯ рдХрд░реЗрдВ рдФрд░ рдПрдореНрдмреЗрдб рдХрд░реЗрдВ
  2. рдкрд░рд╡рд╛рд╣ рдордд рдХрд░реЛред рдореВрд▓ рдЫрд╡рд┐ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рд░реВрдк рдореЗрдВ рдирд┐рд░реНрдпрд╛рдд рдХрд░реЗрдВ
  3. рдирд┐рд░реНрдпрд╛рдд рди рдХрд░реЗрдВ

рдореБрдЭреЗ рдкрд╕рдВрдж рд╣реИ 1. рдХреЛрдИ рд╡рд┐рдЪрд╛рд░?

рд╡рд╛рд╣, рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЖрдк рд▓реЛрдЧреЛрдВ рдХреЗ рдХрд╛рд░реНрдпреЛрдВ рдХреА рд╕рд░рд╛рд╣рдирд╛ рдХрд░рддреЗ рд╣реИрдВред

рдЖрд╢рд╛ рд╣реИ рдХрд┐ Multi-material meshes рдХреЛ рдпрдерд╛рд╢реАрдШреНрд░ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ рдХреНрдпреЛрдВрдХрд┐ рдЕрдзрд┐рдХрд╛рдВрд╢ 3D рдореЙрдбрд▓ рдмрд╣реБ-рд╕рд╛рдордЧреНрд░реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВред

  1. .png рдпрд╛ .jpg рдореЗрдВ рдХрдирд╡рд░реНрдЯ рдХрд░реЗрдВ рдФрд░ рдПрдореНрдмреЗрдб рдХрд░реЗрдВ
  2. рдкрд░рд╡рд╛рд╣ рдордд рдХрд░реЛред рдореВрд▓ рдЫрд╡рд┐ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рд░реВрдк рдореЗрдВ рдирд┐рд░реНрдпрд╛рдд рдХрд░реЗрдВ
  3. рдирд┐рд░реНрдпрд╛рдд рди рдХрд░реЗрдВ

рдореИрдВ 3 рдХреЗ рд▓рд┐рдП рд╡реЛрдЯ рдХрд░рддрд╛ рд╣реВрдВ рдФрд░ рдХрдВрд╕реЛрд▓ рдореЗрдВ рдПрдХ рдЪреЗрддрд╛рд╡рдиреА рд▓реЙрдЧ рдХрд░рддрд╛ рд╣реВрдВред

рдЖрд╢рд╛ рд╣реИ рдХрд┐ рдорд▓реНрдЯреА-рдордЯреЗрд░рд┐рдпрд▓ рдореЗрд╢ рдХреЛ рдпрдерд╛рд╢реАрдШреНрд░ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ рдХреНрдпреЛрдВрдХрд┐ рдЕрдзрд┐рдХрд╛рдВрд╢ 3D рдореЙрдбрд▓ рдорд▓реНрдЯреА-рдореИрдЯреЗрд░рд┐рдпрд▓реНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВред

рд╕рд╣рдордд рд╣реВрдВ, рдореЗрд░реЗ рд▓рд┐рдП рдпрд╣ рдирд┐рд░реНрдпрд╛рддрдХ рдХреЗ рдЙрдкрдпреЛрдЧ рдХреЛ рд░реЛрдХрдиреЗ рд╡рд╛рд▓рд╛ рдирдВрдмрд░ рдПрдХ рдореБрджреНрджрд╛ рд╣реИред

рдЖрд╢рд╛ рд╣реИ рдХрд┐ рдорд▓реНрдЯреА-рдордЯреЗрд░рд┐рдпрд▓ рдореЗрд╢ рдХреЛ рдпрдерд╛рд╢реАрдШреНрд░ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ рдХреНрдпреЛрдВрдХрд┐ рдЕрдзрд┐рдХрд╛рдВрд╢ 3D рдореЙрдбрд▓ рдорд▓реНрдЯреА-рдореИрдЯреЗрд░рд┐рдпрд▓реНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВред

рдЬреИрд╕рд╛ рдХрд┐ рдореИрдВрдиреЗ рджреВрд╕рд░реЗ рд╕реВрддреНрд░ рдореЗрдВ рдХрд╣рд╛, рдореИрдВ рдЗрд╕ рдкрд░ рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реВрдВред

  1. .png рдпрд╛ .jpg рдореЗрдВ рдХрдирд╡рд░реНрдЯ рдХрд░реЗрдВ рдФрд░ рдПрдореНрдмреЗрдб рдХрд░реЗрдВ
  2. рдкрд░рд╡рд╛рд╣ рдордд рдХрд░реЛред рдореВрд▓ рдЫрд╡рд┐ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рд░реВрдк рдореЗрдВ рдирд┐рд░реНрдпрд╛рдд рдХрд░реЗрдВ
  3. рдирд┐рд░реНрдпрд╛рдд рди рдХрд░реЗрдВ

рдореИрдВ 3 рдХреЗ рд▓рд┐рдП рд╡реЛрдЯ рдХрд░рддрд╛ рд╣реВрдВ рдФрд░ рдХрдВрд╕реЛрд▓ рдореЗрдВ рдЪреЗрддрд╛рд╡рдиреА рджрд░реНрдЬ рдХрд░рддрд╛ рд╣реВрдВ

рд╣рд╛рдБ, рдореБрдЭреЗ рд▓рдЧрд╛ рдХрд┐ 3. рд╕рд░рд▓ рд╣реЛрдЧрд╛ рдФрд░ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЛ рднреНрд░рдорд┐рдд рдирд╣реАрдВ рдХрд░реЗрдЧрд╛ред рдЧреИрд░ emedImages рдореЛрдб рдкрд░ рдПрдореНрдмреЗрдбреЗрдб рдЫрд╡рд┐ рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рдереЛрдбрд╝рд╛ рднреНрд░рдорд┐рдд рдХрд░рдиреЗ рд╡рд╛рд▓рд╛ рд╣реЛрдЧрд╛ред

рдХрд╛рд░рдг рд╣реИ рдХрд┐ рдореИрдВ 1 рдкрд╕рдВрдж рдХрд░рддрд╛ рд╣реВрдВред рдЕрдиреНрдп рдкреНрд░рд╛рд░реВрдкреЛрдВ рд╕реЗ рдЬреАрдПрд▓рдЯреАрдПрдл рдореЗрдВ рдХрдирд╡рд░реНрдЯ рдХрд░рдирд╛ рдерд╛ред рдЕрдиреНрдп рдкреНрд░рд╛рд░реВрдкреЛрдВ рдореЗрдВ рд╕реЗ рдХреБрдЫ (рдпрд╛ рдХрдИ) рдореЗрдВ рдЫрд╡рд┐ рдкреНрд░рд╛рд░реВрдк рдХреА рд╕реАрдорд╛ рдирд╣реАрдВ рд╣реИред

рдирд┐рд░реНрдпрд╛рддрдХ embedImages рдореЛрдб рдкрд░ рдХрдирд╡рд░реНрдЯ рдХрд░рддрд╛ рд╣реИред рддреЛ рдХрдВрд╕реЛрд▓ рдЪреЗрддрд╛рд╡рдиреА рдореЗрдВ "рдпрджрд┐ рдЖрдк рдХрдирд╡рд░реНрдЯ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рддреЛ рдПрдореНрдмреЗрдб рдЗрдореЗрдЬ рд╡рд┐рдХрд▓реНрдк рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ" рдЬреЛрдбрд╝рдирд╛ рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛, рдореИрдВ рд╕реЛрдЪ рд░рд╣рд╛ рд╣реВрдВред

рдореИрдВ рднреА 3 рдХреЗ рд▓рд┐рдП рдЬрд╛рдКрдВрдЧрд╛ред рдЪреВрдВрдХрд┐ рдЕрдиреНрдп рдкреНрд░рд╛рд░реВрдкреЛрдВ рд╕реЗ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд░рдирд╛ рдХрдард┐рди рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рдФрд░ рдЖрдкрдХреЛ рдХреБрдЫ рдкреНрд░рд╛рд░реВрдкреЛрдВ рдХреЛ рджреВрд╕рд░реЛрдВ рдХреЗ рдореБрдХрд╛рдмрд▓реЗ рдкреНрд░рд╛рдердорд┐рдХрддрд╛ рджреЗрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреАред рд╢рд╛рдпрдж рдпрд╣ рдЕрднреА 3 рдХрд░рдиреЗ рд▓рд╛рдпрдХ рд╣реИ рдФрд░ рдпрд╣ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░реЗрдВ рдХрд┐ рдХреНрдпрд╛ gltf ktx рдпрд╛ рддреЛ рдирдП рдмрдирд╛рд╡рдЯ рдкреНрд░рд╛рд░реВрдкреЛрдВ рдореЗрдВ рд╕рдорд░реНрдерди рдЬреЛрдбрд╝рддрд╛ рд╣реИ рдФрд░ рд╣рдо рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдкрд░ рдлрд┐рд░ рд╕реЗ рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВред

рдЬреИрд╕рд╛ рдХрд┐ https://github.com/mrdoob/three.js/pull/13415#issuecomment -369022383 рдореЗрдВ рдЪрд░реНрдЪрд╛ рдХреА рдЧрдИ рд╣реИ, рдпрд╣ рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛ рдпрджрд┐ рдирд┐рд░реНрдпрд╛рддрдХ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рд▓рд┐рдП ambientRoughnessMetalness рдмрдирд╛рд╡рдЯ рдмрдирд╛рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛред рд╣рд╛рд▓рд╛рдВрдХрд┐ рдЙрд╕ рдХреЛрдб рдХреЛ ImageUtils рдореЗрдВ рд░рдЦрдирд╛ рдмреЗрд╣рддрд░ рд╣реЛрдЧрд╛ред

рдореИрдВрдиреЗ рдирд╡реАрдирддрдо рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХреЗ рд╕рд╛рде рдЪреЗрдХрд▓рд┐рд╕реНрдЯ рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд┐рдпрд╛ рд╣реИред рдореИрдВрдиреЗ multimaterial рдЖрдЗрдЯрдо рдореЗрдВ @takahirox рдЬреЛрдбрд╝рд╛ рд╣реИ, рдФрд░ рдореИрдВ рдЫрд╡рд┐рдпреЛрдВ рдХреЛ рд▓рд┐рдЦрдиреЗ рдХрд╛ рдХрд╛рд░реНрдп рд╕реНрд╡рдпрдВ рд▓реВрдВрдЧрд╛ред
рдореИрдВрдиреЗ material_unlit рдПрдХреНрд╕рдЯреЗрдВрд╢рди рднреА рдЬреЛрдбрд╝рд╛ рд╣реИ, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдЕрднреА рднреА рдорд╕реМрджреЗ рдореЗрдВ рд╣реИ, рдореЗрд░рд╛ рдорд╛рдирдирд╛ тАЛтАЛтАЛтАЛрд╣реИ рдХрд┐ рдпрд╣ рд░рд┐рд▓реАрдЬ рдХреЗ рдХрд╛рдлреА рдХрд░реАрдм рд╣реИ рдФрд░ рдЗрддрдирд╛ рдирд╣реАрдВ рдмрджрд▓реЗрдЧрд╛ (/cc @donmccurdy)

рдЖрд╢рд╛ рд╣реИ рдХрд┐ рдорд▓реНрдЯреА-рдордЯреЗрд░рд┐рдпрд▓ рдореЗрд╢ рдХреЛ рдпрдерд╛рд╢реАрдШреНрд░ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ рдХреНрдпреЛрдВрдХрд┐ рдЕрдзрд┐рдХрд╛рдВрд╢ 3D рдореЙрдбрд▓ рдорд▓реНрдЯреА-рдореИрдЯреЗрд░рд┐рдпрд▓реНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВред

рдЬреИрд╕рд╛ рдХрд┐ рдореИрдВрдиреЗ рджреВрд╕рд░реЗ рд╕реВрддреНрд░ рдореЗрдВ рдХрд╣рд╛, рдореИрдВ рдЗрд╕ рдкрд░ рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реВрдВред

WIP... (Miku рдореЗрдВ рдмрд╣реБ-рд╕рд╛рдордЧреНрд░реА рд╣реИ)

image

рдЧреИрд░-рд╕рдорд░реНрдерд┐рдд рдЫрд╡рд┐ рдкреНрд░рд╛рд░реВрдкреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ, рдареАрдХ рд╣реИ, рдЖрдЗрдП 3 рдкрд░ рдЪрд▓рддреЗ рд╣реИрдВред

@takahirox рдЕрдЪреНрдЫрд╛ рд▓рдЧ рд░рд╣рд╛ рд╣реИ! рдореИрдВ

BTW, рдХреНрдпрд╛ рдЖрдк рд▓реЛрдЧ рдЬрд╝рд┐рдк рд╕рдВрдЧреНрд░рд╣ рд╕рдорд░реНрдерди рдореЗрдВ рд░реБрдЪрд┐ рд░рдЦрддреЗ рд╣реИрдВ? .glTF + рдмрд╛рд╣рд░реА .bin рдФрд░ рдмрдирд╛рд╡рдЯ рдЕрдиреНрдп рд╕рдВрд▓реЗрдЦрди рдЙрдкрдХрд░рдг (рд╢рд╛рдпрдж) рдХреЗ рд▓рд┐рдП рдЙрдкрдпреБрдХреНрдд рд╣реЛрдВрдЧреЗ, рд▓реЗрдХрд┐рди рдЧреИрд░-рд╕рдВрдЧреНрд░рд╣ рдХреЗ рд╕рд╛рде рдХрд░рдирд╛ рдХрдард┐рди рд╣реЛрдЧрд╛ред рддреЛ рдЬрд╝рд┐рдк рд╕рдВрдЧреНрд░рд╣ рдЖрд╡рд╢реНрдпрдХ рд╣реЛрдЧрд╛ред рдФрд░ рд╣рдо рдирд┐рд░реНрдпрд╛рдд рдХреА рдЧрдИ рдлрд╝рд╛рдЗрд▓ рдХрд╛ рдЖрдХрд╛рд░ рдХрдо рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рдореБрдЭреЗ рдпрд╣ рдЪрд╛рд╣рд┐рдП рдФрд░ рдореИрдВрдиреЗ рдкрд╣рд▓реЗ рдЕрдкрдиреА рд╕реНрдерд╛рдиреАрдп рд╢рд╛рдЦрд╛ рдореЗрдВ рдХреЛрд╢рд┐рд╢ рдХреА, рдпрджрд┐ рдЖрдк рд░реБрдЪрд┐ рд░рдЦрддреЗ рд╣реИрдВ рддреЛ рдореИрдВ рдмрд╛рдж рдореЗрдВ рд╕рд╛рдЭрд╛ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВред

рдХреНрдпрд╛ рдпрд╣ рдХрд╛рдлреА рд╣рдж рддрдХ рдЧреНрд▓реЛрдм рдХреЛ gzipping рдХрд░рдиреЗ рдЬреИрд╕рд╛ рдирд╣реАрдВ рд╣реИ?

.glTF + рдмрд╛рд╣рд░реА .bin рдФрд░ рдмрдирд╛рд╡рдЯ рдЕрдиреНрдп рд╕рдВрд▓реЗрдЦрди рдЙрдкрдХрд░рдг (рд╢рд╛рдпрдж) рдХреЗ рд▓рд┐рдП рдЙрдкрдпреБрдХреНрдд рд╣реЛрдВрдЧреЗ

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

рдЗрд╕ рдмрд╛рд░реЗ рдореЗрдВ рдХреЛрдИ рдареЛрд╕ рд░рд╛рдп рдирд╣реАрдВ рд╣реИ рдХрд┐ рдХреНрдпрд╛ рд╣рдо рдЙрд╕ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХреЛ рд╕реАрдзреЗ THREE.GLTFExporter рдореЗрдВ рд░рдЦрдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ... рд▓реЗрдХрд┐рди рдореБрдЭреЗ рд▓рдЧрднрдЧ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдмрд╣реБрдд рдЕрдзрд┐рдХ рд╡рд┐рдХрд▓реНрдк рдирд╣реАрдВ рд╣реЛрдиреЗ рдЪрд╛рд╣рд┐рдП рдЬреЛ рдЗрд╕рдХреЗ рдмрдЬрд╛рдп glTF рдкрд░ рдкреЛрд╕реНрдЯ-рдСрдкреНрдЯрд┐рдорд╛рдЗрдЬрд╝реЗрд╢рди рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВред рдПрдХ рдФрд░ рдЙрджрд╛рд╣рд░рдг, рдбреНрд░реЗрдХреЛ рдЬрдЯрд┐рд▓ рд╣реИ рдФрд░ рдЗрд╕рдХреЗ рд▓рд┐рдП рдХрдИ рдмрд╛рд╣рд░реА рдлрд╛рдЗрд▓реЛрдВ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рдЗрд╕рд▓рд┐рдП рд╢рд╛рдпрдж рдпрд╣ рдмреЗрд╣рддрд░ рд╣реЛрдЧрд╛ рдХрд┐ рд╡рд┐рд╢реЗрд╖ glTF-to-glTF рдЯреВрд▓ рдХреЛ рд╡рд╣ рдСрдкреНрдЯрд┐рдорд╛рдЗрдЬрд╝реЗрд╢рди рдХрд░рдиреЗ рджреЗрдВ? рдФрд░ рдЗрд╕реА рддрд░рд╣ рд╣рдо рд▓реЛрдЧреЛрдВ рдХреЛ GLB рд╕реЗ ZIP рддрдХ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдЕрдирдкреИрдХ рдХрд░рдиреЗ рдореЗрдВ рдорджрдж рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ glb-unpacker (http://glb-packer.glitch.me/ рдХреЗ рд╡рд┐рдкрд░реАрдд) рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВ рдпрджрд┐ рд╣рдореЗрдВ рдкрддрд╛ рдЪрд▓рддрд╛ рд╣реИ рдХрд┐ рд▓реЛрдЧреЛрдВ рдХреЛ рдЗрд╕рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред

https://github.com/KhronasGroup/glTF/issues/1256 рд╕реЗ тАФ

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

рдЙрд╕ рдиреЗ рдХрд╣рд╛, рдХреЛрдИ рднреА рдЧреНрд▓реЛрдм-рдЕрдирдкреИрдХрд░ рдЕрднреА рддрдХ рдореМрдЬреВрдж рдирд╣реАрдВ рд╣реИ рдЬрд┐рд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдореБрдЭреЗ рдкрддрд╛ рд╣реИ ...

@mrdoob

рдореИрдВ рдЪрд╛рд╣рддрд╛ рдерд╛ рдХрд┐ рдмрдирд╛рд╡рдЯ рдЫрд╡рд┐рдпрд╛рдВ .glTF рдмрдирд╛рдо .glb рдХреЗ рдмрдЬрд╛рдп рдмрд╛рд╣рд░реА рд╣реЛрдВред

@donmccurdy

рдореИрдВрдиреЗ https://github.com/KhronasGroup/glTF/issues/1117 рдЪрд░реНрдЪрд╛ рдХрд╛ рдЕрдиреБрд╕рд░рдг рдХрд┐рдпрд╛ рдФрд░ рдЕрдм .glb + рдПрдореНрдмреЗрдбреЗрдб рдлрд╝рд╛рдЗрд▓реЛрдВ рдФрд░ рдкрд╛рдЗрдкрд▓рд╛рдЗрди рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХреЛ рдкреНрд░реЛрддреНрд╕рд╛рд╣рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рд╣рдордд рд╣реВрдВред рдПрдХ .glb рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рд╡реЗрдм рдХреЗ рд▓рд┐рдП рдбреЗрдЯрд╛ рдЯреНрд░рд╛рдВрд╕рдорд┐рд╢рди рдХреЗ рд▓рд┐рдП рдЕрдЪреНрдЫрд╛ рд╣реИ рдФрд░ рдкрд╛рдЗрдкрд▓рд╛рдЗрди рджреГрд╖реНрдЯрд┐рдХреЛрдг рдирд┐рд░реНрдпрд╛рддрдХреЛрдВ рдФрд░ рдЙрдкрдХрд░рдгреЛрдВ рдХреЛ рд╕рд░рд▓ рдФрд░ рдкреБрди: рдкреНрд░рдпреЛрдЬреНрдп рд░рдЦ рд╕рдХрддрд╛ рд╣реИред (рдореБрдЭреЗ рдпреВрдирд┐рдХреНрд╕/рд▓рд┐рдирдХреНрд╕ рдХрдорд╛рдВрдб рдкрд╛рдЗрдкрд▓рд╛рдЗрди рджреГрд╖реНрдЯрд┐рдХреЛрдг рднреА рдкрд╕рдВрдж рд╣реИ!)

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

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

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

рд╕рд╛рде рд╣реА, Three.js рдФрд░ рдЕрдиреНрдп JavaScript рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдЖрдзрд╛рд░рд┐рдд рдЗрдВрдЬрдиреЛрдВ рдХреЗ рд▓рд┐рдП, рд╣рдореЗрдВ рдЦреБрд╢реА рд╣реЛрдЧреА рдпрджрд┐ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдкрд░ рдЪрд▓рдиреЗ рд╡рд╛рд▓реЗ glTF рдЕрдиреБрдХреВрд▓рди рдЙрдкрдХрд░рдг рд╣реИрдВред рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЛ рдбреЗрдЯрд╛ рдкрд╛рд╕ рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рд╣рдо рдЕрдиреБрдХреВрд▓рд┐рдд/рд╕рдВрдкреАрдбрд╝рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЙрдирдХреЗ рдмрд┐рдирд╛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЛ рдирд┐рд░реНрдпрд╛рдд рдХрд┐рдП рдЧрдП рдбреЗрдЯрд╛ рдХреЛ рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рдиреЗ рдФрд░ рдлрд┐рд░ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рд╕реАрдорд╛рдУрдВ рдХреЗ рдХрд╛рд░рдг рдЗрд╕реЗ рдкрд╛рдЗрдкрд▓рд╛рдЗрди рдЯреВрд▓ рдореЗрдВ рдкрд╛рд╕ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред

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

рдмрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, GLTFLoader рдмрд╛рдЗрдирд░реА рд╕рдкреЛрд░реНрдЯ рдХреЛ рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдХреЗ рд░реВрдк рдореЗрдВ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рд▓реЗрдХрд┐рди .glb, glTF 2.0 рдХреЗ рдХреЛрд░ рд╕реНрдкреЗрд╕ рдореЗрдВ рд╣реИ, рд╕рд╣реА рд╣реИ?

рдмрд╕ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдЬреАрдПрд▓рдЯреАрдПрдлрд▓реЛрдбрд░ рдореЗрдВ рдмрд╛рдЗрдирд░реА рд╕рдорд░реНрдерди рдХреЛ рд╡рд┐рд╕реНрддрд╛рд░ рдХреЗ рд░реВрдк рдореЗрдВ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рд▓реЗрдХрд┐рди .glb, glTF 2.0 рдХреЗ рдореВрд▓ рд╡рд┐рдирд┐рд░реНрджреЗрд╢ рдореЗрдВ рд╣реИ, рд╕рд╣реА рд╣реИ?

рд╣рд╛рдБ, рдпрд╣ glTF 1.0 рдореЗрдВ рдПрдХ рд╡рд┐рд╕реНрддрд╛рд░ рдерд╛ рдФрд░ рдХреЛрд░ glTF 2.0 рдпреБрдХреНрддрд┐ рдХрд╛ рд╣рд┐рд╕реНрд╕рд╛ рдмрдирдиреЗ рдХреЗ рдмрд╛рдж рдореИрдВрдиреЗ рдХрднреА рднреА рдЙрд╕ рдХреЛрдб рдХреЛ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдпрд╛ рдЙрд╕рдХрд╛ рдирд╛рдо рдирд╣реАрдВ рдмрджрд▓рд╛ред

рдЗрд╕ рджреГрд╖реНрдЯрд┐рдХреЛрдг рд╕реЗ, рдореИрдВ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рдХрд┐ рдПрдХ [рдЕрдиреБрдХреВрд▓рди рдЙрдкрдХрд░рдг] рдХрд╣реАрдВ рднреА, рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдкрд░, рд╕рд░реНрд╡рд░ рдкрд░, рд╕реАрдпреВрдЖрдИ, рдФрд░ рдЗрд╕реА рддрд░рд╣ рдЪрд▓рд╛рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛ, рддрд╛рдХрд┐ рдЗрд╕реЗ рдФрд░ рдЕрдзрд┐рдХ рд╕рд╛рдорд╛рдиреНрдп рдФрд░ рдкреБрди: рдкреНрд░рдпреЛрдЬреНрдп рдмрдирд╛рдпрд╛ рдЬрд╛ рд╕рдХреЗред рддреЛ рдиреЛрдб.рдЬреЗрдПрд╕ рдЖрдзрд╛рд░рд┐рдд рдЙрдкрдХрд░рдг рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛? рдХреНрдпрд╛ glTF (рдкрд╛рдЗрдкрд▓рд╛рдЗрди) рдЯреАрдо рдХреЗ рдкрд╛рд╕ рдХреЛрдИ рд╕реБрдЭрд╛рд╡ рд╣реИ? (рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдЪрд░реНрдЪрд╛ glTF рдореЗрдВ рдХреА рдЬрд╛рдиреА рдЪрд╛рд╣рд┐рдП, рдпрд╣рд╛рдВ рдирд╣реАрдВред)

рдпрд╣ glTF-рдкрд╛рдЗрдкрд▓рд╛рдЗрди рд░реЛрдбрдореИрдк рдХреЗ рдмрд╛рд░реЗ glTF-Toolkit рдкреНрд░рд╛рд╕рдВрдЧрд┐рдХ рджрд┐рдЦрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди (рд╡рд░реНрддрдорд╛рди рдореЗрдВ) рдХреЗрд╡рд▓ рд╡рд┐рдВрдбреЛрдЬрд╝ рдкрд░ рдЪрд▓рддрд╛ рд╣реИред рдореБрдЭреЗ рд╡реНрдпрдХреНрддрд┐рдЧрдд рд░реВрдк рд╕реЗ Node.js рдкрд╕рдВрдж рд╣реИ рд▓реЗрдХрд┐рди WASM рдХреЗ рд╕рдВрдХрд▓рди рдХреЗ рд╕рд╛рде C++ рдпрд╛ Rust рдЙрдЪрд┐рдд рд╡рд┐рдХрд▓реНрдк рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВред

рдУрд╣, рдореИрдВ WASM рдХреЗ рд╕рдВрдХрд▓рди рдХреЛ рдпрд╛рдж рдХрд░ рд░рд╣рд╛ рдерд╛ред рдХреБрдЫ рдЕрдиреБрд╢рдВрд╕рд┐рдд рджреЗрд╡ рдкреНрд▓реЗрдЯрдлрд╛рд░реНрдореЛрдВ рдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдирд╛ рдЕрдиреБрдХреВрд▓рди рджреЗрд╡реЛрдВ рдХреЗ рд▓рд┐рдП рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛ред рддреЛ рдореИрдВ рдПрдХ рдЙрдкрдпреБрдХреНрдд рд╕реВрддреНрд░ рдХрд╛ рдкреНрд░рд╕реНрддрд╛рд╡ рд░рдЦреВрдВрдЧрд╛ред

рдореИрдВ @donmccurdy рд╕реЗ рд╕рд╣рдордд
рдореИрдВ рдпрд╣ рднреА рдорд╛рдирддрд╛ рд╣реВрдВ рдХрд┐ рдЬрдм рддрдХ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ WASM рд╣реЛрдЧрд╛, рддрдм рддрдХ рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╕реНрд░реЛрдд рднрд╛рд╖рд╛ рд╕реЗ рдХреЛрдИ рдлрд░реНрдХ рдирд╣реАрдВ рдкрдбрд╝реЗрдЧрд╛, рд▓реЗрдХрд┐рди рдпрд╣ рднреА рд╕рдЪ рд╣реИ рдХрд┐ рдЕрдЧрд░ рдпрд╣ рдиреЛрдб.рдЬреЗрдПрд╕ рдореЗрдВ рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рд╣реИ рддреЛ рд╢рд╛рдпрдж 3 рдбреА рд╡реЗрдм рдЗрдВрдЬрди рдХреЗ рдЖрд╕рдкрд╛рд╕ рдХреЗ рдХрдИ рд╕рдореБрджрд╛рдп рдЙрдиреНрд╣реЗрдВ рдмреЗрд╣рддрд░ рдмрдирд╛рдиреЗ рдореЗрдВ рдорджрдж рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рд╡реИрд╕реЗ рднреА рдЗрд╕ рдлрд╝рд╛рдЗрд▓ рд╕реНрд╡рд░реВрдк рдХреЗ рд▓рд┐рдП рдЕрднреА рдореБрдЦреНрдп рд▓рдХреНрд╖реНрдп рд╣реИрдВред

рдореБрдЭреЗ рдпрдХреАрди рдирд╣реАрдВ рд╣реИ рдХрд┐ рдореИрдВ "рд░реВрдкрд╛рдВрддрд░рдг рд╕реЗ рдкрд╣рд▓реЗ рдЕрдиреБрдХреВрд▓рди" рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕рдордЭрддрд╛ рд╣реВрдВ ... рдПрдХ рдкрд╛рдЗрдкрд▓рд╛рдЗрди рдореЙрдбрд▓ рдкрд░ рдХрдИ рдкреНрд░рдХрд╛рд░ рдХреЗ рдкрд░рд┐рд╡рд░реНрддрди рдХрд░ рд╕рдХрддреА рд╣реИ, рдФрд░ рдЕрдиреБрдХреВрд▓рди рд╢рд╛рдпрдж рд╕рдмрд╕реЗ рдЖрдо рдкреНрд░рдХрд╛рд░ рдХрд╛ рдкрд░рд┐рд╡рд░реНрддрди рд╣реИ?

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

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

рд╣рд╛рдп рджреЛрд╕реНрддреЛрдВ

рдореИрдВ рдПрдХ рд╕рдВрдкреВрд░реНрдг aframe рджреГрд╢реНрдп рдХреЛ рдПрдХ gltf рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЗ рд░реВрдк рдореЗрдВ рдирд┐рд░реНрдпрд╛рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП THREE.js GLTF рдирд┐рд░реНрдпрд╛рддрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдВред
рдореИрдВ рдХреИрд╕реЗ рдП-рдПрдиреАрдореЗрд╢рди рдЯреИрдЧ рдХреЛ рдПрдлрд╝реНрд░реЗрдо рдкрд░ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░ рд╕рдХрддрд╛ рд╣реВрдБ рддрд╛рдХрд┐ рд╡рд╣ GLTF рдСрдмреНрдЬреЗрдХреНрдЯ рдореЗрдВ рдПрдирд┐рдореЗрд╢рди рдХрд╛ рд╣рд┐рд╕реНрд╕рд╛ рдмрди рд╕рдХреЗ?

@donmccurdy @fernandojsg @mrdoob

рд╣рд╛рдп @рд╕рд┐рджреНрдзрд╛рд░реНрдердкрд╛рдИ - THREE.GLTFExporter рдХреЗрд╡рд▓ THREE.AnimationClip рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕ рдХреЛ glTF рдПрдирд┐рдореЗрд╢рди рдореЗрдВ рдХрдирд╡рд░реНрдЯ рдХрд░рддрд╛ рд╣реИ, рдЬрдмрдХрд┐ A-Frame рдХрд╛ рдПрдирд┐рдореЗрд╢рди рд╕рд┐рд╕реНрдЯрдо TweenJS рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред рдЗрд╕рд▓рд┐рдП рдлрд┐рд▓рд╣рд╛рд▓ рдпрд╣ рд╕рдВрднрд╡ рдирд╣реАрдВ рд╣реИред рдЖрдк рдП-рдлрд╝реНрд░реЗрдо рдпрд╛ рдП-рдлрд╝реНрд░реЗрдо рдЗрдВрд╕реНрдкреЗрдХреНрдЯрд░ рдкрд░ рдПрдХ рд╕рдорд╕реНрдпрд╛ рдЦреЛрд▓рдирд╛ рдЪрд╛рд╣ рд╕рдХрддреЗ рд╣реИрдВ, рдЬреЛ рднрд╡рд┐рд╖реНрдп рдХреА рд╕реБрд╡рд┐рдзрд╛ рдХреЗ рд░реВрдк рдореЗрдВ рдЕрдиреБрд░реЛрдз рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП GLTFExporter рдХрд╛ рднреА рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред

рдмрд╣реБ-рд╕рд╛рдордЧреНрд░реА рд╕рдорд░реНрдерди #13536

рдореИрдВрдиреЗ рдЕрднреА рджреЗрдЦрд╛ рд╣реИ рдХрд┐ рд╕рддреНрдпрд╛рдкрдирдХрд░реНрддрд╛ рдкреНрд░рддреНрдпреЗрдХ рд╕рд╛рдорд╛рдиреНрдп рддрддреНрд╡ рдкрд░ рдПрдХ рдмрдлрд░рд╡реНрдпреВ рдкрд░ рдПрдХ рддреНрд░реБрдЯрд┐ рдлреЗрдВрдХрддрд╛ рд╣реИ рдЬреЛ рд╕рд╛рдорд╛рдиреНрдпреАрдХреГрдд рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдпрджрд┐ рдореИрдВрдиреЗ [0,0,0] рдЬреИрд╕реЗ рдЕрдирд┐рдпрдорд┐рдд рдорд╛рдиреЛрдВ рдХреЛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд┐рдпрд╛ рд╣реИ рддреЛ рдпрд╣ рдЙрд╕ рддреНрд░реБрдЯрд┐ рдХреЛ рдлреЗрдВрдХ рджреЗрдЧрд╛ред
рдЪреВрдВрдХрд┐ рдпрд╣ рдПрдХ рддреНрд░реБрдЯрд┐ рд╣реИ рдФрд░ рдЪреЗрддрд╛рд╡рдиреА/рдиреЛрдЯрд┐рд╕ рдирд╣реАрдВ рд╣реИ, рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЗрд╕реЗ рдареАрдХ рдХрд░рдирд╛ рд╕рдВрд╡реЗрджрдирд╢реАрд▓ рд╣реИред рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЖрдк рдХреНрдпрд╛ рд╕реЛрдЪрддреЗ рд╣реИрдВ рдХрд┐ рд╕рд╛рдорд╛рдиреНрдп рдмрдлрд╝рд░рд╡реНрдпреВ рддрддреНрд╡ рд╕рд╛рдорд╛рдиреНрдпреАрдХреГрдд рд╣реИрдВ? рдлрд┐рд░ рднреА, рдЙрди рдорд╛рдиреЛрдВ рдХреЗ рд▓рд┐рдП рдЬрд┐рдиреНрд╣реЗрдВ рд╕рд╛рдорд╛рдиреНрдпреАрдХреГрдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдЬреИрд╕реЗ [0,0,0], рдХреНрдпрд╛ рд╣рдореЗрдВ рдПрдХ рд╡реИрдз рдЗрдХрд╛рдИ рд╡реЗрдХреНрдЯрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП? /рд╕реАрд╕реА @donmccurdy

рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ NORMAL рд╕рд╛рдорд╛рдиреНрдпреАрдХреГрдд рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред

https://github.com/KhrosGroup/glTF/tree/master/specification/2.0#meshes

рд╕рд╛рдорд╛рдиреНрдп | "рд╡реАрдИрд╕реА3" | 5126 (рдлреНрд▓реЛрдЯ) | рд╕рд╛рдорд╛рдиреНрдпреАрдХреГрдд XYZ рд╡рд░реНрдЯреЗрдХреНрд╕ рдиреЙрд░реНрдореНрд╕

рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рд╣рдордд рд╣реИрдВ рдХреНрдпреЛрдВрдХрд┐ рддреАрди.рдЬреЗрдПрд╕ рд╕рд╛рдорд╛рдиреНрдп рдореЗрдВ рдРрд╕реА рдХреЛрдИ рд╕реАрдорд╛ рдирд╣реАрдВ рд╣реИред

рд╣рд╛рдВ, рд▓реЗрдХрд┐рди рдХреНрдпрд╛ рдХрд░реЗрдВ рдЬрдм рдЖрдкрдХреЗ рдкрд╛рд╕ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╕рд╛рдорд╛рдиреНрдп рди рд╣реЛ, рдЬреИрд╕реЗ рдХрд┐ [0,0,0] рдХрд╛ рдЕрдкреНрд░рдпреБрдХреНрдд рдорд╛рди, рдмрд╕ рдПрдХ рд╡реИрдз рдорд╛рди рдмрдирд╛рдПрдВ рдФрд░ рдпрд╣ рдареАрдХ рд╣реИ? рдорд╛рди рд▓реАрдЬрд┐рдП [1,0,0]ред рдЗрд╕рд▓рд┐рдП рд╣рдореЗрдВ рдпрд╣ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдмрдлрд░рд╡реНрдпреВ рдХреЛрдб рдХреЛ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ рд╣рдо рдПрдХ рд╕рд╛рдорд╛рдиреНрдп рд╡рд┐рд╢реЗрд╖рддрд╛ рдХреЛ рдкрд╛рд░реНрд╕ рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдФрд░ рдЗрд╕реЗ рдбреЗрдЯрд╛рд╡реНрдпреВ рдореЗрдВ рд╕рд╣реЗрдЬрдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдкреНрд░рддреНрдпреЗрдХ рдХреЛ рд╕рд╛рдорд╛рдиреНрдп рдХрд░ рджреЗрдВред

рдХреНрдпрд╛ рдХрд░рдирд╛ рд╣реИ рдЬрдм рдЖрдкрдХреЗ рдкрд╛рд╕ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╕рд╛рдорд╛рдиреНрдп рдирд╣реАрдВ рд╣реИ, рдЬреИрд╕реЗ [0,0,0] рдХрд╛ рдЕрдкреНрд░рдпреБрдХреНрдд рдореВрд▓реНрдп

рд╣рдореНрдо ... рдПрдХ рд╡реИрдз рдХреЗ рд╕рд╛рде рдмрджрд▓ рд░рд╣рд╛ рд╣реИ рдФрд░ рдЪреЗрддрд╛рд╡рдиреА рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░ рд░рд╣рд╛ рд╣реИ?

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

рдореИрдВ рдЗрд╕реЗ processMesh() рдХрд░рдирд╛ рдкрд╕рдВрдж рдХрд░рддрд╛ рд╣реВрдВ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдЖрд╕рд╛рди рд╣реЛрдЧрд╛, рдЬреИрд╕реЗ

var originalNormal = geometry.attributes.normal;

if ( hasNonNormalizedValues( originalNormal ) ) {

    geometry.attributes.normal = createNormalizedAttribute( originalNormal );

}

processAccessorHere();

geometry.attributes.normal = originalNormal;

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

рд╣рд╛рдВ, рдореБрдЭреЗ рд╡рд╣ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдкрд╕рдВрдж рд╣реИ, рдореИрдВ рдирд┐рд░реНрдпрд╛рдд рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж рдорд╛рдирджрдВрдбреЛрдВ рдХреЛ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░рдиреЗ рд╕реЗ рдбрд░рддрд╛ рдерд╛, рд▓реЗрдХрд┐рди рдпрд╣ рдареАрдХ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП рдпрджрд┐ рд╣рдо рдПрдХ рд╕рдВрджрд░реНрдн рд╕рд╣реЗрдЬрддреЗ рд╣реИрдВ рддреЛ рдЙрдиреНрд╣реЗрдВ рд╕рдорд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж рдлрд┐рд░ рд╕реЗ рд╡рд╛рдкрд╕ рд░рдЦ рджреЗрдВред :+1: рдХреНрдпрд╛ рдЖрдк рдЗрди рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХреЗ рд╕рд╛рде рдХрд┐рд╕реА рдкреАрдЖрд░ рдХреЛ рдЖрдЧреЗ рдмрдврд╝рд╛рдиреЗ рдкрд░ рдзреНрдпрд╛рди рджреЗрдВрдЧреЗ? рдпрд╛ рдореИрдВ рдпрд╣ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдБ?

рдареАрдХ рд╣реИ рдореИрдВ рдХрд░реВрдВрдЧрд╛ред (рдХреНрдпрд╛ рдЖрдк рдЗрд╕реЗ рдареАрдХ рдХрд░рдиреЗ рдХреА рдЬрд▓реНрджреА рдореЗрдВ рд╣реИрдВ?)

@takahirox рдХреВрд▓, рдзрдиреНрдпрд╡рд╛рдж! рд▓реЗрдХрд┐рди рдХреЛрдИ рдЬрд▓реНрджреА рдирд╣реАрдВ рдореИрдВ рд╕рд┐рд░реНрдл рдирд┐рд░реНрдпрд╛рддрдХ рдХреА рд╕реНрдерд┐рддрд┐ рдХреА рд╕рдореАрдХреНрд╖рд╛ рдХрд░ рд░рд╣рд╛ рдерд╛ ^_^

рдареАрдХ рд╣реИ, рддреЛ рдореИрдВ рдЗрд╕ рд╕рдкреНрддрд╛рд╣ ~рдХрд▓~ рдХрд░реВрдБрдЧрд╛ред

рдареАрдХ рд╣реИ, рдЬреАрдПрд▓рдЯреАрдПрдл рд╡рд┐рд╢реЗрд╖ рд╢рд┐рдЦрд░ рдкрд░ рдорд╛рдирджрдВрдбреЛрдВ рдХреЛ рдЫреЛрдбрд╝рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рдирд╣реАрдВ рджреЗрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рджреВрд╕рд░реЛрдВ рдХреЛ рдПрдХ рд╣реА рдЖрджрд┐рдо рдореЗрдВ рдирд╣реАрдВред рд╣рдореЗрдВ рдХрд┐рд╕реА рдкреНрд░рдХрд╛рд░ рдХрд╛ рдорд╛рди рдкреНрд░рджрд╛рди рдХрд░рдирд╛ рд╣реЛрдЧрд╛, рдЗрди рд╢реАрд░реНрд╖реЛрдВ рдХреЛ рдЕрд▓рдЧ рдХрд░рдирд╛ рд╣реЛрдЧрд╛, рдпрд╛ рдПрдХ рддреНрд░реБрдЯрд┐ рдлреЗрдВрдХрдиреА рд╣реЛрдЧреАред

рдореИрдВ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рд▓рд┐рдП рдЪреАрдЬреЛрдВ рдХреЛ рдЖрд╕рд╛рди рдмрдирд╛рдирд╛ рдкрд╕рдВрдж рдХрд░реВрдВрдЧрд╛, рдЗрд╕рд▓рд┐рдП рдореЗрд░рд╛ рд╡реЛрдЯ рдЙрдиреНрд╣реЗрдВ рд╕рд╛рдорд╛рдиреНрдп рдмрдирд╛рдиреЗ рдФрд░ рдЦрд╛рд▓реА рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП (0,1,0) рдорд╛рди рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдирдпрд╛ рдорд╛рдирджрдВрдб рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд╣реИред

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

рд╣рд╛рдБ, рдореИрдВ рд╡рд╣реА рд▓рд┐рдЦрдиреЗ рд╡рд╛рд▓рд╛ рдерд╛! :рдбреА

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

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

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

рдкреЗрдВрдЯрд░ рдкрд░ рдкреНрд░рддреНрдпреЗрдХ рд╕реНрдЯреНрд░реЛрдХ рд▓реЛрдб рдХрд░рддреЗ рд╕рдордп рдореИрдВ рдкреВрд░реЗ рдмрдлрд░ рдХреЛ рд╕рд╛рдорд╛рдиреНрдп рдХрд░ рд░рд╣рд╛ рдерд╛ рдФрд░ рдпрд╣ рдХрд╛рдлреА рдзреАрдорд╛ рдерд╛

рднрд▓реЗ рд╣реА рд╡реЗ рдЬрд╛рдБрдЪ рдХрд░ рд░рд╣реЗ рд╣реЛрдВ рдХрд┐ рдХреНрдпрд╛ рд╡реЗ рд╕рд╛рдорд╛рдиреНрдпреАрдХреГрдд рд╣реИрдВ?

@takahirox рдЖрдкрдХреЛ рд╡реИрд╕реЗ рднреА рд▓рдВрдмрд╛рдИ рдХреА рдЧрдгрдирд╛ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА, рдЗрд╕рд▓рд┐рдП рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдЗрддрдирд╛ рдирд╣реАрдВ рдмрджрд▓реЗрдЧрд╛

рдПрдЪрдПрдо рдареАрдХ рд╣реИред рдореИрдВ рдкреАрдЖрд░ рдХреЗ рд╕рд╛рде рдореВрд▓реНрдпрд╛рдВрдХрди рдХрд░реВрдВрдЧрд╛ред

рдпрд╣ рдкрд╣рд▓реА GLTFExporter рд╕реБрд╡рд┐рдзрд╛ рд╣реИ рдЬрд┐рд╕реЗ рд╣рдордиреЗ рдкреЗрд╢ рдХрд┐рдпрд╛ рд╣реИ рдЬреЛ рдкреНрд░рддреНрдпреЗрдХ рд╢реАрд░реНрд╖ рдХреЗ рд╕рд╛рде рдХреЛрдИ рдЧрдгрдирд╛ рдХрд░рддрд╛ рд╣реИ (рд╕рд╛рдкреЗрдХреНрд╖/рдкреВрд░реНрдг рдореЙрд░реНрдл рд▓рдХреНрд╖реНрдп рд░реВрдкрд╛рдВрддрд░рдг рдХреЛ рдЫреЛрдбрд╝рдХрд░) рддреЛ рд╣рд╛рдБ рд╕рдВрднрд╛рд╡рд┐рдд рд░реВрдк рд╕реЗ рдзреАрдорд╛ .. рд╣рд╛рд▓рд╛рдВрдХрд┐ рдХрд┐рд╕реА рднреА рддрд░рд╣ рд╕реЗред

рдорд╣рд╛рди рдХрд╛рдо! IMHO рдХреЛ "рдЙрджрд╛рд╣рд░рдг" рдХреЗ рдмрдЬрд╛рдп рдХреЛрд░ рддреАрди.js рдореЗрдВ рдорд┐рд▓рд╛ рджрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред
KHR_lights_punctual рд╕рдорд░реНрдерди рджреЗрдЦрдирд╛ рдкрд╕рдВрдж рдХрд░реЗрдВрдЧреЗ!

рдкреАрдЖрд░ https://github.com/mrdoob/three.js/pull/15519 KHR_lights_punctual рдЬреЛрдбрд╝рддрд╛ рд╣реИред :)

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

  • [] рдмрдлрд╝рд░рд╡реНрдпреВ рдХрд╛ рдкреБрди: рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ
  • [] рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдзрд╛рддреБ / рдЦреБрд░рджрд░реА / рдПрдУ рдмрдирд╛рд╡рдЯ рдХреЛ рдорд░реНрдЬ рдХрд░реЗрдВ

рд╣реЗ рджреЛрд╕реНрддреЛрдВ, рдХреНрдпрд╛ рдХрд┐рд╕реА рдХреЛ рдкрддрд╛ рд╣реИ рдХрд┐ рдореИрдВ рдореЙрд░реНрдл рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдХреЗ рдФрд░ рдЗрд╕реЗ рдЕрдВрддрд┐рдо рдСрдмреНрдЬреЗрдХреНрдЯ рд╕реЗ рд╣рдЯрд╛рдХрд░ рдореЙрд░реНрдл рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рджреНрд╡рд╛рд░рд╛ рдХрд╕реНрдЯрдо рдЖрдХрд╛рд░ рдХреЗ рдЬрд╛рд▓ рдХреЛ рдХреИрд╕реЗ рдирд┐рд░реНрдпрд╛рдд рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ?
рдЗрд╕ рд╕рд╡рд╛рд▓ рдХреА рддрд░рд╣ https://stackoverflow.com/questions/57423471/how-to-export-morph-changed-meshes-from-threejs-application
рдЕрдЧреНрд░рд┐рдо рдореЗрдВ рдзрдиреНрдпрд╡рд╛рдж!

@ vini-guerrero рдХреГрдкрдпрд╛ GitHub рдореБрджреНрджреЛрдВ рдХреЗ рдмрдЬрд╛рдп рдлрд╝реЛрд░рдо (https://discourse.threejs.org/) рдпрд╛ рд╕реНрдЯреИрдХ рдУрд╡рд░рдлрд╝реНрд▓реЛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред

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

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

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

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

jens-duttke picture jens-duttke  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

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

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