Three.js: рдпреВрд╡реА рдСрдлрд╕реЗрдЯ / рд░рд┐рдкреАрдЯ рдмрдирд╛рд╡рдЯ рдХреЗ рдмрдЬрд╛рдп рд╕рд╛рдордЧреНрд░реА рдХрд╛ рд╣рд┐рд╕реНрд╕рд╛ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП

рдХреЛ рдирд┐рд░реНрдорд┐рдд 10 рдЬрдире░ 2015  ┬╖  73рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: mrdoob/three.js

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

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

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

рдпрд╣ рдзрд╛рдЧрд╛ рдореЗрд░реЗ рд▓рд┐рдП рдЯреАрдПрд▓; рдбреАрдЖрд░ рд╣реИред рд▓реЗрдХрд┐рди рдореИрдВрдиреЗ рдЕрднреА рдЗрд╕ рдХреЛрдб рдХреЛ r68 (рдкреБрд░рд╛рдиреА рдкрд░рд┐рдпреЛрдЬрдирд╛, рд╣рд╛рдБ) рдореЗрдВ рдЦреЛрдЬрд╛ рд╣реИ:

        // uv repeat and offset setting priorities
        //  1. color map
        //  2. specular map
        //  3. normal map
        //  4. bump map
        //  5. alpha map

        var uvScaleMap;

        if ( material.map ) {

            uvScaleMap = material.map;

        } else if ( material.specularMap ) {

            uvScaleMap = material.specularMap;

        } else if ( material.normalMap ) {

            uvScaleMap = material.normalMap;

        } else if ( material.bumpMap ) {

            uvScaleMap = material.bumpMap;

        } else if ( material.alphaMap ) {

            uvScaleMap = material.alphaMap;

        }

        if ( uvScaleMap !== undefined ) {

            var offset = uvScaleMap.offset;
            var repeat = uvScaleMap.repeat;

            uniforms.offsetRepeat.value.set( offset.x, offset.y, repeat.x, repeat.y );

        }

рдЗрд╕рд▓рд┐рдП...

рдпрджрд┐ рдЖрдк рдкреБрд╕реНрддрдХрд╛рд▓рдп рдореЗрдВ рдПрдХ рдореМрд▓рд┐рдХ рдкрд░рд┐рд╡рд░реНрддрди рдХрд╛ рдкреНрд░рд╕реНрддрд╛рд╡ рдХрд░рдиреЗ рдЬрд╛ рд░рд╣реЗ рд╣реИрдВ, рдЬреИрд╕реЗ рдХрд┐ рдЖрдкрдиреЗ рдпрд╣рд╛рдБ рдкреНрд░рд╕реНрддрд╛рд╡рд┐рдд рдХрд┐рдпрд╛ рд╣реИ, рддреЛ рдЖрдкрдХреЛ рдЙрд╕ рдкрд░рд┐рд╡рд░реНрддрди рдХреЗ рд▓рд┐рдП рдПрдХ рд╕реНрдкрд╖реНрдЯ рдФрд░ рд╕рдореНрдореЛрд╣рдХ рддрд░реНрдХ рджреЗрдирд╛ рд╣реЛрдЧрд╛ред

рдореИрдВ рдлреИрд▓рд╛рдиреЗ рд╡рд╛рд▓реЗ рдФрд░ рд╕рд╛рдорд╛рдиреНрдп рдорд╛рдирдЪрд┐рддреНрд░реЛрдВ рдкрд░ рдЕрд▓рдЧ-рдЕрд▓рдЧ рджреЛрд╣рд░рд╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣рд╛ рдерд╛ рдФрд░ рдЕрдкрдиреЗ рдмрд╛рд▓реЛрдВ рдХреЛ рдЦреАрдВрдЪ рд░рд╣рд╛ рдерд╛ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдХрд╛рдо рдирд╣реАрдВ рдХрд░ рд░рд╣рд╛ рдерд╛ред рдЪреВрдВрдХрд┐ рдПрдкреАрдЖрдИ рдЗрд╕ рд╕реЗрдЯрд┐рдВрдЧ рдХреЛ рдмрдирд╛рд╡рдЯ рдореЗрдВ рд░рдЦрддрд╛ рд╣реИ, рдореИрдВрдиреЗ рд╕реЛрдЪрд╛ рдХрд┐ рдореИрдВ рдРрд╕рд╛ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВред рддреЛ рд╣рд╛рдБ, рд╕рдореНрдореЛрд╣рдХ рддрд░реНрдХ рдХреЗ рд▓рд┐рдП рдореЗрд░реЗ рдмрд╛рд▓реЛрдВ рдХреЛ рдмрдЪрд╛рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреНрдпрд╛? рдпрд╣ рдЯрд┐рдХрдЯ рдЕрднреА рднреА рдЦреБрд▓рд╛ рд╣реИ, 3js рдореЗрдВ рдЕрднреА рднреА рдмрдирд╛рд╡рдЯ рдкрд░ рдпрд╣ рд╕реЗрдЯрд┐рдВрдЧ рд╣реИ, рдФрд░ рдпрд╣ рдХреЗрд╡рд▓ рдПрдХ рдмрдирд╛рд╡рдЯ рдХреЗ рд▓рд┐рдП рд╕рдореНрдорд╛рдирд┐рдд рд╣реИ = рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдкреНрд░рддрд┐-рд╕рд╛рдордЧреНрд░реА рд╕реЗрдЯрд┐рдВрдЧ рд╣реИред

рдпрджрд┐ рдЖрдк рдЗрд╕реЗ рдЙрд╕ рд╕реНрдерд╛рди рдкрд░ рдирд╣реАрдВ рд▓реЗ рдЬрд╛ рд░рд╣реЗ рд╣реИрдВ рдЬрд╣рд╛рдВ рдпрд╣ рд╕рдВрдмрдВрдзрд┐рдд рд╣реИ, рддреЛ рдХрдо рд╕реЗ рдХрдо рдпрд╣ рдХрд╣реЗрдВ рдХрд┐ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝реЛрдВ рдореЗрдВ рдЗрд╕рдХрд╛ рдХреЛрдИ рдкреНрд░рднрд╛рд╡ рдирд╣реАрдВ рдкрдбрд╝рддрд╛ рд╣реИ?

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

рд╕рдВрдмрдВрдзрд┐рдд рдкреЛрд╕реНрдЯ: https://github.com/mrdoob/three.js/issues/3549

рдЖрдкрдХреЛ рдкреНрд░рддрд┐ рд╕рд╛рдордЧреНрд░реА рдмрдирд╛рд╡рдЯ рдХреЛ рдХреНрд▓реЛрди рдХрд░рдирд╛ рд╣реЛрдЧрд╛ (рдПрдХ рдЯрди рдореЗрдореЛрд░реА рдмрд░реНрдмрд╛рдж рдХрд░рдирд╛)

рдЯрди рдореЗрдореЛрд░реА рдХрд┐рд╕ рдЕрд░реНрде рдореЗрдВ рдмрд░реНрдмрд╛рдж рд╣реЛрддреА рд╣реИ?

"рд╕рд╛рдЭрд╛" рдмрдирд╛рд╡рдЯ рдкрд░ рд╕рд╛рдЭрд╛ рдпреВрд╡реА рдСрдлрд╝рд╕реЗрдЯ/рджреЛрд╣рд░рд╛рд╡ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рдХрдо рд╣реИ

рдЙрд╕рд╕реЗ рддреБрдореНрд╣рд╛рд░рд╛ рдХреНрдпрд╛ рдорддрд▓рдм рд╣реИ?

рдпрджрд┐ рд╣рдо рд╡рд░реНрддрдорд╛рди рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХреЛ рдмрдирд╛рдП рд░рдЦрддреЗ рд╣реИрдВ, рддреЛ рдПрдХ рдЪреАрдЬ рдЬрд┐рд╕реЗ рдмрджрд▓рдиреЗ рдХреА рдЬрд░реВрд░рдд рд╣реИ, рд╡рд╣ рдпрд╣ рд╣реИ рдХрд┐ рдЬрдм рдПрдХ рдмрдирд╛рд╡рдЯ рдХрд╛ рдХреНрд▓реЛрди рдмрдирд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рд╕рд╛рдЭрд╛ рдХреА рдЧрдИ рдЫрд╡рд┐ рдХреЛ рдХреЗрд╡рд▓ рдПрдХ рдмрд╛рд░ GPU рдХреЛ рдкрд╛рд╕ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред

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

рджреВрд╕рд░реЗ рдХрдерди рдХреЗ рд╕рдВрдмрдВрдз рдореЗрдВ:

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

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

рд╢реНрд░реАрджреВрдм рдиреЗ рдХрд╣рд╛ рдХрд┐ рдкреНрд░рддрд┐ рд╕рд╛рдордЧреНрд░реА рд╣реЛрдиреЗ рдХреЗ рдХрд╛рд░рдг рдЗрд╕реЗ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд░реВрдк рдореЗрдВ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП,

рд╕рд╛рдордЧреНрд░реА.рдирдХреНрд╢рд╛
рд╕рд╛рдордЧреНрд░реА.рдореИрдкрдСрдлрд╝рд╕реЗрдЯ
рдордЯреЗрд░рд┐рдпрд▓.рдореИрдкрд░рд┐рдкреАрдЯ
рд╕рд╛рдордЧреНрд░реА.env
рд╕рд╛рдордЧреНрд░реА.envOffset
рд╕рд╛рдордЧреНрд░реА.envрджреЛрд╣рд░рд╛рдирд╛
... рдЖрджрд┐ред

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

@QuaziKb рдкреВрд░реЗ рд╕рдореНрдорд╛рди рдХреЗ рд╕рд╛рде, рдпрджрд┐ рдЖрдк рдкреБрд╕реНрддрдХрд╛рд▓рдп рдореЗрдВ рдПрдХ рдореМрд▓рд┐рдХ рдкрд░рд┐рд╡рд░реНрддрди рдХрд╛ рдкреНрд░рд╕реНрддрд╛рд╡ рдХрд░рдиреЗ рдЬрд╛ рд░рд╣реЗ рд╣реИрдВ, рдЬреИрд╕реЗ рдХрд┐ рдЖрдкрдиреЗ рдпрд╣рд╛рдБ рдкреНрд░рд╕реНрддрд╛рд╡рд┐рдд рдХрд┐рдпрд╛ рд╣реИ, рддреЛ рдЖрдкрдХреЛ рдЙрд╕ рдкрд░рд┐рд╡рд░реНрддрди рдХреЗ рд▓рд┐рдП рдПрдХ рд╕реНрдкрд╖реНрдЯ рдФрд░ рд╕рдореНрдореЛрд╣рдХ рддрд░реНрдХ рджреЗрдирд╛ рд╣реЛрдЧрд╛ред рдЖрдкрдХреЗ рд╡рд┐рд╢реЗрд╖ рдЖрд╡реЗрджрди рдХреЗ рд╕рдВрджрд░реНрдн рдХреЗ рдлреНрд░реЗрдо рд╕реЗ рдмрд╣рд╕ рдХрд░рдиреЗ рд╕реЗ рдЗрд╕рдореЗрдВ рдХрдЯреМрддреА рдирд╣реАрдВ рд╣реЛрдЧреАред

рдХрд╣рд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИ, рдореИрдВ рднреА рдСрдлрд╕реЗрдЯ/рд░рд┐рдкреАрдЯ рдХреЛ Texture рд╕реЗ рд╕рд╛рдордЧреНрд░реА рдореЗрдВ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рд╣реЛрддреЗ рджреЗрдЦрдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВред

рдореЗрд░рд╛ рдорд╛рдирдирд╛ тАЛтАЛтАЛтАЛрд╣реИ рдХрд┐ рдпрд╣ рдорд╛рди рд▓реЗрдирд╛ рдЙрдЪрд┐рдд рд╣реИ рдХрд┐ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдорд╛рдирдЪрд┐рддреНрд░реЛрдВ рдореЗрдВ рд╕рдорд╛рди рдСрдлрд╕реЗрдЯ/рджреЛрд╣рд░рд╛рд╡ рдорд╛рди рд╣реИрдВ:

specularMap
normalMap
bumpMap
alphaMap
aoMap (future)
glossMap (future)
displacementMap (future)

рдПрдХрдорд╛рддреНрд░ рдЕрдкрд╡рд╛рдж рд╣реИ


рдЗрд╕ рддрд░рд╣ рдЗрд╕реЗ рдЕрднреА рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ; рднрд▓реЗ рд╣реА рдкреНрд░рддреНрдпреЗрдХ рдорд╛рдирдЪрд┐рддреНрд░ рдХрд╛ рдЕрдкрдирд╛ рдСрдлрд╕реЗрдЯ/рджреЛрд╣рд░рд╛рд╡ рдорд╛рди рд╣реЛ, рд▓реЗрдХрд┐рди рдЙрдиреНрд╣реЗрдВ рд╕рдореНрдорд╛рдирд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

рдЗрд╕рд▓рд┐рдП, рд╣рдо рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВ MeshPhongMaterial , MeshLambertMaterial , MeshBasicMaterial , рдФрд░ SpriteMaterial , рд╣рдо рдЬреЛрдбрд╝ рджреЗрдВрдЧреЗ

mapOffset // or mapTranslate
mapRepeat // or mapScale

рд╣рдо offset рдФрд░ repeat рдХреЛ Texture рд╕реЗ рд╣рдЯрд╛ рджреЗрдВрдЧреЗред

рдЗрд╕ рддрд░рд╣, рд╕реНрдкреНрд░рд╛рдЗрдЯ рд╢реАрдЯ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдирд╛ рд╕реАрдзрд╛-рд╕реАрдзрд╛ рд╣реИред рдкреНрд░рддреНрдпреЗрдХ рд╕реНрдкреНрд░рд╛рдЗрдЯ рдореЗрдВ рдПрдХ рд╕рд╛рдордЧреНрд░реА рд╣реЛрддреА рд╣реИ, рдФрд░ рдЙрди рд╕рд╛рдордЧреНрд░рд┐рдпреЛрдВ рдореЗрдВ рдПрдХ рд╣реА рдмрдирд╛рд╡рдЯ рд╣реЛрддреА рд╣реИред рдмрдирд╛рд╡рдЯ рдореЗрдВ рдПрдХ рдЫрд╡рд┐ рд╣реИред рдмрдирд╛рд╡рдЯ рдХреЛ рдЕрдм рдХреНрд▓реЛрди рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред GPU рдкрдХреНрд╖ рдкрд░, рд╕рд╛рдордЧреНрд░реА рдПрдХрд▓ рд╢реЗрдбрд░ рдкреНрд░реЛрдЧреНрд░рд╛рдо рд╕рд╛рдЭрд╛ рдХрд░реЗрдЧреАред

рдЖрдИрдПрдордПрдЪрдУ, рдпрд╣ рдПрдХ рдЕрдзрд┐рдХ рдкреНрд░рд╛рдХреГрддрд┐рдХ рдПрдкреАрдЖрдИ рд╣реИред

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

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

