Three.js: рдЪрдпрдирд╛рддреНрдордХ рдкреНрд░рдХрд╛рд╢ рд╡реНрдпрд╡рд╕реНрдерд╛

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

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

рдореБрдЭреЗ рд╡рд┐рднрд┐рдиреНрди рдХрдорд░реЛрдВ рдХреЗ рд▓рд┐рдП рдЪрдпрдирд╛рддреНрдордХ рдкреНрд░рдХрд╛рд╢ рд╡реНрдпрд╡рд╕реНрдерд╛ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдореЗрд░реЗ рдкрд╛рд╕ рджреЛ рдХрдорд░реЗ рд╣реИрдВред рдПрдХ рдкреНрд░рдХрд╛рд╢ рдХреЗрд╡рд▓ рд╡рд╕реНрддреБрдУрдВ рдФрд░ рдПрдХ рдХрдорд░реЗ рдХреА рднреАрддрд░реА рджреАрд╡рд╛рд░реЛрдВ рдХреЛ рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд░рддрд╛ рд╣реИред рджреВрд╕рд░рд╛ рдХрдорд░рд╛ рдЗрд╕ рд░реЛрд╢рдиреА рд╕реЗ рдкреНрд░рднрд╛рд╡рд┐рдд рдирд╣реАрдВ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред

рд╡рд░реНрддрдорд╛рди рдореЗрдВ, рдпрджрд┐ рдореИрдВ рджреГрд╢реНрдп рдореЗрдВ рдПрдХ рдкреНрд░рдХрд╛рд╢ рдЬреЛрдбрд╝рддрд╛ рд╣реВрдВ, рддреЛ рдпрд╣ рдЕрдкрдиреА рджреВрд░реА рдХреА рд╕рднреА рд╡рд╕реНрддреБрдУрдВ рдХреЛ рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд░рддрд╛ рд╣реИред рдФрд░ рдЬрдм рджреВрд╕рд░реЗ рдХрдорд░реЗ рдХреА "рджреАрд╡рд╛рд░ рд╕реЗ" рд░реЛрд╢рдиреА рдЖрддреА рд╣реИ рддреЛ рдореБрдЭреЗ рдЕрдЬреАрдм рдЕрд╕рд░ рд╣реЛрддрд╛ рд╣реИред

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

рдореБрдЭреЗ рд░реЛрд╢рдиреА рдпрд╛ рд╡рд╕реНрддреБрдУрдВ рдореЗрдВ рдРрд╕рд╛ рдХреБрдЫ рдирд╣реАрдВ рдорд┐рд▓рд╛, рдЗрд╕рд▓рд┐рдП рдореИрдВрдиреЗ рд╕реЛрдЪрд╛ рдХрд┐ рд╢рд╛рдпрдж рдпрд╣ рдПрдХ рдЕрдЪреНрдЫреА рд╕реБрд╡рд┐рдзрд╛ рд╣реЛ рд╕рдХрддреА рд╣реИред

рдФрд░, рдмреАрдЯреАрдбрдмреНрд▓реНрдпреВ, рдЕрдЧрд░ рдЗрд╕реЗ рдЕрднреА рддрдХ рд▓рд╛рдЧреВ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рддреЛ рддреАрди.рдЬреЗрдПрд╕ рдХреА рд╡рд░реНрддрдорд╛рди рд╕реНрдерд┐рддрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдРрд╕реЗ рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдиреБрд╢рдВрд╕рд┐рдд рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХреНрдпрд╛ рд╣реИ?

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

рдХреНрдпрд╛ рдЖрдкрдХреЗ рдкрд╛рд╕ рдЗрд╕ рддрд░рд╣ рдХреЗ рдХреБрдЫ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдПрдХ рд▓рд┐рдВрдХ рд╣реИ?

рдпрд╣рд╛рдБ, рдореИрдВрдиреЗ рдЖрдкрдХреЗ рд▓рд┐рдП рдПрдХ рдмрдирд╛рдпрд╛ рд╣реИ: https://jsfiddle.net/f2Lommf5/524/

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

рдореИрдВ рдЬреЛ рдХрд╣ рд░рд╣рд╛ рд╣реВрдВ рд╡рд╣ рдореВрд▓ рд░реВрдк рд╕реЗ channel рдлрд╝реАрд▓реНрдб рдореЗрдВ THREE.Light рдФрд░ lightChannel рдлрд╝реАрд▓реНрдб рдореЗрдВ THREE.Mesh рдпрд╛ рдРрд╕рд╛ рдХреБрдЫ рд╣реИред рдпрджрд┐ рдЙрддреНрддрд░рд╛рд░реНрджреНрдз рд╢реВрдиреНрдп рд╣реИ рддреЛ рдпрд╣ рд╕рднреА рдкреНрд░рдХрд╛рд╢ рд╕реНрд░реЛрддреЛрдВ рд╕реЗ рдкреНрд░рднрд╛рд╡рд┐рдд рд╣реЛрддрд╛ рд╣реИред рдпрджрд┐ рдЙрддреНрддрд░рд╛рд░реНрджреНрдз рд╢реВрдиреНрдп рдирд╣реАрдВ рд╣реИ, рддреЛ рдпрд╣ рдХреЗрд╡рд▓ рд╕рдорд╛рди рдорд╛рди рд╡рд╛рд▓реЗ рдкреНрд░рдХрд╛рд╢ рдЪреИрдирд▓реЛрдВ рдХреЛ рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд░рддрд╛ рд╣реИред

рдпрд╛ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдЗрд╕реЗ рдореЗрд╢ рдореЗрдВ рд╣реА рдирд╣реАрдВ, рдмрд▓реНрдХрд┐ рдореЗрд╢ рдЬреНрдпреЛрдореЗрдЯреНрд░реА рдХреЗ рдЪреЗрд╣рд░реЛрдВ рдХреЛ рдЕрд▓рдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЬреЛрдбрд╝рд╛ рдЬрд╛ рд╕рдХреЗред

рд▓рдЧрддрд╛ рд╣реИ рдЬреИрд╕реЗ рдЖрдк рдЫрд╛рдпрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ?

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

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

рдЖрдорддреМрд░ рдкрд░ рдореИрдВ рдЗрд╕ рддрд░рд╣ рдХреА рддрдХрдиреАрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдРрд╕рд╛ рдХрд░рддрд╛ рд╣реВрдВ: рдЙрджрд╛рд╣рд░рдг рдЪрд░реНрдЪрд╛ рд╕реВрддреНрд░ :

glEnable(GL_LIGHT0);
//...
glEnable(GL_LIGHTn);

// Draw the walls to room 1
DrawWalls(room[0]);

// Draw the contents of room 1
DrawContents(room[0]);

glDisable(GL_LIGHT0);
//...
glDisable(GL_LIGHTn);

// Draw the walls to room 2
DrawWalls(room[1]);

// Draw the contents of room 2
DrawContents(room[1]);

рддреЛ рдпрд╣ рд╕рд┐рд░реНрдл рдЫрд╛рдпрд╛ рд╕реЗ рдЕрд▓рдЧ рд╡рд┐рд╢реЗрд╖рддрд╛ рдХреА рддрд░рд╣ рджрд┐рдЦрддрд╛ рд╣реИред рдпрд╛ рдХреНрдпрд╛ рдореИрдВ рдХреБрдЫ рди рдХреБрдЫ рднреВрд▓ рд░рд╣рд╛ рд╣реВрдВ?

рд╣рд╛рдБ... рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЖрд╕рд╛рди рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдирд╣реАрдВ рд╣реИ рдХрд┐ рдЗрд╕рдХреЗ рд▓рд┐рдП рдПрдкреАрдЖрдИ рдХреИрд╕рд╛ рджрд┐рдЦрдирд╛ рдЪрд╛рд╣рд┐рдПред

рд╢рд╛рдпрдж рд╕рдмрд╕реЗ рдЖрд╕рд╛рди рд╕рдорд╛рдзрд╛рди рдпрд╣рд╛рдВ рд╕рдмрд╕реЗ рдкреНрд░рднрд╛рд╡реА рд╣реЛ рд╕рдХрддрд╛ рд╣реИ:

  1. channel (рдпрд╛ group ) рдХреЛ THREE.Light
  2. affectedByLightChannel (рдпрд╛ affectedByLightGroup ) рдХреЛ THREE.Mesh (рдпрд╛ рд╢рд╛рдпрдж рдЬреНрдпрд╛рдорд┐рддрд┐ рдореЗрдВ рдПрдХ рдЪреЗрд╣рд░реЗ рдХреЗ рд▓рд┐рдП рднреА)

рддреБрдо рдХреНрдпрд╛ рд╕реЛрдЪрддреЗ рд╣реЛ?

рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ 'рдкреНрд░рднрд╛рд╡рд┐рдд рдмрд╛рдпрд▓рд╛рдЗрдЯ рдЪреИрдирд▓' рдмрд╣реБрдд рд▓рдВрдмрд╛ рд╣реЛ рдФрд░ 'рд▓рд╛рдЗрдЯ рдЪреИрдирд▓' рдЬреИрд╕рд╛ рдХреБрдЫ рдХрд╛рдо рдХрд░реЗрдЧрд╛, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реЛрдЧрд╛: рдкреНрд░рдХрд╛рд╢ рд╕реНрд░реЛрдд рдФрд░ рд░рд┐рд╕реАрд╡рд░ рдкрд░ рд╕рд┐рд░реНрдл рдЪреИрдирд▓ рдирдВрдмрд░ред

рдЙрд╕рдХреЗ рдЬреИрд╕рд╛:

    light = new THREE.PointLight(0xFFF7D6, 1.0, 15)
    light.channel = 123
    testScene.add(light)

    testScene = new THREE.Scene
    geometry = new THREE.BoxGeometry(2,2,2)
    material = new THREE.MeshLambertMaterial 
        color: 0xffffff

    cube = new THREE.Mesh(geometry, material)
    cube.lightChannel = 123
    testScene.add(cube)

рдпрджрд┐ lightChannel 0 рдХреЗ рдмрд░рд╛рдмрд░ рд╣реИ, рддреЛ рдпрд╣ рд╕рднреА рдЪреИрдирд▓реЛрдВ рджреНрд╡рд╛рд░рд╛ рдкреНрд░рднрд╛рд╡рд┐рдд рд╣реЛрддрд╛ рд╣реИред рдпрджрд┐ channel 0 рдХреЗ рдмрд░рд╛рдмрд░ рд╣реИ, рддреЛ рдпрд╣ рд╕рднреА рдореЗрд╢ рдХреЛ рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд░рддрд╛ рд╣реИред

рддреЛ рдпрд╣ рд╡рд░реНрддрдорд╛рди рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЗ рд╕рд╛рде рдкреВрд░реА рддрд░рд╣ рдкрд┐рдЫрдбрд╝рд╛ рд╕рдВрдЧрдд рд╣реЛрдЧрд╛ред

