Godot hỗ trợ hai công cụ kết xuất: GLES2 và GLES3. Bạn nên chọn giữa GLES2 hoặc GLES3 khi bắt đầu dự án và tránh chuyển đổi nếu có thể. Các dự án có thể chuyển đổi qua lại giữa 2 công cụ kết xuất này, nhưng việc chuyển đổi sẽ đòi hỏi phải thực hiện thêm một số thao tác di chuyển.
Trên Android, các trình kết xuất này sử dụng API OpenGL ES 2.0 và OpenGL ES 3.0 tương ứng. Trình kết xuất GLES3 có các khả năng và tính năng phức tạp hơn, trong khi trình kết xuất GLES2 tương thích với nhiều thiết bị Android hơn. Các trình kết xuất này cũng tạo ra kết quả hình ảnh hơi khác nhau dù dữ liệu cảnh đầu vào là như nhau. Sự khác biệt này là do trình kết xuất GLES2 sử dụng hệ màu sRGB trong khi trình kết xuất GLES3 sử dụng hệ màu tuyến tính.
Chọn trình kết xuất
Hàm GLES2
Trình kết xuất GLES2 phù hợp nhất với các dự án 2D hoặc 3D với yêu cầu đồ hoạ ở mức trung bình, đồng thời tương thích với hầu hết các thiết bị Android đang hoạt động. Nếu dự án của bạn được thiết kế để chạy tốt trên các thiết bị cũ và bạn có ý định hỗ trợ những thiết bị như vậy, thì GLES2 có thể là lựa chọn tốt nhất.
Một hạn chế quan trọng của trình kết xuất GLES2 trên Android là chỉ hỗ trợ một định dạng kết cấu nén: ETC1. ETC1 không hỗ trợ kênh alpha. Các công cụ khác có thể sử dụng hoạ tiết ETC1 kép để giải quyết vấn đề, trong đó một hoạ tiết chứa dữ liệu màu và một hoạ tiết thứ hai chứa dữ liệu kênh alpha. Godot không làm việc này. Các dự án sử dụng trình kết xuất GLES2 trên Android phải sử dụng kết cấu không nén khi có một kênh alpha. Hoạ tiết không nén sử dụng nhiều bộ nhớ hơn đáng kể và không hoạt động tốt như hoạ tiết được nén. Các thiết bị cũ có tài nguyên hạn chế cụ thể có thể gặp vấn đề khi sử dụng kết cấu không nén lớn, bao gồm cả việc bị giới hạn bộ nhớ.
Các tính năng kết xuất nâng cao có thể không dùng được cho trình kết xuất GLES2. Các hạn chế của trình kết xuất GLES2 bao gồm nhưng không giới hạn ở:
- Tỷ lệ hiệu suất kém trên mỗi nguồn sáng đang hoạt động theo thời gian thực.
- Không hỗ trợ các tính năng kết xuất như phạm vi độ phân giải cao, thuộc tính khúc xạ, phản chiếu không gian màn hình hay che khuất không gian xung quanh màn hình.
- Hạn chế về độ phức tạp của chương trình đổ bóng.
- Thiếu tính năng hỗ trợ chiếu sáng chung theo thời gian thực.
- Thiếu tính năng hỗ trợ tăng tốc GPU cho các hạt.
Hàm GLES3
Trình kết xuất GLES3 tương thích với khoảng 90% thiết bị Android đang hoạt động có hỗ trợ OpenGL ES 3.0. Chỉ các thiết bị Android cũ nhất đang hoạt động mới không hỗ trợ OpenGL ES 3.0.
Mặc dù trình kết xuất GLES3 tương thích với mọi thiết bị OpenGL ES 3.0, nhưng xin lưu ý rằng các thiết bị cũ ít có khả năng chạy ở tốc độ khung hình chấp nhận được. Một số thiết bị cũ cũng có lỗi trình điều khiển đồ hoạ trong quá trình triển khai OpenGL ES 3.0. Trình kết xuất GLES3 trên Android ít có khả năng giảm thiểu lỗi trình điều khiển. Những vấn đề này ít được quan tâm trên các thiết bị mới.
Trình kết xuất GLES3 hỗ trợ định dạng nén kết cấu ETC2 trên Android. Không giống như ETC1, ETC2 có hỗ trợ một kênh alpha.
Để biết thêm thông tin, hãy xem Tài liệu Godot – Sự khác biệt giữa GLES2 và GLES3