Three.js: рдХреНрдпреВрдмрдЯреЗрдХреНрд╕реНрдЪрд░ рдУрд░рд┐рдПрдВрдЯреЗрд╢рди

рдХреЛ рдирд┐рд░реНрдорд┐рдд 25 рдЕрдкреНрд░реИрд▓ 2019  ┬╖  31рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: mrdoob/three.js

рдореЗрд░реЗ рдРрдк рдореЗрдВ, рдореИрдВ рдХреНрдпреВрдмрдЯреЗрдХреНрдЪрд░ рдХреЛ рдШреБрдорд╛рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рдЬреЛ рджреГрд╢реНрдп рдкреГрд╖реНрдарднреВрдорд┐ рдФрд░ рдкрд░реНрдпрд╛рд╡рд░рдг рдорд╛рдирдЪрд┐рддреНрд░ рдкреНрд░рддрд┐рдмрд┐рдВрдмреЛрдВ рдХреЛ рд▓рдВрдмрд╡рдд рд╡рд╛рдИ-рдЕрдХреНрд╖ рдХреЗ рд╕рд╛рде 180 рдбрд┐рдЧреНрд░реА рддрдХ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддрд╛ рд╣реИред
рдореЗрд░рд╛ рд░реЛрдЯреЗрд╢рди рдкреГрд╖реНрдарднреВрдорд┐ рдХреНрд╖реЗрддреНрд░реЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ VRML рдФрд░ X3D рд╡рд┐рдирд┐рд░реНрджреЗрд╢реЛрдВ рджреНрд╡рд╛рд░рд╛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред

рдореИрдВрдиреЗ mapping , flipY рдФрд░ rotation рдмрдирд╛рд╡рдЯ рдлрд╝реАрд▓реНрдб рдЬреИрд╕реЗ рдХрдИ рдорд╛рдкрджрдВрдбреЛрдВ рдХреЛ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд┐рдпрд╛ред рд╣рд╛рд▓рд╛рдВрдХрд┐ рдореБрдЭреЗ рдРрд╕рд╛ рдХрд░рдиреЗ рдХрд╛ рдХреЛрдИ рдЕрдЪреНрдЫрд╛ рддрд░реАрдХрд╛ рдирд╣реАрдВ рдорд┐рд▓рд╛ред

  • рдХреНрдпрд╛ рдРрд╕рд╛ рдХрд░рдиреЗ рдХрд╛ рдХреЛрдИ рд╕реНрдкрд╖реНрдЯ рддрд░реАрдХрд╛ рд╣реИ рдЬрд┐рд╕рд╕реЗ рдореИрдВ рдЪреВрдХ рдЧрдпрд╛?
  • рдЗрд╕реЗ three.js рдореЗрдВ рджреЗрдЦрдиреЗ рдХрд╛ рдХреЛрдИ рдореМрдХрд╛?
  • рдЕрдЧрд░ рдореИрдВ рдЗрд╕реЗ рд▓рд╛рдЧреВ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ, рддреЛ рдЖрдк рдХреМрди рд╕реЗ рдкреИрд░рд╛рдореАрдЯрд░ рджреЗрдЦрдирд╛ рдЪрд╛рд╣реЗрдВрдЧреЗ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП Texture.flipX рдФрд░ CubeTexture.flipZ )? рдХреНрдпрд╛ рдЖрдк рдЗрд╕ рд╕реБрд╡рд┐рдзрд╛ рдореЗрдВ рд░реБрдЪрд┐ рд▓реЗрдВрдЧреЗ?

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

рдЖрдкрдХрд╛ рдорддрд▓рдм scene.background рдШреБрдорд╛рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдирд╛ рд╣реИ? рдпрджрд┐ рд╣рд╛рдВ ... рд╣рд╛рдВ, рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рджрд┐рд▓рдЪрд╕реНрдкреА рд╣реИред

рд╣рд╛рд▓рд╛рдВрдХрд┐ рд╣рдореЗрдВ рд╢рд╛рдпрдж рдПрдХ рдирдП рдПрдкреАрдЖрдИ рдХреА рдЬрд░реВрд░рдд рд╣реИ ...

scene.background = new THREE.Background( cubeTexture );`
scene.background.rotation.y = Math.PI / 2;

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

рдЖрдкрдХрд╛ рдорддрд▓рдм scene.background рдШреБрдорд╛рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдирд╛ рд╣реИ? рдпрджрд┐ рд╣рд╛рдВ ... рд╣рд╛рдВ, рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рджрд┐рд▓рдЪрд╕реНрдкреА рд╣реИред

рд╣рд╛рд▓рд╛рдВрдХрд┐ рд╣рдореЗрдВ рд╢рд╛рдпрдж рдПрдХ рдирдП рдПрдкреАрдЖрдИ рдХреА рдЬрд░реВрд░рдд рд╣реИ ...

scene.background = new THREE.Background( cubeTexture );`
scene.background.rotation.y = Math.PI / 2;

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

