Minecraft là một trò chơi chủ yếu dựa trên sơ đồ chiều cao và sử dụng thông tin heigtmap đó để tràn ngập thế giới với ánh sáng. Theo hiểu biết của tôi, điểm cao nhất trong sơ đồ chiều cao là điểm cuối của khu vực chịu ảnh hưởng của ánh sáng mặt trời. Mọi thứ phía trên được thắp sáng bởi ánh sáng mặt trời, mọi thứ bên dưới chỉ bị ảnh hưởng bởi ánh sáng gần đó trong bán kính 8 khối.
Do đó, nếu bạn có một hòn đảo nổi trên đỉnh thế giới của bạn, mọi thứ bên dưới sẽ được xem như là một hang động. Khi hai đèn ảnh hưởng đến cùng một điểm, ánh sáng sáng hơn sẽ thắng (không chắc về điều đó).
Dù bằng cách nào, có một vài vấn đề với mô hình chiếu sáng mineccraft: trước hết, nếu thế giới của bạn không có sơ đồ chiều cao, sẽ trở nên khó khăn hơn để tìm ra chính xác cái gì được cho là phát ra ánh sáng mặt trời và cái gì không. Một cách đơn giản là giả định rằng thế giới (trong trường hợp của tôi) là một tảng đá nổi và sau đó đi qua từng trục từ cả hai hướng và tìm ra nơi đá bắt đầu và kết thúc. Nhưng điều này không loại bỏ hoàn toàn vấn đề vì các vết lõm trong đá không được cho là trong bóng tối.
Bản thân Minecraft sẽ lưu trữ thông tin ánh sáng trong các khối của nó cùng với thông tin về vật liệu của một khối. Do đó, chỉ khi thế giới được sửa đổi, ánh sáng phải cập nhật. Thật không may, quá trình đó vẫn còn khá chậm trên các bản cập nhật và khi thay đổi ánh sáng nhanh, người ta có thể thấy độ trễ ánh sáng phía sau. Điều đó đặc biệt đúng nếu có nhiều khối thay đổi (TNT, hoàng hôn, v.v.) và bạn không chạy máy tính nhanh nhất (Hoặc Java trên máy Mac).
Từ hiểu biết còn hạn chế của tôi về đồ họa 3D, một thế giới như minecraft không phải là vấn đề lớn nhất. Làm thế nào bạn sẽ giải quyết vấn đề?
Tôi nghĩ rằng các yêu cầu cơ bản cho ánh sáng trong một thế giới voxel sẽ là
- cập nhật đủ nhanh để nó có thể xảy ra trong một khung hình duy nhất. Người ta có thể thực hiện việc chiếu sáng trong thiết bị đồ họa và tải thông tin ánh sáng đã thay đổi về RAM chính.
- thông tin ánh sáng phải nhanh chóng có sẵn cho logic trò chơi chính vì vậy không hoàn toàn dựa trên thiết bị đồ họa: lý luận: ánh sáng ảnh hưởng đến sự phát triển của cỏ, sinh sản của quái vật, v.v.
- các bản cập nhật ánh sáng sẽ phải là cục bộ hoặc có một số giới hạn khác để người ta không phải di chuyển toàn bộ thế giới có thể có kích thước rất lớn.
Ý tưởng chính là làm cho ánh sáng cập nhật nhanh, không nhất thiết phải đẹp hơn. Đối với các cải tiến hiệu suất kết xuất ánh sáng nói chung, người ta có thể dễ dàng thêm SSAO lên trên đó sẽ dẫn đến thế giới đẹp hơn nhiều.