рдпрд╣ рд╕рдордЭрдирд╛ рдереЛрдбрд╝рд╛ рдХрдард┐рди рд╣реЛ рд╕рдХрддрд╛ рд╣реИ... рд╢рд╛рдпрдж рдпрд╣ рдХреБрдЫ рдЗрд╕ рддрд░рд╣ рд╕реЗ рдмреЗрд╣рддрд░ рд╣реИ:

cube.lightInfluences = [ light1, light2 ];

рдореБрдЭреЗ рдмрд┐рд▓реНрдХреБрд▓ рдареАрдХ рд▓рдЧрддрд╛ рд╣реИред

рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдХреБрдЫ рдорд╛рдорд▓реЛрдВ рдореЗрдВ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдереЛрдбрд╝рд╛ рдЕрдзрд┐рдХ рдХрдард┐рди рд╣реЛ, рд▓реЗрдХрд┐рди рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдЗрд╕реЗ рд╕рдордЭрдирд╛ рдЖрд╕рд╛рди рд╣реИред

рдореЗрд╖ рдФрд░ рд░реЛрд╢рдиреА рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рд╛рдзрд╛рд░рдг рдкреВрд░реНрдгрд╛рдВрдХ рдореБрдЦреМрдЯрд╛ рд╕рдВрдкрддреНрддрд┐ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреНрдпрд╛?

light = new THREE.PointLight(0xFFF7D6, 1.0, 15)
light.mask = 0xffffffff; // default mask
testScene.add(light);

cube = new THREE.Mesh(geometry, material)
cube.mask = 0xffffffff; // default
testScene.add(cube);

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

0xffffffff рдХрд╛ рдореБрдЦреМрдЯрд╛ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдореМрдЬреВрджрд╛ рдХреЛрдб рдХреЛ рдкреНрд░рднрд╛рд╡рд┐рдд рдирд╣реАрдВ рдХрд░реЗрдЧрд╛ред

рдХреНрдпрд╛ @satori99 рдиреЗ рдХрд╣рд╛ред

рд╣рд╛рд▓рд╛рдВрдХрд┐, рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ mask рдЗрд╕рдХреЗ рдмрдЬрд╛рдп Light рдФрд░ Mesh*Material рд╕рдВрдкрддреНрддрд┐ рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдПред (рдХреЗрд╡рд▓ рд╡рд╣реА рд╕рд╛рдордЧреНрд░реА рд░реЛрд╢рдиреА рд╕реЗ рдкреНрд░рднрд╛рд╡рд┐рдд рд╣реЛрддреА рд╣реИред)

рд╕рд╛рде рд╣реА, рд╕рдВрдкрддреНрддрд┐ рдХреЛ рд╡реИрдХрд▓реНрдкрд┐рдХ рд░реВрдк рд╕реЗ lightMask , lightChannel , рдпрд╛ channel ред

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

рдЖрдк рдорд╛рд╕реНрдХ рдХреЗ рд╕рд╛рде рдХреНрдпрд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдЬреЛ рдЖрдк рд╕рд░рдгреА рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХреЗ рд╕рд╛рде рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ?

рдореИрдВ рдКрдкрд░ рджреЛ рдХрдорд░реЛрдВ рдХреЗ рд╕рд╛рде рдХрд╛рд░реНрдп рд╕реЗ рдПрдХ рдЙрджрд╛рд╣рд░рдг рджреЗ рд╕рдХрддрд╛ рд╣реВрдВред

рд╕рд░рдгреА рджреГрд╖реНрдЯрд┐рдХреЛрдг рдкрд░ рдЪреИрдирд▓ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рдореБрдЦреНрдп рдмрд┐рдВрджреБ рдпрд╣ рд╣реИ рдХрд┐ рдпрджрд┐ рдЖрдк рд╕рд░рдгреА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ рддреЛ 'рд╣рд▓реНрдХрд╛ 1 рд╕реЗ рдХрдорд░реЗ 2 рддрдХ рд▓реЗ рдЬрд╛рдПрдВ' рдЬреИрд╕реЗ рд╕рд░рд▓ рд╕рдВрдЪрд╛рд▓рди рдЕрдзрд┐рдХ рдЬрдЯрд┐рд▓ рд╣реЛ рдЬрд╛рддреЗ рд╣реИрдВред

рдмрд╕ рд╕реЗрдЯрд┐рдВрдЧ рдХреЗ рдмрдЬрд╛рдп

light1.channel = 2

(рдкрд╣рд▓реЗ рдЗрд╕реЗ 1 рдкрд░ рд╕реЗрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛)

рдЖрдкрдХреЛ рдХрдорд░реЗ 1 рдореЗрдВ рд╕рднреА рд╡рд╕реНрддреБрдУрдВ рдХреЛ рдвреВрдВрдврдирд╛ рд╣реЛрдЧрд╛ рдЬрд┐рд╕рдореЗрдВ рдкрд╣рд▓реЗ рдкреНрд░рдХрд╛рд╢ рдкреНрд░рднрд╛рд╡ рд╕рд░рдгреА рдореЗрдВ рдкреНрд░рдХрд╛рд╢ 1 рдерд╛, рдлрд┐рд░ рдкреНрд░рдХрд╛рд╢ рдХреЛ рдЙрдирдХреЗ рд╕рд░рдгреА рд╕реЗ рд╣рдЯрд╛ рджреЗрдВ, рдлрд┐рд░ рдЗрд╕реЗ рдХрдорд░реЗ 2 рдореЗрдВ рд╕рднреА рд╡рд╕реНрддреБрдУрдВ рдореЗрдВ рдЬреЛрдбрд╝реЗрдВред

рд╕рд░рд▓ рдСрдкрд░реЗрд╢рди рдХреЗ рд╕рд╛рде рдПрдХ рд╣реА рдХрд╣рд╛рдиреА рдЬреИрд╕реЗ 'рдСрдмреНрдЬреЗрдХреНрдЯ 1 рдХреЛ рдХрдорд░реЗ 1 рд╕реЗ рдХрдорд░реЗ 2 рдореЗрдВ рд▓реЗ рдЬрд╛рдПрдВ'ред рдЗрд╕рдХреЗ рдкреНрд░рднрд╛рд╡ рдЪреИрдирд▓ рдХреЛ 1 рд╕реЗ 2 рддрдХ рд╕реЗрдЯ рдХрд░рдиреЗ рдХреЗ рдмрдЬрд╛рдп, рдЖрдкрдХреЛ рдЙрд╕ рдХрдорд░реЗ рдореЗрдВ рд╕рднреА рд░реЛрд╢рдиреА рдвреВрдВрдврдиреА рд╣реЛрдЧреА, рдлрд┐рд░ рдЙрдиреНрд╣реЗрдВ рдЗрд╕рдХреЗ рдкреНрд░рднрд╛рд╡ рд╕рд░рдгреА рд╕реЗ рд╣рдЯрд╛ рджреЗрдВ, рдлрд┐рд░ рдХрдорд░реЗ рджреЛ рдореЗрдВ рд╕рднреА рд░реЛрд╢рдиреА рдвреВрдВрдвреЗрдВ рдФрд░ рдЙрдиреНрд╣реЗрдВ рдЬреЛрдбрд╝реЗрдВред

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

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЗрд╕реЗ рдорд╛рд╕реНрдХ рдХреЗ рд░реВрдк рдореЗрдВ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред (рдЪрд╛рд╣реЗ рдЗрд╕реЗ рд╕реАрдкреАрдпреВ рдпрд╛ рдЬреАрдкреАрдпреВ рдкрд░ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдмрд╛рдж рдореЗрдВ рдЪрд░реНрдЪрд╛ рдХреЗ рд▓рд┐рдП рдПрдХ рдореБрджреНрджрд╛ рд╣реИред)

рд╣рдо рдЙрджрд╛рд╣рд░рдгреЛрдВ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рджрд┐рдЦрд╛ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдЗрд╕реЗ рдХреИрд╕реЗ рд╕реЗрдЯ рдХрд┐рдпрд╛ рдЬрд╛рдП, рдФрд░ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдкреИрдЯрд░реНрди рдХрд╛ рдкрд╛рд▓рди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рдпрджрд┐ рдЖрдкрдХреЛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдЕрднреА рднреА рдмрд╣реБрдд рдЬрдЯрд┐рд▓ рд╣реИ, рддреЛ рд╣рдо рдЗрд╕рдХреЗ рд▓рд┐рдП THREE.Channels API рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВред

light.channels = new THREE.Channels();
...
light.channels.clear();
light.channels.add( channel );
light.channels.remove( channel );
light.channels.all();

Mesh*Material рд▓рд┐рдП рд╕рдорд╛рди рддрд░реАрдХреЗред

рдореБрдЭреЗ рд╡рд╣ рдПрдкреАрдЖрдИ рдкрд╕рдВрдж рд╣реИ :)
рдореИрдВ рдЗрд╕реЗ рд╡рд╕реНрддреБрдУрдВ рдФрд░ рд░реЛрд╢рдиреА рдХреЗ рд▓рд┐рдП рдХрд╛рдо рдХрд░рддреЗ рд╣реБрдП рджреЗрдЦ рд╕рдХрддрд╛ рд╣реВрдВ, рд▓реЗрдХрд┐рди рдЖрдк рдЗрд╕реЗ рд╕рд╛рдордЧреНрд░реА рдХреЗ рд▓рд┐рдП рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддреЗ рд╣реБрдП рджреЗрдЦрддреЗ рд╣реИрдВ?

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

рдореИрдВ рдЗрд╕ рдкрд░ @westlangley рд╕реЗ рд╕рд╣рдордд рд╣реВрдВред рд░реЛрд╢рдиреА рд╕рд╛рдордЧреНрд░реА рдкрд░ рдирд┐рд░реНрднрд░ рд╣реИрдВред

рд╕рд░рд▓ рдСрдкрд░реЗрд╢рди рдХреЗ рд╕рд╛рде рдПрдХ рд╣реА рдХрд╣рд╛рдиреА рдЬреИрд╕реЗ 'рдСрдмреНрдЬреЗрдХреНрдЯ 1 рдХреЛ рдХрдорд░реЗ 1 рд╕реЗ рдХрдорд░реЗ 2 рдореЗрдВ рд▓реЗ рдЬрд╛рдПрдВ'ред

рдЦреИрд░, рдпрд╣ рдПрдХ рд╕рдорд╕реНрдпрд╛ рд╣реИред Channels рд╡рд╕реНрддреБ-рдЖрдзрд╛рд░рд┐рдд рдирд╣реАрдВ рд╣реЛрдЧрд╛ред

рдЦреИрд░, рдпрд╣ рдПрдХ рд╕рдорд╕реНрдпрд╛ рд╣реИред рдЪреИрдирд▓ рд╡рд╕реНрддреБ-рдЖрдзрд╛рд░рд┐рдд рдирд╣реАрдВ рд╣реЛрдВрдЧреЗред

