Views

Starter pack

Sejauh ini kita telah membuat banyak scene 3D, tetapi kita hanya menampilkan satu pada satu waktu dan mengambil alih seluruh halaman.

Dalam pelajaran ini kita akan belajar bagaimana mengintegrasikan beberapa scene 3D di dalam satu halaman HTML seperti halnya menambahkan gambar, video, atau elemen HTML lainnya ke situs web Anda.

Proyek Pemula

Untuk pelajaran ini, kita akan membuat halaman landing untuk agensi pengembangan web 3D fiksi.

Paket awal ini berisi halaman responsif yang sederhana dan siap digunakan yang berisi bagian-bagian berikut: Home, Services, Team, Portfolio, dan Contact.

Ini adalah halaman HTML standar yang berisi konten yang dapat diindeks untuk mesin pencari dan aksesibilitas yang akan kita tingkatkan dan ilustrasikan dengan konten 3D.

Halaman landing tanpa konten 3D

View

Untuk membuat dan merender beberapa scene 3D dalam halaman kita, kita akan menggunakan Komponen View dari perpustakaan Drei.

Dengan menggunakannya, kita dapat menggunakan hanya satu komponen Canvas dan merender beberapa scene independen (view) di dalamnya. Ini sangat berguna karena memungkinkan kita menggunakan hanya satu konteks WebGL dan menghindari masalah performa.

View-view ini terhubung ke elemen HTML target dan dapat diposisikan serta diukur secara independen sambil bereaksi dengan tepat terhadap sentuhan, mouse, gulir, dan peristiwa pengubahan ukuran.

Canvas

Untuk mempersiapkan halaman kita dengan konten 3D, mari kita buat komponen Canvas seperti biasa di bagian atas elemen main.

HomePage.jsx:

// ...
import { Canvas } from "react-three-fiber";

export const HomePage = () => {
  // ...

  return (
    <main>
      <Canvas
        className="canvas"
        camera={{ position: [0, 0, 1.5], fov: 30 }}
      ></Canvas>
      {/* ... */}
    </main>
  );
};

Kelas canvas digunakan untuk menata kanvas dan membuatnya memenuhi seluruh halaman. Itu sudah didefinisikan dalam file index.css.

Tracking

Proyek awal berisi komponen scene 3D yang akan kita gunakan untuk menggambarkan bagian-bagian berbeda dari halaman.

Mari tambahkan satu untuk bagian beranda:

import { Hero3D } from "./Hero3D";

export const HomePage = () => {
  // ...
  return (
    <main>
      <Canvas className="canvas" camera={{ position: [0, 0, 1.5], fov: 30 }}>
        <Hero3D />
      </Canvas>
      {/* ... */}
    </main>
  );
};
Three.js logoReact logo

React Three Fiber: The Ultimate Guide to 3D Web Development

✨ You have reached the end of the preview ✨

Go to the next level with Three.js and React Three Fiber!

Get full access to this lesson and the complete course when you enroll:

  • 🔓 Full lesson videos with no limits
  • 💻 Access to the final source code
  • 🎓 Course progress tracking & completion
  • 💬 Invite to our private Discord community
Unlock the Full Course – Just $85

One-time payment. Lifetime updates included.