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

Sukurk index.html — tuščia 3D drobė

Jokių įrankių, jokio „build" — vienas failas, kurį atidarai naršyklėje. Sukurk aplanką ir jame index.html.

Kas viduje:

  • <script type="importmap"> — pasako naršyklei, kad import ... from 'three' reiškia Three.js iš CDN (interneto). Būtinas, kad trumpas vardas three suveiktų.
  • <style>html, body { margin: 0; height: 100% } ir canvas { display: block }. Be šito drobė paliktų 8px tarpą ir slinkties juostą.
  • Scena su fono spalva (0x0b1026 — tamsi kosmoso mėlyna). Kol kas jokių objektų — tik fonas įrodo, kad piešiama.
  • Kamera ir atvaizduotojas (WebGLRenderer). document.body.appendChild(renderer.domElement) prideda drobę į puslapį.
  • Atvaizdavimo ciklas animate() su requestAnimationFrame — perpiešia kadras po kadro.
  • resize klausytojas — drobė lieka per visą langą jį keičiant.

Patikrink. Atidaryk index.html naršyklėje (dukart spustelėk failą arba nutempk į naršyklės langą). Turi pamatyti:

Visas langas užpildytas vientisa tamsiai mėlyna spalva (0b1026).
Jokių objektų, jokios slinkties juostos. Keisdamas lango dydį — spalva
persitempia per visą plotą.

Tuščia mėlyna drobė = 3D konvejeris veikia. Objektus dėsim kitą pamoką.

Spąstai. Praleisk <script type="importmap"> bloką (arba suklysk CDN adrese) ir atidaryk puslapį. Ekranas lieka baltas ir tuščias, o naršyklės konsolėje (F12 → Console) raudonai:

Uncaught TypeError: Failed to resolve module specifier "three".
Relative references must start with either "/", "./", or "../".

Naršyklė nežino, kas yra „three", nes import map jai to nepasakė. Grąžink import map bloką su teisingu CDN adresu — ir drobė atgyja. Šitą klaidą pamatysi bene pirmą, todėl įsidėmėk: jei ekranas baltas — pirmiausia atverk konsolę.