Qt Quick3D рдХрд╛ рдкрд░рд┐рдЪрдп

рдпрд╣ рдкреЛрд╕реНрдЯ "рд╕реНрдорд╛рд░реНрдЯ рдлреЛрди рдлреЙрд░ рд╕реНрдорд╛рд░реНрдЯ рдкреЛрд╕реНрдЯ" рдкреНрд░рддрд┐рдпреЛрдЧрд┐рддрд╛ рдореЗрдВ рднрд╛рдЧ рд▓реЗрддреА рд╣реИ
рдмрд╣реБрдд рд╕рдордп рдкрд╣рд▓реЗ рдирд╣реАрдВ, рдХреНрдпреВрдЯреА рдХреНрд╡рд┐рдХ рдлреНрд░реЗрдорд╡рд░реНрдХ рдиреЗ рдХреНрдпреВрдЯреА рдХреНрд╡рд┐рдХ 3 рдбреА рдПрдб-рдСрди рдХрд╛ рдЕрдзрд┐рдЧреНрд░рд╣рдг рдХрд┐рдпрд╛, рдЬреЛ рдЖрдкрдХреЛ 3 рдбреА рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕ (3 рдбреА рдореИрдХреНрд╕ рдФрд░ рдмреНрд▓реЗрдВрдбрд░ рд╕реЗ рдЖрдпрд╛рдд рд╕рдорд░реНрдерд┐рдд рд╣реИ) рдХреЗ рд╕рд╛рде рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдХрд╛рдо рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ, рдЙрди рдкрд░ рд╡рд┐рднрд┐рдиреНрди рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ, рдПрдирд┐рдореЗрд╢рди рд▓рд╛рдЧреВ рдХрд░рддреЗ рд╣реИрдВ, рдкреНрд░рднрд╛рд╡ рд▓рд╛рдЧреВ рдХрд░рддреЗ рд╣реИрдВ, рдФрд░ рдЖрдорддреМрд░ рдкрд░ рдУрдкрдирдЬреАрдПрд▓ рдХреА рдХреНрд╖рдорддрд╛рдУрдВ рдХрд╛ рдкреВрд░рд╛ рдлрд╛рдпрджрд╛ рдЙрдард╛рддреЗ рд╣реИрдВред рдпрд╣ рд╕рдм рд╕рд┐рдореНрдмрд┐рдпрди, MeeGo, Windows \ Linux \ MacOs (рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ, рдФрд░ рдЖрдо рддреМрд░ рдкрд░ рдЬрд╣рд╛рдБ рднреА Qt рд╣реИ) рдХреЗ рддрд╣рдд рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред рдЗрд╕ рд╡рд┐рд╖рдп рдореЗрдВ, рд╣рдо "рджрд╛рдВрдд рдкрд░" рддрдХрдиреАрдХ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВрдЧреЗред рдореИрдВ рдХреБрдЫ рдЬрдЯрд┐рд▓ рдФрд░ рдЧрдВрднреАрд░ рд▓рд┐рдЦрдирд╛ рдирд╣реАрдВ рдЪрд╛рд╣рддрд╛, рдЗрд╕рд▓рд┐рдП рд╣рдо рдПрдХ рдлреНрд░реАрдЬрд╝рд░ рдмрдирд╛ рджреЗрдВрдЧреЗ, рдЬрд┐рд╕рдореЗрдВ рд╕реЗ рдПрдХ UFO рдХреНрд▓рд┐рдХ рдХрд░рдХреЗ рдмрд╛рд╣рд░ рдирд┐рдХрд▓ рдЬрд╛рдПрдЧрд╛ред
рддреБрд░рдВрдд рдкрд░рд┐рдгрд╛рдо:


рд╣рдореЗрдВ рдХреНрдпрд╛ рдЪрд╛рд╣рд┐рдП?


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

рдЪрд▓реЛ рдЪрд▓рддреЗ рд╣реИрдВ