рдореЗрд░рд╛ рдорд╛рдирдирд╛ тАЛтАЛтАЛтАЛрд╣реИ рдХрд┐ рдпрд╣ рдорд╛рди рд▓реЗрдирд╛ рдЙрдЪрд┐рдд рд╣реИ рдХрд┐ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдорд╛рдирдЪрд┐рддреНрд░реЛрдВ рдореЗрдВ рд╕рдорд╛рди рдСрдлрд╕реЗрдЯ/рджреЛрд╣рд░рд╛рд╡ рдорд╛рди рд╣реИрдВ:
рдирдХреНрд╢рд╛
...
рдЕрд▓реНрдлрд╛ рдореИрдк

рдПрдлрдбрдмреНрд▓реНрдпреВрдЖрдИрдбрдмреНрд▓реНрдпреВ, рдпрд╣ рд╡реНрдпрд╡рд╣рд╛рд░ (рд╡рд░реНрддрдорд╛рди рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди) рдЗрд╕ рд╕рдордп рдореЗрд░реЗ рд▓рд┐рдП рдорд╣рддреНрд╡рдкреВрд░реНрдг рдирд┐рд░рд╛рд╢рд╛ рдкреИрджрд╛ рдХрд░ рд░рд╣рд╛ рд╣реИред рдореИрдВ рдЬрд╛рд▓ рд╕рд╛рдордЧреНрд░реА рдХреЗ рдЕрд▓реНрдлрд╛ рдореИрдк рдСрдлрд╕реЗрдЯ рдХреЛ рд╕реНрд╡рддрдВрддреНрд░ рд░реВрдк рд╕реЗ рдлреИрд▓рд╛рдиреЗ рд╡рд╛рд▓реЗ рдорд╛рдирдЪрд┐рддреНрд░ (рдЬреЛ рд╕реНрдерд┐рд░ рд░рд╣рддрд╛ рд╣реИ) рд╕реЗ рдЕрд▓рдЧ рдХрд░рдХреЗ рдЬрд╛рд▓ рдХреЗ рдкреНрд░рдХрдЯреАрдХрд░рдг рдХреЛ рдПрдирд┐рдореЗрдЯ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░ рд░рд╣рд╛ рд╣реВрдВред рдХреБрдЫ рдирд┐рд░рд╛рд╢рд╛ рдХреЗ рдмрд╛рдж рдореБрдЭреЗ https://github.com/mrdoob/three.js/pull/4987 рдФрд░ рдЗрд╕ рдмрдЧ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдкрддрд╛ рдЪрд▓рд╛ рдХрд┐ рдпрд╣ рд╕рдВрднрд╡ рдирд╣реАрдВ рд╣реИред

@jcarpenter рдЖрдк рдХрд┐рд╕ "рдмрдЧ" рдХрд╛ рдЬрд┐рдХреНрд░ рдХрд░ рд░рд╣реЗ рд╣реИрдВ? рд╕реБрдзрд╛рд░ рдХреЗ рд▓рд┐рдП рдЖрдкрдХрд╛ рдХреНрдпрд╛ рд╕реБрдЭрд╛рд╡ рд╣реИ?

рд╕реБрдзрд╛рд░: "рдмрдЧ" рд╕реЗ рдореЗрд░рд╛ рдорддрд▓рдм рдЗрд╕ рдореБрджреНрджреЗ рд╕реЗ рдерд╛ред рдмрдЧрдЬрд┐рд▓рд╛ рд╕рдВрд╕реНрдХреГрддрд┐ рдореЗрдВ рдЕрддреНрдпрдзрд┐рдХ рд╕рдордп рдХреЗ рдХрд╛рд░рдг рдорд┐рд▓рд╛рд╡рдЯред :p рдореИрдВ рд╕рдордЭрддрд╛ рд╣реВрдВ рдХрд┐ рдпрд╣ рдХреЛрдИ рдмрдЧ рдирд╣реАрдВ рд╣реИ, рдмрд▓реНрдХрд┐ рдЗрдЪреНрдЫрд┐рдд рд╡реНрдпрд╡рд╣рд╛рд░ рд╣реИред

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

  • рдПрдХ рд╕рд╛рдордЧреНрд░реА рдХреЗ рднреАрддрд░ рдкреНрд░рддреНрдпреЗрдХ рдмрдирд╛рд╡рдЯ рдХреЗ рд▓рд┐рдП рдСрдлрд╕реЗрдЯ/рд╕реНрдХреЗрд▓/рджреЛрд╣рд░рд╛рдирд╛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░реЗрдВ, рдЕрдиреНрдп рдмрдирд╛рд╡рдЯ рд╕реЗ рд╕реНрд╡рддрдВрддреНрд░, _and_
  • рдореВрд▓ рд╕рд╛рдордЧреНрд░реА рдХреЗ рдСрдлрд╕реЗрдЯ/рд╕реНрдХреЗрд▓/рджреЛрд╣рд░рд╛рдиреЗ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░реЗрдВ

рд╡реИрдХрд▓реНрдкрд┐рдХ рд░реВрдк рд╕реЗ рдЙрдкрдпреЛрдЧ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ рдореИрдВ рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реВрдВ ("рдореЗрд╖ рдХреЗ рдкреНрд░рдХрдЯреАрдХрд░рдг рдХреЛ рдПрдирд┐рдореЗрдЯ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕"), рд░реИрдкрдПрд╕ рдФрд░ рд░реИрдкрдЯреА рдХреЗ рд▓рд┐рдП рдПрдХ рд╡рд┐рдХрд▓реНрдк рд╣реЛрдирд╛ рд╢рд╛рдирджрд╛рд░ рд╣реЛрдЧрд╛ рдЬреЛ рдмрд┐рд▓реНрдХреБрд▓ рд▓рдкреЗрдЯрддрд╛ рдирд╣реАрдВ рд╣реИред Cinema4D рд╕реЗ рд╕рдВрд▓рдЧреНрди GIF рдХреЗ рдЕрдиреБрд╕рд╛рд░, рдЬрд┐рд╕рдореЗрдВ UVW рдореИрдкрд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЯрд╛рдЗрд▓рд┐рдВрдЧ рдХреЛ рдЕрдХреНрд╖рдо рдХрд░рдиреЗ рдХрд╛ рд╡рд┐рдХрд▓реНрдк рд╣реИред рдореМрдЬреВрджрд╛ рд░реИрдкреНрд╕ рдФрд░ рд░реИрдкрдЯреА рд╡рд┐рдзрд┐рдпреЛрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдлреА рд╡реНрдпрд╛рдкрдХ рдкрд░реАрдХреНрд╖рдг рдХреЗ рдЖрдзрд╛рд░ рдкрд░, рдРрд╕рд╛ рдХреБрдЫ рднреА рд╕рдВрднрд╡ рдирд╣реАрдВ рд╣реИред рдорддрд▓рдм рддреАрди.рдЬреЗрдПрд╕ рдореЗрдВ рд╡рд╕реНрддреБрдУрдВ рдХреЗ рдкреНрд░рдХрдЯреАрдХрд░рдг рдХреЛ рдЪреЗрддрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдореЗрд░реЗ рд╡рд┐рдХрд▓реНрдк рдЯреНрд╡рд┐рдирд┐рдВрдЧ рд╕реНрдерд┐рддрд┐ рдФрд░ рдкреВрд░реЗ рдЬрд╛рд▓ рдХреА рдЕрд╕реНрдкрд╖реНрдЯрддрд╛ рддрдХ рд╕реАрдорд┐рдд рд▓рдЧрддреЗ рд╣реИрдВ ... рдЬрдм рддрдХ рдХрд┐ рдореБрдЭреЗ рдХреБрдЫ рдпрд╛рдж рдирд╣реАрдВ рдЖ рд░рд╣рд╛ рд╣реИред

c4d-tile-2

рдорд╛рдирд╛ред рдпреЛрдЬрдирд╛ рдпрд╣ рд╕рдм (рд╢реЗрдбрд░ рдореЗрдВ рдПрдХ рдореИрдЯреНрд░рд┐рдХреНрд╕ 3 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ) рдХреЛ рд╕рд░рд▓ рдмрдирд╛рдирд╛ рд╣реИ рдФрд░ рдкреНрд░рддрд┐ рдмрдирд╛рд╡рдЯ рдСрдлрд╕реЗрдЯ/рджреЛрд╣рд░рд╛рдирд╛ (рдпрд╛ рдЕрдиреБрд╡рд╛рдж/рд╕реНрдХреЗрд▓) рд╣реЛрдирд╛ рд╣реИред

рдХреЛрдИ рднреА рдЬреЛ рдЗрд╕рдореЗрдВ рдорджрдж рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реИ рдЙрд╕рдХреА рдмрд╣реБрдд рд╕рд░рд╛рд╣рдирд╛ рдХреА рдЬрд╛рдПрдЧреА!

@jcarpenter

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

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

рдпреЛрдЬрдирд╛ рдпрд╣ рд╕рдм рд╕рд░рд▓ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд╣реИ (рд╢реЗрдбрд░ рдореЗрдВ рдПрдХрд▓ рдореИрдЯреНрд░рд┐рдХреНрд╕ 3 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ) рдФрд░ рдкреНрд░рддрд┐ рдмрдирд╛рд╡рдЯ рдСрдлрд╕реЗрдЯ/рджреЛрд╣рд░рд╛рдирд╛ (рдпрд╛ рдЕрдиреБрд╡рд╛рдж/рд╕реНрдХреЗрд▓) рд╣реЛрдирд╛ред

@mrdoob

  1. рдХреНрдпрд╛ рдЖрдкрдХрд╛ рдорддрд▓рдм _рдкреНрд░рддрд┐ рд╕рд╛рдордЧреНрд░реА.рдореИрдк_ рд╣реИ рддреЛ рдмрдирд╛рд╡рдЯ рдкрд░рд┐рд╡рд░реНрддрди рд╕рд╛рдордЧреНрд░реА рдореЗрдВ рд╣реИ? рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ, рдмрд╣реБрдд рд╕рд╛рд░реЗ рднреМрддрд┐рдХ рдорд╛рдирдЪрд┐рддреНрд░ рд╣реИрдВред рд╣рдо рдпрд╣ рдорд╛рди рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рд▓рд╛рдЗрдЯрдореИрдк рдХреЛ рдЫреЛрдбрд╝рдХрд░ рд╕рднреА рдмрдирд╛рд╡рдЯ рдкрд░рд┐рд╡рд░реНрддрди рд╕рдорд╛рди рд╣реИрдВред
  2. рдХреНрдпрд╛ рдЖрдк рднреА рд░реЛрдЯреЗрд╢рди рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ? рдпрджрд┐ рдРрд╕рд╛ рд╣реИ, рддреЛ рдЖрдкрдХреЛ рд░реЛрдЯреЗрд╢рди рд╕реЗрдВрдЯрд░ рднреА рдЬреЛрдбрд╝рдирд╛ рд╣реЛрдЧрд╛ - рдЬрдм рддрдХ рдХрд┐ рдЖрдк рд░реЛрдЯреЗрд╢рди рд╕реЗрдВрдЯрд░ рдХреЛ рдмрдирд╛рд╡рдЯ рдХреЗ рдХреЗрдВрджреНрд░ рдореЗрдВ рд╣рд╛рд░реНрдбрд╡рд╛рдпрд░ рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗред

рдпрд╣ рдПрдХ рдмрд╣реБрдд рд╣реА рд╕рд░рд╛рд╣рдиреАрдп рдмрджрд▓рд╛рд╡ рд╣реЛрдЧрд╛ред рдмрдирд╛рд╡рдЯ рдХреЛ рдХреЗрд╡рд▓ рдЕрджреНрд╡рд┐рддреАрдп рджреЛрд╣рд░рд╛рдиреЗ рд╡рд╛рд▓реЗ рдореВрд▓реНрдпреЛрдВ рдкрд░ рд░рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдХреНрд▓реЛрди рдХрд░рдирд╛ рдмрд╣реБрдд рд╣реА рдмреЛрдЭрд┐рд▓ рд▓рдЧрддрд╛ рд╣реИред рдХреНрдпрд╛ рдЕрдиреНрдп рдкреБрд╕реНрддрдХрд╛рд▓рдп рдРрд╕рд╛ рдХрд░рддреЗ рд╣реИрдВ?

  1. рдХреНрдпрд╛ рдЖрдкрдХрд╛ рдорддрд▓рдм _рдкреНрд░рддрд┐ рд╕рд╛рдордЧреНрд░реА.рдореИрдк_ рд╣реИ рддреЛ рдмрдирд╛рд╡рдЯ рдкрд░рд┐рд╡рд░реНрддрди рд╕рд╛рдордЧреНрд░реА рдореЗрдВ рд╣реИ? рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ, рдмрд╣реБрдд рд╕рд╛рд░реЗ рднреМрддрд┐рдХ рдорд╛рдирдЪрд┐рддреНрд░ рд╣реИрдВред рд╣рдо рдпрд╣ рдорд╛рди рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рд▓рд╛рдЗрдЯрдореИрдк рдХреЛ рдЫреЛрдбрд╝рдХрд░ рд╕рднреА рдмрдирд╛рд╡рдЯ рдкрд░рд┐рд╡рд░реНрддрди рд╕рдорд╛рди рд╣реИрдВред

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдкреНрд░рддрд┐ рдирдХреНрд╢рд╛ mat3 рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП рдФрд░ Texture рдЧреБрдгреЛрдВ рд╕реЗ рдмрдирд╛ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред

  1. рдХреНрдпрд╛ рдЖрдк рднреА рд░реЛрдЯреЗрд╢рди рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ? рдпрджрд┐ рдРрд╕рд╛ рд╣реИ, рддреЛ рдЖрдкрдХреЛ рд░реЛрдЯреЗрд╢рди рд╕реЗрдВрдЯрд░ рднреА рдЬреЛрдбрд╝рдирд╛ рд╣реЛрдЧрд╛ - рдЬрдм рддрдХ рдХрд┐ рдЖрдк рд░реЛрдЯреЗрд╢рди рд╕реЗрдВрдЯрд░ рдХреЛ рдмрдирд╛рд╡рдЯ рдХреЗ рдХреЗрдВрджреНрд░ рдореЗрдВ рд╣рд╛рд░реНрдбрд╡рд╛рдпрд░ рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗред

рд░реЛрдЯреЗрд╢рди рд╣рд╛рдБред рдХреЗрдВрджреНрд░ рдпрд╛ рдирд╣реАрдВ ... рдореБрдЭреЗ рдпрдХреАрди рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдЬрд╣рд╛рдВ рддрдХ тАЛтАЛтАЛтАЛрдореИрдВ рд╕рдордЭрддрд╛ рд╣реВрдВ, рдпрд╣ рд╕рдм рд╢реЗрдбрд░ (рдкреНрд░рддрд┐ рдирдХреНрд╢рд╛) рдХреЗ рд▓рд┐рдП рдПрдХ mat3 рдореЗрдВ рдПрдиреНрдХреЛрдб рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