@fabienrohrer рдХреЛрд╢рд┐рд╢ рдХрд░реЛ

scene.rotation.y = Math.PI;

рдпрджрд┐ рд╡рд╣ рдХрд╛рдо рдирд╣реАрдВ рдХрд░ рд░рд╣рд╛ рд╣реИ, рддреЛ рдЖрдк рдЬреЛ рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдЙрд╕реЗ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреГрдкрдпрд╛ рдПрдХ рдЬреАрд╡рдВрдд рдЙрджрд╛рд╣рд░рдг рдкреНрд░рджрд╛рди рдХрд░реЗрдВред

рдУрд╣, рдпрд╣ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ? рд╣рд╛рд▓рд╛рдВрдХрд┐ рдХреИрдорд░рд╛ рджреГрд╢реНрдп рдХрд╛ рдмрдЪреНрдЪрд╛ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП?

рдХреИрдорд░рд╛ рджреГрд╢реНрдп рдХрд╛ рдПрдХ рдмрдЪреНрдЪрд╛ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рд╣рд╛рд▓рд╛рдВрдХрд┐?

рдореБрдЭреЗ рдирд╣реАрдВ рд▓рдЧрддрд╛ рдХрд┐ рдпрд╣ рдорд╛рдпрдиреЗ рд░рдЦрддрд╛ рд╣реИред

@mrdoob рдпрд╣ рд╡рд╣реА рд╣реИ рдЬреЛ рдореБрдЭреЗ рднреА рдЪрд╛рд╣рд┐рдП :-)

@рд╡реЗрд╕реНрдЯрд▓реИрдВрдЧрд▓реА :

рд╕рдордЧреНрд░ рджреГрд╢реНрдп рдХреЛ рдШреБрдорд╛рдирд╛ рдЕрдзрд┐рдХ рд╣реИ рдФрд░ рдореЗрд░реЗ рдРрдк рдореЗрдВ рдХрдИ рджреБрд╖реНрдкреНрд░рднрд╛рд╡ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВред

рдореИрдВ рдХреЗрд╡рд▓ рдкреГрд╖реНрдарднреВрдорд┐ рдХреЛ рдШреБрдорд╛рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ, рдФрд░ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ, рдкрд░реНрдпрд╛рд╡рд░рдг рдорд╛рдирдЪрд┐рддреНрд░реЛрдВ рдХреЛ рдЙрд╕реА рддрд░рд╣ рдХрд╛рдо рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред

рдПрдХ рд▓рд╛рдЗрд╡ рдбреЗрдореЛ рдХрд░рдирд╛ рд╕рдВрднрд╡ рдирд╣реАрдВ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдПрдкреАрдЖрдИ рдЧрд╛рдпрдм рд╣реИред рдкреГрд╖реНрдарднреВрдорд┐ рдХреНрдпреВрдмрдореИрдк (рдЬреИрд╕реЗ https://threejs.org/examples/#webgl_materials_cubemap) рд╡рд╛рд▓реЗ рдХрд┐рд╕реА рднреА рдЙрджрд╛рд╣рд░рдг рдХреЛ рд▓реЗрдирд╛ рдФрд░ y-рдЕрдХреНрд╖ рдХреЗ рдЪрд╛рд░реЛрдВ рдУрд░ рдХреЗрд╡рд▓ рдкреГрд╖реНрдарднреВрдорд┐ рдХреЛ рдШреБрдорд╛рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдирд╛ рдПрдХ рдмрд╛рдд рд╣реИред рдпрд╛ рдЕрдзрд┐рдХ рдЖрдо рддреМрд░ рдкрд░, рдкреГрд╖реНрдарднреВрдорд┐ рдореЗрдВ рдХрд┐рд╕реА рднреА рд░реЛрдЯреЗрд╢рди рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдПред

рдХрд┐рд╕реА рднреА рдХреНрдпреВрдмрдореИрдк рдореЗрдВ рдХрд╕реНрдЯрдо рд░реЛрдЯреЗрд╢рди рдореИрдЯреНрд░рд┐рдХреНрд╕/рдХреНрд╡рд╛рдЯрд░рдирд┐рдпрди рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдиреЗ рдХреЗ рдХрд╛рд░рдг рдореЗрд░реЗ рд▓рд┐рдП рд╕рдмрд╕реЗ рд╕рд╛рдорд╛рдиреНрдп рд╕рдорд╛рдзрд╛рди рдкреНрд░рддреАрдд рд╣реЛрддрд╛ рд╣реИред

three.js рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рд╛рд╡рдзрд╛рди рд╣реИ рдХрд┐ рднреМрддрд┐рдХ рдкреНрд░рддрд┐рдмрд┐рдВрдм рд╕рд╛рдордЧреНрд░реА envMap рдЕрдиреБрд░реВрдк рд╣реИрдВ, рдЬрд┐рд╕реЗ рд╡рд┐рд╢реНрд╡ рдЕрдВрддрд░рд┐рдХреНрд╖ рд╕рдордиреНрд╡рдп рдкреНрд░рдгрд╛рд▓реА рдореЗрдВ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЛ рджреГрд╢реНрдп рдкреГрд╖реНрдарднреВрдорд┐ рдХреЛ рдШреБрдорд╛рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдиреЗ рд╕реЗ рдПрдХ рдРрд╕реА рдкреГрд╖реНрдарднреВрдорд┐ рдмрди рдЬрд╛рдПрдЧреА рдЬреЛ рднреМрддрд┐рдХ рдкреНрд░рддрд┐рдмрд┐рдВрдмреЛрдВ рдХреЗ рд╕рд╛рде рдЕрд╕рдВрдЧрдд рд╣реИред

рдЖрдк рдЕрдкрдиреЗ рдРрдк рдореЗрдВ рд╕рд╣реА рд╡рд░реНрд▓реНрдб-рд╕реНрдкреЗрд╕ рдХреНрдпреВрдм рдореИрдк рдХреНрдпреЛрдВ рдирд╣реАрдВ рдмрдирд╛рддреЗ?

рдХреИрдорд░рд╛ рджреГрд╢реНрдп рдХрд╛ рдПрдХ рдмрдЪреНрдЪрд╛ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рд╣рд╛рд▓рд╛рдВрдХрд┐?

рдореБрдЭреЗ рдирд╣реАрдВ рд▓рдЧрддрд╛ рдХрд┐ рдпрд╣ рдорд╛рдпрдиреЗ рд░рдЦрддрд╛ рд╣реИред

рдореИрдВрдиреЗ webgl_materials_standard рдореЗрдВ рдХрдВрд╕реЛрд▓ рдореЗрдВ scene.rotation.y ++ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА рдФрд░ рдмрдВрджреВрдХ рдШреВрдорддреА рд╣реИред рдлрд┐рд░ рдореИрдВрдиреЗ scene.add( camera ) рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА рдФрд░ рдлрд┐рд░ рдЕрдЧрд░ рдореИрдВ scene.rotation.y ++ рдХрд░рддрд╛ рд╣реВрдВ рддреЛ рдпрд╣ рд╡рд╣реА рдХрд░рддрд╛ рд╣реИ рдЬреЛ рд╣рдо рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдлрд┐рд░ рдХреИрдорд░рд╛ рдирд┐рдпрдВрддреНрд░рдг рдЧрдбрд╝рдмрдбрд╝ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ

рдпрджрд┐ рд╣рдо THREE.Background рдСрдмреНрдЬреЗрдХреНрдЯ рдкреЗрд╢ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рд╣рдо рдЗрд╕реЗ рд╕рдВрднрд╛рд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдкреАрдЖрдИ рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВ, рд╕рд╛рде рд╣реА рд░реЗрдВрдбрд░рд░ рдореЗрдВ рд╣рдо рдЗрд╕ рд╡рд┐рдЪрд╛рд░ рдХреЛ рднреА рдкреЗрд╢ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:

var envMap = material.envMap;
if ( scene.background && scene.background.isBackground && envMap === null ) {
    envMap = scene.background.texture;
}

рдореИрдВрдиреЗ рдХрд╣рд╛

рджреГрд╢реНрдп рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВ.рд░реЛрдЯреЗрд╢рди.y = Math.PI; рдЕрдЧрд░ рд╡рд╣ рдХрд╛рдо рдирд╣реАрдВ рдХрд░ рд░рд╣рд╛ рд╣реИ,...

рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рдпрд╣ рдХрд╛рдо рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ рд╣реИред :-)

рдпрд╣ рдЙрдкрдпреЛрдЧ-рдорд╛рдорд▓реЗ рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИред рдореИрдВрдиреЗ OrbitControls рд╕рд╛рде рдкреНрд░рдпрд╛рд╕ рдХрд┐рдпрд╛ рдФрд░ рдпрд╣ рдареАрдХ рдХрд╛рдо рдХрд┐рдпрд╛ред

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