рд▓реЗрдХрд┐рди рдХреНрдпреЛрдВ? рдХреНрдпрд╛ рдпрд╣ рдПрдХ рддрдХрдиреАрдХреА рд╕реАрдорд╛ рд╣реИ?

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

рд▓реЗрдХрд┐рди рдХреНрдпреЛрдВ? рдХреНрдпрд╛ рдпрд╣ рдПрдХ рддрдХрдиреАрдХреА рд╕реАрдорд╛ рд╣реИ?

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

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

рдЖрдк рджреГрд╢реНрдп рдореЗрдВ рд╕рднреА рд╡рд╕реНрддреБрдУрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рд╣реА рд╕рд╛рдордЧреНрд░реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ - рдХреЗрд╡рд▓ clone рдЙрди рд╡рд╕реНрддреБрдУрдВ рдХреЗ рд▓рд┐рдП рд╕рд╛рдордЧреНрд░реА рдЬрд┐рдирдХреА рд╕рд╛рдордЧреНрд░реА рдХреЗ рд▓рд┐рдП рдЕрд▓рдЧ-рдЕрд▓рдЧ рд╕рдорд╛рди рдореВрд▓реНрдпреЛрдВ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред рд╕рднреА рджреНрд╡рд╛рд░рд╛ рд╕рд╛рдЭрд╛ рдХрд┐рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рдЕрднреА рднреА рдХреЗрд╡рд▓ рдПрдХ рд╢реЗрдбрд░ рдХрд╛рд░реНрдпрдХреНрд░рдо рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЗрд╕реЗ рдорд╛рд╕реНрдХ рдХреЗ рд░реВрдк рдореЗрдВ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред (рдЪрд╛рд╣реЗ рдЗрд╕реЗ рд╕реАрдкреАрдпреВ рдпрд╛ рдЬреАрдкреАрдпреВ рдкрд░ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдмрд╛рдж рдореЗрдВ рдЪрд░реНрдЪрд╛ рдХреЗ рд▓рд┐рдП рдПрдХ рдореБрджреНрджрд╛ рд╣реИред)

рдХреНрдпрд╛ рдЗрд╕реЗ рд╕реАрдзреЗ GPU рдореЗрдВ рдХреБрдЫ рд╣рдж рддрдХ рдЖрд╕рд╛рдиреА рд╕реЗ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ?

рдХреНрдпрд╛ рдЗрд╕реЗ рд╕реАрдзреЗ GPU рдореЗрдВ рдХреБрдЫ рд╣рдж рддрдХ рдЖрд╕рд╛рдиреА рд╕реЗ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ?

рд╣рд╛рдВ, рдЖрдкрдХреЛ рд░реЛрд╢рдиреА рдФрд░ рд╕рд╛рдордЧреНрд░реА рдХреЗ рд▓рд┐рдП рдЕрддрд┐рд░рд┐рдХреНрдд channels рд╡рд░реНрджреА рдореЗрдВ рдкрд╛рд╕ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред

рдПрдХ рдкрд░рдд рдкреНрд░рдмрдВрдзрди рдкреНрд░рдгрд╛рд▓реА рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреИрд╕реЗ? рдореИрдВ рдореЗрд╢ рдХреЛ рдкрд░рддреЛрдВ рдореЗрдВ рд╕рдореВрд╣рд┐рдд рдХрд░реВрдВрдЧрд╛ рдФрд░ рд╡рд╣рд╛рдВ рд╕реЗ рдорд╛рд╕реНрдХ рд▓рдЧрд╛рдКрдВрдЧрд╛ (рд░реЛрд╢рдиреА, рдЫрд╛рдпрд╛, рджреГрд╢реНрдпрддрд╛ рдЖрджрд┐ рдХреЛ рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд░ рд╕рдХрддрд╛ рд╣реИ), рдПрдХрддрд╛ рдПрдХ рдЕрдЪреНрдЫрд╛ рдЙрджрд╛рд╣рд░рдг рд╣реЛрдЧрд╛?

рдЫрд╛рдпрд╛ рднреА рдПрдХ рд╕рдВрдмрдВрдзрд┐рдд рд╡рд┐рд╖рдп рд╣реИред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЪрдпрдирд╛рддреНрдордХ рдЫрд╛рдпрд╛ рдХрд╛рд╕реНрдЯрд┐рдВрдЧ рдЬреИрд╕рд╛ рдХреБрдЫ рднреА рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рдЬреИрд╕реЗ 'receiveShadowFrom = ...' (рдФрд░ рд╕реНрд░реЛрддреЛрдВ рдХреА рд╕реВрдЪреА) рдХреЗ рдмрдЬрд╛рдп рд╕рд┐рд░реНрдл 'ReceiveShadow = true'ред

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

рдЫрд╛рдпрд╛ рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдБ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╕рд╛рдордЧреНрд░реА рдкрд░ рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдП рди рдХрд┐ рд╡рд╕реНрддреБрдУрдВ рдкрд░ рдЙрдиреНрд╣реАрдВ рдХрд╛рд░рдгреЛрдВ рд╕реЗ рдЬреЛ рдЗрд╕ рдзрд╛рдЧреЗ рдореЗрдВ рдКрдкрд░ рд╣реИрдВред

рдЫрд╛рдпрд╛ рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдБ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╕рд╛рдордЧреНрд░реА рдкрд░ рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдП рди рдХрд┐ рд╡рд╕реНрддреБрдУрдВ рдкрд░ рдЙрдиреНрд╣реАрдВ рдХрд╛рд░рдгреЛрдВ рд╕реЗ рдЬреЛ рдЗрд╕ рдзрд╛рдЧреЗ рдореЗрдВ рдКрдкрд░ рд╣реИрдВред

рд╣рд╛рдБ, рдпрд╣ рд╕рдордЭ рдореЗрдВ рдЖрддрд╛ рд╣реИ!

рдХреНрдпрд╛ рдЗрд╕ рд╕реБрд╡рд┐рдзрд╛ рдХреЛ рд╢рд╛рдорд┐рд▓ рдХрд░рдиреЗ рдХреА рдХреЛрдИ рдпреЛрдЬрдирд╛ рд╣реИ (рдЬреИрд╕реЗ рдкрд╣рд▓реЗ рдорд╕реМрджреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдирд┐рдпреЛрдЬрд┐рдд рд▓рдХреНрд╖реНрдп рд░рд┐рд▓реАрдЬ)?

рд╡рд░реНрдХрдЕрд░рд╛рдЙрдВрдб рдХреЗ рд░реВрдк рдореЗрдВ, рдХреНрдпрд╛ рдЖрдк рдкреНрд░рддреНрдпреЗрдХ рдХрдорд░реЗ (рдФрд░ рдЙрд╕рдХреА рд░реЛрд╢рдиреА) рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрд▓рдЧ рджреГрд╢реНрдп рдмрдирд╛рдХрд░ рдЕрдкрдиреА рдЕрдзрд┐рдХрд╛рдВрд╢ рдЖрд╡рд╢реНрдпрдХрддрд╛рдУрдВ рдХреЛ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ?

renderer.autoClear = false;
...
renderer.render( scene1, camera );
renderer.render( scene2, camera );

рд╣рдореНрдо, рдореИрдВ рдЗрд╕ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реВрдБрдЧрд╛!

рднрд╡рд┐рд╖реНрдп рдХреЗ рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдЖрдИрдПрдордУ рдХреЗ рд▓рд┐рдП рдЪреБрдирд┐рдВрджрд╛ рдкреНрд░рдХрд╛рд╢/рдЫрд╛рдпрд╛ рдЬрд░реВрд░реА рд╣реИред

рдЗрд╕рдХреЗ рд▓рд┐рдП рдмрдбрд╝рд╛ +9999, рдореБрдЭреЗ рдпрд╣ рдЪреБрдирдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдирд╛ рдЕрдЪреНрдЫрд╛ рд▓рдЧреЗрдЧрд╛ рдХрд┐ рдХреНрдпрд╛ рдХреЛрдИ рд╕рд╛рдордЧреНрд░реА рдкреНрд░рдХрд╛рд╢ рд╕реНрд░реЛрдд рдП рдпрд╛ рдкреНрд░рдХрд╛рд╢ рд╕реНрд░реЛрдд рдмреА рд╕реЗ рдЫрд╛рдпрд╛ рдбрд╛рд▓рддреА рд╣реИред рдХрд┐рд╕реА рдХреЛ рднреА рджреЛ рджреГрд╢реНрдпреЛрдВ рдХреЗ рдЕрд▓рд╛рд╡рд╛ рдХреЛрдИ рд╕рдорд╛рдзрд╛рди рдорд┐рд▓рд╛ рд╣реИ? рдпрд╣ рдореЗрд░реЗ рд▓рд┐рдП рдЪреАрдЬреЛрдВ рдХреЛ рдХрд╛рдлреА рджрд░реНрджрдирд╛рдХ рдмрдирд╛рдиреЗ рд╡рд╛рд▓рд╛ рд╣реИ...

рдкрд╡рд┐рддреНрд░ рдмрдХрд╡рд╛рд╕ рдпрд╣ рдЕрднреА рднреА рдХреИрд╕реЗ рд▓рд╛рдЧреВ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ? рд░реЛрд╣рди рд╕реЗ +9999 рдХреЗ рдмрд╛рдж)

рд╣рд╛рд╣рд╛ рдореЗрд░рд╛ рдЕрдиреБрдорд╛рди рд╣реИ рдХрд┐ @tsone рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдирд╛ рдХрдард┐рди рд╣реИ, рдХреНрдпрд╛ рдЖрдк рдЙрд╕ рдкреНрд░рддрд┐рдмрджреНрдзрддрд╛ рдкрд░ рдХреБрдЫ рдЬрд╛рдирдХрд╛рд░реА рдкреНрд░рджрд╛рди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ? рдлрд╝реЛрди рдХреНрд▓рд╛рдЗрдВрдЯ рдкрд░ рдЕрднреА рдмреНрд░рд╛рдЙрдЬрд╝ рдХрд░рдирд╛

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

рдпрд╣рд╛рдБ рдПрдХ рд╕рд░рд▓ JSFiddle рд╣реИ рдЬреЛ рджреЗрд╡ рд╢рд╛рдЦрд╛ рдХреЗ Layers рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд░рддрд╛ рд╣реИ:
https://jsfiddle.net/Angrypickle/t8f7q3vo/4/
рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ, рдЗрд╕ рд╕рдордп, рдРрд╕рд╛ рдирд╣реАрдВ рд▓рдЧрддрд╛ рдХрд┐ рдпрд╣ рдареАрдХ рд╕реЗ рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реИред рдпрд╛ рдореБрдЭ рд╕реЗ рдХреБрдЫ рдЧрд▓рдд рд╣реЛ рд░рд╣рд╛ рд╣реИ?