рдпрд╣рд╛рдВ рдПрдХ рдкреНрд░реЛрдЯреЛрдЯрд╛рдЗрдк рджрд┐рдЦрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ рдХрд┐ рдХреИрд╕реЗ рдПрдХ Matrix3 рдПрдХ рд╢реЗрдбрд░ рдХреЛ рдкрд╛рд╕ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдФрд░ offsetX , offsetY , repeatX , repeatY рджреНрд╡рд╛рд░рд╛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдПрдХ рдкрд░рд┐рд╡рд░реНрддрди рдХрд╛ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХрд░рддрд╛ рд╣реИред rotation , rotationCenterX , рдФрд░ rotationCenterY ред

рдпрджрд┐ рд╡рд┐рдХрд▓реНрдк рдХреЗ рд░реВрдк рдореЗрдВ center рдХреА рдЕрдиреБрдорддрд┐ рдирд╣реАрдВ рд╣реИ, рддреЛ рдЗрд╕реЗ ( 0.5, 0.5 ) рд╣рд╛рд░реНрдбрд╡рд╛рдпрд░ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред

рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдХрд╛ рд╕реНрд╡рд╛рдЧрдд рд╣реИред

рд╕рдВрдкрд╛рджрд┐рдд рдХрд░реЗрдВ: рдбреЗрдореЛ рдЕрдкрдбреЗрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛

rotateuvs

рдпрд╣ рдорд╣рд╛рди рд╣реИ! :+1: :+1:

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдореИрдВ translation рдФрд░ scale ( offset рдФрд░ repeat рдмрдЬрд╛рдп) рдХреЗ рд╕рд╛рде рдЬрд╛рдКрдВрдЧрд╛ред

рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдирдП рднреМрддрд┐рдХ рдЧреБрдг рдХреНрдпрд╛ рд╣реЛрдиреЗ рдЪрд╛рд╣рд┐рдП? рдмрд╣реБрдд рд╕рд╛рд░реЗ рднреМрддрд┐рдХ рдорд╛рдирдЪрд┐рддреНрд░ рд╣реИрдВред

рдмрдирд╛рд╡рдЯ рдЧреБрдгреЛрдВ рд╕реЗ рдХреНрдпрд╛ рд╣рдЯрд╛рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП?

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдмрдирд╛рд╡рдЯ рдкрд░ wrapS/T рд░рд╣рдирд╛ рдЪрд╛рд╣рд┐рдПред

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ texture.offset рдФрд░ texture.repeat рдХреЛ рд╣рдЯрд╛ рджрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдирдИ рд╕рдВрдкрддреНрддрд┐рдпрд╛рдВ рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдП... texture.translation , texture.rotation , texture.scale , texture.center рдФрд░ texture.matrix ред рд╣рдореЗрдВ рд╢рд╛рдпрдж texture.updateMatrix() рд╡рд┐рдзрд┐ рдХреА рднреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА рдЬрд┐рд╕реЗ рд░реЗрдВрдбрд░ рд╕рдордп рдкрд░ рдмреБрд▓рд╛рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рдпрд╣, рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ, рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдиреЗ рдХреА рдЪреБрдиреМрддреА рд╣реИ рдХрд┐ рд╣рдо рдЗрд╕реЗ рдХреЗрд╡рд▓ рдПрдХ рдмрд╛рд░ рд╣реА рдХрд░рддреЗ рд╣реИрдВ, рднрд▓реЗ рд╣реА рдмрдирд╛рд╡рдЯ рдХрд╛ рдкреБрди: рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реЛред

рдЗрд╕ рдкреЛрд╕реНрдЯ рдХреЗ рд╢реАрд░реНрд╖рдХ рдФрд░ https://github.com/mrdoob/three.js/issues/5876#issuecomment -69483293 рдореЗрдВ рджрд┐рдП рдЧрдП рддрд░реНрдХреЛрдВ рдХрд╛ рдЬрд┐рдХреНрд░ рдХрд░рддреЗ рд╣реБрдП, рдореИрдВрдиреЗ рд╕реЛрдЪрд╛ рдХрд┐ рдмрд┐рдВрджреБ рдЗрди рдЧреБрдгреЛрдВ рдХреЛ рд╕рд╛рдордЧреНрд░реА рдореЗрдВ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рдирд╛ рдерд╛ред

/рдкрд┐рдВрдЧ @bhouston рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдПред

рдореЗрд░реЗ рд╡рд┐рдЪрд╛рд░ рд╣реИрдВ рдХрд┐ рдмрдирд╛рд╡рдЯ рдСрдлрд╕реЗрдЯ/рджреЛрд╣рд░рд╛рдирд╛ рдЬрд┐рддрдирд╛ рд╕рдВрднрд╡ рд╣реЛ рдпреВрд╡реА рдореЗрдВ рдмреЗрдХ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рдпрд╣ рдЖрд╕рд╛рди рд╣реИред рдЕрдзрд┐рдХрд╛рдВрд╢ рднрд╛рдЧ рдХреЗ рд▓рд┐рдП UE4/Unity 5 рдЗрд╕реЗ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдХрд░рддреЗ рд╣реИрдВред

рдЕрдкрд╡рд╛рдж рдпрд╣ рд╣реИ рдХрд┐ рдпреВрдирд┐рдЯреА 5 рдореЗрдВ рдкреНрд░рддрд┐ рд╕рд╛рдордЧреНрд░реА рдПрдХ рд╡реИрд╢реНрд╡рд┐рдХ рдСрдлрд╕реЗрдЯ/рд░рд┐рдкреАрдЯ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рд╣реИ рдЬреЛ рд╕рднреА рдмрдирд╛рд╡рдЯреЛрдВ рдореЗрдВ рд╕рд╛рдЭрд╛ рдХреА рдЬрд╛рддреА рд╣реИ - рд▓реЗрдХрд┐рди рдпрд╣ рдкреНрд░рднрд╛рд╡рд┐рдд рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ рдЬрд┐рд╕реЗ рд▓рд╛рдЗрдЯ рдореИрдк рдпрд╛ рдкрд░рд┐рд╡реЗрд╢ рд╕рдорд╛рд╡реЗрд╢рди рдорд╛рдирдЪрд┐рддреНрд░ рдЬреИрд╕реЗ рдмреЗрдХреНрдб рдорд╛рдирдЪрд┐рддреНрд░ рдорд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИ (рд╡реЗ рд╕рдорд╛рдпреЛрдЬрд┐рдд рдХрд░рдиреЗ рдХрд╛ рдХреЛрдИ рдорддрд▓рдм рдирд╣реАрдВ рд╣реИред)

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

рдореИрдВрдиреЗ рд╣рд╛рд▓ рд╣реА рдореЗрдВ Clara.io рдореЗрдВ рдкреНрд░рддрд┐ рдмрдирд╛рд╡рдЯ рдореЗрдВ рдПрдХ рджреЛрд╣рд░рд╛рд╡/рдСрдлрд╝рд╕реЗрдЯ рдФрд░ рдлрд┐рд░ рдЪрдордХ/рд▓рд╛рдн рдирд┐рдпрдВрддреНрд░рдг рдЬреЛрдбрд╝рд╛ рд╣реИ рдФрд░ рдореИрдВ рдЗрди рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХреЛ рдкреВрд░реНрд╡рд╡рдд рдХрд░ рджреВрдВрдЧрд╛ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдХрдо рдЕрдВрдд рдЙрдкрдХрд░рдгреЛрдВ рдкрд░ рдлреНрд░реИрдЧрдореЗрдВрдЯ рд╡рд░реНрджреА рдХреЛ рдмрд╣рдиреЗ рдХреА рдУрд░ рдЕрдЧреНрд░рд╕рд░ рдХрд░ рд░рд╣рд╛ рд╣реИ - рдЬреИрд╕реЗ рдХрд┐ рдкреНрд░рддреНрдпреЗрдХ рдРрдкреНрдкрд▓ рдЖрдИрдУрдПрд╕ рдбрд┐рд╡рд╛рдЗрд╕ред рд╣рд╛рд▓рд╛рдБрдХрд┐ NVIDIA 980s рдХреЗ рд╕рд╛рде рдбреЗрд╕реНрдХрдЯреЙрдк рдкрд░ рд░рд┐рдкреАрдЯ/рдСрдлрд╝рд╕реЗрдЯ рдФрд░ рдмреНрд░рд╛рдЗрдЯрдиреЗрд╕/рдЧреЗрди рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рд╣рдореЗрдВ рд╣рд╛рдИ рдПрдВрдб рдорд╢реАрдиреЛрдВ рдХреЗ рд▓рд┐рдП рдирд╣реАрдВ, рдмрд▓реНрдХрд┐ рд╕рднреА рдХреЗ рд▓рд┐рдП рдбрд┐рдЬрд╝рд╛рдЗрди рдХрд░рдирд╛ рд╣реИред ;)

рд╣рдореЗрдВ рдлреНрд░реИрдЧрдореЗрдВрдЯ рдпреВрдирд┐рдлреЙрд░реНрдо рдХрд╛ рд╕рдореНрдорд╛рди рдХрд░рдирд╛ рд╣реЛрдЧрд╛ рдФрд░ рдЬрд░реВрд░рдд рдкрдбрд╝рдиреЗ рдкрд░ рд╣реА рдЙрдирдХрд╛ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рдореЗрд░рд╛ рдорд╛рдирдирд╛ тАЛтАЛрд╣реИ рдХрд┐ рдпрд╣ рдЙрди рдорд╛рдорд▓реЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдирд╣реАрдВ рд╣реИред

рдЕрдкрд╡рд╛рдж рдпрд╣ рд╣реИ рдХрд┐ рдпреВрдирд┐рдЯреА 5 рдореЗрдВ рдкреНрд░рддрд┐ рд╕рд╛рдордЧреНрд░реА рдПрдХ рд╡реИрд╢реНрд╡рд┐рдХ рдСрдлрд╕реЗрдЯ/рд░рд┐рдкреАрдЯ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рд╣реИ

рдпрд╣ рдореВрд▓ рд░реВрдк рд╕реЗ рддреАрди.рдЬреЗрдПрд╕ рдЕрдм рдХреНрдпрд╛ рдХрд░ рд░рд╣рд╛ рд╣реИ - рд╣рд╛рд▓рд╛рдВрдХрд┐ рдЗрд╕реЗ рдбрд┐рдлреНрдпреВрдЬ рдореИрдк рд╕реЗ рдСрдлрд╕реЗрдЯ/рд░рд┐рдкреАрдЯ рдорд┐рд▓рддрд╛ рд╣реИ, рдФрд░ рдЕрдиреНрдп рд╕рднреА рд╕рд╛рдордЧреНрд░реА рдмрдирд╛рд╡рдЯ рдЙрд╕ рдорд╛рдирдЪрд┐рддреНрд░ рд╕реЗ рд╕реЗрдЯрд┐рдВрдЧ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреА рд╣реИрдВред

рдкреНрд░рд╕реНрддрд╛рд╡ рдмрдирд╛рд╡рдЯ рд╕реЗ рдСрдлрд╕реЗрдЯ/рджреЛрд╣рд░рд╛рдиреЗ рдХреЛ рд╣рдЯрд╛рдиреЗ рдХрд╛ рд╣реИ, рдФрд░ рдЗрд╕рдХреЗ рдмрдЬрд╛рдп рдЗрд╕реЗ рд╕рд╛рдордЧреНрд░реА рдореЗрдВ рдЬреЛрдбрд╝рдирд╛ рд╣реИ - рд╢рд╛рдпрдж рдПрдХ рдирд╛рдо рдкрд░рд┐рд╡рд░реНрддрди рдХреЗ рд╕рд╛рдеред рдлрд┐рд░ рд╕реЗ, рд╕рднреА рднреМрддрд┐рдХ рдмрдирд╛рд╡рдЯ рд╕рдорд╛рди рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рд╕рд╛рдЭрд╛ рдХрд░реЗрдВрдЧреЗ (рднрд▓реЗ рд╣реА рдХреБрдЫ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЗрд╕рд╕реЗ рдЦреБрд╢ рди рд╣реЛрдВ)ред рдпрд╣ рд╕рдорд╛рди рдЙрдкрдпреЛрдЧ рдХреЛ рдХрдо рд░рдЦреЗрдЧрд╛ред

рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ, рд╣рдореЗрдВ рдЗрд╕ рдкрд░ рдмрд╣реБрдд рдЕрдзрд┐рдХ рд╕рд╣рдорддрд┐ рдирд╣реАрдВ рдорд┐рд▓ рд░рд╣реА рд╣реИред

рдПрдХрддрд╛ рел рдЬреЛ рдХрд░ рд░рд╣реА рд╣реИ рд╡рд╣ рдХрд░рдирд╛ рдПрдХ рдЕрдЪреНрдЫрд╛ рд╡рд┐рдЪрд╛рд░ рд╣реИред рдореИрдВ рдЗрд╕реЗ рдмрдирд╛рд╡рдЯ рдХреЗ рдмрдЬрд╛рдп рд╕рд╛рдордЧреНрд░реА рдкрд░ рднреА рд░рдЦреВрдВрдЧрд╛ред рдЖрдкрдХреЛ рдореЗрд░рд╛ рд╕рдорд░реНрдерди рд╣реИред

рдкреНрд░рддрд┐ рдирдХреНрд╢рд╛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЖрджрд░реНрд╢ рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдЗрд╕реЗ рдХрд┐рд╕реА рднреА рддрд░рд╣ рдЭрдВрдбреЗ/рдЪрд╛рдмрд┐рдпреЛрдВ рдХреЗ рд╕рд╛рде рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдХреЗ рд╣рд▓ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдЬрдм рд╕рд╛рдордЧреНрд░реА рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рддреЛ рдЗрд╕рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред

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

рд╢реЗрдбрд░ рдХрд╛ рдПрдХрдорд╛рддреНрд░ рдкреНрд░рд╕реНрддрд╛рд╡рд┐рдд рдкрд░рд┐рд╡рд░реНрддрди рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдирд╛ рд╣реИ

vUv = uv * offsetRepeat.zw + offsetRepeat.xy;

рд╕рд╛рде

vUv = ( uvTransform * vec3( uv, 1 ) ).xy;

рдареАрдХред рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреИрд╕реЗ ... рд╣рдо texture.dynamic ( false рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ) рдЬреЛрдбрд╝рддреЗ рд╣реИрдВ рдЬреЛ рдЙрддреНрдкрд╛рджрди рдХрд░рддрд╛ рд╣реИ:

vUV = uv;