рдЖрдкрдХрд╛ рдорддрд▓рдм рджреГрд╢реНрдп рдХреЛ рдШреБрдорд╛рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдирд╛ рд╣реИредрдкреГрд╖реНрдарднреВрдорд┐? рдпрджрд┐ рд╣рд╛рдВ ... рд╣рд╛рдВ, рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рджрд┐рд▓рдЪрд╕реНрдкреА рд╣реИред

рдпрд╣ рдмрдирд╛рд╡рдЯ рд╕реНрддрд░ рдкрд░ рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдФрд░ рдЕрдзрд┐рдХ рд╕рдордЭ рдореЗрдВ рдЖрддрд╛ рд╣реИ, рдЕрдиреНрдпрдерд╛ рдХреЛрдИ рднреА рдЖрдИрдмреАрдПрд▓ рдкреНрд░рдХрд╛рд╢ рдкреГрд╖реНрдарднреВрдорд┐ рд╕реЗ рдореЗрд▓ рдирд╣реАрдВ рдЦрд╛рдПрдЧрд╛, рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИред

рд╣рдо рд╕рд╛рдорд╛рдиреНрдп рдмрдирд╛рд╡рдЯ рдХреЗ рд░реЛрдЯреЗрд╢рди рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддреЗ рд╣реИрдВ, рдХреНрдпрд╛ рдХреЛрдИ рдХрд╛рд░рдг рд╣реИ рдХрд┐ рд╣рдо рдШрди рдмрдирд╛рд╡рдЯ рдХреЗ рд▓рд┐рдП рдРрд╕рд╛ рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣реЗрдВрдЧреЗ? рдХреНрдпрд╛ рдЗрд╕реЗ рд▓рд╛рдЧреВ рдХрд░рдирд╛ рдмрд╣реБрдд рдЬрдЯрд┐рд▓ рд╣реИ?

рдЖрдк рдЕрдкрдиреЗ рдРрдк рдореЗрдВ рд╕рд╣реА рд╡рд░реНрд▓реНрдб-рд╕реНрдкреЗрд╕ рдХреНрдпреВрдм рдореИрдк рдХреНрдпреЛрдВ рдирд╣реАрдВ рдмрдирд╛рддреЗ?

рдпрд╣ рдмрд╣реБрдд рд╕рдордп рд▓реЗрдиреЗ рд╡рд╛рд▓рд╛ рд╣реИред рдореИрдВ рдкрд┐рдЫрд▓реЗ рдХреБрдЫ рджрд┐рдиреЛрдВ рдореЗрдВ рдХреНрдпреВрдм рдореИрдк рдмрдирд╛рдиреЗ рдкрд░ рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реВрдВ, рдФрд░ рдлрд┐рд░ рдХреНрдпреВрдм рдореИрдк рдХреЛ рдлрд┐рд░ рд╕реЗ рд░реЗрдВрдбрд░ рдХрд░рдиреЗ рдореЗрдВ рдореБрдЭреЗ рдкреНрд░рддреНрдпреЗрдХ рдмрджрд▓рд╛рд╡ рдХреЗ рд▓рд┐рдП рд▓рдЧрднрдЧ 15-20 рдорд┐рдирдЯ рдХрд╛ рд╕рдордп рд▓рдЧрддрд╛ рд╣реИред

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

рдореЗрд░реА рдЪрд┐рдВрддрд╛ рдкреНрд░рджрд░реНрд╢рди рдХреЛ рд▓реЗрдХрд░ рднреА рд╣реИред рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдореИрдВрдиреЗ рдКрдкрд░ рдФрд░ рдиреАрдЪреЗ рдХреА рдмрдирд╛рд╡рдЯ рдХреЛ рдШреБрдорд╛рдиреЗ рдФрд░ рджреВрд╕рд░реЗ рдХреЛ рд╕реНрд╡реИрдк рдХрд░рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдПрдХ рд╣реИрдХ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ред JS рдореЗрдВ 1024x1024 рдмрдирд╛рд╡рдЯ рдХреЛ рдШреБрдорд╛рдиреЗ рдореЗрдВ рд▓рдЧрднрдЧ 10ms рд▓рдЧрддреЗ рд╣реИрдВред

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

рдпрд╣ рдкрд░рд┐рдЪрд┐рдд рд▓рдЧрддрд╛ рд╣реИ #11103

рдЕрдЧрд░ рдореИрдВ CubeMap.rotation = matrix3 , рддреЛ рдХреНрдпрд╛ рдЖрдк r105 рдореЗрдВ рд╡рд┐рд▓рдп рдХрд░ рджреЗрддреЗ?

