Mô phỏng đại dương - ban ca sieu thi
Nhật Ký Phát Triển Nhóm zalo kéo tài xỉu Go88 Epoch 3
Hiện tại, thảm thực vật bao gồm cây và cỏ với chỉ khoảng bốn hoặc năm loại khác nhau. Tôi cũng đang thu thập các tài nguyên SpeedTree để sử dụng sau này. Việc tạo thực vật vẫn còn nhiều vấn đề và mã nguồn cũng khá tệ, có rất nhiều chỗ cần tối ưu hóa:
-
Cỏ thường được tạo dưới dạng billboard, cách này rất hữu ích khi ở góc nhìn thứ nhất trên mặt đất, cho phép lấp đầy tầm nhìn với ít đối tượng. Tuy nhiên, nó mua the cao không phù hợp với trò chơi bay, vì máy bay sẽ hạ xuống từ trên cao và hiệu ứng billboard lúc này trông không tự nhiên. Giải pháp có lẽ là cải tiến shader mặt đất, sử dụng texture cỏ với độ phân giải 2K là điều hoàn toàn khả thi, miễn là có thể mô phỏng được cỏ trên mặt đất. Sau khi hạ cánh, texture mặt đất có thể chuyển sang màu đất trơn và kết hợp với nhiều cỏ dạng billboard để tăng tính chân thực.
-
Không hiểu sao, cỏ không được Dynamic Batch, dẫn đến nhiều draw call, khiến hiệu suất trên iPad không tốt. Tuy nhiên, tôi không thể dùng Static Batching vì cỏ không phải là đối tượng tĩnh thật sự. Khi camera di chuyển qua cỏ, cỏ sẽ được dịch chuyển về phía trước xa hơn (chưa áp dụng pool), Unity không thể gộp mesh của cỏ vì chúng luôn thay đổi động. (Lưu ý: Đã tìm ra nguyên nhân không batch được: Tôi đã thêm WindZone vào tàu vũ trụ để mô phỏng hiệu ứng tốc độ âm thanh, điều này khiến Speed Tree không thể batch. Khi tắt gió, hầu hết các batch đều được lưu lại… Tôi cứ nghĩ gió không ảnh hưởng.)
-
Hiện tại, cây không được tạo dựa trên height map của hành tinh, nên chúng phân bố ngẫu nhiên. Điều này không quá khó, nhưng tôi chưa viết code cho phần này.
-
Mô phỏng đại dương. Thông thường, chỉ cần đặt một Plane là đủ, nhưng đây là hành tinh có độ cong, nên Shader biển thông thường khi ghép với Sphere sẽ gặp vấn đề. Cách giải quyết có thể là chia Sphere thành một phần tư bề mặt cong hoặc thậm chí ít hơn, và trong quá trình hạ cánh, liên tục thay đổi mesh. Khi ở trạng thái phần tư bề mặt cong, Shader chỉ hiển thị phản chiếu để đảm bảo hiệu suất không bị chậm. Sau khi hạ cánh đến đường chân trời, có thể dùng một bề mặt nhỏ hơn với Shader có tính khúc xạ để mô phỏng biển.
-
Thời tiết. Sẽ bàn thêm sau, nhưng nhìn chung không quá phức tạp. Giống như cây đăng ký đại lý cá cược cối, dù là trò chơi di động, yêu cầu không quá cao, chỉ cần nhấn mạnh vào phong cách hóa là đủ, không cần quá thực tế.
Hy vọng rằng với những cải tiến này, Epoch sẽ mang lại trải nghiệm tuyệt vời hơn cho người chơi!