рдпрджрд┐ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ texture.dynamic рдХреЛ true рддреЛ рд╣рдо texture.matrix рд╕реЗ texture.translation , texture.rotation , texture.scale рдФрд░ texture.center рдЧрдгрдирд╛ рдХрд░рддреЗ рд╣реИрдВ

vUv = ( uvTransform * vec3( uv, 1 ) ).xy;

рдмреЗрд╢рдХ, рдЕрдЧрд░ texture.dynamic рдмрджрд▓рддрд╛ рд╣реИ рддреЛ рд╣рдореЗрдВ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХреЛ рдлрд┐рд░ рд╕реЗ рдХрдВрдкрд╛рдЗрд▓ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред

рдЗрд╕ рддрд░рд╣ рд╣рдо рджреЛрдиреЛрдВ рджреБрдирд┐рдпрд╛ рдХреЗ рд╕рд░реНрд╡рд╢реНрд░реЗрд╖реНрда рдкреНрд░рд╛рдкреНрдд рдХрд░рддреЗ рд╣реИрдВ?

@mrdoob

  1. рдЖрдкрдХреЗ рд╡рд┐рдЪрд╛рд░ рдореЗрдВ, scale рдмрдирд╛рд╡рдЯ рдХреА рд╕рдВрдкрддреНрддрд┐ рд╣реИ рдпрд╛ texture.scale рд╕рд╛рдордЧреНрд░реА рдХреА рд╕рдВрдкрддреНрддрд┐ рд╣реИ? рдореБрдЭреЗ рдЖрд╢рд╛ рд╣реИ рдХрд┐ рдпрд╣ рдмрд╛рдж рдХреА рдмрд╛рдд рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдзрд╛рдЧрд╛ рдЗрд╕реА рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╣реИред
  2. рд╣рдореЗрдВ .matrix рд╕рдВрдкрддреНрддрд┐ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред рдирдпрд╛ Matrix3 рдПрдХ рд╡рд░реНрджреА рд╣реИ рдЬреЛ рд╕рд╛рдордЧреНрд░реА рд╡рд░реНрджреА offsetRepeat рдХреЛ рдмрджрд▓ рджреЗрддрд╛ рд╣реИред рдпрд╣ рд░реЗрдВрдбрд░рд░ рдореЗрдВ рдЕрдиреНрдп рдорд╛рдкрджрдВрдбреЛрдВ рд╕реЗ рдЧрдгрдирд╛ рдХреА рдЬрд╛рддреА рд╣реИ рдФрд░ рдХрд┐рд╕реА рдЕрдиреНрдп рд╡рд░реНрджреА рдХреА рддрд░рд╣ рд╣реА GPU рдХреЛ рдкрд╛рд╕ рдХрд░ рджреА рдЬрд╛рддреА рд╣реИред
  1. рдЖрдкрдХреЗ рд╡рд┐рдЪрд╛рд░ рдореЗрдВ, scale рдмрдирд╛рд╡рдЯ рдХреА рд╕рдВрдкрддреНрддрд┐ рд╣реИ рдпрд╛ texture.scale рд╕рд╛рдордЧреНрд░реА рдХреА рд╕рдВрдкрддреНрддрд┐ рд╣реИ? рдореБрдЭреЗ рдЖрд╢рд╛ рд╣реИ рдХрд┐ рдпрд╣ рдмрд╛рдж рдХреА рдмрд╛рдд рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдзрд╛рдЧрд╛ рдЗрд╕реА рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╣реИред

рдореИрдВ рдЗрд╕ рдзрд╛рдЧреЗ рд╕реЗ рдЕрд╕рд╣рдордд рд╣реВрдВред рдореБрдЭреЗ рдирд╣реАрдВ рд▓рдЧрддрд╛ рдХрд┐ рд╣рдореЗрдВ mapMatrix , envMapMatrix , ... рдФрд░ рди рд╣реА mapTranslation , mapRotation , mapScale рд╕реЗ рд╕рд╛рдордЧреНрд░реА рдХреЛ рдкреНрд░рджреВрд╖рд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдХреНрд▓реАрдирд░ рд╣реИ рдЕрдЧрд░ THREE.Texture рдореЗрдВ translation , rotation , scale рдФрд░, рд╢рд╛рдпрдж center ред

  1. рд╣рдореЗрдВ .matrix рд╕рдВрдкрддреНрддрд┐ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред рдирдпрд╛ Matrix3 рдПрдХ рд╡рд░реНрджреА рд╣реИ рдЬреЛ рд╕рд╛рдордЧреНрд░реА рд╡рд░реНрджреА offsetRepeat рдХреЛ рдмрджрд▓ рджреЗрддрд╛ рд╣реИред рдпрд╣ рд░реЗрдВрдбрд░рд░ рдореЗрдВ рдЕрдиреНрдп рдорд╛рдкрджрдВрдбреЛрдВ рд╕реЗ рдЧрдгрдирд╛ рдХреА рдЬрд╛рддреА рд╣реИ рдФрд░ рдХрд┐рд╕реА рдЕрдиреНрдп рд╡рд░реНрджреА рдХреА рддрд░рд╣ рд╣реА GPU рдХреЛ рдкрд╛рд╕ рдХрд░ рджреА рдЬрд╛рддреА рд╣реИред

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

рдореИрдВ рдЗрд╕ рдзрд╛рдЧреЗ рд╕реЗ рдЕрд╕рд╣рдордд рд╣реВрдВред рдореБрдЭреЗ рдирд╣реАрдВ рд▓рдЧрддрд╛ рдХрд┐ рд╣рдореЗрдВ mapMatrix, envMapMatrix, ... рдФрд░ рди рд╣реА mapTranslation, mapRotation, mapScale рд╕реЗ рд╕рд╛рдордЧреНрд░реА рдХреЛ рдкреНрд░рджреВрд╖рд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЕрдЧрд░ рддреАрдиред рдмрдирд╛рд╡рдЯ рдореЗрдВ рдЕрдиреБрд╡рд╛рдж, рд░реЛрдЯреЗрд╢рди, рд╕реНрдХреЗрд▓ рдФрд░ рд╢рд╛рдпрдж рдХреЗрдВрджреНрд░ рд╣реИ рддреЛ рдпрд╣ рдХреНрд▓реАрдирд░ рд╣реИред

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

@titansoftime image рдХреЛ THREE.Texture рд╕реЗ рдЕрд▓рдЧ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рдЖрджрд░реНрд╢ рд░реВрдк рд╕реЗ рдПрдХ рдПрдХрд▓ THREE.Image рдХрд╛ рдЙрдкрдпреЛрдЧ рдЕрд▓рдЧ-рдЕрд▓рдЧ THREE.Texture рджреНрд╡рд╛рд░рд╛ рдЕрд▓рдЧ-рдЕрд▓рдЧ translation , rotation , ... рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреЗ рд╕рд╛рде рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

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

рдпрд╣ рд╕рдордЭ рдЖрддрд╛ рд╣реИред рдХреНрдпрд╛ рдмрдирд╛рд╡рдЯред рдХреНрд▓реЛрди () рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЗрд╕ рддрд░рд╣ рд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рдпрд╛ рдХреНрдпрд╛ рдЗрд╕реЗ рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рд╕реЗрдЯ рдХрд░рдирд╛ рд╣реЛрдЧрд╛?

texture.clone() рдЗрд╕ рддрд░рд╣ рд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди WebGLRenderer рдпрд╣ рдЬрд╛рдирдиреЗ рдореЗрдВ рдЕрд╕рдорд░реНрде рд╣реИ рдХрд┐ рдЫрд╡рд┐ рд╡рд╣реА рд╣реИ рдЗрд╕рд▓рд┐рдП рдмрдирд╛рд╡рдЯ рдЕрдкрд▓реЛрдб рдЕрдирд╛рд╡рд╢реНрдпрдХ рд╣реИ ...

рдореИрдВ рдЗрд╕ рдзрд╛рдЧреЗ рд╕реЗ рдЕрд╕рд╣рдордд рд╣реВрдВред рдореБрдЭреЗ рдирд╣реАрдВ рд▓рдЧрддрд╛ рдХрд┐ рд╣рдореЗрдВ mapMatrix, envMapMatrix, ... рдФрд░ рди рд╣реА mapTranslation, mapRotation, mapScale рд╕реЗ рд╕рд╛рдордЧреНрд░реА рдХреЛ рдкреНрд░рджреВрд╖рд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЕрдЧрд░ рддреАрдиред рдмрдирд╛рд╡рдЯ рдореЗрдВ рдЕрдиреБрд╡рд╛рдж, рд░реЛрдЯреЗрд╢рди, рд╕реНрдХреЗрд▓ рдФрд░ рд╢рд╛рдпрдж рдХреЗрдВрджреНрд░ рд╣реИ рддреЛ рдпрд╣ рдХреНрд▓реАрдирд░ рд╣реИред

рдпрд╣ рдореВрд▓ рд░реВрдк рд╕реЗ рдЕрдм рд╣рдо рдХреНрдпрд╛ рдХрд░рддреЗ рд╣реИрдВред рдкреНрд░рддреНрдпреЗрдХ рдмрдирд╛рд╡рдЯ рдХреА рдЕрдкрдиреА offset рд╕рдВрдкрддреНрддрд┐ рд╣реЛрддреА рд╣реИ, рдФрд░ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдСрдлрд╝рд╕реЗрдЯ рдХрд╛ рд╕рдореНрдорд╛рди рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ - рд░реЗрдВрдбрд░рд░ рд╕рд╛рдордЧреНрд░реА рдХреЗ рдкреНрд░рддреНрдпреЗрдХ рдорд╛рдирдЪрд┐рддреНрд░ рдХреЗ рд▓рд┐рдП рд╕рдорд╛рди рдСрдлрд╝рд╕реЗрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред

рдПрдлрдбрдмреНрд▓реНрдпреВрдЖрдИрдбрдмреНрд▓реНрдпреВ, рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╣рдореЗрдВ рд╡рд╣ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП рдЬреЛ рдореИрдВрдиреЗ https://github.com/mrdoob/three.js/issues/5876#issuecomment -69483293 рдореЗрдВ рдХрд╣рд╛ рдерд╛ред

рдореИрдВ рдирд╣реАрдВ рджреЗрдЦрддрд╛ рдХрд┐ рдПрдкреАрдЖрдИ рд╡рд╣ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рдХреНрдпреЛрдВ рдирд╣реАрдВ рджреЗ рд╕рдХрддрд╛ рдЬреЛ @jcarpenter рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реИ ( alphaMap рдХреА рдСрдлрд╕реЗрдЯ рдХреЛ рдПрдирд┐рдореЗрдЯ рдХрд░реЗрдВ, рдЬрдмрдХрд┐ map рд╡рд╣реА рд░рд╣рддрд╛ рд╣реИ)ред рдХреЛрдИ рдХреИрдирд╡рд╛рд╕ рдореЗрдВ рдРрд╕рд╛ рдХрд░ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЗрд╕рдХреЗ рдмрдЬрд╛рдп GPU рдХреЗ рд▓рд┐рдП рдпрд╣ рдПрдХ рдХрд╛рд░реНрдп рд╣реИред

рдЕрд▓рдЧ рдирдХреНрд╢реЗ рдХреЗ рдСрдлрд╕реЗрдЯ рдХреЗ рд╕рд╛рде рдЦреЗрд▓ offsetting ... рд╕реЗ рдмрд╛рддреЗрдВ рдПрдХ рдХрд░ рд╕рдХрддрд╛ рд╣реИ рдХреА рдПрдХ рдЯрди рд╣реИ alphaMap , рдХреЗрд╡рд▓ рд╕реНрдХреЗрд▓рд┐рдВрдЧ normalMap , рдЖрджрд┐

рдкреНрд░рддрд┐ рд╕рд╛рдордЧреНрд░реА рдХреЗрд╡рд▓ рдПрдХ uvTransform рдмрд╣реБрдд рд╕реАрдорд┐рдд рд▓рдЧрддрд╛ рд╣реИред

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

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

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

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

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

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

рдирд╣реАрдВред рдпреВрд╡реА рдХреА рдЧрдгрдирд╛ рд╣рдореЗрд╢рд╛ рдХреА рддрд░рд╣ рд╡рд░реНрдЯреЗрдХреНрд╕ рд╢реЗрдбрд░ рдореЗрдВ рдХреА рдЬрд╛рддреА рд╣реИред

рдПрдХ рд╕реНрдкреНрд░рд╛рдЗрдЯ рд╢реАрдЯ рдФрд░ 20 рд╕реНрдкреНрд░рд╛рдЗрдЯреНрд╕ рдХреА рдХрд▓реНрдкрдирд╛ рдХрд░реЗрдВред рд╡рд░реНрддрдорд╛рди рдореЗрдВ, рд╣рдореЗрдВ 20 рдХреНрд▓реЛрди рд╕рд╛рдордЧреНрд░реА рдФрд░ 20 рдХреНрд▓реЛрди рдмрдирд╛рд╡рдЯ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ - рдЬреИрд╕реЗ http://threejs.org/examples/misc_ubiquity_test2.html рдореЗрдВред (рдмреАрдЯреАрдбрдмреНрд▓реНрдпреВ, рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА SpriteMaterial.rotation ред)

рд╕рд╛рдордЧреНрд░реА рдХреЛ рдСрдлрд╕реЗрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдореЗрдВ 20 рдХреНрд▓реЛрди рд╕рд╛рдордЧреНрд░реА рдФрд░ рдПрдХ рдмрдирд╛рд╡рдЯ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреАред

рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдСрдлрд╕реЗрдЯ рдХреЛ рд╕реНрдкреНрд░рд╛рдЗрдЯ рдореЗрдВ рд▓реЗ рдЬрд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдореЗрдВ 1 рд╕рд╛рдордЧреНрд░реА рдФрд░ 1 рдмрдирд╛рд╡рдЯ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреАред

рдПрдХ рд╕реНрдкреНрд░рд╛рдЗрдЯ рд╢реАрдЯ рдФрд░ 20 рд╕реНрдкреНрд░рд╛рдЗрдЯреНрд╕ рдХреА рдХрд▓реНрдкрдирд╛ рдХрд░реЗрдВред рд╡рд░реНрддрдорд╛рди рдореЗрдВ, рд╣рдореЗрдВ 20 рдХреНрд▓реЛрди рд╕рд╛рдордЧреНрд░реА рдФрд░ 20 рдХреНрд▓реЛрди рдмрдирд╛рд╡рдЯ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ

рдУрд╣, рдореИрдВ рдЗрд╕ рдЙрдкрдпреЛрдЧ рдХреЗ рдорд╛рдорд▓реЗ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдирд╣реАрдВ рдХрд░ рд░рд╣рд╛ рдерд╛ред рдзрдиреНрдпрд╡рд╛рдж!

рдореИрдВ рдЗрд╕ рдмрд╛рд░реЗ рдореЗрдВ рд╕реЛрдЪреВрдВрдЧрд╛...