рд╣рд╛рдВред рдкрд░рддреЗрдВ рдЕрднреА рддрдХ рд░реЛрд╢рдиреА рдХреЗ рд╕рд╛рде рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддреА рд╣реИрдВред рд╣рд╛рд▓рд╛рдВрдХрд┐ рд╡реЗ рдХреИрдорд░рд╛/рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВ! рдореИрдВ

рд░реЛрдЬрд░ рдХрд┐ рд╕рд░! рдпрд╣рд╛рдБ рдПрдХ рдЕрджреНрдпрддрди JSFiddle рд╣реИ рдЬреЛ рдкрд░рддреЛрдВ рдХреЗ рд╕рд╛рде рдЪрдпрдирд╛рддреНрдордХ рдкреНрд░рдХрд╛рд╢ рд╡реНрдпрд╡рд╕реНрдерд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрддрд┐рд╡реНрдпрд╛рдкреА рдХреИрдорд░реЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ:
https://jsfiddle.net/Angrypickle/t4a1eusL/
рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдбреЗрд╕реНрдХрдЯреЙрдк рдФрд░ рдореЛрдмрд╛рдЗрд▓ рдкрд░ рдареАрдХ рд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред рдХрд┐рд╕реА рдХреЛ рднреА рдЗрд╕ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХреЗ рд╕рд╛рде рдХреБрдЫ рднреА рдмрд╣реБрдд рдмреБрд░рд╛ рд▓рдЧрддрд╛ рд╣реИ? рдХрдо рд╕реЗ рдХрдо рдЬрдм рддрдХ рд░реЛрд╢рдиреА рдкрд░рддреЛрдВ рдХреА рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдореЗрдВ рдмрдВрдзреА рдирд╣реАрдВ рд╣реЛрддреА рд╣реИ?

рдХрд┐рд╕реА рдХреЛ рднреА рдЗрд╕ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХреЗ рд╕рд╛рде рдХреБрдЫ рднреА рдмрд╣реБрдд рдмреБрд░рд╛ рд▓рдЧрддрд╛ рд╣реИ?

рдмреЗрд╢рдХ рдпрд╣ рдмреБрд░рд╛ рд╣реИред рджреГрд╢реНрдп рдХреЛ рдиреЗрд╡рд┐рдЧреЗрдЯ рдХрд░рдиреЗ рд╡рд╛рд▓рд╛ рдПрдХрд▓ рдХреИрдорд░рд╛ рд╣реЛрдиреЗ рдХреЗ рдмрдЬрд╛рдп, рд▓реЛрдЧреЛрдВ рдХреЛ рдЕрдм camera1.add( camera2 ); рдореЗрд░рд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рдЬрдм рдореИрдВ рдЗрд╕реЗ рджреЗрдЦрддрд╛ рд╣реВрдВ рддреЛ рдпрд╣ рдбрдмреНрд▓реНрдпреВрдЯреАрдПрдл рд╣реИред рдХреИрд╕рд╛? рдореЗрд░реЗ рдХреИрдорд░реЗ рдореЗрдВ рдХреИрдорд░рд╛? рдХреНрдпрд╛ рд╣реЛрдЧрд╛ рдпрджрд┐ рдореЗрд░реЗ рдкрд╛рд╕ рджрд░реНрдЬрдиреЛрдВ рдХрдорд░реЗ рд╣реИрдВ рдЬрд┐рдиреНрд╣реЗрдВ рд╡реНрдпрдХреНрддрд┐рдЧрдд рд░реВрдк рд╕реЗ рдкреНрд░рдХрд╛рд╢рд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ? рдореБрдЭреЗ рдХрд┐рддрдиреЗ рдХреИрдорд░реЗ рдЪрд╛рд╣рд┐рдП? рдФрд░ рдкрд░рддреЗрдВ ... рд╡рд╣рд╛рдБ рдХреЛрдИ рдкрд░рддреЛрдВ рдХрд▓, рд╕рд╣реА рдереЗ, рдФрд░ рдЕрдм рдореИрдВ рдЙрдирдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдиреЗ рдХреЗ рд▓рд┐рдПред

рд╢реЗрдЦреА рдмрдШрд╛рд░рдирд╛, рдпрд╣ рдирд╣реАрдВ рдХрд╣рдирд╛ рдХрд┐ рдореЗрд░реЗ рдкрд╛рд╕ рдЗрд╕рдХрд╛ рд╕рд╣реА рд╕рдорд╛рдзрд╛рди рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЕрд▓реНрдЯрд░рдиреЗрдЯрд┐рд╡ 3 рдбреА рд▓реЛрдЧ рд▓рд╛рдЗрдЯ рдХреЗ рдмрд╛рдЙрдВрдбрд┐рдВрдЧ рдмреЙрдХреНрд╕ рдореЗрдВ рд░рдЦреЗ рд╕рд╛рдорд╛рди рдкрд░ рд░реЛрд╢рдиреА рдбрд╛рд▓рддреЗ рдереЗред рдЗрд╕рдХрд╛ рдЕрдВрддрд┐рдо рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдиреЗрдХреНрд╕реНрдЯ-рдЯреВ-0 рд╕реЗрдЯрдЕрдк рдХрд╛ рдПрдХ рдлрд╛рдпрджрд╛ рдерд╛, рд▓реЗрдХрд┐рди рдпрд╣ рддрдм рдЯреВрдЯ рд░рд╣рд╛ рдерд╛ рдЬрдм рд░реЛрд╢рдиреА рдХреЗ рдмреАрдЪ рдХреА рд╕реАрдорд╛ рдХреЛ рдХреЛрдг рдкрд░ рд╣реЛрдирд╛ рдерд╛ред рд▓реЗрдХрд┐рди рдлрд┐рд░ рднреА, рдЕрдЧрд░ рдореБрдЭреЗ рдЕрднреА рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдореЗрдВ рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд░рдирд╛ рд╣реИ, рддреЛ рд╢рд╛рдпрдж рдореИрдВ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХреА рдЧрдИ рдорд╛рдирдХ рд╕рд╛рдордЧреНрд░реА рдХреЛ ShaderMaterial-s рдореЗрдВ рд╕реНрдХреНрд░реИрдк рдХрд░рдиреЗ рдФрд░ рдЙрди рд░реЛрд╢рдиреА рдХреЛ рдкрд╛рд╕ рдХрд░рдиреЗ рдХрд╛ рд╕рдВрдХрд▓реНрдк рдХрд░реВрдВрдЧрд╛ рдЬреЛ рдореИрдВ рд╡рд╣рд╛рдВ рд╣рд╛рде рд╕реЗ рдЪрд╛рд╣рддрд╛ рд╣реВрдВред

@makc рдкрд░рддреЗрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╕реБрдкрд░ рд╕рд░рд▓ (рдФрд░ рд╢рдХреНрддрд┐рд╢рд╛рд▓реА) рд╣реИрдВ!
@ Zob1 рдХрд╛ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рд╕рд╣реА рджреГрд╖реНрдЯрд┐рдХреЛрдг рдирд╣реАрдВ рд╣реИред рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рдЗрд╕рдореЗрдВ рдЕрдзрд┐рдХ рд╕рдордп рдирд╣реАрдВ рд▓рдЧреЗрдЧрд╛ рдЬрдм рддрдХ рдХрд┐ рдкрд░рддреЗрдВ рднреА рд░реЛрд╢рдиреА рдХреЗ рд╕рд╛рде рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддреАрдВред

рджреЛрд╕реНрддреЛрдВ рд╕рд┐рд░реНрдл рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рдореИрдВ рд╕рд╣реА рддрд░реАрдХреЗ рд╕реЗ рдЕрдиреБрд╕рд░рдг рдХрд░ рд░рд╣рд╛ рд╣реВрдВ; рдорд╛рди рд▓реЗрдВ рдХрд┐ рдореЗрд░реЗ рдкрд╛рд╕ рдПрдХ рджреГрд╢реНрдп рдФрд░ "рдореБрдЦреНрдп" рдкреНрд░рдХрд╛рд╢ рд╕реНрд░реЛрдд рд╣реИред рдХреНрдпрд╛ рдЗрд╕ рддрдХрдиреАрдХ рд╕реЗ рдпрд╣ рд╕рдВрднрд╡ рд╣реИ рдХрд┐ рдХреБрдЫ рд╕рд╛рдордЧреНрд░реА рдЗрд╕ рдореБрдЦреНрдп рдкреНрд░рдХрд╛рд╢ рд╕реНрд░реЛрдд рдХреЛ рдЕрдирджреЗрдЦрд╛ рдХрд░ рджреЗрдВ, рдЬрдмрдХрд┐ рдПрдХ рдЕрд▓рдЧ рдкреНрд░рдХрд╛рд╢ рд╕реНрд░реЛрдд рд╕реЗ рдЫрд╛рдпрд╛ рднреА рдбрд╛рд▓ рд░рд╣реЗ рд╣реЛрдВ?

рдЦреИрд░, рдЗрд╕рдХреЗ рд▓рд┐рдП рд╣рдореЗрдВ рд╕рд╛рдордЧреНрд░реА рдореЗрдВ рд▓реЗрдпрд░ рд╕рдкреЛрд░реНрдЯ рднреА рдЬреЛрдбрд╝рдирд╛ рд╣реЛрдЧрд╛ред

рдЗрд╕ рд╕рдордп рд╣рдо рдХреНрдпрд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдХреИрдорд░реЗ рд╕реЗ рд╡рд╕реНрддреБрдУрдВ рдХреЛ рджрд┐рдЦрд╛рдирд╛/рдЫрд┐рдкрд╛рдирд╛:

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

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

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

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

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЗрд╕ рд╡рд┐рдЪрд╛рд░ рдХреЗ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдореЗрдВ рдкрд░рддреЛрдВ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ?

рдпреЗ рдкреНрд░рднрд╛рдордВрдбрд▓ рдХреЗрд╡рд▓ рдЗрд╕ рдкреНрд░рдХрд╛рд╢ рд╕реНрд░реЛрдд рд╕реЗ рдкрд░рдЫрд╛рдИрдВ рджреЗрдЧрд╛ рдЬрдмрдХрд┐ рджреГрд╢реНрдп рдореЗрдВ рдмрд╛рдХреА рд╕рдм рдХреБрдЫ "рдореБрдЦреНрдп" рдкреНрд░рдХрд╛рд╢ рд╕реНрд░реЛрдд рд╕реЗ рдЫрд╛рдпрд╛ рдбрд╛рд▓реЗрдЧрд╛ред

рд╣рдорд╛рд░реЗ рдкрд╛рд╕ shadowOnly рд╡рд┐рдХрд▓реНрдк рд╣реБрдЖ рдХрд░рддрд╛ рдерд╛, рд▓реЗрдХрд┐рди рдЗрд╕реЗ рд╣рдЯрд╛ рджрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред

рдПрдлрдбрдмреНрд▓реНрдпреВрдЖрдИрдбрдмреНрд▓реНрдпреВ, рдЫрд╛рдпрд╛ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдпрд╣ рджреГрд╖реНрдЯрд┐рдХреЛрдг рд╣реИ ...

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

