Three.js: MeshLambertMaterial рдХреЗ рд╕рд╛рде рдХрд╕реНрдЯрдо рд╡рд░реНрдЯреЗрдХреНрд╕ рд╢реЗрдбрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛?

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

рдирдорд╕реНрддреЗ, рдореИрдВ рдХрд┐рд╕реА рдкреНрд░рдХрд╛рд░ рдХреЗ рдХрд╕реНрдЯрдо shader рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ, рд▓реЗрдХрд┐рди рдореИрдВ рдХреЗрд╡рд▓ рд╢реАрд░реНрд╖ рд╕реНрдерд┐рддрд┐ рдХреЛ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рди рдХрд┐ рд╕рд╛рдордЧреНрд░реА рдХреЛред MeshLambert рдореЗрдВ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдкреНрд░рдХрд╛рд╢, рдмрдирд╛рд╡рдЯ рдФрд░ рдореЗрд░реА рдЬрд╝рд░реВрд░рдд рдХреА рд╣рд░ рдЪреАрдЬрд╝ рд╣реИ, рд▓реЗрдХрд┐рди рдореИрдВ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░рддрд╛ рд╣реВрдБ рдХрд┐ рд╢реАрд░реНрд╖ рд╡рд╕реНрддреБ рдХреЛ рдПрдХ рдХрд╛рд░реНрдмрдирд┐рдХ рд░реВрдк рджреЗрдВред

рдХреЛрдИ рдореБрдЭреЗ рдПрдХ рджрд┐рд╢рд╛ рджреЗ рд╕рдХрддрд╛ рд╣реИ?

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

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

@maurrubio рдиреЗ рдЕрдкрдирд╛ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдЦрддреНрдо рдХрд┐рдпрд╛: рдЖрдБрдЦреЗрдВ:

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

рдХреЛрдИ рд╡реНрдпрдХреНрддрд┐?

рд╕рдмрд╕реЗ рдЖрд╕рд╛рди рдХрд╕реНрдЯрдо ShaderMaterial рдмрдирд╛рдирд╛ рд╣реЛрдЧрд╛ рдЬреЛ рд▓реИрдВрдмрд░реНрдЯ рдХреА рддрд░рд╣ рд╣реЛрдЧрд╛, рдмрд╕ рдЕрдкрдиреЗ рдХрд╕реНрдЯрдо рдХреЛрдб рдХреЛ рд╡рд░реНрдЯреЗрдХрд░ shader рдореЗрдВ рдЬреЛрдбрд╝рдирд╛ рд╣реЛрдЧрд╛ред

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

https://github.com/mrdoob/three.js/blob/master/src/renderers/WebGLShaders.js#L1187

рд╣рд╛рдп @ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж рдзрдиреНрдпрд╡рд╛рджред

рдпрд╣ рд╡рд╣реА рд╣реИ рдЬрд┐рд╕реЗ рдЖрдкрдиреЗ рд░реЗрдлрд░реА рдХрд┐рдпрд╛ рд╣реИ?
http://www.interactiveuniverse.net/Shaders.js

рдореИрдВ рдЙрди рд╕рд░рдгрд┐рдпреЛрдВ рд╕реЗ рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕ рдмрдирд╛ рд░рд╣рд╛ рд╣реВрдВ рдЬреЛ рд▓реИрдореНрдмрд░реНрдЯ рд╢реЗрдбрд░ рдореЗрдВ рдкреНрд░рджрд╛рди рдХрд┐рдП рдЧрдП рд╣реИрдВ рдФрд░ рдЙрдиреНрд╣реЗрдВ рдПрдХ рдирдП ShaderMaterial рдЙрджрд╛рд╣рд░рдг рдореЗрдВ рдкрд╛рд╕ рдХрд░ рд░рд╣реЗ рд╣реИрдВред

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

рд▓рдЧрднрдЧ рд╡рд╣рд╛рдБ рдкрд╣реБрдБрдЪ рдЧрдпрд╛ ;)

рдорд╛рдирдХ рд╕рд╛рдордЧреНрд░рд┐рдпреЛрдВ рд╕реЗ ShaderMaterial рдореЗрдВ рдХрд╛рдо рдХрд░рдиреЗ рдХреА рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдЖрдкрдХреЛ рд╕рд╛рдордЧреНрд░реА рдХреЗ рдЭрдВрдбреЗ (рд░реЛрд╢рдиреА, рдХреЛрд╣рд░рд╛, рдЖрджрд┐) рд╕реЗрдЯ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ:

https://github.com/mrdoob/three.js/blob/master/src/materials/ShaderMaterial.js#L40

shaderMaterial = new THREE.ShaderMaterial( {

    uniforms:       uniforms,
    vertexShader:   vertexShader,
    fragmentShader: fragmentShader,
    lights:         true
    }); 

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

рдмрд╕ рдПрдХ рдЖрдЦрд┐рд░реА рд╕рд╡рд╛рд▓ @alteredq рдХрд░рдиреЗ рдХрд╛ рдЙрджреНрджреЗрд╢реНрдп рдЙрд╕ рд╡рд╕реНрддреБ рдореЗрдВ рдПрдХ рдкрд░реНрдпрд╛рд╡рд░рдг рдорд╛рдирдЪрд┐рддреНрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рднреА рдХрд░ рд░рд╣рд╛ рдерд╛ рддрд╛рдХрд┐ рдореИрдВ рдЗрд╕реЗ рдПрдХ рдмрдирд╛рд╡рдЯ рджреЗ

рд╣рдореНрдоред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдЙрдЪрд┐рдд рд╡рд░реНрджреА ( envMap ) рд╕реЗрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП рдФрд░ рдпрд╣ рднреА рдХрд┐ рдЖрдкрдХреЛ рд╡рд░реНрдЯреЗрдХреНрд╕ рдФрд░ рдЯреБрдХрдбрд╝рд╛ рджреЛрдиреЛрдВ рдХреЗ рд╢реАрд░реНрд╖ рдкрд░ рдХрд╣реАрдВ рди рдХрд╣реАрдВ рдЪрд┐рдкрдХрд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА #define USE_ENVMAP ред

uniforms[ "envMap" ].texture = myCubeTexture;
vertexShader= [

"#define USE_ENVMAP",

"varying vec3 vLightWeighting;",

THREE.ShaderChunk[ "map_pars_vertex" ],
THREE.ShaderChunk[ "lightmap_pars_vertex" ],

...
fragmentShader = [

"#define USE_ENVMAP",

"uniform float opacity;",

...

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

рдпрд╣ рдХрд╛рдо рдХрд┐рдпрд╛: рдбреА

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

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

рдлрд┐рд░ рд╕реЗ рдзрдиреНрдпрд╡рд╛рдж!

@maurrubio рдиреЗ рдЕрдкрдирд╛ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдЦрддреНрдо рдХрд┐рдпрд╛: рдЖрдБрдЦреЗрдВ:

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

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

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

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

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

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

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