рдореЗрд░реА рдЪрд┐рдВрддрд╛ рдкреНрд░рджрд░реНрд╢рди рдХреЛ рд▓реЗрдХрд░ рднреА рд╣реИред рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдореИрдВрдиреЗ рдКрдкрд░ рдФрд░ рдиреАрдЪреЗ рдХреА рдмрдирд╛рд╡рдЯ рдХреЛ рдШреБрдорд╛рдиреЗ рдФрд░ рджреВрд╕рд░реЗ рдХреЛ рд╕реНрд╡реИрдк рдХрд░рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдПрдХ рд╣реИрдХ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ред JS рдореЗрдВ 1024x1024 рдмрдирд╛рд╡рдЯ рдХреЛ рдШреБрдорд╛рдиреЗ рдореЗрдВ рд▓рдЧрднрдЧ 10ms рд▓рдЧрддреЗ рд╣реИрдВред

рдФрд░ рдЖрдк рдЗрд╕реЗ рдЕрдкрдиреЗ рдРрдк рдореЗрдВ рдХрд┐рддрдиреА рдмрд╛рд░ рдХрд░ рд░рд╣реЗ рд╣реИрдВ?

@WestLangley рдореИрдВ рдЖрдкрдХреЛ рдпрд╣рд╛рдБ рдПрдХ рд╡рд┐рд╕реНрддреГрдд рдЙрддреНрддрд░ рджреЗрддрд╛ рд╣реВрдБ: https://github.com/mrdoob/three.js/pull/16507#discussion_r286337864

рдФрд░ рдЖрдк рдЗрд╕реЗ рдЕрдкрдиреЗ рдРрдк рдореЗрдВ рдХрд┐рддрдиреА рдмрд╛рд░ рдХрд░ рд░рд╣реЗ рд╣реИрдВ?

рдмрд╣реБрдд рдЬреНрдпрд╛рджрд╛ рдирд╣реАрдВред рдПрдХ рдмрд╛рд░ рдкреНрд░рддрд┐ рдЧреНрд░рд╛рд╣рдХ рд▓реЛрдб рд╣реЛрдиреЗ рдкрд░, рдФрд░ рдПрдХ рдмрд╛рд░ рд╣рд░ рдмрд╛рд░ рдкреГрд╖реНрдарднреВрдорд┐ рдмрджрд▓реА рдЬрд╛рддреА рд╣реИ (рдмрд╣реБрдд рджреБрд░реНрд▓рдн рдорд╛рдорд▓рд╛)ред рдПрдХ DEFINE рднреА рдХрд╛рдо рдХрд░реЗрдЧрд╛ред

рдореЗрд░реА рдЪрд┐рдВрддрд╛ рдкреНрд░рджрд░реНрд╢рди рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рднреА рд╣реИ ... рдЗрд╕рдореЗрдВ рд▓рдЧрднрдЧ 10ms рд▓рдЧрддреЗ рд╣реИрдВред

рдФрд░ рдЖрдк рдЗрд╕реЗ рдЕрдкрдиреЗ рдРрдк рдореЗрдВ рдХрд┐рддрдиреА рдмрд╛рд░ рдХрд░ рд░рд╣реЗ рд╣реИрдВ?

рдмрд╣реБрдд рдЬреНрдпрд╛рджрд╛ рдирд╣реАрдВред рдПрдХ рдмрд╛рд░ рдкреНрд░рддрд┐ рдЧреНрд░рд╛рд╣рдХ рд▓реЛрдб рд╣реЛрдиреЗ рдкрд░, рдФрд░ рдПрдХ рдмрд╛рд░ рд╣рд░ рдмрд╛рд░ рдкреГрд╖реНрдарднреВрдорд┐ рдмрджрд▓реА рдЬрд╛рддреА рд╣реИ (рдмрд╣реБрдд рджреБрд░реНрд▓рдн рдорд╛рдорд▓рд╛)ред

рдХреНрд╖рдорд╛ рдХрд░реЗрдВ, рдореИрдВ рдЙрд╕рдХреЗ рддрд░реНрдХ рдХрд╛ рдкрд╛рд▓рди рдирд╣реАрдВ рдХрд░ рд░рд╣рд╛ рд╣реВрдВред

рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ, @WestLangley рд░рдирдЯрд╛рдЗрдо рдУрд╡рд░рд╣реЗрдб (рдПрдХ рдкреВрд░рдХ mat3 рдЧреБрдгрди) рдХреЗ рдХрд╛рд░рдг CubeTexture.rotation рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдореЗрд░реЗ рд╕рдВрд╢реЛрдзрди рдХреЛ рдорд░реНрдЬ рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ред рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рдореИрдВ рддреАрдиjs рдореЗрдВ рдЗрд╕реЗ рд╕рдлрд╛рдИ рд╕реЗ рд╣рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╡рд┐рдЪрд╛рд░реЛрдВ рд╕реЗ рдмрд╛рд╣рд░ рд╣реЛ рд░рд╣рд╛ рд╣реВрдВред
рдЕрдЧрд░ threejs рдпреЛрдЧрджрд╛рдирдХрд░реНрддрд╛ рдЗрд╕реЗ рд╣рд▓ рдирд╣реАрдВ рдХрд░реЗрдВрдЧреЗ, рддреЛ рдХреГрдкрдпрд╛ рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рдмрдВрдж рдХрд░реЗрдВред

