Three.js: рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХреНрд▓рд┐рдк рд╡рд┐рдорд╛рди

рдХреЛ рдирд┐рд░реНрдорд┐рдд 13 рдЕрдХреНрддреВре░ 2011  ┬╖  5рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: mrdoob/three.js

рдореИрдВ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХреНрд▓рд┐рдкрд┐рдВрдЧ рд╡рд┐рдорд╛рдиреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВред
OpenGL рдореЗрдВ рдореИрдВ рдЙрдкрдпреЛрдЧ рдХрд░реВрдВрдЧрд╛:

glClipPlane(GL_CLIP_PLANE0, planeEq);
glEnable(GL_CLIP_PLANE0);

рдореИрдВ рд╡реЗрдмрдЧреЗрд▓ рдХреЗ рд╕рд╛рде рднреА рдРрд╕рд╛ рдХреИрд╕реЗ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ?

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

рд╣реЗ рдмрд╣реБрдд рдзрдиреНрдпрд╡рд╛рдж рджреЛрд╕реНрддреЛрдВ !!

рдЖрдкрдХреЗ рд╕реБрдЭрд╛рд╡реЛрдВ рдиреЗ рдореБрдЭреЗ рд╕рдорд╕реНрдпрд╛ рдкрд░ рдкреБрдирд░реНрд╡рд┐рдЪрд╛рд░ рдХрд░ рджрд┐рдпрд╛, рдФрд░ рдореИрдВрдиреЗ рджреЗрдЦрд╛ рдХрд┐ рдХреЛрдИ 'рд╕рд╛рдорд╛рдиреНрдп' рдЕрдВрддрд░рд╛рд▓ рдирд╣реАрдВ рдерд╛, рд▓реЗрдХрд┐рди рдХреЗрд╡рд▓ рдЯрд┐рдордЯрд┐рдорд╛рддрд╛ рд╣реБрдЖ рдЬрдм рдирд┐рдХрдЯ рдХреНрд▓рд┐рдк рдкреНрд▓реЗрди рдмрджрд▓рддрд╛ рд╣реИ (рджрд░реНрдкрдг рдХреА рд╕реНрдерд┐рддрд┐ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рджрд░реНрдкрдг рд╕реНрдерд┐рддрд┐)ред

рддреЛ, рдЖрдк рд▓рдЧрднрдЧ рд╡рд╣рд╛рдБ рдереЗ @WestLangley : рдпрд╣ рдорд┐рд░рд░ рдХрд┐рдП рдЧрдП рдХреИрдорд░реЗ рдХреЗ

рдкрд░рд┐рдгрд╛рдо: рдХреЛрдИ рдФрд░ рдЕрдзрд┐рдХ 'рдЕрдВрддрд░рд╛рд▓': http://jsfiddle.net/slayvin/PT32b/2/ : рд╕реНрдорд╛рдЗрд▓реА:

рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рд╣рдо рдЗрд╕реЗ рдЕрдореВрд░реНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рд╣рд╛рдВ, рдореИрдВрдиреЗ рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕реЛрдЪрд╛ рд╣реИред new THREE.mirror() рд╣реЛрдирд╛ рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛ рдЬреЛ рд╕рдм рдХреБрдЫ рд╕рдВрднрд╛рд▓рддрд╛ рд╣реИред рдореИрдВ рдХреБрдЫ рдХреЛрдб рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реВрдВрдЧрд╛ ...

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

рдЖрдкрдХреЛ renderer.context рд╕рд╛рде WebGL рд╕рдВрджрд░реНрдн рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред
рд╡рд╣рд╛рдБ рд╕реЗ рдпрд╣ рдЖрдкрдХреЗ рд▓рд┐рдП рдФрд░ WebGL рдпреБрдХреНрддрд┐ рд╣реИ :)

рдореИрдВрдиреЗ рд╣рд╛рд▓ рд╣реА рдореЗрдВ рдПрдХ рд╣реА рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░рддреЗ рд╣реБрдП рдЪрд┐рдВрддрдирд╢реАрд▓ рд╕рдкрд╛рдЯ рд╕рддрд╣реЛрдВ (рдЙрд░реНрдл 'рджрд░реНрдкрдг': рдореБрд╕реНрдХрд╛рди:) рдХреЛ рддреАрди.рдЬреЗрдПрд╕ рдореЗрдВ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛
рдЬрд╣рд╛рдВ рддрдХ тАЛтАЛрдореБрдЭреЗ рдкрддрд╛ рд╣реИ, рдЖрдкрдХреЗ рдкрд╛рд╕ WebGL рдХреЗ рд╕рд╛рде рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рджреНрд╡рд╛рд░рд╛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХреНрд▓рд┐рдкрд┐рдВрдЧ рдкреНрд▓реЗрди рдирд╣реАрдВ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ, рдХрдо рд╕реЗ рдХрдо рдЖрдкрдХреЗ рджреНрд╡рд╛рд░рд╛ рд╡рд░реНрдгрд┐рдд 'рд╕рд░рд▓' рдУрдкрдирдЧреИрд▓ рдХреЗ рд╕рд╛рде рдирд╣реАрдВред
рдЯреНрд░рд┐рдХ "рдУрдмреНрд▓рд┐рдХ рд╡реНрдпреВ рдлреНрд░рд╕реНрдЯрдо" рд╡рд┐рдзрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╣реИ, рдЬрд┐рд╕реЗ рдЗрд╕ рдкреЗрдкрд░ рдореЗрдВ рд╕рдордЭрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ: http://www.terathon.com/lengyel/Lengyel-Oblique.pdf
рдЗрд╕ рд╡рд┐рдзрд┐ рдХрд╛ рдЙрджреНрджреЗрд╢реНрдп рдкрд░рд╛рд╡рд░реНрддрдХ рд╕рддрд╣ рджреНрд╡рд╛рд░рд╛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рд╡рд┐рдорд╛рди рджреНрд╡рд╛рд░рд╛ рдЖрдкрдХреЗ рдкреНрд░рддрд┐рдмрд┐рдВрдмрд┐рдд рдХреИрдорд░рд╛ рдлреНрд░реБрдо рдХреЗ рдирд┐рдХрдЯ рдХреНрд▓рд┐рдк рдкреНрд▓реЗрди рдХреЛ рдмрджрд▓рдирд╛ рд╣реИред
рдпрд╣рд╛рдБ рддрдХ рдХрд┐ рдХреБрдЫ рд╕реНрд░реЛрдд рдХреЛрдб рднреА рдЙрдкрд▓рдмреНрдз рд╣реИрдВ (C ++ рдореЗрдВ): http://www.terathon.com/code/oblique.html