рддреЛ, рдХреНрдпреВрдЯреА рдХреНрд░рд┐рдПрдЯрд░ рд▓реЙрдиреНрдЪ рдХрд░реЗрдВ рдФрд░ рдПрдХ рдирдпрд╛ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдмрдирд╛рдПрдВ: рдлрд╛рдЗрд▓-> рдирдИ рдлрд╛рдЗрд▓ рдпрд╛ рдкреНрд░реЛрдЬреЗрдХреНрдЯ-> рдХреНрдпреВрдЯреА рдХреНрд╡рд┐рдХ рдкреНрд░реЛрдЬреЗрдХреНрдЯ-> рдпреВрдЬрд░ рдЗрдВрдЯрд░рдлреЗрд╕ рдСрди рдХреНрдпреВрдЯреА рдХреНрд╡рд┐рдХ ред



рд╣рдо рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХрд╛ рдирд╛рдо рджрд░реНрдЬ рдХрд░рддреЗ рд╣реИрдВ, рдлрд╝реЛрд▓реНрдбрд░ рдХрд╛ рд╕реНрдерд╛рди, рд╣рдо рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рдЕрдиреНрдп рд╕рднреА рд╡рд┐рдХрд▓реНрдк рдЫреЛрдбрд╝ рджреЗрддреЗ рд╣реИрдВред



рдирдИ рдмрдирд╛рдИ рдЧрдИ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреБрдЫ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрддреА рд╣реИ:



рд╣рдо рдЙрд╕реЗ рдЕрдХреЗрд▓рд╛ рдЫреЛрдбрд╝ рджреЗрдВред

рдореЙрдбрд▓ рдХреА рддреИрдпрд╛рд░реА


рд╣рдо рдмреНрд▓реЗрдВрдбрд░ рдЦреЛрд▓рддреЗ рд╣реИрдВ рдФрд░ рдЗрд╕рдореЗрдВ рдореЙрдбрд▓ рддреИрдпрд╛рд░ рдХрд░рддреЗ рд╣реИрдВ рдЬреЛ рд╣рдо рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВрдЧреЗред рдореИрдВ рдмреНрд▓реЗрдВрдбрд░ рдореЗрдВ рдХрд╛рдо рдХрд╛ рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ рд╡рд░реНрдгрди рдирд╣реАрдВ рдХрд░реВрдВрдЧрд╛ (рдЖрдЦрд┐рд░рдХрд╛рд░, рдпрд╣ рдЙрд╕рд╕реЗ рд╕рдмрдХ рдирд╣реАрдВ рд╣реИ, рдФрд░ рдореИрдВ рдмреНрд▓реЗрдВрдбрд░ рдореЗрдВ рд╡рд┐рд╢реЗрд╖ рдирд╣реАрдВ рд╣реВрдВ)ред рдпрд╣рд╛рдБ рд╣рдо рдХреНрдпрд╛ рдХрд░реЗрдВрдЧреЗ рдХрд╛ рдПрдХ рд╕рдВрдХреНрд╖рд┐рдкреНрдд рд╕рд╛рд░рд╛рдВрд╢ рд╣реИ:
  1. рдЖрдЗрдП рд░реЗрдлреНрд░рд┐рдЬрд░реЗрдЯрд░ рдФрд░ рдпреВрдПрдлрдУ рдХреЗ рдореЙрдбрд▓ рдЦреЛрд▓реЗрдВред
  2. рдпреВрдПрдлрдУ рдХреЛ рд░реЗрдлреНрд░рд┐рдЬрд░реЗрдЯрд░ рдореЗрдВ рд░рдЦреЗрдВред
  3. рд╣рдо рд░реЗрдлреНрд░рд┐рдЬрд░реЗрдЯрд░ рдкрд░ рд╣реИрдмрд░ рд▓реЛрдЧреЛ рдкрд░ рд╣реБрдХ рдХрд░рддреЗ рд╣реИрдВред
  4. рд╣рдо рдмреНрд▓реЗрдВрдбрд░ рд╕реЗ рдЕрд▓рдЧ рд╕реЗ рдПрдХ рдпреВрдПрдлрдУ (рдЬреЛ рдЕрдм рд░реЗрдлреНрд░рд┐рдЬрд░реЗрдЯрд░ рдореЗрдВ рд╣реИ), рдПрдХ рд░реЗрдлреНрд░рд┐рдЬрд░реЗрдЯрд░ рджрд░рд╡рд╛рдЬрд╛ (рд╣рдореЗрдВ рдЕрд▓рдЧ рд╕реЗ рдЗрд╕рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рддрд╛рдХрд┐ рдЗрд╕реЗ рдЦреЛрд▓рд╛ рдЬрд╛ рд╕рдХреЗ) рдФрд░ рдЗрд╕рдХреЗ рд╢рд░реАрд░ рдХреЛ рдмрд┐рдирд╛ рджрд░рд╡рд╛рдЬреЗ рдХреЗ рдирд┐рд░реНрдпрд╛рдд рдХрд░реЗрдВред рдФрд░ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдЖрдЙрдЯрдкреБрдЯ рдореЗрдВ 4 рдлрд╛рдЗрд▓реЗрдВ рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдП: ufo.3ds , door.3ds , refr.3ds + рдмрдирд╛рд╡рдЯ рдлрд╝рд╛рдЗрд▓ ред рдЗрди рд╕рднреА рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ рдХреЙрдкреА рдХрд░реЗрдВред