рдореИрдВ рдЗрд╕ рд╕реБрд╡рд┐рдзрд╛ рдХреЗ рд▓рд╛рдЧреВ рд╣реЛрдиреЗ рдХреА рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░ рд░рд╣рд╛ рд╣реВрдВред

@FishOrBear рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ, threejs рдЕрдиреБрд░рдХреНрд╖рдХреЛрдВ рдиреЗ рдЗрд╕реЗ рд▓рд╛рдЧреВ рдирд╣реАрдВ рдХрд░рдиреЗ рдХрд╛ рдирд┐рд░реНрдгрдп рд▓рд┐рдпрд╛ред рдпрджрд┐ рдЖрдк рдЗрд╕реЗ рдЕрдкрдиреЗ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдореЗрдВ рд░рдЦрдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рдЖрдк рдЗрд╕ рдЕрдирдорд░реНрдЬ рдХрд┐рдП рдЧрдП рдкреИрдЪ рдХреЛ рдПрдХ рдХрд╛рдВрдЯреЗ рдореЗрдВ рд▓рдЧрд╛ рд╕рдХрддреЗ рд╣реИрдВ:

https://github.com/mrdoob/three.js/pull/16507

@mrdoob рд╢рд╛рдпрдж рд╣рдо #

рдореИрдВ рдСрдЯреЛрдХреИрдб рдХреЗ рд╕рдорд╛рди рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдереНрд░реАрдЬреЗрдПрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ, рдЗрд╕рд▓рд┐рдП рд╣рдо рдПрдХ рд╡рд┐рдорд╛рди рдХреЗ рд░реВрдк рдореЗрдВ рдмреИрдардиреЗ рдХреЗ рд▓рд┐рдП xy рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред

рд╡рд░реНрддрдорд╛рди рдХреНрдпреВрдмрдЯреЗрдХреНрд╕реНрдЪрд░ рд╣рдорд╛рд░реЗ рд╕рд╛рде рдереЛрдбрд╝рд╛ рд╕рдВрдШрд░реНрд╖ рдХрд░рддрд╛ рд╣реИред

BTW: Babylon.js рдХреЗ рд╕рд╛рде, рд╕реНрдХрд╛рдИрдмреЙрдХреНрд╕ рдХреЛ y-рдЕрдХреНрд╖ рдХреЗ рдЪрд╛рд░реЛрдВ рдУрд░ рдШреБрдорд╛рдирд╛ рдХрдо рд╕реЗ рдХрдо рд╕рдВрднрд╡ рд╣реИ:

https://www.babylonjs-playground.com/#UU7RQ #447

рдЗрдВрдЬрди рдлреНрд░реИрдЧрдореЗрдВрдЯ рд╢реЗрдбрд░ рдореЗрдВ рдкрд░рд╛рд╡рд░реНрддрди рд╡реЗрдХреНрдЯрд░ рдХреЛ рдмрджрд▓рдХрд░ рдЗрд╕рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИред рддреЛ рдареАрдХ рд╡рд╣реА рджреГрд╖реНрдЯрд┐рдХреЛрдг рдЬрд┐рд╕реЗ #16507 рдореЗрдВ рд╕реНрд╡реАрдХрд╛рд░ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдмреЗрдмреАрд▓реЛрди.рдЬреЗрдПрд╕ рдлреНрд░реИрдЧрдореЗрдВрдЯ рд╢реЗрдбрд░ рд╕реЗ рдХреЛрдб:

https://github.com/BabylonJS/Babylon.js/blob/1c4627141f83c08fe4a7e30e2621c916b4e6c9c9/src/Shaders/ShadersInclude/reflectionFunction.fx#L114 -L117

@mrdoob рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╣рдореЗрдВ рдЗрд╕ рд╕реБрд╡рд┐рдзрд╛ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред рдордВрдЪ рдореЗрдВ рдПрдХ рдФрд░ рдЕрдиреБрд░реЛрдз рд╣реИ:

https://discourse.threejs.org/t/rotate-a-scenes-background-skybox-texture/12199

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