рдореИрдВ рдмрдирд╛рд╡рдЯ рдореЗрдВ рдпреВрд╡реА рдкрд░рд┐рд╡рд░реНрддрди рдХреА рд╡рдХрд╛рд▓рдд рдирд╣реАрдВ рдХрд░рддрд╛ред

рджреЛ рдХрд╛рд░рдгреЛрдВ рд╕реЗ: (рез) рдпрд╣ рднреНрд░рдорд┐рдд рдХрд░рдиреЗ рд╡рд╛рд▓рд╛ рд╣реИ, (реи) рдкреНрд░рдЪрд╛рд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдФрд░ рднреА рдШрдЯрдирд╛рдПрдБ рд╣реИрдВ, рдФрд░ (реи) рдпрд╣ рдмреЗрдХрд╛рд░ рд╣реИред

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

рдЕрдзрд┐рдХ рдШрдЯрдирд╛ рдкреНрд░рдЪрд╛рд░: рджреВрд╕рд░реА рд╕рдорд╕реНрдпрд╛ рдЬреЛ рдореИрдВрдиреЗ Clara.io рдореЗрдВ рджреЗрдЦреА, рд╡рд╣ рд╣реИ рдШрдЯрдирд╛ рдХрд╛ рдкреНрд░рд╕рд╛рд░ рдЬрдм рдмрдирд╛рд╡рдЯ рдорд╛рдкрджрдВрдбреЛрдВ рдХреЛ рдЪреЗрддрди рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА рдЬрд╛ рд░рд╣реА рд╣реИред рдкреНрд░рддреНрдпреЗрдХ рд╕рд╛рдордЧреНрд░реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╡рд╛рд▓реА рдкреНрд░рддреНрдпреЗрдХ рд╕рд╛рдордЧреНрд░реА рдХрд╛ рдЯреНрд░реИрдХ рд░рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░рддреНрдпреЗрдХ рдмрдирд╛рд╡рдЯ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рдФрд░ рдлрд┐рд░ рдЙрди рд╕рд╛рдордЧреНрд░рд┐рдпреЛрдВ рдХреЛ рдмрддрд╛рдПрдВ рдХрд┐ рд╡реЗ рдЧрдВрджреЗ рд╣реИрдВ рдФрд░ рдЙрдиреНрд╣реЗрдВ рдкреБрдирд░реНрдЧрдгрдирд╛ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдРрд╕рд╛ рдХрд░рдирд╛ рдЕрд╕рдВрднрд╡ рдирд╣реАрдВ рд╣реИ, рдмрд╕ рдФрд░ рдХрд╛рдо рд╣реИред

рдмреЗрдХрд╛рд░: рджреВрд╕рд░рд╛ рдореБрджреНрджрд╛ рдпрд╣ рд╣реИ рдХрд┐ рдпрджрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ 3D рдореЙрдбрд▓ рдпрд╛ рд╕реНрдкрд╛рдЗрдЯ рдХреЗ рдХрдИ рдЙрджрд╛рд╣рд░рдг рд╣реИрдВ рдФрд░ рдЙрди рд╕рднреА рдореЗрдВ рдПрдХ рд╣реА рдПрдирд┐рдореЗрдЯреЗрдб рдмрдирд╛рд╡рдЯ рд╣реИред рдЙрд╕ рд╕реНрдерд┐рддрд┐ рдореЗрдВ рдЖрдкрдХреЛ рд╕реНрдореГрддрд┐ рдореЗрдВ рдмрдирд╛рд╡рдЯ рдХреА рдЕрд▓рдЧ-рдЕрд▓рдЧ рдкреНрд░рддрд┐рдпрд╛рдВ рд░рдЦрдиреА рд╣реЛрдВрдЧреА рддрд╛рдХрд┐ рдЙрдиреНрд╣реЗрдВ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдПрдирд┐рдореЗрдЯреЗрдб рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХреЗ - рднрд▓реЗ рд╣реА рдмрдирд╛рд╡рдЯ рдбреЗрдЯрд╛ рд╕рдорд╛рди рд╣реЛред рд╕рд╛рдордЧреНрд░реА рдкрд░ рдпреВрд╡реА рдЯреНрд░рд╛рдВрд╕рдлреЙрд░реНрдо рдбреЗрдЯрд╛ рдбрд╛рд▓рдиреЗ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдпрд╣ рдЙрд╕ рдЕрд░реНрде рдореЗрдВ рдереЛрдбрд╝рд╛ рдмреЗрдХрд╛рд░ рд╣реИред

рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдпрджрд┐ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдкреНрд░рддрд┐ рд╕рд╛рдордЧреНрд░реА рдХреЗрд╡рд▓ рдпреВрд╡реА рдЯреНрд░рд╛рдВрд╕рдлрд╝реЙрд░реНрдо рдХреА рдЕрдиреБрдорддрд┐ рд╣реИ, рддреЛ рдореИрдВ рдЗрд╕реЗ рд╕рд╛рдордЧреНрд░реА рдкрд░ рд╣реА рд░рдЦреВрдВрдЧрд╛ред рдореИрдВ рдпреВрдирд┐рдЯреА рел рдореЙрдбрд▓ рдХрд╛ рдЕрдиреБрд╕рд░рдг рдХрд░реВрдВрдЧрд╛ рдЬрд╣рд╛рдВ рдЙрдирдХреЗ рдкрд╛рд╕ рдпреВрд╡реА рдСрдлрд╕реЗрдЯ рд╣реИ, рд╕рд╛рдордЧреНрд░реА рдореЗрдВ рд░реЛрдЯреЗрд╢рдиред рдЧреЗрдо рдбреЗрд╡рд▓рдкрд░реНрд╕ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЗрд╕ рджреГрд╖реНрдЯрд┐рдХреЛрдг рд╕реЗ рдкрд░рд┐рдЪрд┐рдд рд╣реИрдВред

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╕рд╛рдордЧреНрд░реА рдкрд░ рдпреВрд╡реА рдЯреНрд░рд╛рдВрд╕рдлреЙрд░реНрдо рджреНрд╡рд╛рд░рд╛ рд╕реНрдкреНрд░рд╛рдЗрдЯреНрд╕ рдХреЛ рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ - рдпрд╣ рдЙрдкрд░реЛрдХреНрдд 3 рдбреА рдореЙрдбрд▓ рдорд╛рдорд▓реЗ рдХреЗ рд╕рдорд╛рди рд╣реА рд╣реИред

Having only one uvTransform per material seems very very limiting.

рдпрд╣рд╛рдВ рдкреВрд░реА рддрд░рд╣ рд╕рд╣рдордд рд╣реИрдВред рдЗрд╕ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХрд╛ рди рд╣реЛрдирд╛ рдЕрддреНрдпрдВрдд рд╕реАрдорд┐рдд рд╣реИред рдРрд╕реЗ рд╢рд╛рдирджрд╛рд░ рдкреНрд░рднрд╛рд╡ рд╣реИрдВ рдЬреЛ рдпрд╣рд╛рдВ рдкреНрд░рджрд╛рди рдХрд┐рдП рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВ рдЬреЛ рд╕рд┐рд░реНрдл рдЗрд╕рд▓рд┐рдП рдирд╣реАрдВ рд╣реИрдВ рдХреНрдпреЛрдВрдХрд┐ рд╣рд░ рдСрдлрд╕реЗрдЯ рдПрдХ рд╕рд╛рде рдмрдВрдж рд╣реИред

рд▓реЗрдХрд┐рди рдпрд╣ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХреНрд▓реЛрдиреЛрдВ рдХреЛ рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд┐рдП рдмрд┐рдирд╛ рдХреИрд╕реЗ рдЙрдкрд▓рдмреНрдз рдХрд░рд╛рдИ рдЬрд╛ рд╕рдХрддреА рд╣реИ?

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

рдпрд╣рд╛рдВ рдкреВрд░реА рддрд░рд╣ рд╕рд╣рдордд рд╣реИрдВред рдЗрд╕ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХрд╛ рди рд╣реЛрдирд╛ рдЕрддреНрдпрдВрдд рд╕реАрдорд┐рдд рд╣реИред рдРрд╕реЗ рд╢рд╛рдирджрд╛рд░ рдкреНрд░рднрд╛рд╡ рд╣реИрдВ рдЬреЛ рдпрд╣рд╛рдВ рдкреНрд░рджрд╛рди рдХрд┐рдП рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВ рдЬреЛ рд╕рд┐рд░реНрдл рдЗрд╕рд▓рд┐рдП рдирд╣реАрдВ рд╣реИрдВ рдХреНрдпреЛрдВрдХрд┐ рд╣рд░ рдСрдлрд╕реЗрдЯ рдПрдХ рд╕рд╛рде рдмрдВрдж рд╣реИред

рд▓реЗрдХрд┐рди рдпрд╣ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХреНрд▓реЛрдиреЛрдВ рдХреЛ рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд┐рдП рдмрд┐рдирд╛ рдХреИрд╕реЗ рдЙрдкрд▓рдмреНрдз рдХрд░рд╛рдИ рдЬрд╛ рд╕рдХрддреА рд╣реИ?

THREE.ShaderMaterial рдпрд╛ THREE.RawShaderMaterial рдЖрдкрдХреЛ рдпрд╣ рдХреНрд╖рдорддрд╛ рджреЗрдЧрд╛, рдФрд░ рдпрд╣ рджреЗрдЦрддреЗ рд╣реБрдП рдХрд┐ рдпрд╣ рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдирд┐рдпрдорд┐рдд рд╕рд╛рдордЧреНрд░реА рдХреЗ рд╕рд╛рде рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рдпрд╣ рд╡рд╣ рдорд╛рд░реНрдЧ рд╣реИ рдЬрд┐рд╕рдХрд╛ рдЖрдкрдХреЛ рд╡реИрд╕реЗ рднреА рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред

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

рдЗрд╕рдХреЗ рд▓рд┐рдП +1, рджреЛрд╕реНрддреЛрдВред

рдпрд╣ рдмрд╣реБрдд рдЙрдкрдпреЛрдЧреА рд╣реЛрдЧрд╛ рдЬрдм рдЖрдкрдХреЗ рдкрд╛рд╕ рдПрдХ рд╡рд┐рд╢рд╛рд▓ рд╕реНрдкреНрд░рд╛рдЗрдЯ рд╢реАрдЯ (рдЙрд░реНрдл рдПрдЯрд▓рд╕) рд╣реЛ рдФрд░ рдЖрдк рдХрдИ THREE.Sprite рдЙрджрд╛рд╣рд░рдгреЛрдВ рдкрд░ рдЗрд╕рдХреА рдмрдирд╛рд╡рдЯ рдХрд╛ рдкреБрди: рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред

рдЗрд╕ рдкрд░ рдХреЛрдИ рднреА рд╕рдорд╛рдЪрд╛рд░? рдпрд╣ рд╕рдорд╕реНрдпрд╛ рдЕрднреА рднреА рдПрдкреАрдЖрдИ рдореЗрдВ рдПрдХ рдмрд╣реБрдд рд╣реА рдЖрдХрд░реНрд╖рдХ рджреЛрд╖ рд╣реИред рдЕрдзрд┐рдХрд╛рдВрд╢ рдорд╛рдирдЪрд┐рддреНрд░ рдкреНрд░рдХрд╛рд░реЛрдВ рдореЗрдВ рдСрдлрд╝рд╕реЗрдЯ/рд░рд┐рдкреАрдЯ рд╣реЛрддреЗ рд╣реИрдВ рдЬреЛ рдЕрдкреНрд░рдпреБрдХреНрдд рд╣реЛрддреЗ рд╣реИрдВ, рдФрд░ рдШрдЯрдирд╛ рдкреНрд░рд╕рд╛рд░ рдПрдХ рдПрдирд┐рдореЗрдЯреЗрдб рд╕реНрдкреНрд░рд╛рдЗрдЯ рдХреА рддрд░рд╣ рдПрдХ рд╡рд┐рдорд╛рди рдХреЗ рд░рд╛рд╕реНрддреЗ рдкрд░ рдзреАрдорд╛/рд╕реНрдореГрддрд┐ рднрд╛рд░реА рд╣реЛрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╕реЗ рдЕрдзрд┐рдХ рдмрдирд╛рддрд╛ рд╣реИред

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

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

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

рдЗрд╕рдХрд╛ рд╕рдорд╛рдзрд╛рди @sunag рдХрд╛ NodeMaterial btw рд╣реИред

рдЗрд╕рдХреЗ рд▓рд┐рдП рдЕрдкрдирд╛ +1 рднреА рдЬреЛрдбрд╝ рд░рд╣реЗ рд╣реИрдВ! рд╕реНрдкреНрд░рд╛рдЗрдЯ рд╢реАрдЯ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдирд╛ рдЬреНрдпрд╛рджрд╛ рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛ред

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

рдХреНрдпрд╛ рдХрд┐рд╕реА рдХреЗ рдкрд╛рд╕ рдЗрд╕ рдореБрджреНрджреЗ рдХрд╛ рдХреЛрдИ рд╕рдорд╛рдзрд╛рди рд╣реИ? рдХреНрдпрд╛ рдЯреЗрдХреНрд╕рдЪрд░ рдЗрдВрдЯрд░рдлреЗрд╕ рдХреЛ рджрд░рдХрд┐рдирд╛рд░ рдХрд░рддреЗ рд╣реБрдП рд╕реАрдзреЗ рд╢реЗрдбрд░ рдкрд░ рд╡рд░реНрджреА рд╕реЗрдЯ рдХрд░рдХреЗ рдпреВрд╡реА рдСрдлрд╕реЗрдЯ рдореЗрдВ рд╣реЗрд░рдлреЗрд░ рдХрд░рдирд╛ рд╕рдВрднрд╡ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ?

рдЗрд╕рдХрд╛ рд╕рдорд╛рдзрд╛рди @sunag рдХрд╛ NodeMaterial btw рд╣реИред

@bhouston , рдХреНрдпрд╛ рдЖрдк рдХреГрдкрдпрд╛ рдПрдХ рд▓рд┐рдВрдХ рдкреНрд░рджрд╛рди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ? @sunag рдХреЗ рдЦрд╛рддреЗ рдореЗрдВ рдЙрд╕ рдирд╛рдо рдХрд╛ рдХреЛрдИ рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рднрдВрдбрд╛рд░ рдирд╣реАрдВ рд╣реИред

@ rhys-vdw рдпрд╣ рдпрд╣рд╛рдБ рдХреЗрд╡рд▓ рджреЗрд╡ рд╢рд╛рдЦрд╛ рдореЗрдВ рд╕реНрдерд┐рдд рд╣реИ:

https://github.com/mrdoob/three.js/tree/dev/examples/js/nodes

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

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

@bhouston рдореИрдВ рдиреЛрдб рдХреЗ рд╕рд╛рде рдПрдХ рдЙрджрд╛рд╣рд░рдг рдмрдирд╛ рд╕рдХрддрд╛ рд╣реВрдВ, рдпрд╣ рдЕрдЪреНрдЫрд╛ рд▓рдЧ рд░рд╣рд╛ рд╣реИред

рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП THREE.SpriteMaterial рдЖрдк spritesheet рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдСрдлрд╝рд╕реЗрдЯ/рд╕реНрдХреЗрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:

var offsetX = frameX / mapWidth;
var scaleX = mapWidth / frameWidth;

sprite.material.map.offset.x = offsetX;
sprite.material.map.repeat.x = scaleX;

https://github.com/mrdoob/three.js/blob/master/src/renderers/webgl/plugins/SpritePlugin.js#L53

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

... рдЗрд╕рд▓рд┐рдП рдпрд╣ рдЖрдкрдХреЛ рдмрдирд╛рд╡рдЯ рдПрдХреНрд╕реЗрд╕ рдХреЛ рдордирдорд╛рдиреЗ рдврдВрдЧ рд╕реЗ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░рдиреЗ рдХреА рд╕реБрд╡рд┐рдзрд╛ рджреЗрдЧрд╛ред

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

THREE.SpriteMaterial рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЖрдк рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдЗрд╕рдХреЗ рд╕рд╛рде рд╕реНрдкреНрд░рд╛рдЗрдЯрд╢реАрдЯ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдСрдлрд╝рд╕реЗрдЯ/рд╕реНрдХреЗрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ ...

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

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

@QuaziKb рдХреНрдпрд╛ рдХреЛрдИ рдкреАрдЖрд░ рд╣реИ рдЬрд┐рд╕реЗ рдореИрдВ рдЕрдкрдиреЗ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЗ рд▓рд┐рдП рд▓рдХреНрд╖рд┐рдд рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ?

рд╣рд╛рд▓рд╛рдВрдХрд┐ рдпрд╣ рдкреВрд░реА рдмрд╛рдд рдХреЛрдИ рд╕рдорд╕реНрдпрд╛ рдирд╣реАрдВ рд╣реЛрдЧреА, рдЬреИрд╕рд╛ рдХрд┐ @WestLangley рдиреЗ рдХрд╣рд╛, рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╕рддреНрдп рдереЗ:

рдпрджрд┐ рд╣рдо рд╡рд░реНрддрдорд╛рди рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХреЛ рдмрдирд╛рдП рд░рдЦрддреЗ рд╣реИрдВ, рддреЛ рдПрдХ рдЪреАрдЬ рдЬрд┐рд╕реЗ рдмрджрд▓рдиреЗ рдХреА рдЬрд░реВрд░рдд рд╣реИ, рд╡рд╣ рдпрд╣ рд╣реИ рдХрд┐ рдЬрдм рдПрдХ рдмрдирд╛рд╡рдЯ рдХрд╛ рдХреНрд▓реЛрди рдмрдирд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рд╕рд╛рдЭрд╛ рдХреА рдЧрдИ рдЫрд╡рд┐ рдХреЛ рдХреЗрд╡рд▓ рдПрдХ рдмрд╛рд░ GPU рдХреЛ рдкрд╛рд╕ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред

рдХреНрдпрд╛ рд╡реЛ рд╕рд╣реА рд╣реИ?

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

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

https://github.com/mrdoob/three.js/issues/7522

рд▓реЗрдХрд┐рди рдлрд┐рд▓рд╣рд╛рд▓ рдХрд┐рд╕реА рдиреЗ рдЗрд╕ рддрд░рд╣ рдпреВрдЖрдИрдбреА рдХреЛ рддреБрд░рдВрдд рдЪрд╛рд▓реВ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА :?

THREE.Texture.prototype.createInstance = function() {

    var inst = this.clone();

    inst.uuid = this.uuid;
    inst.version = this.version;

    return inst;

}

рдпрджрд┐ рдЖрдк needsUpdate рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ рддреЛ рд╕рднреА рдЙрджрд╛рд╣рд░рдгреЛрдВ рдХреЛ version рднреА рдЕрдкрдбреЗрдЯ рдХрд░реЗрдВред

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

var uniqueTextureOffset = map.createInstance();
var material = new THREE.SpriteMaterial( { map: uniqueTextureOffset } );

рд╡рд╣реА uuid рдмрдирд╛рдП рд░рдЦреЗрдВ рдФрд░ version GPU рдкрд░ texture рд╕рд╛рдЭрд╛ рдХрд░реЗрдВрдЧреЗред

https://github.com/mrdoob/three.js/blob/master/src/renderers/WebGLRenderer.js#L2832
https://github.com/mrdoob/three.js/blob/master/src/renderers/webgl/WebGLProperties.js#L11

рд╣рд╛рд▓рд╛рдВрдХрд┐ рдореЗрд░реЗ рд▓рд┐рдП рдпрд╣ рдПрдХ рдЕрд╕реНрдерд╛рдпреА рд╕рдорд╛рдзрд╛рди рд╣реИред рдореИрдВ рднрд╡рд┐рд╖реНрдп рдХреЗ рд▓рд┐рдП NodeMaterial рдореЗрдВ рд╡рд┐рд╢реНрд╡рд╛рд╕ рдХрд░рддрд╛ рд╣реВрдВред

рдХреНрдпрд╛ рд╣рдо рдХреГрдкрдпрд╛ рдпреВрд╡реА рдЯреНрд░рд╛рдВрд╕рдлреЙрд░реНрдо рдХреЛ рд╕рд╛рдордЧреНрд░реА рдореЗрдВ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ?

рджреЛрдиреЛрдВ рджреБрдирд┐рдпрд╛ рдХреЗ рд╕рд░реНрд╡рд╢реНрд░реЗрд╖реНрда рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреИрд╕реЗред рд╕рд╛рдордЧреНрд░реА рдкрд░ рдПрдХ рдирдпрд╛ uvOffset рдФрд░ рд╕рд╛рдордЧреНрд░реА рдкрд░ uvRepeat рд╕рд╛рде рдПрдХ рдзреНрд╡рдЬ overrideOffsetRepeat рдЬреЛрдбрд╝реЗрдВред рдЗрд╕ рддрд░рд╣ рдпрджрд┐ рдзреНрд╡рдЬ рдЭреВрдард╛ рд╣реИ, рддреЛ рдпрд╣ рдкреАрдЫреЗ рдХреА рдУрд░ рд╕рдВрдЧрдд рд╣реИ, рдФрд░ рдпрд╣ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд╣реИред рдФрд░ рдЕрдЧрд░ рдпрд╣ рд╕рдЪ рд╣реИ, рддреЛ рдпрд╣ рд╕рд╛рдордЧреНрд░реА рдСрдлрд╕реЗрдЯ/рджреЛрд╣рд░рд╛рдиреЗ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред рдореИрдВ рдЗрд╕рдХрд╛ рд╕рдорд░реНрдерди рдХрд░реВрдВрдЧрд╛ рдХреНрдпреЛрдВрдХрд┐ рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЗрд╕рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рддреАрд╡реНрд░ рдФрд░ рд╡реНрдпрд╛рдкрдХ рд╣реИред @рд╡реЗрд╕реНрдЯрд▓реИрдВрдЧрд▓реА? @рдорд░рджреВрдм?

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

рдореБрдЭреЗ рдЕрднреА рднреА рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЗрд╕рдХрд╛ рд╕рдорд╛рдзрд╛рди THREE.Image ред https://github.com/mrdoob/three.js/issues/5876#issuecomment -81189892

THREE.Image

@mrdoob , рдХреНрдпрд╛ рдЗрд╕рдХрд╛ рдорддрд▓рдм рдпрд╣ рд╣реЛрдЧрд╛ рдХрд┐ рдкреНрд░рддреНрдпреЗрдХ рдЕрд╕рд╛рдЗрди рдХрд┐рдП рдЧрдП Texture рдХреЛ Material рдХреЗ рд╕рд╛рде рдХреНрд▓реЛрди рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛?

@mrdoob рдиреЗ рд▓рд┐рдЦрд╛:

рдореБрдЭреЗ рдЕрднреА рднреА рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЗрд╕рдХрд╛ рд╕рдорд╛рдзрд╛рди рддреАрди рдмрдирд╛рдирд╛ рд╣реИред рдЫрд╡рд┐

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

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

рдореБрдЭреЗ рдкрддрд╛ рд╣реИ рдХрд┐ рдПрдХрддрд╛ рдкреНрд░рддрд┐ рд╕рд╛рдордЧреНрд░реА рджреЛрд╣рд░рд╛рдиреЗ/рдСрдлрд╕реЗрдЯ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддреА рд╣реИ, рд▓реЗрдХрд┐рди 3DS рдореИрдХреНрд╕, рдорд╛рдпрд╛, рд╕реЙрдлреНрдЯрд┐рдореЗрдЬ рдЬреИрд╕реЗ рдЙрдЪреНрдЪ рдЕрдВрдд рд╡реАрдПрдлрдПрдХреНрд╕ рдЙрдкрдХрд░рдг рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ - рдЙрдирдХреЗ рдкрд╛рд╕ рдмрд╕ рдПрдХ рдмрд┐рдЯрдореИрдк рдиреЛрдб рдФрд░ рдПрдХ рдмрдирд╛рд╡рдЯ рдиреЛрдб рд╣реЛрддрд╛ рд╣реИ (рдЬрд┐рд╕рдореЗрдВ рдмрд┐рдЯрдореИрдк рдиреЛрдб рдХреЗ рд╕рд╛рде-рд╕рд╛рде рдпреВрд╡реА рдореИрдкрд┐рдВрдЧ рднреА рд╢рд╛рдорд┐рд▓ рд╣реИ) nod ), рдЬреЛ

UE4 рднреА @mrdoob рдХреЗ рдкреНрд░рд╕реНрддрд╛рд╡ рдХреЗ рд╕рдорд╛рди рд╣реИ, рдЙрдирдХреЗ рдкрд╛рд╕ рдПрдХ "

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

 -> Bitmap
 -> UVMapping

рд╣рдо рдЕрднреА рдореБрдЦреНрдп StandardMaterial рдореЗрдВ рдЕрдзрд┐рдХ UVMapping рд╡рд┐рдХрд▓реНрдкреЛрдВ рдХреА рдЕрдиреБрдорддрд┐ рдирд╣реАрдВ рджреЗрддреЗ рд╣реИрдВред рд▓реЗрдХрд┐рди UE4, рдорд╛рдпрд╛, рд╕реЙрдлреНрдЯрд┐рдореЗрдЬ, 3DS рдореИрдХреНрд╕ рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рд╡рд┐рднрд┐рдиреНрди рдкреНрд░рдХрд╛рд░ рдХреЗ UVMappings, рдХрд┐рд╕ рдЪреИрдирд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╣реИ, рдЗрд╕реЗ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдкрд░рд┐рд╡рд░реНрддрди, рд╕реНрд░реЛрдд рдХреЗ рд░реВрдк рдореЗрдВ рд╡рд┐рд╢реНрд╡ рдирд┐рд░реНрджреЗрд╢рд╛рдВрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдпрд╛ рдпрджрд┐ рдХрд┐рд╕реА рдХреЛ рдЧреЛрд▓рд╛рдХрд╛рд░, рдШрди, рд╕рдорддрд▓реАрдп рдкреНрд░рдХреНрд╖реЗрдкрдг рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП рдЙрди рдЕрдиреБрдорд╛рдиреЛрдВ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рдорд╛рдкрджрдВрдбреЛрдВ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ред

UE4 рдореЗрдВ рдПрдХ рд╕реНрдкреНрд░рд╛рдЗрдЯ рдмрдирд╛рд╡рдЯ рд╣реИ рдЬреЛ рд╕рд╛рдордЧреНрд░реА рдХреЗ рднреАрддрд░ рджреЛрд╣рд░рд╛рдиреЗ/рдСрдлрд╝рд╕реЗрдЯ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддреА рд╣реИ:

https://docs.unrealengine.com/latest/INT/Engine/Paper2D/Sprites/index.html

рдорд╛рдпрд╛, рд╕реЙрдлреНрдЯрд┐рдореЗрдЬ, 3рдбреАрдПрд╕ рдореИрдХреНрд╕ рдФрд░ рдпреВрдИ4 рдореЗрдВ рдмрд┐рдЯрдореИрдк/рдЗрдореЗрдЬ рдХреЛ рдЯреЗрдХреНрд╕рдЪрд░ (рдФрд░ рдпреВрд╡реА рдЬреЗрдирд░реЗрд╢рди рд╕реЗ) рд╕реЗ @mrdoob рд╕реБрдЭрд╛рд╡ рджреЗ рд░рд╣рд╛ рд╣реИ, рд▓реЗрдХрд┐рди рд╡реЗ рд╕рднреА рдЗрд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╢реЗрдбрд░ рдЧреНрд░рд╛рдлрд╝ рдХрд╛ рднреА рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред рдпреВрдирд┐рдЯреА 3 рдбреА, рдЬрд┐рд╕рдореЗрдВ рд╢реЗрдбрд░ рдЧреНрд░рд╛рдл рдирд╣реАрдВ рд╣реИ, рд╡рд╣ рдЙрдкрдХрд░рдг рд╣реИ рдЬреЛ рд╕рд╛рдордЧреНрд░реА рдореЗрдВ рдСрдлрд╕реЗрдЯ/рд░рд┐рдкреАрдЯ рдХреЛ рд╢рд╛рдорд┐рд▓ рдХрд░рддрд╛ рд╣реИ, рд╢рд╛рдпрдж рдЗрд╕рд▓рд┐рдП рдХрд┐ рдпрд╣ рдЗрд╕реЗ рдПрдХ рд╢реЗрдбрд░ рдЧреНрд░рд╛рдл рдиреЛрдб рдореЗрдВ рдареАрдХ рд╕реЗ рдЕрд▓рдЧ рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ рд╣реИред

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

рдмрд┐рд▓реНрдХреБрд▓

