06. Ánh Sáng Tĩnh (Lightmaps & Baking)
Trong các tựa game 3D, đặc biệt là khi hướng tới các thiết bị di động hoặc máy tính cấu hình khiêm tốn, việc tính toán bóng đổ và ánh sáng gián tiếp (Global Illumination) trong thời gian thực có thể tiêu tốn rất nhiều tài nguyên.
Giải pháp tối ưu là Bake (tính toán trước thông tin ánh sáng và lưu cố định vào bản đồ texture của vật thể) thông qua kỹ thuật Bake Lightmaps. GridMap hoàn toàn hỗ trợ quá trình Bake ánh sáng tĩnh này thông qua node LightmapGI.
☀️ Nguyên lý hoạt động của Lightmaps với GridMap
Khi Bake ánh sáng tĩnh lên một màn chơi sử dụng GridMap:
- Tọa độ UV2 (Lightmap UVs): Để lưu trữ thông tin ánh sáng được Bake, mỗi bề mặt 3D cần một tập hợp tọa độ bản đồ texture thứ hai gọi là kênh UV2.
- Tự động sinh UV2:
- Nếu mô hình 3D gốc đã được trải UV2 sẵn từ phần mềm tạo mẫu 3D (như Blender), Godot sẽ tái sử dụng ngay dữ liệu đó.
- Nếu mô hình chưa có kênh UV2, Godot sẽ tự động tính toán và tạo UV2 lúc Bake với mật độ texel mặc định là
0.1 units.
⚙️ Cấu hình Static Lightmaps trong Import Dock
Nếu bạn muốn tùy chỉnh mật độ texel chi tiết hơn hoặc tối ưu hóa kích thước texture ánh sáng được Bake:
- Chọn tập tin mô hình 3D nguồn (file
.blend,.gltfhoặc.fbx) trong cửa sổ FileSystem. - Chuyển sang bảng Import (ở góc trên bên trái, cạnh tab Scene).
- Tìm mục Meshes > Light Baking.
- Chuyển chế độ sang Static Lightmaps và nhập giá trị Lightmap Texel Size theo mong muốn của bạn.
- Nhấn nút Reimport (Nhập lại) ở cuối bảng.
Bạn bắt buộc phải cấu hình và Reimport mô hình trước khi xuất sang file MeshLibrary!
Mọi thay đổi về thiết lập ánh sáng trong Import Dock sau khi đã tạo file MeshLibrary.tres sẽ không tự động cập nhật vào dữ liệu của thư viện đã xuất.
💡 Bake ánh sáng trong màn chơi hoàn chỉnh
Sau khi các ô gạch trong MeshLibrary đã sẵn sàng:
- Tạo một node LightmapGI trong scene màn chơi chứa GridMap.
- Điều chỉnh các nguồn sáng (DirectionalLight3D, OmniLight3D...) sang chế độ Bake Mode = Static.
- Chọn node LightmapGI và nhấn nút Bake Lightmaps trên thanh công cụ 3D Viewport.
- Toàn bộ các khối tường, sàn của GridMap sẽ được phủ lớp ánh sáng và bóng đổ tĩnh chân thực, tuyệt đẹp với chi phí dựng hình bằng 0 lúc runtime!