1: Tôi không thể hiểu tại điểm nào dẫn xuống đường ống Lunked LOD mà lưới được chia thành các khối. Đây có phải là trong thế hệ lưới ban đầu, hoặc có một thuật toán riêng thực hiện điều này.
Không quan trọng. Ví dụ, bạn có thể tích hợp chunking vào thuật toán tạo lưới của bạn. Bạn thậm chí có thể thực hiện việc này một cách linh hoạt, để các cấp thấp hơn được thêm động (ví dụ như khi người chơi di chuyển gần hơn) bằng thuật toán sàng lọc giống như plasma. Bạn cũng có thể tạo lưới độ phân giải cao từ dữ liệu đo độ cao hoặc dữ liệu đo của nghệ sĩ và tổng hợp nó thành tất cả các khối LOD tại thời điểm quyết toán tài sản. Hoặc bạn có thể trộn và kết hợp. Nó thực sự phụ thuộc vào ứng dụng của bạn.
2: Tôi hiểu rằng cấu trúc dữ liệu Quadtree được sử dụng để lưu trữ dữ liệu Lunked LOD, tôi nghĩ rằng tôi đang thiếu điểm một chút, nhưng liệu tứ giác có lưu trữ dữ liệu đỉnh và tam giác cho mỗi cấp độ phân chia không?
Không cần thiết. Cây chỉ lưu trữ thông tin về hình học và làm thế nào để hiển thị nó. Điều này có thể có nghĩa là có một danh sách đỉnh / mặt ở mỗi nút cây. Thực tế hơn trong thời đại ngày nay, bạn sẽ lưu trữ tay cầm của các mắt lưới / cá thể trong bộ nhớ GPU.
3a: Khoảng cách camera thường được tính như thế nào. Khi đọc về tứ giác, hộp giới hạn theo trục được đề cập rất nhiều. Trong trường hợp này, mỗi chunk sẽ có một hộp giới hạn va chạm để phát hiện máy ảnh hoặc máy nghe nhạc đang ở gần? hoặc có một cách tốt hơn để làm điều này? (có thể là raycast?)
Một lựa chọn rất rẻ và dễ dàng là sử dụng khoảng cách đến điểm trung tâm của khối và sau đó sửa nó. Bạn biết rằng khoảng cách này luôn là một sự đánh giá thấp: nếu điểm trung tâm ở khoảng cách Z
, điều này có nghĩa là một nửa khối gần hơn thế. Tuy nhiên, những gì chúng ta không biết là định hướng. Nếu chúng ta đang xem một đoạn của w
cạnh trên chiều rộng , bit gần nhất của đoạn này sẽ ở khoảng cách Z-w
. Tuy nhiên, nếu chúng ta đang xem góc đầu tiên, bit gần nhất sẽ ở khoảng cách Z-sqrt(2)*w
. Nếu bạn có thể sống với sự không chắc chắn này (bạn hầu như luôn luôn có thể), bạn đã hoàn thành. Lưu ý rằng bạn cũng có thể sửa cho góc nhìn bằng cách sử dụng lượng giác cơ bản.
Tôi thích tính khoảng cách tối thiểu tuyệt đối từ máy ảnh đến chunk để giảm thiểu các vật phẩm. Trong thực tế, điều này có nghĩa là thực hiện một bài kiểm tra khoảng cách điểm vuông . Đó là một công việc nhiều hơn sau đó tính toán khoảng cách đến các điểm trung tâm, nhưng không giống như bạn sẽ thực hiện hàng triệu trong số các khung này.
Nếu bạn có thể tận dụng động cơ vật lý của mình để làm điều này thì bằng mọi cách hãy làm như vậy, nhưng bạn thực sự muốn nghĩ về nó nhiều hơn về "truy vấn khoảng cách" hơn là "va chạm".
3b: Các khối có tự tính toán khoảng cách camera không?
Nó thực sự phụ thuộc vào thiết kế của động cơ của bạn. Tôi sẽ khuyên bạn nên giữ lá tương đối nhẹ. Tùy thuộc vào nền tảng của bạn, chỉ cần chi phí cuộc gọi để có vài nghìn khối địa hình thực hiện cập nhật riêng của họ, mọi khung hình đều có thể ảnh hưởng nghiêm trọng đến hiệu suất.
4: Mỗi đoạn có cùng "độ phân giải" không. ví dụ ở cấp cao nhất, lưới sẽ là 32x32, mỗi nút được chia cũng sẽ là 32x32.
Họ không phải làm thế, nhưng thật tiện lợi nếu tất cả các khối chiếm cùng một không gian. Sau đó, bạn có thể thực hiện quản lý bộ nhớ (GPU) theo đơn vị "khối". Cũng dễ dàng hơn để loại bỏ / ẩn các đường nối giữa hai khối có kích thước khác nhau nếu một độ phân giải là bội số của nhau vì chúng chia sẻ nhiều đỉnh hơn. (ví dụ: 32x32 và 64x64 dễ quản lý hơn 32x32 và 57x57) (cảm ơn Guiber!). Nếu bạn có một lý do chính đáng để thay đổi kích thước hình học khối, bằng mọi cách hãy đi cho nó.