рдореИрдВ рдЙрд╕ рдЙрджрд╛рд╣рд░рдг рдХреЛ рдЕрднреА рдлреЛрди рдкрд░ рджреЗрдЦреВрдВрдЧрд╛, рд▓реЗрдХрд┐рди рдЖрд╢рд╛рдЬрдирдХ рд▓рдЧ рд░рд╣рд╛ рд╣реИред

рд╕рдВрдкрд╛рджрд┐рдд рдХрд░реЗрдВ рд╣рдореНрдо рд▓реЗрдХрд┐рди рдЕрдЧрд░ рдЙрд╕ рдХреНрд╖реЗрддреНрд░ рдиреЗ рджреГрд╢реНрдп рдореЗрдВ рдЕрдкрдиреА рд╕реНрдерд┐рддрд┐ рдмрджрд▓ рджреА рдФрд░ рдЬрдореАрди рдХреА рдЬрд╛рд▓реА рдХреА рдКрдВрдЪрд╛рдИ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдереА, рддреЛ рдХреНрдпрд╛ рдЗрд╕рдХреА рдЫрд╛рдпрд╛ рдЬрдореАрди рдХреА рд╕рддрд╣ рдХреЗ рдорд╛рдирджрдВрдбреЛрдВ рд╕реЗ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рдореЗрд▓ рдЦрд╛рддреА рд╣реИ?

рдирд╣реАрдВ...

рд╣рд╛рдБ рдРрд╕рд╛ рд╕реЛрдЪрд╛ред рдкрд░рддреЛрдВ рдХреА рдЬрд░реВрд░рдд рд╣реИ! рд╣реЗрд╣реЗ

рд╣рд╛рдп @ рд░реЛрд╣рди-рджреЗрд╢рдкрд╛рдВрдбреЗ,

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

рдЖрдк рдореЗрд░реЗ рдЦреЗрд▓ рдХреА рдЬрд╛рдВрдЪ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдЬреЛ рдпрд╣рд╛рдВ рдЙрдирдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ:
https://github.com/erichlof/3dLightCycles

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

рднрд╡рд┐рд╖реНрдп рдореЗрдВ рдкрд░рддреЛрдВ рдХреЗ рд▓рд┐рдП рдпрд╣рд╛рдВ +1 рдХрд░реЗрдВ :)

@erichlof рдЧреЗрдо

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

рд╣реЗ рд▓реЛрдЧреЛрдВ
рдХреНрдпрд╛ рдпрд╣ рдмрд╛рдд рд▓рд╛рдЧреВ рдХреА рдЧрдИ рд╣реИ?
http://stackoverflow.com/questions/33689781/casting-shadows-based-on-a-specific-light?noredirect=1#comment55153706_33689781

рдирд╣реАрдВ, рдЗрд╕реЗ рдЕрднреА рддрдХ рд▓рд╛рдЧреВ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдЖрдкрдХреЛ рдкрд░рддреЛрдВ рдХреЗ рд▓рд┐рдП рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░рдиреА рд╣реЛрдЧреА рдпрд╛ рдЖрдИрдЯреАрдЯреА рдореЗрдВ рд╕реВрдЪреАрдмрджреНрдз рд╕рдорд╛рдзрд╛рдиреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдЕрд▓рдЧ рджреГрд╢реНрдп)ред

+999999 рдлрд┐рд░ рд╕реЗ

рдпрд╣ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдмрд╣реБрдд рдорджрджрдЧрд╛рд░ рд╣реЛрдЧрд╛ред рдФрд░ рдЕрдм рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдкрд░рддреЗрдВ рдХрд╛рдо рдХрд░ рд░рд╣реА рд╣реИрдВ, рдЬреЛ рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рд╡рд╣реА рд╣реИ рдЬреЛ рдЗрд╕реЗ рдкрдХрдбрд╝ рд░рд╣рд╛ рд╣реИред рддреЛ, рдпрд╣рд╛рдБ рджреЛрд╕реНрддрд╛рдирд╛ рдЯрдХреНрдХрд░ рд╣реИред ;-)

@manthrax рдЗрд╕реЗ рдЬрд╛рдВрдЪреЗрдВ!

+999999 рдлрд┐рд░ рд╕реЗ

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

рдирдорд╕реНрддреЗ!
рдореБрдЭреЗ рдЗрд╕ рд╕реБрд╡рд┐рдзрд╛ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА, рдФрд░ рдореИрдВрдиреЗ рдЗрд╕реЗ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕реЛрдЪрд╛, рдХреНрдпреЛрдВрдХрд┐ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдореИрдВрдиреЗ рд╡рд╣ рд╕реНрдерд╛рди рдкрд╛рдпрд╛ рд╣реИ рдЬрд╣рд╛рдВ рдпрд╣ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ ( initMaterial рдореЗрдВ WebGLRenderer ) рдФрд░ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдмрд╣реБрдд рд╕реАрдзрд╛ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП рдореМрдЬреВрджрд╛ рдкрд░рддреЗрдВред

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

рдХреНрдпрд╛ рдпрд╣ рдкреНрд░рд╛рд╕рдВрдЧрд┐рдХ рд╣реЛрдЧрд╛?

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

рдЕрдкрдбреЗрдЯ рдХрд░реЗрдВ:

https://github.com/tiesselune/three.js/tree/selective-lighting

рдореИрдВ рдХрд╣реАрдВ рдкрд╣реБрдВрдЪ рд░рд╣рд╛ рд╣реВрдВред рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдирд╣реАрдВ рд╣реИ рдХрд┐ рдпрд╣ рдкреНрд░рджрд░реНрд╢рди рдХреЛ рдХреИрд╕реЗ рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд░ рд╕рдХрддрд╛ рд╣реИ рдпрд╛ рдореЗрд░реЗ рдХреЛрдб рдХреЛ рдкреВрд░реНрдг рдХреЗ рд▓рд┐рдП рдХреИрд╕реЗ рдЕрдиреБрдХреВрд▓рд┐рдд рдХрд░ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдореЗрд░реЗ рджреНрд╡рд╛рд░рд╛ рдХрд┐рдП рдЧрдП рдХреБрдЫ рдкрд░реАрдХреНрд╖рдгреЛрдВ рдкрд░ рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реИред рдкреНрд░рддрд┐ рдкрд░рдд рдкреНрд░рдХрд╛рд╢! рд╡рд╛рд╣!

рдореБрдЭреЗ рдЕрднреА рднреА рдХреБрдЫ рдФрд░ рдкрд░реАрдХреНрд╖рдг рдХрд░рдирд╛ рд╣реИ, рдФрд░ рдкреБрд▓ рдЕрдиреБрд░реЛрдз рд╕рдмрдорд┐рдЯ рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдПрдХ рдкреНрд░рд╛рд╕рдВрдЧрд┐рдХ рдЙрджрд╛рд╣рд░рдг рдмрдирд╛рдирд╛ рд╣реИред

рдЕрдкрдбреЗрдЯ рдХрд░реЗрдВ:

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

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

рдпрд╣рд╛рдВ рджреЛ рд╕рдорд╛рдзрд╛рди рджрд┐рдП рдЧрдП рд╣реИрдВ рдЬрд┐рдирдХрд╛ рдореИрдВ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ:

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

  2. рдореИрдВ рд╡рд╕реНрддреБ рдХреЗ рд╕реНрддрд░ рдХреЗ рдмрдЬрд╛рдп рднреМрддрд┐рдХ рд╕реНрддрд░ рдкрд░ рдкрд░рддреЗрдВ рдЬреЛрдбрд╝ рд╕рдХрддрд╛ рд╣реВрдВ (рдФрд░ рд░реЛрд╢рдиреА рдХреЗ рд▓рд┐рдП рд╕рдорд╛рдирд╛рдВрддрд░ рдкрд░рдд рдкреНрд░рдгрд╛рд▓реА рдмрдирд╛ рд╕рдХрддрд╛ рд╣реВрдВ) рддрд╛рдХрд┐ рд╡рд┐рднрд┐рдиреНрди рдкреНрд░рдХрд╛рд╢ рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╡рд┐рднрд┐рдиреНрди рд╕рд╛рдордЧреНрд░рд┐рдпреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЕрдирд┐рд╡рд╛рд░реНрдп рд╣реЛред рдЗрд╕рдХрд╛ рдорддрд▓рдм рдпрд╣ рд╣реЛрдЧрд╛ рдХрд┐ рджреГрд╢реНрдпрддрд╛ (рд╡рд╕реНрддреБрдУрдВ рдФрд░ рдХреИрдорд░реЛрдВ рдкрд░) рдХреЗ рд▓рд┐рдП рд╡рд░реНрддрдорд╛рди рдкрд░рдд рдкреНрд░рдгрд╛рд▓реА рд╣реЛрдЧреА рдФрд░ рдкреНрд░рдХрд╛рд╢ рд╡реНрдпрд╡рд╕реНрдерд╛ (рд╕рд╛рдордЧреНрд░реА рдФрд░ рд░реЛрд╢рдиреА рдкрд░) рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрд▓рдЧ рд╣реЛрдЧреАред

рддреБрдо рд▓реЛрдЧ рдХреНрдпрд╛ рд╕реЛрдЪрддреЗ рд╣реЛ?

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

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

рд╡реИрд╕реЗ, filterAmbiantLights рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП filterAmbientLights ред

рдЖрдк рдЧрд▓рдд рд╡рд░реНрддрдиреА рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕рд╣реА рд╣реИрдВред рдореИрдВрдиреЗ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╕рдм рдХреБрдЫ "рдкрд░рд┐рд╡реЗрд╢" рдХреЗ рд╕рд╛рде рд▓рд┐рдЦрд╛ рдерд╛ рдЗрд╕рд╕реЗ рдкрд╣рд▓реЗ рдХрд┐ рдпрд╣ рдЧрд▓рдд рдерд╛ рдФрд░ рдореИрдВ рдПрдХ рдШрдЯрдирд╛ рднреВрд▓ рдЧрдпрд╛ред рдореИрдВ

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдореИрдВ рддрдм рд╕рд╛рдордЧреНрд░реА рдкрд░ рдкрд░рдд рдХреА рдЬрд╛рдирдХрд╛рд░реА рд▓реЗ рдЬрд╛рдиреЗ рд╡рд╛рд▓рд╛ рд╣реВрдВред рдпрд╣ рдЬрд┐рд╕ рддрд░рд╣ рд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ рдЙрд╕рд╕реЗ рдЕрдзрд┐рдХ рдкреНрд░рд╛рд╕рдВрдЧрд┐рдХ рдФрд░ рд╕реБрд╕рдВрдЧрдд рд▓рдЧрддрд╛ рд╣реИред