рдирдорд╕реНрддреЗ рджреБрдирд┐рдпрд╛


рд╣рдо рдЕрдкрдиреЗ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЗ рд▓рд┐рдП рдХреНрдпреВрдЯреА рдХреНрд░рд┐рдПрдЯрд░ рдХреЗ рдкрд╛рд╕ рд▓реМрдЯ рдЖрдПред рдЬрдм рдЗрд╕реЗ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рдерд╛, рддреЛ рдЗрд╕ рддрд░рд╣ рдХреА "рд╣реИрд▓реЛ рджреБрдирд┐рдпрд╛" рдХреЛ HabraHolod.qml рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рдерд╛, рд▓реЗрдХрд┐рди рдЗрд╕рдХрд╛ Qt Quick3D рд╕реЗ рдХреЛрдИ рд▓реЗрдирд╛-рджреЗрдирд╛ рдирд╣реАрдВ рд╣реИ, рдФрд░ рдЗрд╕рд▓рд┐рдП рд╣рдо рдЗрд╕реЗ рд╣рдЯрд╛ рджреЗрдВрдЧреЗред рдЪрд▓реЛ рдЦрд░реЛрдВрдЪ рд╕реЗ рд╣рдорд╛рд░реЗ qml рдХреЛрдб рд▓рд┐рдЦрдирд╛ рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВред рдкрд╣рд▓реЗ рдкреБрдирд░рд╛рд╡реГрддрд┐ рдореЗрдВ, рдпрд╣ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рд╣реЛрдЧрд╛:
import Qt3D 1.0 Viewport { Mesh { id: refrigirator; source: "refr.3ds" } Mesh { id: ufo; source: "ufo.3ds" } Mesh { id: bottom_door; source: "door.3ds" } Item3D { mesh: refrigirator } Item3D { mesh: ufo;} Item3D { mesh: bottom_door; } } 

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

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

рдпрджрд┐ рдЖрдк Ctrl + R (рдкреНрд░рд╛рд░рдВрдн) рджрдмрд╛рддреЗ рд╣реИрдВ, рддреЛ рдЖрдк рдкрд░рд┐рдгрд╛рдо рднреА рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ:



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



рд╢реБрд░реБрдЖрдд рдЦрд░рд╛рдм рдирд╣реАрдВ рд╣реИ - рдХреЛрдб рдХреА 10 рдкрдВрдХреНрддрд┐рдпреЛрдВ рдореЗрдВ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдПрдХ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╣реИ рдЬреЛ рдХрд┐рд╕реА рддрд░рд╣ 3 рдбреА рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕ рдХреЗ рдПрдХ рд╕рдореВрд╣ рдХреЛ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рддрд╛ рд╣реИ (рдареАрдХ рд╣реИ, рдпрджрд┐ рдЖрдк рдЗрд╕реЗ C ++ \ Java \ .NET \ .NET \ Your_Language?) рдореЗрдВ рд▓рд┐рдЦрддреЗ рд╣реИрдВ, рддреЛ рдЗрд╕рдореЗрдВ рдХрд┐рддрдиреА рд▓рд╛рдЗрдиреЗрдВ рд╣реЛрдВрдЧреАред