рдореЗрд░реЗ рдРрдк рдореЗрдВ рдЕрднреА рднреА рд╡рд╣реА рд╕рдорд╕реНрдпрд╛ рд╣реИ, рдФрд░ рдЗрд╕реЗ рд╣рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╣реИрдХ рдмрджрд╕реВрд░рдд рдФрд░ рдЗрддрдирд╛ рдорд╣рдВрдЧрд╛ рд╣реИ ... рдореИрдВ рднреА рдЗрд╕ рд╕реБрдзрд╛рд░ рдХреЛ рд╕реНрд╡реАрдХрд╛рд░ рдХрд░рдиреЗ рдХреА рдЕрдиреБрд╢рдВрд╕рд╛ рдХрд░рддрд╛ рд╣реВрдВред

рдореИрдВ рднреА рдЗрд╕ рд╕реБрд╡рд┐рдзрд╛ рдХреЛ рдЬреЛрдбрд╝рд╛ рджреЗрдЦрдирд╛ рдкрд╕рдВрдж рдХрд░реВрдВрдЧрд╛ред

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

рдпрд╣рд╛рдВ рд╡рд╣реА, рдореЗрд░реА рдкреГрд╖реНрдарднреВрдорд┐ рдкреНрд░рддрд┐рдкрд╛рджрди рдХреЛ рдлрд┐рд░ рд╕реЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рд┐рдд рдХрд░рдиреЗ рдХреЗ рдмрдЬрд╛рдп рдЗрд╕ рд╕реБрд╡рд┐рдзрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддрд╛ рд╣реИ :)

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

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

рдПрдХ рддрд░реАрдХрд╛ рдпрд╣ рд╣реИ рдХрд┐ рдореИрдВрдиреЗ рдпрд╣ рдХрд┐рдпрд╛ рд╣реИ рдХрд┐ рд░реЛрдЯреЗрд╢рди рдХреЛ рдПрдХ рдЪрд░ рдХреЗ рд░реВрдк рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рдирд╛ рд╣реИ, рдЗрд╕реЗ рдкреНрд░рддрд┐рдкрд╛рджрди рд╕реЗ рдареАрдХ рдкрд╣рд▓реЗ рджреГрд╢реНрдп рдкрд░ рд▓рд╛рдЧреВ рдХрд░рдирд╛ рд╣реИ, рдФрд░ рдлрд┐рд░ рджреГрд╢реНрдпреЛрдВ рдХреЗ рд░реЛрдЯреЗрд╢рди рдХреЛ рдкрд╣рдЪрд╛рди рдХреНрд╡рд╛рдЯ рдкрд░ рд░реАрд╕реЗрдЯ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж рд░реАрд╕реЗрдЯ рдХрд░рдирд╛ рд╣реИред

рдпрд╣ рдореЗрд░реЗ рд╕рднреА рджреГрд╢реНрдп рд╡рд╕реНрддреБрдУрдВ рдХреЗ рд╡рд┐рд╢реНрд╡ рдореИрдЯреНрд░рд┐рд╕реЗрд╕ рдореЗрдВ рджреЛ рдЕрдирд╛рд╡рд╢реНрдпрдХ рдЕрдкрдбреЗрдЯ рдХрд╛ рдХрд╛рд░рдг рдмрдирддрд╛ рд╣реИред рдЗрд╕рдХрд╛ рдорддрд▓рдм рдпрд╣ рднреА рд╣реИ рдХрд┐ рдореИрдВ onBeforeRender рдореЗрдВ рдХреЛрдИ рднреА рд╕реНрдерд┐рддрд┐ рдЕрдкрдбреЗрдЯ рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ред рд▓реЗрдХрд┐рди рдпрд╣ рджреГрд╢реНрдп рдХреЛ рд╕рд╛рдорд╛рдиреНрдп рд╕реНрдерд┐рддрд┐ рдореЗрдВ рд░рдЦрддрд╛ рд╣реИ рдЕрдиреНрдпрдерд╛ред

рдмреАрдЯреАрдбрдмреНрд▓реНрдпреВ (рдЪреВрдВрдХрд┐ рдХрд┐рд╕реА рдиреЗ рдЗрд╕рдХрд╛ рдЙрд▓реНрд▓реЗрдЦ рдирд╣реАрдВ рдХрд┐рдпрд╛ рд╣реИ), рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ "рдХреНрд▓рд╛рд╕рд┐рдХ" рд╕реНрдХрд╛рдИрдмреЙрдХреНрд╕ рдмрдирд╛рдирд╛ рд╕рдВрднрд╡ рд╣реИ рдЬреЛ 6 рд╕рд╛рдордЧреНрд░рд┐рдпреЛрдВ рдХреА рдПрдХ рд╕рд░рдгреА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдШреВрдорддрд╛ рд╣реИред