рдкреНрд░рджрд░реНрд╢рди рдбреНрд░реЙрдк initMaterial (рдФрд░ рдлрд┐рд░ acquireProgram рдФрд░ getShaderParameter рдЬреЛ рдХрд┐рд╕реА рдХрд╛рд░рдг рд╕реЗ рдХрд╛рдлреА рдзреАрдорд╛ рд╣реИ) рд╕реЗ рдЖрдпрд╛ (рдФрд░ рдЕрднреА рднреА рдЖрддрд╛ рд╣реИ) рд╣рд░ рдлреНрд░реЗрдо рдХреЛ рдХрдИ рдмрд╛рд░ рдмреБрд▓рд╛рдпрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ lightHash рд╣рд░ рдмрд╛рд░ рдЕрд▓рдЧ рд╣реЛрдЧрд╛, material.needsUpdate рд╕реЗ true ред

рдмреАрдЯреАрдбрдмреНрд▓реНрдпреВ рдореИрдВ рдХреНрд░реЛрдо рдХреЗ рдкреНрд░реЛрдлрд╛рдЗрд▓рд┐рдВрдЧ рдЯреВрд▓реНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдВред (рд╕рдордпрд░реЗрдЦрд╛ рдФрд░ рдкреНрд░реЛрдлрд╛рдЗрд▓рд░)ред

рдпрд╣ рдореЗрд░реЗ рджреНрд╡рд╛рд░рд╛ рдареАрдХ рд╣реИ, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рд╕реНрдкрд╖реНрдЯ рдирд╣реАрдВ рд╣реИ рдХрд┐ acquireProgram рдХреЛ рд╣рд░ рд╕рдордп рдХреНрдпреЛрдВ рдЪрд▓рд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рдпрджрд┐ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдкреИрд░рд╛рдореАрдЯрд░ рдореЗрдВ рдкреНрд░рддреНрдпреЗрдХ рдкреНрд░рдХрд╛рд░ рдХреЗ рдкреНрд░рдХрд╛рд╢ рдХреА рд╕рдВрдЦреНрдпрд╛ рдЬреЛрдбрд╝ рджреА рдЬрд╛рддреА рд╣реИ, рддреЛ рдХреНрдпрд╛ рд╣рд░ рдмрд╛рд░ рд╢реЗрдбрд░ рдХреЛ рдкреБрди: рд╕рдВрдХрд▓рд┐рдд рдХрд░рдирд╛ рдЕрдирд╛рд╡рд╢реНрдпрдХ рдирд╣реАрдВ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП?

рдореБрдЭреЗ рдпрд╣ рднреА рдирд╣реАрдВ рдорд┐рд▓рд╛;

рдпрд╣рд╛рдВ рдХреЙрд▓ рд╕реНрдЯреИрдХ (рд╣рд░ рдлреНрд░реЗрдо рдкрд░) рдФрд░ рднрдпрд╛рдирдХ рдореЗрдореЛрд░реА рд▓реАрдХ рд╣реИ, рдпрджрд┐ рдЖрдк рдЗрдирд╕реЗ рдкрд░рд┐рдЪрд┐рдд рд╣реИрдВ, рддреЛ рдЗрд╕рд╕реЗ рдореБрдЭреЗ рдпрд╣ рд╕рдордЭрдиреЗ рдореЗрдВ рдорджрдж рдорд┐рд▓ рд╕рдХрддреА рд╣реИ рдХрд┐ рдХреНрдпрд╛ рдЧрд▓рдд рд╣реИред рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рд╣рд░ рдлреНрд░реЗрдо рдореЗрдВ рдирдпрд╛ WebGLProgram ...

threejscalltree

рд╢рд╛рдпрдж рдпрд╣ replaceLightNums рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдЬреЛ WebGLProgram рдХреЗ рдирд┐рд░реНрдорд╛рдг рдХреЗ рджреМрд░рд╛рди рд╡рд░реНрдЯреЗрдХреНрд╕/рдлрд╝реНрд░реИрдЧрдореЗрдВрдЯ рд╢реЗрдбрд░ рдХреЛрдб рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░рддрд╛ рд╣реИ, рдЬрд┐рд╕рд╕реЗ рдпрд╣ рдкреБрди: рд╕рдВрдХрд▓рд┐рдд рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ, рдпрд╛ рдпрд╣ рдПрдХ рдЕрд▓рдЧ рд╢реЗрдбрд░ рд╣реИ ...?

рд╕рдВрдкрд╛рджрд┐рдд рдХрд░реЗрдВ: рд╡реИрд╕реЗ рднреА, рднреМрддрд┐рдХ рд╕реНрддрд░ рдкрд░ рдкрд░рддреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╕реЗ рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╕рдорд╛рдзрд╛рди рдЕрдкреЗрдХреНрд╖рд┐рдд рд╣реЛрддрд╛ рд╣реИред рдореЗрд░реЗ рдкрд╛рд╕ рдХрд╣реАрдВ рди рдХрд╣реАрдВ рдПрдХ рд╕реНрдореГрддрд┐ рд░рд┐рд╕рд╛рд╡ рд╣реИ рдЬрд┐рд╕рдХреА рдореБрдЭреЗ рдЬрд╛рдВрдЪ рдХрд░рдиреА рдЪрд╛рд╣рд┐рдП рд▓реЗрдХрд┐рди рдЕрдиреНрдпрдерд╛ рдпрд╣ рдХрд╛рдлреА рдЕрдЪреНрдЫрд╛ рд▓рдЧрддрд╛ рд╣реИред

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

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

рдпрд╣ рдХрд╛рдлреА рд╕рд░рд▓ рд╣реИ, рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ:

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

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

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

рдЖрд╢рд╛ рд╣реИ рдХрд┐ рд╕реНрдкрд╖реНрдЯреАрдХрд░рдг рдХрд╛рдлреА рд╕рдордЭ рдореЗрдВ рдЖрдпрд╛ рдерд╛

рдореБрдЭреЗ рдЖрд╢реНрдЪрд░реНрдп рд╣реИ рдХрд┐ рдХреНрдпрд╛ рд╣рдо рд▓реЗрдпрд░ рдорд╛рд╕реНрдХ рдХреЛ рд╢реЗрдбрд░ (рдкреНрд░рддрд┐ рд╡рд╕реНрддреБ рдПрдХ рд╡рд░реНрджреА рдФрд░ рдкреНрд░рддрд┐ рдкреНрд░рдХрд╛рд╢ рдПрдХ рдФрд░ рд╡рд░реНрджреА) рдкрд╛рд╕ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рддрдм рд╣рдо рдпрд╣рд╛рдБ рдХреБрдЫ рдЗрд╕ рддрд░рд╣ рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВред

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

for ( int i = 0; i < NUM_POINT_LIGHTS; i ++ ) {

    pointLight = pointLights[ i ];
    pointLight.distance *= float( object.mask & pointlight.mask > 0.0 );

    ...

}

рдореЗрд╣, рдореБрдЭреЗ рдирд╣реАрдВ рд▓рдЧрддрд╛ рдХрд┐ рд╣рдо glsl рдореЗрдВ рдмрд┐рдЯрд╡рд╛рдЗрдЬрд╝ рдСрдкрд░реЗрд╢рди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ ...

рд╣рд╛рдВ, рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЬреАрдПрд▓рдПрд╕рдПрд▓ 1.30 рдореЗрдВ рдмрд┐рдЯрд╡рд╛рдЗрдЬ рд╕рдВрдЪрд╛рд▓рди рд╢реБрд░реВ рд╣реЛрддрд╛ рд╣реИ рдФрд░ рдорд╛рдирдХ рд╡реЗрдмрдЬреАрдПрд▓ 1.00 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред рдореИрдВ

рд╣рд╛рдп @mrdoob рдФрд░ @tiesselune ,

рдХреНрд░реЛрдо 56 рдФрд░ рдлрд╝рд╛рдпрд░рдлрд╝реЙрдХреНрд╕ 51 рдЕрднреА-рдЕрднреА рдЙрддрд░реЗ рд╣реИрдВ, рдЬрд┐рд╕рдХрд╛ рдЕрд░реНрде рд╣реИ рдХрд┐ рд╡реЗрдмрдЬреАрдПрд▓ 2.0 рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рд╕рдХреНрд╖рдо рд╣реИ (рд╡реЗрдмрдЬреАрдПрд▓ 2 рдУрдкрдирдЬреАрдПрд▓ рдИрдПрд╕ 3.0 рдпреБрдХреНрддрд┐ рдХрд╛ рдЕрдиреБрд╕рд░рдг рдХрд░рддрд╛ рд╣реИ)ред рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рдмрд┐рдЯ рд╕рдВрдЪрд╛рд▓рди (рдФрд░ 3 рдбреА рдмрдирд╛рд╡рдЯ рдЬреИрд╕реА рдЕрдиреНрдп рдЕрдЪреНрдЫреА рдЪреАрдЬреЗрдВ) рдЕрдм рдЙрдкрд▓рдмреНрдз рд╣реИрдВред рдореБрдЭреЗ рдирд╣реАрдВ рдкрддрд╛ рдХрд┐ рдереНрд░реА рдзреАрд░реЗ-рдзреАрд░реЗ рд╡реЗрдмрдЬреАрдПрд▓ 2.0 рдореЗрдВ рд╢рд┐рдлреНрдЯ рд╣реЛрдиреЗ рдХреА рддреИрдпрд╛рд░реА рдХрд░ рд░рд╣рд╛ рд╣реИ рдпрд╛ рдирд╣реАрдВ, рд▓реЗрдХрд┐рди рдореИрдВрдиреЗ рдереНрд░реА84.рдЬреЗрдПрд╕ рдХреА рдЕрдкрдиреА рдХреЙрдкреА рдореЗрдВ рдХреБрдЫ рдЕрдирд┐рд╡рд╛рд░реНрдп рдмрджрд▓рд╛рд╡ рдХрд┐рдП рд╣реИрдВ рдФрд░ рд╡реЗрдмрдЬреАрдПрд▓ 2.0 рдХреЛ рд╕рдХреНрд╖рдо рдХрд┐рдпрд╛ рд╣реИ, рдФрд░ рдЗрд╕реЗ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╢реЗрдбрд░ рдореЗрдВ рдереЛрдбрд╝рд╛ рдСрдкрд░реЗрд╢рди рдХрд┐рдпрд╛ рд╣реИред рдХрд╛рдо рдХрд┐рдпрд╛, рдФрд░ рдпрд╣ рдХрд┐рдпрд╛!
https://developers.google.com/web/updates/2017/01/nic56
https://developer.mozilla.org/en-US/Firefox/Releases/51

рдмрд╕ рдЖрдкрдХреЛ рдмрддрд╛рдирд╛ рдЪрд╛рд╣рддрд╛ рдерд╛ред рдорд╛рд╕реНрдХрд┐рдВрдЧ рд╡рд┐рдЪрд╛рд░ рдХреЗ рд▓рд┐рдП +1 :-)

