Žiniatinklio 3D elementų programavimas
Pamoka 1 / 12 3D žiniatinklyje ~40 min
3 / 4 📖 Teorija

Scena, kamera, atvaizduotojas

Ką tik parašei tris objektus, kurie kartojasi KIEKVIENOJE Three.js programoje. Verta juos įvardyti — visą kursą tik jais ir remsies.

  • Scena (Scene)pasaulis. Konteineris, į kurį dedi viską: planetas, Saulę, šviesas. Kol kas jame tik fono spalva.
  • Kamera (PerspectiveCamera)akis. Iš kur ir kaip žiūri į sceną. PerspectiveCamera mėgdžioja žmogaus regą: tolimi objektai atrodo mažesni. Ji turi padėtį (camera.position) — pastūmėm ją atgal (z = 5), kad matytum, kas bus centre.
  • Atvaizduotojas (WebGLRenderer)dailininkas. Paima sceną plius kamerą ir nupiešia rezultatą į <canvas>.

Kodėl reikia visų trijų? Scena be kameros — pasaulis, į kurį niekas nežiūri. Kamera be atvaizduotojo — žvilgsnis, kuris niekur nepiešiamas. Tik visi trys kartu duoda paveikslą. O atvaizdavimo ciklas juos suriša: kiekviename kadre renderer.render(scene, camera) – „dailininke, nupiešk šitą pasaulį iš šitos akies dabar".

renderer.render(scene, camera)
                 │       │
                 │       └── iš kur žiūrim
                 └────────── ką piešiam

Kitoje pamokoje šie trys pastatys pirmąją planetą: į sceną įdėsim sferą (SphereGeometry + Mesh), ir tuščia mėlyna drobė pagaliau įgaus objektą — pirmąjį Saulės sistemos kūną.