рдХреБрдЫ рдЗрд╕ рддрд░рд╣ :

const urls = [
  '/assets/skybox/right.png',
  '/assets/skybox/left.png',
  '/assets/skybox/top.png',
  '/assets/skybox/bottom.png',
  '/assets/skybox/front.png',
  '/assets/skybox/back.png',
];

const materials = urls.map((url) => {
  const texture = new THREE.TextureLoader().load(url);

  return new THREE.MeshBasicMaterial({
    map: texture,
    side: THREE.BackSide,
    fog: false,
    depthWrite: false,
  });
});

const skybox = new THREE.Mesh( new THREE.BoxBufferGeometry(10000, 10000, 10000), materials );
scene.add(skybox);

skybox.rotation.y = Math.PI / 2;

рдЬреИрд╕рд╛ рдХрд┐ рдпрд╣рд╛рдВ рджрд┐рдЦрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ: https://woodenraft.games/demos/skybox-rotation-threejs.html

@wmcmurray рдЖрдкрдХреЛ рдЗрд╕

рдХреНрдпрд╛ рд╣рдореЗрдВ рдЙрд╕рдХреЗ рд▓рд┐рдП рдкреАрдЖрд░ рдлрд┐рд░ рд╕реЗ рдЦреЛрд▓рдирд╛ рдЪрд╛рд╣рд┐рдП? рджреЛ рдЙрдкрдпреЛрдЧ рдХреЗ рдорд╛рдорд▓реЗ рд╣реИрдВ рдФрд░ рдпрджрд┐ рд╣рдо рдкреНрд░рджрд░реНрд╢рди рдХреЛ рдкреНрд░рднрд╛рд╡рд┐рдд рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рддреЛ рд╣рдо рдПрдХ рд╢реЗрдбрд░ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:

  • рдХреЗрд╕ 1 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ: рдкрд░реНрдпрд╛рд╡рд░рдг рдПрдХ рдмрд╛рд░ рдкреВрд░реНрд╡-рдЧрдгрдирд╛ рдХреА рдЬрд╛рддреА рд╣реИ рдФрд░ рдЗрд╕реЗ рд╢реЗрдбрд░ рдореЗрдВ рдШреБрдорд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдПред рдпрд╣ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рджреНрд╡рд╛рд░рд╛ рдпрд╛ рддреЛ CPU рдкрд░, рдпрд╛ рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ GPU рдкрд░ рднреА рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдпрджрд┐ рд╡рд╣ рдЪрд╛рд╣рддрд╛ рд╣реИ
  • рдХреЗрд╕ 2 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ: рдПрдХ рджрд░реНрд╢рдХ рдкрд░ рдХрд╛рдо рдХрд░рддреЗ рд╕рдордп, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдорд╛рдЙрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╕рдордп рдореЗрдВ рдкреГрд╖реНрдарднреВрдорд┐ рдХреЛ рдШреБрдорд╛рдирд╛ рдХрд╛рдлреА рд╕рд╛рдорд╛рдиреНрдп рд╣реИред

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

renderer.dynamicBackground = true;

рдФрд░ рддрджрдиреБрд╕рд╛рд░ рдкреГрд╖реНрдарднреВрдорд┐ рд╢реЗрдбрд░ рд╕рдВрдХрд▓рд┐рдд рдХрд░реЗрдВ?

рдЗрд╕ рдмреАрдЪ рдореЗрдВ

рдЬреИрд╕рд╛ рдХрд┐ @wmcmurray рдФрд░ @capnmidnight рдиреЗ рдмрддрд╛рдпрд╛, рдЖрдк рдореВрд▓ рд░реВрдк рд╕реЗ рдЕрдкрдиреЗ рдмреИрдХрдЧреНрд░рд╛рдЙрдВрдб рд░реЗрдВрдбрд░рд┐рдВрдЧ рдХреЛ рдлрд┐рд░ рд╕реЗ рдХреЛрдб рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдпрд╣ рдЙрддрдирд╛ рдореБрд╢реНрдХрд┐рд▓ рдирд╣реАрдВ рд╣реИред рдмрд╕ рджреЗрдЦрдиреЗ рдХреЗ рд╡рд┐рдорд╛рди (рдирд┐рдХрдЯ рдФрд░ рджреВрд░ рдХреЗ рдореВрд▓реНрдпреЛрдВ) рдХреЗ рд╕рд╛рде рдЕрддрд┐рд░рд┐рдХреНрдд рд╕рд╛рд╡рдзрд╛рди рд░рд╣реЗрдВред

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

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

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

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

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

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

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

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