рд╢рд╛рдпрдж рдЙрд▓реНрд▓реЗрдЦ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЬрдЧрд╣ рд╕реЗ рдереЛрдбрд╝рд╛ рд╕рд╛ рд╣реИ рд▓реЗрдХрд┐рди рдореИрдВ рдкреАрдЯреАрдИрдПрдХреНрд╕ рдХреЛ рдЬрд▓реНрдж рд╕реЗ рдЬрд▓реНрдж рд╢рд╛рдорд┐рд▓ рдХрд░рдиреЗ рдХреА рд╕рд┐рдлрд╛рд░рд┐рд╢ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВред
http://ptex.us/PtexFile.html
рдпрджрд┐ рдареЗрда рдЕрдиреБрдорд╛рдиреЛрдВ рдЖрджрд┐ рдХреЛ NodeTexture (?) рдореЗрдВ рдмрджрд▓рдиреЗ/рдмрджрд▓рдиреЗ рдХрд╛ рдХреЛрдИ рддрд░реАрдХрд╛ рд╣реИ рдпрд╛ рд╡рд┐рдХрд▓реНрдк рдЬреЛ рдПрдХ рдирдпрд╛ рдЕрдзрд┐рдХ рд╢рдХреНрддрд┐рд╢рд╛рд▓реА рдФрд░ рд╡реНрдпрд╛рдкрдХ рдЖрдзрд╛рд░ рд╕реНрддрд░ рдмрдирд╛рд╡рдЯ рдорд╛рдирдЪрд┐рддреНрд░рдг рдкреНрд░рдгрд╛рд▓реА рд╣реИ? ... рдареАрдХ рд╣реИ, рддреЛ рд╢рд╛рдпрдж рдпрд╣ рд╕рдордп рд╕реЗ рдкрд╣рд▓реЗ рд╡рд┐рдЪрд╛рд░ рдХрд░рдиреЗ рд╡рд╛рд▓реА рдмрд╛рдд рд╣реИред
[рдЖрдЧреЗ рдЙрд╕реА рдмрд┐рдВрджреБ рдкрд░:]
рдкреАрдЯреЗрдХреНрд╕ рдХреЗ рд╕рд╛рде рдЕрд╡рдзрд╛рд░рдгрд╛ рдЗрд╕рдХреА рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдПрдХ 2 рдбреА рдЫрд╡рд┐ рдирд╣реАрдВ рд╣реИ рдмрд▓реНрдХрд┐ рдПрдХ рдпреВрд╡реА рд╕рдВрдмрдВрдз рд╣реИ рддрд╛рдХрд┐ рдЖрдк 2 рдбреА рд╕реЗ 3 рдбреА рдХрд╛ рдЕрдиреБрд╡рд╛рдж рдХрд░рдиреЗ рдХреА рдЕрд╡рдзрд╛рд░рдгрд╛/рдЪреБрдиреМрддреА рдХреЗ рдмрд┐рдирд╛ рдПрдХ рдЬрдЯрд┐рд▓ рд╕рддрд╣ рдХреЗ рдЪрд╛рд░реЛрдВ рдУрд░ рдкреЗрдВрдЯ/рд╕реНрдЯреИрдореНрдк/рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХрд░ рд╕рдХреЗрдВ, рдЬреЛ рдЧрдгрд┐рддреАрдп рд░реВрдк рд╕реЗ рддреБрд▓рдирд╛ рдореЗрдВ рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рд╣реИрдХ рд╣реИ ( рд╣рдореЗрд╢рд╛ рддрдХрдиреАрдХреА рд░реВрдк рд╕реЗ рд╡рд┐рдирд╛рд╢ рд╕реЗ рдЬреВрдЭ рд░рд╣рд╛ рд╣реИ)ред
рдореИрдВ рд╕рд┐рд░реНрдл рдпрд╣ рдЗрдВрдЧрд┐рдд рдХрд░рддрд╛ рд╣реВрдВ рдХрд┐ рдкреАрдЯреАрдПрдХреНрд╕ рдХреЛ рдЕрдзрд┐рдХ рд╕рдордЭ рдореЗрдВ рдЖрдирд╛ рдЪрд╛рд╣рд┐рдП рдерд╛ рдФрд░ 20+ рд╕рд╛рд▓ рдкрд╣рд▓реЗ рдкреНрд░рд╛рдердорд┐рдХрддрд╛ рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдП рдереА рдФрд░ рдЗрд╕реЗ рд╡рд┐рд╕реНрддрд╛рд░ рдпрд╛ рджреНрд╡рд┐рддреАрдп рд╢реНрд░реЗрдгреА рдХреЗ рдХрд▓рд╛рдХрд╛рд░ рдирд╣реАрдВ рдорд╛рдирд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП, рд▓реЗрдХрд┐рди рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдореЗрд░реЗ рд▓рд┐рдП рдпрд╣ рджреВрд╕рд░реА рддрд░рдл рд╣реИред рдпрд╣ рдШреЛрд╖рдгрд╛рддреНрдордХ рд░реВрдк рд╕реЗ рдпрд╣ рдХрд╣рдиреЗ рдХрд╛ рдкреБрд░рд╛рдирд╛ рдореВрд▓ рддрд░реАрдХрд╛ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ рдХреИрд╕реЗ рдПрдХ 2d рдЫрд╡рд┐ рдХреЛ ptex рдХреЗ рдПрдХ рд╕рдЪреНрдЪреЗ рд╣рдореЗрд╢рд╛ рдХрд╛рдо рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдмреЗрд╕ рд▓реЗрд╡рд▓ рд╕рд┐рд╕реНрдЯрдо рдореЗрдВ рдкреНрд░реЛрдЬреЗрдХреНрдЯ/рд╕реНрдЯреИрдореНрдк рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рд╡реИрд╕реЗ рднреА рд╕рд┐рд░реНрдл рдЗрд╕ рд╡рд┐рдЪрд╛рд░ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрд╕реЗ рдПрдХреАрдХреГрдд рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рдпрджрд┐ рдЕрдзрд┐рдХ рдХреЗрдВрджреНрд░реАрдп рд░реЛрд▓ рд▓реЗрдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рдирд╣реАрдВ рд╣реИред
рдКрдБрдЪреЗ-рдКрдБрдЪреЗ рд╕реБрдЭрд╛рд╡ рджреЗрдиреЗ рдХреЗ рдЕрд╡рд╕рд░ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред рдореИрдВ рдмрд╣реБрдд рдЦреБрд╢ рдерд╛ рдХрд┐ рдкреАрдЯреЗрдХреНрд╕ рдХреЛ рдПрдХ рдХрд▓реНрдкрдирд╛ рдХреЗ рд▓рд┐рдП рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдореИрдВрдиреЗ рдЦреБрдж рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ резреж+ рд╕рд╛рд▓ рдкрд╣рд▓реЗ рд╕реЛрдЪрд╛ рдерд╛, рд▓реЗрдХрд┐рди рдПрдХ рдмрдЪреНрдЪреЗ рдХреЗ рд░реВрдк рдореЗрдВ рдирдП рдЪрд╢реНрдореЗ рдЖрджрд┐ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдиреЗ рдХреА рдХреЛрдИ рд╢рдХреНрддрд┐ рдирд╣реАрдВ рдереАред рдкрд┐рдЫрд▓реА рдмрд╛рд░ рдореБрдЭреЗ рдпрд╣ рджреЗрдЦрдирд╛ рдЪрд╛рд╣рд┐рдП рдерд╛ рдХрд┐ рд╢рд╛рдпрдж рдореИрдВ рдкрд░реНрдпрд╡реЗрдХреНрд╖рдХ рдХреЗ рд░реЛрд▓ рдХреЗ рдмрдЬрд╛рдп рдПрдХ рдЕрдВрддрд░ рдмрдирд╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд╕рдХрддрд╛ рдерд╛ рдЬреЛ рдореИрдВ рдЕрднреА рднреА рдмрдирд╛рдП рд░рдЦрддрд╛ рд╣реВрдВред рддреЛ рдпрд╣рд╛рдВ рдПрдХ рд▓рдВрдмреЗ рд╕рдордп рд╕реЗ рдЪрд▓реА рдЖ рд░рд╣реА рдЧрд▓рдд рдХреЛ рдкреВрд░реНрд╡рд╡рдд рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рд╣реИред

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

@MasterJames рдСрдл-рдЯреЙрдкрд┐рдХ... рдХреГрдкрдпрд╛ рдПрдХ рдирдпрд╛ рд╕реВрддреНрд░ рдмрдирд╛рдПрдВ?

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

@QuaziKb рд╣рд╛рдВред рдпрд╣реА NodeMaterial рдирд┐рдкрдЯрддрд╛ рд╣реИред

рдХреНрдпрд╛ рдРрд╕рд╛ рдирд╣реАрдВ рд╣реИ рдХрд┐ Texture рдкреНрд░рддреНрдпреЗрдХ .clone() рд▓рд┐рдП рдПрдХ рд╣реА OpenGL рдмрдирд╛рд╡рдЯ рдЙрджрд╛рд╣рд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ, рдпрд╛ рдХреНрдпрд╛ рдореБрдЭреЗ рдХреБрдЫ рдпрд╛рдж рдЖ рд░рд╣рд╛ рд╣реИред рдХреНрдпрд╛ рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдкреНрд░рддреНрдпреЗрдХ рдХреНрд▓реЛрди рдХреЗ рд▓рд┐рдП рдЗрд╕реЗ рдкреБрдирдГ рдЕрдкрд▓реЛрдб рдХрд░ рд░рд╣рд╛ рд╣реИ? рдЕрдЧрд░ рдРрд╕рд╛ рд╣реИ, рддреЛ рдпрд╣ рдПрдХ _рдмрд╣реБрдд_рдЧрдВрднреАрд░ рдореБрджреНрджрд╛ рд╣реИред

@evrimoztamur , рдореЗрд░рд╛ рдорд╛рдирдирд╛ тАЛтАЛтАЛтАЛрд╣реИ рдХрд┐ рдпрд╣ рд╣рд░ рдмрд╛рд░ рдмрдирд╛рд╡рдЯ рдХреА рдирдХрд▓ рдХрд░рддрд╛ рд╣реИред рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ WebGL рдЗрдВрд╕реНрдкреЗрдХреНрдЯрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХреНрдпрд╛ рд╣реЛ рд░рд╣рд╛ рд╣реИред

рдореИрдВрдиреЗ рд╣рд░ рдЙрд╕ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХреА рдХреЛрд╢рд┐рд╢ рдХреА рдЬрд┐рд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдореИрдВ рд╕реЛрдЪ рд╕рдХрддрд╛ рдерд╛, рдЬрд┐рд╕рдореЗрдВ @sunag рдХрд╛ рд╕рдорд╛рдзрд╛рди рднреА рд╢рд╛рдорд┐рд▓ рд╣реИ , рд▓реЗрдХрд┐рди рдХреБрдЫ рднреА рдХрд╛рдо рдирд╣реАрдВ рдХрд┐рдпрд╛ред рдореЗрд░реЗ рдкреНрд░рдпреЛрдЧ рдХреЗ рдкрд░рд┐рдгрд╛рдо рдирд╣реАрдВ рджреЗрдиреЗ рдХреЗ рдЖрдзрд╛рд░ рдкрд░, рдФрд░ рдКрдкрд░ рдХреА рдЪрд░реНрдЪрд╛ рдХреЗ рдЖрдзрд╛рд░ рдкрд░, рдореИрдВрдиреЗ рдпрд╣ рджреЗрдЦрд╛ рдХрд┐ рдЕрдиреНрдп рдкреБрд╕реНрддрдХрд╛рд▓рдп рд╕реНрдкреНрд░рд╛рдЗрдЯ рдПрдиреАрдореЗрд╢рди рдХреЛ рдХреИрд╕реЗ рд╕рдВрднрд╛рд▓рддреЗ рд╣реИрдВред рдореИрдВ Babylon.js рдХреЗ рдкрд╛рдпрд╛ рд╕реНрдкреНрд░рд╛рдЗрдЯ рдФрд░ SpriteManager рдПрдкреАрдЖрдИ рдХрд┐ рдореЗрд░реЗ рд╡рд┐рд╢реЗрд╖ рдЬрд░реВрд░рддреЛрдВ рдХреЛ рдкреВрд░рд╛ рдХрд░рддрд╛ рдПрдХ рд╕рдорд╛рдзрд╛рди рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рдпрд╣ рд╕реНрдкреНрд░рд╛рдЗрдЯ рд╢реАрдЯ, рдСрдлрд╕реЗрдЯ рдФрд░ рд░рд┐рдкреАрдЯ, рдФрд░ рдПрдирд┐рдореЗрд╢рди рдХреЛ рд╕рдВрднрд╛рд▓рддрд╛ рд╣реИред рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдереНрд░реА.рдЬреЗрдПрд╕ рдкреНрд░рджрд╛рди рдХрд░рдиреЗ рдХреЗ рд▓рдХреНрд╖реНрдп рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдЙрдЪреНрдЪ рд╕реНрддрд░ рдХрд╛ рдЕрдореВрд░реНрддрди рд╣реИ, рд▓реЗрдХрд┐рди рдПрдХ рд╕рдВрджрд░реНрдн рдХреЗ рд░реВрдк рдореЗрдВ рджреЗрдЦрдиреЗ рд▓рд╛рдпрдХ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред

@ rhys-vdw: рдПрдХ рд╡рд░реНрддрдорд╛рди рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЗ рд▓рд┐рдП рдореИрдВ MeshBasicMaterial рдХреЗ рдПрдХ рдХрдореАрдиреЗ рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рд╕рд╛рде рд╕рдорд╛рдкреНрдд рд╣реБрдЖ:
https://gist.github.com/karimbeyrouti/790d2e1a8c0137b16bae

рдЬрдм рдЖрдк рдорд╛рдирдЪрд┐рддреНрд░ рд╕реЗрдЯ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдпрд╣ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдСрдлрд╝рд╕реЗрдЯ/рд░рд┐рдкреАрдЯ рдпреВрдирд┐рдлрд╝реЙрд░реНрдо рдЕрд╕рд╛рдЗрди рдХрд░рддрд╛ рд╣реИ (рдЬреЛ рдЯрдХ рджреВрд░ рд╕рд╛рдордЧреНрд░реА рдореЗрдВ рд╣реЛрддреЗ рд╣реИрдВ)ред рдЖрдк рдЙрдиреНрд╣реЗрдВ рдЖрд╕рд╛рдиреА рд╕реЗ рдЕрд▓рдЧ рд╕реЗ рд╕реЗрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ - рдЗрд╕рд╕реЗ рдЖрдкрдХреЛ рдЕрднреА рдХреЗ рд▓рд┐рдП рдмрдирд╛рд╡рдЯ рдХреЛ рдХреНрд▓реЛрди рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реЛрдЧреАред (r73 рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдирд╛)

рдореИрдВрдиреЗ рдЕрднреА рдПрдХ рдкреАрдЖрд░ рд╕рдмрдорд┐рдЯ рдХрд┐рдпрд╛ рд╣реИ рдЬреЛ рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рд╕рдВрдмреЛрдзрд┐рдд рдХрд░реЗрдЧрд╛, рдкреАрдЖрд░ #8278

@WestLangley рдиреЗ рд▓рд┐рдЦрд╛:

рдореЗрд░рд╛ рдорд╛рдирдирд╛ тАЛтАЛтАЛтАЛрд╣реИ рдХрд┐ рдпрд╣ рдорд╛рди рд▓реЗрдирд╛ рдЙрдЪрд┐рдд рд╣реИ рдХрд┐ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдорд╛рдирдЪрд┐рддреНрд░реЛрдВ рдореЗрдВ рд╕рдорд╛рди рдСрдлрд╕реЗрдЯ/рджреЛрд╣рд░рд╛рд╡ рдорд╛рди рд╣реИрдВ:

