Thả một file .glb để xoay ngắm, phát animation, và biết chính xác nó được làm từ những gì. File nằm nguyên trong tab này.
Công cụ này làm gì
Thả một file .glb vào là hai việc diễn ra cùng lúc. Bạn có một khung nhìn 3D
để xoay, phóng to thu nhỏ và di chuyển góc nhìn, với animation chạy sẵn. Và bạn
có các con số: bao nhiêu tam giác, bao nhiêu lệnh vẽ (draw call), dùng vật liệu
nào, mỗi texture thực sự nặng bao nhiêu, và file phụ thuộc vào những extension
glTF nào.
Phần lớn trình xem miễn phí chỉ làm được nửa đầu. Nửa sau thường phải dùng công
cụ dòng lệnh. Cả hai đều quan trọng, vì "trông có đúng không" và "có đủ chuẩn
để đưa vào sản phẩm không" là hai câu hỏi khác nhau, và bạn thường cần trả lời
cả hai cùng lúc.
Cách dùng
Thả file vào ô, bấm để chọn file, hoặc bấm Dùng thử model mẫu nếu bạn chưa
có sẵn file nào.
Kéo bên trong khung nhìn để xoay, cuộn chuột để phóng to thu nhỏ, và kéo bằng
chuột phải để di chuyển góc nhìn. Về góc ban đầu đưa camera về đúng vị trí
lúc mới mở.
Khung lưới và Bỏ texture giúp lược bớt mô hình khi bạn đang xem cấu
trúc hình học hay cách đổ bóng thay vì hình ảnh hoàn chỉnh. Lưới sàn và
Khung bao cho bạn cảm nhận về tỷ lệ — hữu ích khi một model hóa ra to gấp
cả trăm lần so với bạn tưởng.
Đọc các con số
Tam giác và lệnh vẽ là hai con số dự đoán hiệu năng, và chúng đo hai thứ
khác nhau. Tam giác là khối lượng GPU phải tô bóng; lệnh vẽ là số lần CPU phải
ngắt để ra lệnh cho GPU. Một model 5.000 tam giác chia thành 200 lệnh vẽ thường
chạy chậm hơn một model 50.000 tam giác gói trong một lệnh vẽ duy nhất.
Dung lượng texture là con số thường giải thích vì sao file lại nặng bất
ngờ. Bảng thông số báo đúng dung lượng mỗi ảnh chiếm bên trong file GLB, không
phải kích thước điểm ảnh sau khi giải mã — nhờ vậy bạn thấy ngay khi một file
12 MB có tới 11 MB là texture.
Extension cho biết file này giả định trình xem của nó làm được gì. Bất cứ
extension nào bị đánh dấu bắt buộc đều không phải tùy chọn: trình xem nào
không hỗ trợ sẽ không mở được file đó.
Mọi thứ nằm lại trên máy bạn
File của bạn được đọc và phân tích ngay trong tab trình duyệt này. Nó không
bao giờ bị tải lên, xếp hàng chờ, hay lưu trữ ở đâu cả. Sau khi trang đã tải
xong, bạn có thể ngắt mạng và mở bất kỳ file nào không cần giải nén Draco hay
KTX2 — những yêu cầu mạng duy nhất công cụ này từng gửi đi là để lấy bộ giải
nén, khi file của bạn thật sự cần đến, và để lấy model mẫu, chỉ khi bạn bấm
Dùng thử model mẫu.
Câu hỏi thường gặp
- File mô hình của tôi có bị tải lên đâu không?
- Không. File của bạn được đọc bằng API file có sẵn của trình duyệt và xử lý ngay trong tab này — không có gì được gửi đi cả. Công cụ chỉ tải về đúng hai thứ từ server: bộ giải nén, chỉ cần khi file của bạn dùng nén Draco hoặc KTX2, và model mẫu, chỉ khi bạn bấm Dùng thử model mẫu. Mở một file không cần đến hai thứ đó thì ngay khi trang đã tải xong bạn có thể ngắt mạng mà công cụ vẫn chạy bình thường.
- Vì sao chỉ nhận .glb mà không nhận .gltf?
- GLB gộp chung hình học, texture và animation vào một file nhị phân duy nhất, nên chỉ cần thả một file là đủ. Còn .gltf là JSON trỏ đến một file .bin riêng và cả một thư mục ảnh, nên mở đúng cách nghĩa là phải đưa cả thư mục và xử lý đường dẫn tương đối — làm sai một chút thôi là bạn chỉ thấy mô hình đen thui chứ không hề có thông báo lỗi. Đó là việc của một công cụ khác, không phải một ô tick thêm trên công cụ này. File .glb khai báo texture hay buffer bằng URI thay vì gói sẵn bên trong cũng bị từ chối vì cùng lý do — và việc từ chối đó cũng đảm bảo không file nào bạn mở ở đây có thể khiến trình duyệt tải về từ bên thứ ba.
- Công cụ này có mở được file nén Draco hay Meshopt không?
- Có, kể cả texture KTX2. Draco và KTX2 mỗi loại tự tải bộ giải nén riêng từ chính trang này chứ không qua CDN của bên thứ ba, và chỉ tải khi file của bạn thật sự cần đến — model không dùng loại nào trong hai loại này thì không tải gì thêm cả. Bộ giải nén Meshopt thì đủ nhỏ để đóng gói sẵn ngay trong trình xem, nên không phát sinh thêm yêu cầu mạng nào cho nó.
- Số tam giác hiển thị tính những gì?
- Tính đúng những gì GPU phải vẽ ra. Một mesh dùng instancing được tính một lần cho mỗi bản sao, vì đó mới là chi phí thực tế, và một hình học (geometry) được hai mesh dùng chung thì tính hai lần cũng vì lý do tương tự. Đây là con số phục vụ việc dựng hình, không phải con số mô tả nội dung file.
- Vì sao kích thước texture lại khác với dung lượng file?
- Con số texture là dung lượng đã nén lưu bên trong file GLB, đọc trực tiếp từ cấu trúc buffer của chính file đó. Phần dung lượng còn lại nằm ở hình học, animation và JSON. Nếu hai con số này gần bằng nhau, nghĩa là phần lớn dung lượng model nằm ở texture, và giảm kích thước texture là cách nhanh nhất để giảm dung lượng model.
- Mô hình vẫn hiện ra nhưng bảng thông số báo một extension không được hỗ trợ. Vậy file có bị lỗi không?
- Chưa chắc. Các extension không xác định được bỏ qua thay vì làm hỏng cả file, nên mô hình vẫn hiển thị — chỉ là thiếu mất hiệu ứng mà extension đó đáng lẽ mang lại, chẳng hạn hiệu ứng transmission hay iridescence. Bảng thông số liệt kê chúng ra để bạn biết mình đang không thấy được gì.
- Tôi có thể tải ảnh chụp mô hình không?
- Có — Tải ảnh PNG chụp đúng góc nhìn hiện tại, kèm tùy chọn nền trong suốt và render ở kích thước gấp đôi màn hình, thường là thứ bạn cần cho một ảnh thumbnail sản phẩm.
- Mô hình của tôi không có thanh animation.
- Vậy là file không chứa animation clip nào cả. Thanh điều khiển bị ẩn hẳn đi thay vì hiện mờ, vì một bộ điều khiển bị vô hiệu hóa trông giống như đang hỏng hơn là đơn giản không có gì để điều khiển. Mục Animation trong bảng thông số cũng nói đúng điều đó bằng chữ.