рдЖрдЧреЗ рдмрдврд╝рддреЗ рд╣реИрдВ


рддреЛ, рд╣рдорд╛рд░реА рд╡рд╕реНрддреБрдПрдВ, рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдкреНрд░рджрд░реНрд╢рд┐рдд рд╣реЛрддреА рд╣реИрдВ, рд▓реЗрдХрд┐рди рдХрд┐рд╕реА рднреА рддрд░рд╣ рдРрд╕рд╛ рдирд╣реАрдВ рд╣реИ, рд╡рд╣рд╛рдВ рдирд╣реАрдВ рд╣реИ рдФрд░ рдЕрднреА рддрдХ рдирд╣реАрдВ рдЪрд▓ рд░рд╣реА рд╣реИред рд╣рдо рдзреАрд░реЗ-рдзреАрд░реЗ рдЗрд╕ рд╡реНрдпрд╡рд╕рд╛рдп рдореЗрдВ рд╕реБрдзрд╛рд░ рдХрд░реЗрдВрдЧреЗред рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, Rectangle рд░реВрдЯ рддрддреНрд╡ рдХреЛ рдХреЛрдб рдореЗрдВ рдЬреЛрдбрд╝реЗрдВ (рдЗрд╕рдХреЗ рд▓рд┐рдП рд╣рдореЗрдВ QtQuick 1.0 рдореЙрдбреНрдпреВрд▓ рдЖрдпрд╛рдд рдХрд░рдирд╛ рд╣реЛрдЧрд╛), рдЬреЛ рд╣рдореЗрдВ рд╡рд┐рдВрдбреЛ рдХрд╛ рдЖрдХрд╛рд░ рд╕реЗрдЯ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдЧрд╛:
 import QtQuick 1.0 import Qt3D 1.0 Rectangle { color: "black" width: 400 height: 600 Viewport { anchors.fill: parent Mesh { id: refrigirator; source: "refr.3ds" } Mesh { id: ufo; source: "ufo.3ds" } Mesh { id: bottom_door; source: "door.3ds" } Item3D { mesh: refrigirator } Item3D { mesh: ufo;} Item3D { mesh: bottom_door; } } } 

рдЖрдпрдд рдХреЗ рд▓рд┐рдП, рд╣рдо рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдЖрдХрд╛рд░ рдФрд░ рд░рдВрдЧ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рддреЗ рд╣реИрдВ, рдФрд░ рд╡реНрдпреВрдкреЛрд░реНрдЯ рдХреЗ рд▓рд┐рдП, рд╣рдордиреЗ рдХрд╣рд╛ рдХрд┐ рдЗрд╕реЗ рдорд╛рддрд╛-рдкрд┐рддрд╛ рдХреЗ рдкреВрд░реЗ рдЖрдХрд╛рд░ рддрдХ рдлреИрд▓рд╛рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рдкрд░рд┐рдгрд╛рдо:



рдЦрд┐рдбрд╝рдХреА рд╕рд╣реА рдЖрдХрд╛рд░ рд╣реИ, рд▓реЗрдХрд┐рди рд╣рдо рдЕрднреА рднреА рдиреАрдЪреЗ рд╕реЗ рд╡рд╕реНрддреБ рдХреЛ рджреЗрдЦ рд░рд╣реЗ рд╣реИрдВред рдХреИрдорд░реЗ рдХреА рд╕реНрдерд┐рддрд┐ рдХреЛ рдареАрдХ рдХрд░реЗрдВред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдорд╛рд░реЗ рд╡реНрдпреВрдкреЛрд░реНрдЯ рдХреА рдХреИрдорд░рд╛ рдкреНрд░реЙрдкрд░реНрдЯреА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ:
 camera: Camera { id: viewCamera eye: Qt.vector3d(15,10,40) center: Qt.vector3d(-2,10,0) } 

рдЗрд╕ рд╕реНрддрд░ рдкрд░ рдкреВрд░реНрдг рдХреЛрдб