рд╣рд╛рдп @erichlof ! WebGL2 рдХреЗ рд▓рд┐рдП рдпрд╣ рдмрд╣реБрдд рдЕрдЪреНрдЫреА рдЦрдмрд░ рд╣реИ; рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ WebGL2 рд░реЗрдВрдбрд░рд░ рд╢рд╛рдпрдж рдЕрдзрд┐рдХ рдХреБрд╢рд▓ рддрд░реАрдХреЗ рд╕реЗ рдорд╛рд╕реНрдХрд┐рдВрдЧ рд╕рдорд╕реНрдпрд╛рдУрдВ рд╕реЗ рдирд┐рдкрдЯрдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдЧрд╛ред

рд╡реИрд╕реЗ рднреА, рдЕрдм рддрдХ WebGL2 рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдмреНрд░рд╛рдЙрдЬрд╝рд░реЛрдВ рдХреЗ

рдлрд┐рд░ рд╕реЗ рдирдорд╕реНрдХрд╛рд░!

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

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

рдпрд╣рд╛рдБ рдПрдХ рд╕реНрдХреНрд░реАрдирд╢реЙрдЯ рд╣реИ:
shadowmap

рдЙрджрд╛рд╣рд░рдг рдХреЛ рдпрд╣рд╛рдВ рд▓рд╛рдЗрд╡ рджреЗрдЦрдирд╛ рд╕рдВрднрд╡ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП:

https://rawgit.com/tiesselune/three.js/selective-lighting/examples/webgl_lights_selective_lights.html

рд╣рд╛рд▓рд╛рдВрдХрд┐ рдореБрдЭреЗ рдПрдХ рддреНрд░реБрдЯрд┐ рдорд┐рд▓ рд░рд╣реА рд╣реИ:

Uncaught TypeError: Cannot read property 'set' of undefined
    at init (webgl_lights_selective_lights.html:117)
    at webgl_lights_selective_lights.html:67

@looeee : рдЖрдкрдХреЛ рд╕реНрдерд╛рдиреАрдп рд╣реЛрд╕реНрдЯ рдкрд░ npm run build-uglify рдЪрд▓рд╛рдирд╛ рд╣реЛрдЧрд╛ред рдореИрдВрдиреЗ рд╕реНрд╡реЗрдЪреНрдЫрд╛ рд╕реЗ рдорд░реНрдЬрд┐рдмрд┐рд▓рд┐рдЯреА рдЙрджреНрджреЗрд╢реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП рдЕрдкрдиреЗ рдХрдорд┐рдЯ рдореЗрдВ рдмрд┐рд▓реНрдб рд╢рд╛рдорд┐рд▓ рдирд╣реАрдВ рдХрд┐рдпрд╛ рд╣реИ ...

рдпрд╛ рдореБрдЭреЗ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП?

рд╕рдВрдкрд╛рджрд┐рдд рдХрд░реЗрдВ: рдпрд╣рд╛рдВ рдкрд░реАрдХреНрд╖рдг рдЙрджреНрджреЗрд╢реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрд▓рдЧ рд╢рд╛рдЦрд╛ рдкрд░ рдПрдХ рдХрд╛рд░реНрдпрд╢реАрд▓ рд▓рд┐рдВрдХ рд╣реИ: https://rawgit.com/tiesselune/three.js/selective-lights-test/examples/webgl_lights_selective_lights.html

рдЕрд░реЗ, рдореЗрд░реА рдУрд░ рд╕реЗ +999999ред рдЗрд╕реЗ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП (рдХрдо рд╕реЗ рдХрдо THREE.Layers )

$$('.comment-body').reduce((acc, el) => {
  let mat = el.textContent.match(/\+(\d+)/)
  let num = +(mat && mat[1] || 0)
  return acc + num
}, 0)
>> 1219997

рдореИрдВ

@mrdoob рдЙрдиреНрд╣реЛрдВрдиреЗ рдЗрд╕ рд╕реВрддреНрд░ рдореЗрдВ +Ns рдХреА рдЧрдгрдирд╛ рдХреА

рдмреАрдЯреАрдбрдмреНрд▓реНрдпреВ, +14570 рдЪрдпрдирд╛рддреНрдордХ рд░реЛрд╢рдиреА рдХреЗ рд▓рд┐рдП

рдпрд╣ рдареАрдХ рдЯреНрдпреВрдирд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рдЕрд╡рд┐рд╢реНрд╡рд╕рдиреАрдп рд░реВрдк рд╕реЗ рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛ рдХрд┐ рдкреНрд░рдХрд╛рд╢ рдЙрдЪреНрдЪ рдЕрдореВрд░реНрддрддрд╛ рдореЗрдВ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред

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

https://codepen.io/trusktr/pen/RjzKJx

рдПрдХрд▓-рдмрд┐рдВрджреБ-рдкреНрд░рдХрд╛рд╢ рдХреА рддрд░рд╣ рджрд┐рдЦрдиреЗ рд╡рд╛рд▓реЗ рдХреБрдЫ рдкреНрд░рднрд╛рд╡ рджреЛ рдпрд╛ рджреЛ рд╕реЗ рдЕрдзрд┐рдХ рд░реЛрд╢рдиреА рдХреЗ рд╕рдВрдпреЛрдЬрди рд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд┐рдП рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВ рдЬреЛ рдХреЗрд╡рд▓ рдХреБрдЫ рддрддреНрд╡реЛрдВ рдХреЛ рдЪреБрдирд┐рдВрджрд╛ рд░реВрдк рд╕реЗ рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд░ рд░рд╣реЗ рд╣реИрдВред

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

@WestLangley

рд╡рд░реНрдХрдЕрд░рд╛рдЙрдВрдб рдХреЗ рд░реВрдк рдореЗрдВ, рдХреНрдпрд╛ рдЖрдк рдкреНрд░рддреНрдпреЗрдХ рдХрдорд░реЗ (рдФрд░ рдЙрд╕рдХреА рд░реЛрд╢рдиреА) рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрд▓рдЧ рджреГрд╢реНрдп рдмрдирд╛рдХрд░ рдЕрдкрдиреА рдЕрдзрд┐рдХрд╛рдВрд╢ рдЖрд╡рд╢реНрдпрдХрддрд╛рдУрдВ рдХреЛ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ?

рдХреНрдпрд╛ рдЖрдкрдХреЗ рдкрд╛рд╕ рдЗрд╕ рддрд░рд╣ рдХреЗ рдХреБрдЫ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдПрдХ рд▓рд┐рдВрдХ рд╣реИ? рдХреНрдпрд╛ рдЗрд╕рдХреЗ рдкрд░рд┐рдгрд╛рдо рдкрд░ рдЕрдиреНрдп рдЕрдкреНрд░рддреНрдпрд╛рд╢рд┐рдд рдкреНрд░рддрд┐рдкрд╛рджрди рдкреНрд░рднрд╛рд╡ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ?

рдкрд░рд┐рдгрд╛рдо рдкрд░ рдЕрдиреНрдп рдЕрдкреНрд░рддреНрдпрд╛рд╢рд┐рдд рдкреНрд░рддрд┐рдкрд╛рджрди рдкреНрд░рднрд╛рд╡?

рдкрд╛рд░рджрд░реНрд╢реА рд╡рд╕реНрддреБрдУрдВ рдХрд╛ рдкреНрд░рддрд┐рдкрд╛рджрди рдХреНрд░рдо, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП - рджреГрд╢реНрдп 1 рдореЗрдВ рдкрд╛рд░рджрд░реНрд╢реА рд╡рд╕реНрддреБрдУрдВ рдХреЛ рджреГрд╢реНрдп 2 рдореЗрдВ рдЕрдкрд╛рд░рджрд░реНрд╢реА рд╡рд╕реНрддреБрдУрдВ рд╕реЗ рдкрд╣рд▓реЗ рдкреНрд░рд╕реНрддреБрдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред

рдХреНрдпрд╛ рдЖрдкрдХреЗ рдкрд╛рд╕ рдЗрд╕ рддрд░рд╣ рдХреЗ рдХреБрдЫ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдПрдХ рд▓рд┐рдВрдХ рд╣реИ?

рдпрд╣рд╛рдБ, рдореИрдВрдиреЗ рдЖрдкрдХреЗ рд▓рд┐рдП рдПрдХ рдмрдирд╛рдпрд╛ рд╣реИ: https://jsfiddle.net/f2Lommf5/524/

рдкрд╛рд░рджрд░реНрд╢реА рд╡рд╕реНрддреБрдУрдВ рдХрд╛ рдкреНрд░рддрд┐рдкрд╛рджрди рдХреНрд░рдо, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП - рджреГрд╢реНрдп 1 рдореЗрдВ рдкрд╛рд░рджрд░реНрд╢реА рд╡рд╕реНрддреБрдУрдВ рдХреЛ рджреГрд╢реНрдп 2 рдореЗрдВ рдЕрдкрд╛рд░рджрд░реНрд╢реА рд╡рд╕реНрддреБрдУрдВ рд╕реЗ рдкрд╣рд▓реЗ рдкреНрд░рд╕реНрддреБрдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред

рд╡рд╣реА рддреЛ рдореЗрдВ рд╕реЛрдЪ рд░рд╣рд╛ рдерд╛; рдпрд╣ рд╕рдорд╛рдзрд╛рди рдХреЛ рдмрд╣реБрдд рд╕реАрдорд┐рдд рдорд╛рдорд▓реЛрдВ рдХреЗ рд▓рд┐рдП рдХреЗрд╡рд▓ рдПрдХ рд╕рдорд╛рдзрд╛рди рдмрдирд╛рддрд╛ рд╣реИред рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╕рдорд╛рдзрд╛рди рдХреА рдкреНрд░рддреАрдХреНрд╖рд╛ рдореЗрдВ!

рдареАрдХ рд╣реИ, рдЖрдк рддрд░реНрдХ рджреЗ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рд╕рдорд╕реНрдпрд╛ рдХреЗрд╡рд▓ рддрднреА рд╣реЛрдЧреА рдЬрдм рдЖрдк рджреГрд╢реНрдп 1 рдЧрд░реНрдд рд╕реЗ рджреГрд╢реНрдп 2 рдХреА рдЕрдкрд╛рд░рджрд░реНрд╢реА рд╡рд╕реНрддреБрдУрдВ рдХреЛ рдкрд╛рд░рджрд░реНрд╢реА рд╡рд╕реНрддреБрдУрдВ рдХреЛ рджреЗрдЦ рд╕рдХреЗрдВред рд▓реЗрдХрд┐рди рдЕрдЧрд░ рдРрд╕рд╛ рд╣реИ, рддреЛ рд░реЛрд╢рдиреА рднреА рдЧреБрдЬрд░рдиреА рдЪрд╛рд╣рд┐рдП, рдФрд░ рджреГрд╢реНрдпреЛрдВ рдХреЛ рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрд▓рдЧ рдХрд░рдиреЗ рдХрд╛ рдХреЛрдИ рдХрд╛рд░рдг рдирд╣реАрдВ рд╣реЛрдЧрд╛ред рд▓реЗрдХрд┐рди рдореИрдВ рдорд╛рдирддрд╛ рд╣реВрдВ рдХрд┐ рдЗрд╕ рддрд░рд╣ рдХрд╛ рддрд░реНрдХ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЖрд╢реНрд╡рд╕реНрдд рдХрд░рдиреЗ рд╡рд╛рд▓рд╛ рдирд╣реАрдВ рд╣реИред