рдирдХреНрд╢рд╛
рд╕реНрдкреЗрдХреНрдпреБрд▓рд░ рдореИрдк
рд╕рд╛рдорд╛рдиреНрдп рдирдХреНрд╢рд╛
рдирдХреНрд╢рд╛ рдЯрдХреНрдХрд░
рдЕрд▓реНрдлрд╛ рдореИрдк
рдПрдУрдореИрдк (рднрд╡рд┐рд╖реНрдп)
рдЧреНрд▓реЛрд╕ рдореИрдк (рднрд╡рд┐рд╖реНрдп)
рд╡рд┐рд╕реНрдерд╛рдкрдирдорд╛рдирдЪрд┐рддреНрд░ (рднрд╡рд┐рд╖реНрдп)

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

рд╕рдВрдкрд╛рджрд┐рдд рдХрд░реЗрдВ: рдареАрдХ рд╣реИ, рдХрдо рд╕реЗ рдХрдо рдпрд╣реА рдореИрдВрдиреЗ рд╕реЛрдЪрд╛ рдерд╛ рдХрд┐ рдореИрдВрдиреЗ рдХрд┐рдпрд╛ рдерд╛ред рдЪрд╛рд▓ рдХреЛ рд╢рд╛рдпрдж рдирдЬрд░рдЕрдВрджрд╛рдЬ рдХрд░ рджрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдФрд░ рдореИрдВ рд╢реЗрдбрд░ рдпрд╛ рдХреБрдЫ рдореЗрдВ рд╢реЛрд░ рдЬреЛрдбрд╝рдХрд░ рд╕рдорд╛рди рдкрд░рд┐рдгрд╛рдо рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВред WestLangley рдХрд╛ Matrix3 рдбреЗрдореЛ рдЕрдЪреНрдЫрд╛ рд╣реИред

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рд╕реНрдкреНрд░рд╛рдЗрдЯ рдореЗрдВ рд╡рд┐рднрд┐рдиреНрди рдпреВрд╡реА рдХреЗ рд╕рд╛рде рдЙрджрд╛рд╣рд░рдгреЛрдВ рдХреА рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд░рддрд╛ рд╣реИред рд╕рдорд╛рди рдмрдирд╛рд╡рдЯ рдХреЛ рдмрдирд╛рдП рд░рдЦрддреЗ рд╣реБрдП vertex рдФрд░ pixel shader рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░рдирд╛ рд╕рдВрднрд╡ рд╣реИред

https://threejs.org/examples/#webgl_sprites_nodes

рдпрд╣ рдПрдХ рд╕рд╛рдЭрд╛ PlaneBufferGeometry рд╕рд╛рде SpriteNodeMaterial рдФрд░ Mesh PlaneBufferGeometry ред рдЗрдВрдЯрд░рдлрд╝реЗрд╕ Sprite рд▓рд┐рдП рдЙрдкрдпреБрдХреНрдд рдирд╣реАрдВ рд╣реИ рд▓реЗрдХрд┐рди рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреЛ рдЕрдзрд┐рдХ рдЕрдиреБрдХреВрд▓ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд╢рд╛рдпрдж рдпрд╣ SpriteMesh рддрдХ рд╡рд┐рдХрд╕рд┐рдд рд╣реЛ рд╕рдХрддрд╛ рд╣реИ

рдпрд╣ рдзрд╛рдЧрд╛ рдореЗрд░реЗ рд▓рд┐рдП рдЯреАрдПрд▓; рдбреАрдЖрд░ рд╣реИред рд▓реЗрдХрд┐рди рдореИрдВрдиреЗ рдЕрднреА рдЗрд╕ рдХреЛрдб рдХреЛ r68 (рдкреБрд░рд╛рдиреА рдкрд░рд┐рдпреЛрдЬрдирд╛, рд╣рд╛рдБ) рдореЗрдВ рдЦреЛрдЬрд╛ рд╣реИ:

        // uv repeat and offset setting priorities
        //  1. color map
        //  2. specular map
        //  3. normal map
        //  4. bump map
        //  5. alpha map

        var uvScaleMap;

        if ( material.map ) {

            uvScaleMap = material.map;

        } else if ( material.specularMap ) {

            uvScaleMap = material.specularMap;

        } else if ( material.normalMap ) {

            uvScaleMap = material.normalMap;

        } else if ( material.bumpMap ) {

            uvScaleMap = material.bumpMap;

        } else if ( material.alphaMap ) {

            uvScaleMap = material.alphaMap;

        }

        if ( uvScaleMap !== undefined ) {

            var offset = uvScaleMap.offset;
            var repeat = uvScaleMap.repeat;

            uniforms.offsetRepeat.value.set( offset.x, offset.y, repeat.x, repeat.y );

        }

рдЗрд╕рд▓рд┐рдП...

рдпрджрд┐ рдЖрдк рдкреБрд╕реНрддрдХрд╛рд▓рдп рдореЗрдВ рдПрдХ рдореМрд▓рд┐рдХ рдкрд░рд┐рд╡рд░реНрддрди рдХрд╛ рдкреНрд░рд╕реНрддрд╛рд╡ рдХрд░рдиреЗ рдЬрд╛ рд░рд╣реЗ рд╣реИрдВ, рдЬреИрд╕реЗ рдХрд┐ рдЖрдкрдиреЗ рдпрд╣рд╛рдБ рдкреНрд░рд╕реНрддрд╛рд╡рд┐рдд рдХрд┐рдпрд╛ рд╣реИ, рддреЛ рдЖрдкрдХреЛ рдЙрд╕ рдкрд░рд┐рд╡рд░реНрддрди рдХреЗ рд▓рд┐рдП рдПрдХ рд╕реНрдкрд╖реНрдЯ рдФрд░ рд╕рдореНрдореЛрд╣рдХ рддрд░реНрдХ рджреЗрдирд╛ рд╣реЛрдЧрд╛ред

рдореИрдВ рдлреИрд▓рд╛рдиреЗ рд╡рд╛рд▓реЗ рдФрд░ рд╕рд╛рдорд╛рдиреНрдп рдорд╛рдирдЪрд┐рддреНрд░реЛрдВ рдкрд░ рдЕрд▓рдЧ-рдЕрд▓рдЧ рджреЛрд╣рд░рд╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣рд╛ рдерд╛ рдФрд░ рдЕрдкрдиреЗ рдмрд╛рд▓реЛрдВ рдХреЛ рдЦреАрдВрдЪ рд░рд╣рд╛ рдерд╛ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдХрд╛рдо рдирд╣реАрдВ рдХрд░ рд░рд╣рд╛ рдерд╛ред рдЪреВрдВрдХрд┐ рдПрдкреАрдЖрдИ рдЗрд╕ рд╕реЗрдЯрд┐рдВрдЧ рдХреЛ рдмрдирд╛рд╡рдЯ рдореЗрдВ рд░рдЦрддрд╛ рд╣реИ, рдореИрдВрдиреЗ рд╕реЛрдЪрд╛ рдХрд┐ рдореИрдВ рдРрд╕рд╛ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВред рддреЛ рд╣рд╛рдБ, рд╕рдореНрдореЛрд╣рдХ рддрд░реНрдХ рдХреЗ рд▓рд┐рдП рдореЗрд░реЗ рдмрд╛рд▓реЛрдВ рдХреЛ рдмрдЪрд╛рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреНрдпрд╛? рдпрд╣ рдЯрд┐рдХрдЯ рдЕрднреА рднреА рдЦреБрд▓рд╛ рд╣реИ, 3js рдореЗрдВ рдЕрднреА рднреА рдмрдирд╛рд╡рдЯ рдкрд░ рдпрд╣ рд╕реЗрдЯрд┐рдВрдЧ рд╣реИ, рдФрд░ рдпрд╣ рдХреЗрд╡рд▓ рдПрдХ рдмрдирд╛рд╡рдЯ рдХреЗ рд▓рд┐рдП рд╕рдореНрдорд╛рдирд┐рдд рд╣реИ = рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдкреНрд░рддрд┐-рд╕рд╛рдордЧреНрд░реА рд╕реЗрдЯрд┐рдВрдЧ рд╣реИред

рдпрджрд┐ рдЖрдк рдЗрд╕реЗ рдЙрд╕ рд╕реНрдерд╛рди рдкрд░ рдирд╣реАрдВ рд▓реЗ рдЬрд╛ рд░рд╣реЗ рд╣реИрдВ рдЬрд╣рд╛рдВ рдпрд╣ рд╕рдВрдмрдВрдзрд┐рдд рд╣реИ, рддреЛ рдХрдо рд╕реЗ рдХрдо рдпрд╣ рдХрд╣реЗрдВ рдХрд┐ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝реЛрдВ рдореЗрдВ рдЗрд╕рдХрд╛ рдХреЛрдИ рдкреНрд░рднрд╛рд╡ рдирд╣реАрдВ рдкрдбрд╝рддрд╛ рд╣реИ?

@рд╕реБрдирд╛рдЧ рдкреАрдЖрд░ рдХреЗ рд▓рд┐рдП:
https://github.com/mrdoob/three.js/pull/11531

рдПрдХ рдореБрджреНрджрд╛ рдЬрд┐рд╕рдореЗрдВ рдореИрдВ рднрд╛рдЧ рдЧрдпрд╛:
https://jsfiddle.net/f0j2v3s8/

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

рдХреЛрдИ рд╡рд┐рдЪрд╛рд░?

@karimbeyrouti рдиреЗ рд▓рд┐рдЦрд╛:

рдЬрдм рдЖрдк рдорд╛рдирдЪрд┐рддреНрд░ рд╕реЗрдЯ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдпрд╣ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдСрдлрд╝рд╕реЗрдЯ/рд░рд┐рдкреАрдЯ рдпреВрдирд┐рдлрд╝реЙрд░реНрдо рдЕрд╕рд╛рдЗрди рдХрд░рддрд╛ рд╣реИ (рдЬреЛ рдЯрдХ рджреВрд░ рд╕рд╛рдордЧреНрд░реА рдореЗрдВ рд╣реЛрддреЗ рд╣реИрдВ)ред рдЖрдк рдЙрдиреНрд╣реЗрдВ рдЖрд╕рд╛рдиреА рд╕реЗ рдЕрд▓рдЧ рд╕реЗ рд╕реЗрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ - рдЗрд╕рд╕реЗ рдЖрдкрдХреЛ рдЕрднреА рдХреЗ рд▓рд┐рдП рдмрдирд╛рд╡рдЯ рдХреЛ рдХреНрд▓реЛрди рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реЛрдЧреАред (r73 рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдирд╛)

рдореЗрд░рд╛ рдорд╛рдирдирд╛ тАЛтАЛрд╣реИ рдХрд┐ рдпрд╣ рдЕрдкреНрд░рдЪрд▓рд┐рдд рд╣реИ рдХреНрдпреЛрдВрдХрд┐ uniforms.offsetRepeat рдХреЛ uniforms.uvTransform (r88) рдореЗрдВ рдмрджрд▓ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред

'рдПрдХрд╛рдзрд┐рдХ рдСрдмреНрдЬреЗрдХреНрдЯ 3 рдбреА рдЙрджрд╛рд╣рд░рдгреЛрдВ рдХреЗ рд╕рд╛рде рдПрдХ рдмрдирд╛рд╡рдЯ рдПрдЯрд▓рд╕ рдХрд╛ рдкреБрди: рдЙрдкрдпреЛрдЧ' рдорд╛рдорд▓реЗ рдХреЗ рд╕рдВрдмрдВрдз рдореЗрдВ, рдореИрдВ рдПрдХ рд╕рд╛рдзрд╛рд░рдг рдЪрд▓рдиреЗ рдХрд╛ рд╕реБрдЭрд╛рд╡ рджреЗрддрд╛ рд╣реВрдВ:

  1. UVs рдбреЗрдЯрд╛ (рдСрдлрд╝рд╕реЗрдЯ, рд░рд┐рдкреАрдЯ) рдХреЛ рдПрдХ рдПрдЯрд▓рд╕ рдЬреЛрдВрд╕ рдСрдмреНрдЬреЗрдХреНрдЯ рдореЗрдВ рд╕реНрдЯреЛрд░ рдХрд░реЗрдВ;
  2. Object3D рдХреА onBeforeRender\onAfterRender рдлрд╝рдВрдХреНрд╢рди рдЬреЛрдбрд╝реА рдХреЛ рд╣реБрдХ рдХрд░реЗрдВ;
  3. рдкрд╣рд▓реЗ рд░реЗрдВрдбрд░ рдХреЙрд▓рдмреИрдХ рдореЗрдВ, рдПрдЯрд▓рд╕ рдЬреЛрдВрд╕ рдСрдмреНрдЬреЗрдХреНрдЯ рд╕реЗ рдпреВрд╡реА рдбреЗрдЯрд╛ рд▓реЛрдб рдХрд░реЗрдВ рдФрд░ рдордЯреЗрд░рд┐рдпрд▓.рдореИрдк рдкрд░ рд╕реЗрдЯ рдХрд░реЗрдВ;
  4. рдХреЙрд▓рдмреИрдХ рд░реЗрдВрдбрд░ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рдЗрд╕реЗ рд╡рд╛рдкрд╕ рд░реАрд╕реЗрдЯ рдХрд░реЗрдВ;

рдЗрд╕рдХрд╛ рдкрд░рд┐рдгрд╛рдо рд╣реЛрдЧрд╛:

  1. рдПрдХрд╛рдзрд┐рдХ рд╡рд╕реНрддреБрдУрдВ рджреНрд╡рд╛рд░рд╛ рд╕рд╛рдЭрд╛ рдХреЗрд╡рд▓ рдПрдХ рдмрдирд╛рд╡рдЯ рдФрд░ рдПрдХ рд╕рд╛рдордЧреНрд░реА, рдХрд┐рд╕реА рдХреНрд▓реЛрди рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ рдФрд░ info.memory.textures рдХрд╛рдЙрдВрдЯрд░ рдореЗрдВ рд╡реГрджреНрдзрд┐ рдирд╣реАрдВ рд╣реЛрдЧреА;
  2. рд▓реЗрдХрд┐рди рдлрд┐рд░ рднреА рдЕрдиреНрдп рд╕рднреА рдорд╛рдирдЪрд┐рддреНрд░реЛрдВ (рд╕рд╛рдорд╛рдиреНрдп, рдПрдУ, рд╡рд┐рд╕реНрдерд╛рдкрди...) рдХреЛ рдЙрд╕реА рдпреВрд╡реА рдЕрдиреБрд╡рд╛рдж рдХрд╛ рдкрд╛рд▓рди рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП;
рдХреНрдпрд╛ рдпрд╣ рдкреГрд╖реНрда рдЙрдкрдпреЛрдЧреА рдерд╛?
0 / 5 - 0 рд░реЗрдЯрд┐рдВрдЧреНрд╕

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

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

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

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

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

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