рдЖрдВрдЦ рдХреА рд╕рдВрдкрддреНрддрд┐ рдпрд╣ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рддреА рд╣реИ рдХрд┐ рдХреИрдорд░рд╛ рдХрд╣рд╛рдВ рд╣реИ, рдФрд░ рдХреЗрдВрджреНрд░ рдЙрд╕ рдмрд┐рдВрджреБ рдХреЛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рддрд╛ рд╣реИ рдЬрд┐рд╕реЗ рд╡рд╣ рджреЗрдЦ рд░рд╣рд╛ рд╣реИред рд╡рд░реНрддрдорд╛рди рдкрд░рд┐рдгрд╛рдо:



рд▓реЗрдХрд┐рди рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдмреБрд░рд╛ рдирд╣реАрдВ рд╣реИ! рдЕрдЧрд░ рд╣рдо рд╕рд┐рд░реНрдл Qt Quick3D рдореЗрдВ рдПрдХ 3 рдбреА рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЛ рджреЗрдЦрдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рд╣рдо рдЗрд╕реЗ рдкреВрд░рд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рд▓реЗрдХрд┐рди рдирд╣реАрдВ! рд╣рдорд╛рд░рд╛ рд▓рдХреНрд╖реНрдп рдЖрдВрджреЛрд▓рди рд╣реИред

рд╣реИрдВрдбрд▓рд░ рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВ


рддреЛ, рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рд░реЗрдлреНрд░рд┐рдЬрд░реЗрдЯрд░ рдХрд╛ рдПрдХ рдкреНрд░рджрд░реНрд╢рди рдореЙрдбрд▓ рд╣реИ, рдЬреЛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдПрдХ рджреГрд╢реНрдп рдореЗрдВ 3 рдореЙрдбрд▓ рд╣реИред рд╣рдо рдХреНрд▓рд┐рдХ рдХрд░рдХреЗ рджрд░рд╡рд╛рдЬрд╛ рдЦреБрд▓рд╛ рдмрдирд╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реЗрдВрдЧреЗ рдФрд░ рдПрдХ рдпреВрдПрдлрдУ рдмрд╛рд╣рд░ рдЙрдбрд╝ рдЬрд╛рдПрдЧрд╛ред рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдПрдХ рдХреНрд▓рд┐рдХ рд╣реИрдВрдбрд▓рд░ред рдпрд╣ рд╕рд░рд▓ рд╣реИ, Viewport рдореЗрдВ рдПрдХ рдорд╛рдЙрд╕рдПрдпрд░ рддрддреНрд╡ рдЬреЛрдбрд╝реЗрдВ, рдЬреЛ рдорд╛рддрд╛-рдкрд┐рддрд╛ рдХреЗ рдкреВрд░реЗ рдЖрдХрд╛рд░ рддрдХ рдлреИрд▓рд╛ рд╣реБрдЖ рд╣реИред рдХреНрд▓рд┐рдХ рдХрд░рдХреЗ, рд╣рдо рдЕрднреА рдХреЗ рд▓рд┐рдП рдЖрдЙрдЯрдкреБрдЯ рд▓рд┐рдЦреЗрдВрдЧреЗ (рдХреЗрд╡рд▓ рдпрд╣ рдЬрд╛рдВрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рдХреНрдпрд╛ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ):
 MouseArea { anchors.fill: parent onClicked: { Qt.quit(); } } 

рдЗрд╕ рд╕реНрддрд░ рдкрд░ рдкреВрд░реНрдг рдХреЛрдб

рднрд╛рдЧреЛ, рдХреНрд▓рд┐рдХ рдХрд░реЗрдВ - рдХрд╛рд░реНрдпрдХреНрд░рдо рд╕рдорд╛рдкреНрдд рд╣реЛрддрд╛ рд╣реИред рдпрд╣ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред

рд░реВрдкрд╛рдВрддрд░рдг рдФрд░ рдПрдирд┐рдореЗрд╢рди