@makc рдпрд╣рд╛рдБ рдЙрд╕ рд╕рдорд╕реНрдпрд╛ рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рд╣реИ рдЬрд┐рд╕реЗ рдореИрдВ рд╣рд▓ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░ рд░рд╣рд╛ рд╣реВрдБ:

https://discourse.threejs.org/t/how-to-make-shadows-darker-on-transparent-objects/1389

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЪрдпрдирд╛рддреНрдордХ рдкреНрд░рдХрд╛рд╢ рд╡реНрдпрд╡рд╕реНрдерд╛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЗрд╕рдореЗрдВ рдорджрдж рдХрд░реЗрдЧреАред

@trusktr рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЖрдк mrdoob рдХреА рдЫрд╛рдпрд╛ рд╕рд╛рдордЧреНрд░реА рдХреЛ рдмрджрд▓рдХрд░ рдЗрд╕реЗ рд╣рд▓ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдпрд╣ рд╕рд┐рд░реНрдл рдХрд╛рд▓реЗ-рд╕рдлреЗрдж рдЫрд╛рдпрд╛ рдмрдирд╛рд╡рдЯ рджрд┐рдЦрд╛рддрд╛ рд╣реИ, рдФрд░ рдЖрдк рдЗрд╕реЗ рдЖрд╡рд╢реНрдпрдХрддрд╛рдиреБрд╕рд╛рд░ рдкрд╛рд░рджрд░реНрд╢реА рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ

рдЪреБрдирд┐рдВрджрд╛ рдкреНрд░рдХрд╛рд╢ рд╡реНрдпрд╡рд╕реНрдерд╛ рдХреЗ рд▓рд┐рдП PlayCanvas рдореЗрдВ рдорд╛рд╕реНрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЖрд╕рд╛рди рд▓рдЧрддрд╛ рд╣реИ: https://forum.playcanvas.com/t/set-certain-object-to-not-receive-light/785ред

рдХреНрдпрд╛ рд╣рдо рдЗрд╕рдореЗрдВ рд╡рд┐рд▓рдп рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ? рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд▓реИрдореНрдмрд░реНрдЯ рд╢реЗрдбрд░ рдХреЗ рдХрд╛рд░рдг рдЫрд╛рдпрд╛ рдХреА рд╕рдорд╕реНрдпрд╛ рдХреЛрдб рдореЗрдВ рдмрджрд▓рд╛рд╡ рд╕реЗ рдХреЛрдИ рд▓реЗрдирд╛-рджреЗрдирд╛ рдирд╣реАрдВ рдерд╛ред @tieselune

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

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

@tiesselune рдореБрдЭреЗ рдЗрд╕реЗ рдПрдХ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдореЗрдВ рд▓рд╛рдиреЗ рдХреА рдЬрд╝рд░реВрд░рдд рдереА рдЗрд╕рд▓рд┐рдП рдореИрдВрдиреЗ рдЖрдЧреЗ рдмрдврд╝рдХрд░ рдЖрдкрдХреЗ рдХреЛрдб рдХреЛ v93 рдкрд░ рдкреЛрд░реНрдЯ рдХрд░ рджрд┐рдпрд╛: https://github.com/ErikBehar/three.js/tree/selectiveLights

рдЕрдЧрд░ рддреБрдо рд▓реЛрдЧ рдЪрд╛рд╣реЛ рддреЛ рдореИрдВ рдкреАрдЖрд░ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдБ ? @mrdoob

@ErikBehar рд╡реИрд╕реЗ рддреЛ рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдореИрдВ рдХреНрдпрд╛ рд▓рдХреНрд╖реНрдп рдмрдирд╛ рд░рд╣рд╛ рдерд╛ рд▓реЗрдХрд┐рди рдореЗрд░реЗ рдкрд╛рд╕ рдЗрд╕реЗ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдХрд░рдиреЗ рдХрд╛ рд╕рдордп рдирд╣реАрдВ рдерд╛ред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдореИрдВ WebGLRenderer рд╕реЗ рдлрд╝рд┐рд▓реНрдЯрд░рд┐рдВрдЧ/рд╣реИрд╢ рдлрд╝рдВрдХреНрд╢рдВрд╕ рдХреЛ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░ рджреЗрддрд╛ рдФрд░ рдЙрдиреНрд╣реЗрдВ WebGLLights рд╕реНрдЯреЗрдЯ рдСрдмреНрдЬреЗрдХреНрдЯ рдореЗрдВ рдЬреЛрдбрд╝ рджреЗрддрд╛ред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╡реЗ рдЕрдм рд╡рд╣рд╛рдВ рд╣реИрдВ, рдкрд░рдд рдкреНрд░рдгрд╛рд▓реА рд░рд╛рдЬреНрдп рдХрд╛ рд╣рд┐рд╕реНрд╕рд╛ рд╣реИ рдФрд░ рд░реЗрдВрдбрд░рд░ рдХрд╛ рд╣рд┐рд╕реНрд╕рд╛ рдирд╣реАрдВ рд╣реИред

@ErikBehar рдПрдХ рдкреАрдЖрд░ рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛!

@tiesselune рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рд╕реБрдЭрд╛рд╡ рджреЗрддреЗ рд╣реИрдВ, рдореИрдВ рдЗрд╕реЗ рдЖрдЧреЗ рдмрдврд╝рдиреЗ рдореЗрдВ рд▓реЛрд▓ =] рдкрд░ рдкреАрдЖрд░ рдХреЛ рдзрдХреНрдХрд╛ рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рд╕реНрд╡рддрдВрддреНрд░ рдорд╣рд╕реВрд╕ рдХрд░реВрдВрдЧрд╛ рдФрд░ рдореИрдВ рдЬрд▓реНрдж рд╣реА рдкреАрдЖрд░ рдкреЛрд╕реНрдЯ

рдЗрд╕ рдкрд░ рдХреНрдпрд╛ рд╕реНрдерд┐рддрд┐ рд╣реИ? рдореИрдВрдиреЗ r94dev рдХреЛрдб рдХреЛ @ErikBehar рд╕реЗ @tiesselune рдЕрдЧрд░ рдЖрдк рдореБрдЭреЗ рдХреБрдЫ рд╡рд┐рдЪрд╛рд░ рджреЗ рд╕рдХрддреЗ рд╣реИрдВ рдЬрд╣рд╛рдВ рдЖрдк рдЪреБрдирд┐рдВрджрд╛ рдкреНрд░рдХрд╛рд╢ рд╡реНрдпрд╡рд╕реНрдерд╛ рдХреЛ рдЬрд╛рдиреЗ рдХрд╛ рдЗрд░рд╛рджрд╛ рд░рдЦрддреЗ рд╣реИрдВ, рддреЛ рдореБрдЭреЗ рдЗрд╕реЗ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рдиреЗ, рдкрд░реАрдХреНрд╖рдг рдХрд░рдиреЗ рдФрд░ рдкреАрдЖрд░ рдбрд╛рд▓рдиреЗ рдореЗрдВ рдЦреБрд╢реА рд╣реЛрдЧреАред

рд╕рдВрдкрд╛рджрд┐рдд рдХрд░реЗрдВ:
рдереЛрдбрд╝реА рджреЗрд░ рдмрд╛рдж: рдореИрдВ рджреЗрдЦрддрд╛ рд╣реВрдВ рдХрд┐ рдЗрд╕реЗ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рдХрд╛рдо рдХреА рдЬрд░реВрд░рдд рд╣реИ, рдЕрдм, рдирдП рд▓рд╛рдЗрдЯрд╣реИрд╢ рдХреЗ рд╕рд╛рдеред

@VaelynPhi рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐, рдЪрд╛рд╣реЗ рд╡реЗ @ErikBehar рдХреЗ рдХреЛрдб рдХреЛ рд╕реНрд╡реАрдХрд╛рд░ рдХрд░рдиреЗ рдХреЗ рдЗрдЪреНрдЫреБрдХ рд╣реЛрдВ рдпрд╛ рдирд╣реАрдВ, рдкреАрдЖрд░ рдЬрдорд╛ рдХрд░рдирд╛ рдЕрдЪреНрдЫрд╛ рд╡рд┐рдЪрд╛рд░ рд╣реИ, рдмрд╕ рдкреБрд░рд╛рдиреЗ рдХреЛ рдмрджрд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдпрджрд┐ рдЕрдиреНрдп рд▓реЛрдЧ рдЗрд╕реЗ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рдЬреИрд╕реЗ рдЖрдк рд╕реНрд╡рдпрдВ рдХрд┐рдпрд╛

рдЗрд╕ рдкрд░ рдЧреЗрдВрдж рдЧрд┐рд░рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХреНрд╖рдорд╛ рдХрд░реЗрдВ = / ... @VaelynPhi рдХреНрдпрд╛ рдЖрдк рдЕрдкрдирд╛ рдХрд╛рдВрдЯрд╛ / рд╢рд╛рдЦрд╛ рдкреЛрд╕реНрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ?

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

рдЗрд╕рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдПрдХ рдкреАрдЖрд░ рдЬреЛрдбрд╝рд╛ рдЧрдпрд╛:
https://github.com/ErikBehar/three.js/commit/ac0499b70b82bc7bb780100a8372fcdf318d1424#diff -5e43a0b5002eb2c419def3baf67d4e67
рджреНрд╡рд╛рд░рд╛ @ErikBehar
рдХреНрдпрд╛ рдХреЛрдИ рдХреБрдЫ рд╕рдореАрдХреНрд╖рд╛ рдФрд░ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд╕рд╛рде рд╣рд╛рде рджреЗ рд╕рдХрддрд╛ рд╣реИ?

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

рдЕрд░реЗ рджреЛрд╕реНрддреЛрдВ, рдЗрд╕ рдкрд░ рдХреНрдпрд╛ рд╕реНрдерд┐рддрд┐ рд╣реИ? @tiesselune @ErikBehar рдХреНрдпрд╛ рдореИрдВ рдЖрдкрдХреА рдХреБрдЫ рдорджрдж рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ? рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛ рдХрд┐ 4 рд╕рд╛рд▓ рдмрд╛рдж рдЖрдЦрд┐рд░рдХрд╛рд░ рдЗрд╕реЗ рд▓рд╛рдЧреВ рдХрд░ рджрд┐рдпрд╛ рдЬрд╛рдП

@flyrell рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╣рдо рд╢рд╛рдпрдж рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рдмрдВрдж рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдХреНрдпреЛрдВрдХрд┐ рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ # 15223 рдореЗрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ?

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

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

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

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

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

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

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