рдореИрдВрдиреЗ рд╕рдлрд▓рддрд╛рдкреВрд░реНрд╡рдХ рдЙрд╕ рдкрджреНрдзрддрд┐ рдХреЛ рддреАрди.js рдореЗрдВ рдкреЛрд░реНрдЯ рдХрд░ рд▓рд┐рдпрд╛ рд╣реИ рдФрд░ рдпрд╣рд╛рдБ рдЗрд╕ рд▓рд╛рдЗрд╡ рдХреЛ рджрд┐рдЦрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдирдореВрдирд╛ рджреГрд╢реНрдп рд╣реИ: http://jsfiddle.net/slayvin/PT32b/

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

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

Mmmhh ... рдореИрдВрдиреЗ scene.autoUpdate рд╕реЗ false рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд┐рдпрд╛ рд╣реИ рдФрд░ рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╣рд╛рде рд╕реЗ scene.updateMatrixWorld() рдХреЙрд▓ рдХрд┐рдпрд╛ рд╣реИ рдХрд┐ рд╕рднреА рд░реЗрдВрдбрд░рд░реНрд╕ рдХреЗ рдкрд╛рд╕ рдПрдХ рд╣реА рд╕рд╛рдорд╛рди рдерд╛, рд▓реЗрдХрд┐рди рдХреБрдЫ рднреА рд╣рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░рддреАрдд рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИ ... рд╡рд╣рд╛рдБ рд╕реЗ рд░реЛрдЯреЗрд╢рди рдирд┐рдХрд╛рд▓рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рди рддреЛ mirror.updateMatrix() рдХреЙрд▓ рдХрд░рдирд╛ ...

рд╣рд╛рд▓рд╛рдВрдХрд┐ рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛! рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рд╣рдо рдЗрд╕реЗ рдЕрдореВрд░реНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рдорд┐рдард╛рдИред

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

mirror.updateMatrixWorld();

camera.updateMatrixWorld();

camera.matrixWorldInverse.getInverse( camera.matrixWorld );

рд╣реЗ рдмрд╣реБрдд рдзрдиреНрдпрд╡рд╛рдж рджреЛрд╕реНрддреЛрдВ !!

рдЖрдкрдХреЗ рд╕реБрдЭрд╛рд╡реЛрдВ рдиреЗ рдореБрдЭреЗ рд╕рдорд╕реНрдпрд╛ рдкрд░ рдкреБрдирд░реНрд╡рд┐рдЪрд╛рд░ рдХрд░ рджрд┐рдпрд╛, рдФрд░ рдореИрдВрдиреЗ рджреЗрдЦрд╛ рдХрд┐ рдХреЛрдИ 'рд╕рд╛рдорд╛рдиреНрдп' рдЕрдВрддрд░рд╛рд▓ рдирд╣реАрдВ рдерд╛, рд▓реЗрдХрд┐рди рдХреЗрд╡рд▓ рдЯрд┐рдордЯрд┐рдорд╛рддрд╛ рд╣реБрдЖ рдЬрдм рдирд┐рдХрдЯ рдХреНрд▓рд┐рдк рдкреНрд▓реЗрди рдмрджрд▓рддрд╛ рд╣реИ (рджрд░реНрдкрдг рдХреА рд╕реНрдерд┐рддрд┐ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рджрд░реНрдкрдг рд╕реНрдерд┐рддрд┐)ред

рддреЛ, рдЖрдк рд▓рдЧрднрдЧ рд╡рд╣рд╛рдБ рдереЗ @WestLangley : рдпрд╣ рдорд┐рд░рд░ рдХрд┐рдП рдЧрдП рдХреИрдорд░реЗ рдХреЗ

рдкрд░рд┐рдгрд╛рдо: рдХреЛрдИ рдФрд░ рдЕрдзрд┐рдХ 'рдЕрдВрддрд░рд╛рд▓': http://jsfiddle.net/slayvin/PT32b/2/ : рд╕реНрдорд╛рдЗрд▓реА:

рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рд╣рдо рдЗрд╕реЗ рдЕрдореВрд░реНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рд╣рд╛рдВ, рдореИрдВрдиреЗ рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕реЛрдЪрд╛ рд╣реИред new THREE.mirror() рд╣реЛрдирд╛ рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛ рдЬреЛ рд╕рдм рдХреБрдЫ рд╕рдВрднрд╛рд▓рддрд╛ рд╣реИред рдореИрдВ рдХреБрдЫ рдХреЛрдб рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реВрдВрдЧрд╛ ...

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

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

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

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

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

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

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