рд╢реБрд░реБрдЖрдд рджрд░рд╡рд╛рдЬреЗ рд╕реЗ рдХрд░рддреЗ рд╣реИрдВред рдЗрд╕реЗ рдЦреЛрд▓рдиреЗ рдФрд░ рдмрдВрдж рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдореЗрдВ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХрд╛рдо рдХрд░рдиреЗ рд╣реЛрдВрдЧреЗ:

рез ред рдПрдХ рд░реЛрдЯреЗрд╢рди 3 рдбреА рддрддреНрд╡ рдмрдирд╛рдПрдВ рдЬреЛ рдмрддрд╛рддрд╛ рд╣реИ рдХрд┐ (рдЬрд┐рд╕рдХреЗ рдЪрд╛рд░реЛрдВ рдУрд░ рдХреБрд▓реНрд╣рд╛рдбрд╝рд┐рдпреЛрдВ) рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рд╡рд╕реНрддреБ рдШреВрдорддреА рд╣реИред
 Rotation3D { id: doorOpen angle: 0 axis: Qt.vector3d(0, 1, 0) origin: Qt.vector3d(-3, 0, 0) } 

реи ред рд░реЛрдЯреЗрд╢рди рдХреЗ рдЕрд▓рдЧ-рдЕрд▓рдЧ рджрд┐рд╢рд╛рдУрдВ рдХреЗ рд╕рд╛рде рдШреВрд░реНрдгрди 3 рдбреА (рдПрдХ рдХреЛ рджрд░рд╡рд╛рдЬрд╛ рдЦреЛрд▓рдиреЗ рдХреЗ рд▓рд┐рдП, рджреВрд╕рд░реЗ рдХреЛ рдмрдВрдж рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП) рдХреЗ рд▓рд┐рдП рджреЛ рдХреЙрд▓ рдореЗрдВ рд╣реЛрдЧрд╛, рдЬрд┐рд╕рдореЗрдВ рд╕реЗрдХреНрд╡рд┐рдПрд╢рди рдПрдирд┐рдореАрд╢рди рддрддреНрд╡ рдмрдирд╛рдПрдВред
 SequentialAnimation { id: doorOpenAndClose; NumberAnimation { target: doorOpen; property: "angle"; from: 0; to : -80.0; duration: 800; easing.type: Easing.OutBounce} NumberAnimation { target: doorOpen; property: "angle"; from: -80; to : 0.0; duration: 1200; easing.type: Easing.OutCubic} } 

рей ред рд╣рдорд╛рд░реЗ рджрд░рд╡рд╛рдЬреЗ рдХреЗ рд▓рд┐рдП Item3D рдХреЗ рд▓рд┐рдП Rotation3D рддрддреНрд╡ рдХреЛ рдмрд╛рдВрдзреЗрдВред
  Item3D { mesh: bottom_door; transform: [doorOpen] } 

рек ред рдПрдиреАрдореЗрд╢рди рд╢реБрд░реВ рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдХреНрд▓рд┐рдХ рд╣реИрдВрдбрд▓рд░ рд╕реЗ рдПрдХ рдордзреНрдпрд╡рд░реНрддреА рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдХреЙрд▓ рдХрд░реЗрдВред
 MouseArea { anchors.fill: parent onClicked: { fullScene.openDoor(); } } ... Item3D { id: fullScene function openDoor() { doorOpenAndClose.loops = 1; doorOpenAndClose.start(); } ... } 

рдЗрд╕ рд╕реНрддрд░ рдкрд░ рдкреВрд░реНрдг рдХреЛрдб

рднрд╛рдЧреЛ, рдХреНрд▓рд┐рдХ рдХрд░реЛред рдмрд┐рдВрдЧреЛ!



рджрд░рд╡рд╛рдЬрд╛ рд╣рдорд╛рд░реЗ рдпреВрдПрдлрдУ рдХреЗ рдЕрдВрджрд░ рдЦреБрд▓рддрд╛ рд╣реИ рдФрд░ рджрд┐рдЦрд╛рддрд╛ рд╣реИ (рдЬрдмрдХрд┐ рдпрд╣ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╢рд╛рдВрддрд┐ рд╕реЗ рд▓рдЯрдХрд╛ рд╣реБрдЖ рд╣реИ)ред рдПрдХ рдХреЗ рдмрд╛рдж рдПрдХ рдпреВрдПрдлрдУ рдкреНрд░рд╕реНрдерд╛рди рдХреЛ рдПрдирд┐рдореЗрдЯ рдХрд░рдиреЗ рдХрд╛ рдХрд╛рд░реНрдп рдПрдХ рджрд░рд╡рд╛рдЬрд╛ рдЦреЛрд▓рдиреЗ рдХреЗ рд╕рдорд╛рди рд╣реИред рдЗрд╕рд▓рд┐рдП, рдЕрдирд╛рд╡рд╢реНрдпрдХ рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдХреЗ рдмрд┐рдирд╛, рдЕрдВрддрд┐рдо рдХреЛрдб:

 import QtQuick 1.0 import Qt3D 1.0 Rectangle { color: "black" width: 400 height: 600 Viewport { anchors.fill: parent MouseArea { anchors.fill: parent onClicked: { fullScene.openDoor(); } } camera: Camera { id: viewCamera eye: Qt.vector3d(15,10,40) center: Qt.vector3d(-2,10,0) } Item3D { id: fullScene function openDoor(){ doorOpenAndClose.loops = 1; doorOpenAndClose.start(); ufoFlyOutAndTeleportBack.loops = 1; ufoFlyOutAndTeleportBack.start(); } Mesh { id: refrigirator; source: "refr.3ds" } Mesh { id: ufo; source: "ufo.3ds" } Mesh { id: bottom_door; source: "door.3ds" } Item3D { mesh: refrigirator } Item3D { mesh: ufo; transform: [ufoFlyOut]} Item3D { mesh: bottom_door; transform: [doorOpen] } // ------------------ Transform + Animations ------------------ Rotation3D { id: doorOpen angle: 0 axis: Qt.vector3d(0, 1, 0) origin: Qt.vector3d(-3, 0, 0) } Rotation3D { id: ufoFlyOut angle: 0 axis: Qt.vector3d(0, 3, -1) origin: Qt.vector3d(10, 0, 0) } SequentialAnimation { id: doorOpenAndClose; NumberAnimation { target: doorOpen; property: "angle"; from: 0; to : -80.0; duration: 800; easing.type: Easing.OutBounce} NumberAnimation { target: doorOpen; property: "angle"; from: -80; to : 0.0; duration: 1200; easing.type: Easing.OutCubic} } SequentialAnimation { id: ufoFlyOutAndTeleportBack; NumberAnimation { target: ufoFlyOut; property: "angle"; from: 0; to : 100.0; duration: 1700; easing.type: Easing.OutCurve} NumberAnimation { target: ufoFlyOut; property: "angle"; from: 100; to : 0.0; duration: 0; easing.type: Easing.OutCubic} } } } } 

рдФрд░ рдлрд┐рд░ рд╕реЗ рдкрд░рд┐рдгрд╛рдо:


рд╕рднреА рдкрд░рд┐рдпреЛрдЬрдирд╛ рд╕реНрд░реЛрддреЛрдВ рдХреЛ рдпрд╣рд╛рдВ рд▓рд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ ред

рд╡рд┐рд╖рдп рдкрд░ рдЙрдкрдпреЛрдЧреА рд╕рд╛рдордЧреНрд░реА

  1. рдкреЗрд╢ рд╣реИ рдХреНрд╡рд┐рдХ рдХреНрд╡рд┐рдХ 3 рдбреА рдФрд░ рдбрд╛рдЙрдирд▓реЛрдб рдХрдИ рдкреНрд▓реЗрдЯрдлреЙрд░реНрдо рдХреЗ рд▓рд┐рдП рд▓рд┐рдВрдХ
  2. рдореЙрдбрд▓ рдХрд╛рд░ рдмрдирд╛рдиреЗ рдкрд░ рдХреВрд▓ рдЯреНрдпреВрдЯреЛрд░рд┐рдпрд▓
  3. Qt Quick3D рд╢реНрд╡реЗрдд рдкрддреНрд░

Source: https://habr.com/ru/post/In133126/


All Articles