Bản đồ chiều cao vs lưới mô hình 3D


8

Tôi hiện đang làm việc trên một trò chơi PC 3D (được viết bằng C ++ và DirectX 9.0) và tôi đang cố gắng tìm cách tốt nhất để lưu trữ dữ liệu cấp độ trong bộ nhớ.

Hành động của trò chơi diễn ra dưới mặt đất, vì vậy luôn có một trần nhà phía trên người chơi. Mặt đất khá gập ghềnh và có những thứ như măng đá có mặt mọi lúc. Các cấp có kích thước nhỏ và chủ yếu trông giống như hành lang. Dưới đây là các tùy chọn mà tôi đã quản lý để tìm thấy cho đến nay:

Hai bản đồ chiều cao được lưu trữ trên ổ cứng dưới dạng tệp bitmap hoặc tệp nhị phân / văn bản. Một bản đồ chiều cao cho trần nhà (trên cùng), một cho mặt đất.

HOẶC LÀ

Một lưới 3D duy nhất trong một số định dạng mô hình 3D (giả sử, .fbx, .x, .obj bất cứ điều gì).

Làm thế nào tôi nên tiếp cận lưu trữ dữ liệu cấp? Lựa chọn tốt nhất của tôi sẽ là gì, nói hiệu quả? Tôi cũng gặp một số rắc rối khi nói đến việc kết cấu một cấp được tải thông qua bản đồ chiều cao; sử dụng mô hình 3D làm cho kết cấu dễ dàng.

Cảm ơn!

Câu trả lời:


4

Hiệu suất khôn ngoan, cả hai tùy chọn nên tương đương vì mọi thứ sẽ được chuyển đổi thành một mô hình sớm hay muộn.

Bản đồ chiều cao:
+ Dễ dàng lưu trữ và chỉnh sửa
+ Dễ dàng tính toán tọa độ kết cấu nếu chúng không được tính toán trước
- Tạo họa tiết trên bề mặt dốc
- Cần các mô hình đồng hành để có chi tiết tốt hơn
-Không cho phép địa hình chồng chéo (không nhô ra).

Mô hình:
+ Có thể kiểm soát nhiều hơn đối với dịch chuyển ngang
+ Địa hình chồng chéo
+ Kiểm soát tối đa đối với họa tiết
-Collision phức tạp hơn một chút
-Có thể sử dụng thêm một chút bộ nhớ trên đĩa

Theo kinh nghiệm của tôi, tốt nhất là sử dụng sơ đồ chiều cao hơi phẳng cho địa hình cơ sở và mô hình sử dụng cho những thứ như măng đá và thậm chí bạn có thể sử dụng các mô hình lặp lại cho các đối tượng đó (để tiết kiệm bộ nhớ).

Tất nhiên, bạn có thể sử dụng trường vectơ, nhưng về cơ bản đó là một mô hình với kết cấu dễ dàng hơn.


1

Nó có thể hữu ích nếu bạn nói với chúng tôi trò chơi là thể loại gì, máy ảnh nhìn thấy gì, v.v ... Tôi giả sử bạn đang nói về FPS nhưng tôi không chắc.

Dù sao, đây là một liên kết đến một cuộc nói chuyện về địa hình trong Halo Wars mà tôi thấy thú vị và có thể cung cấp cho bạn các ý tưởng: http://www.gdcvault.com/play/1277/HALO-WARS-The-Terrain-of . Nó liên quan đến một số vấn đề và giải pháp có thể bạn đã đề cập.


0

Bạn không nhất thiết phải chọn cái khác, cả hai đều có thể hiệu quả và không có lý do gì bạn không thể kết hợp cả hai.

Nếu bạn sử dụng heightmap, cá nhân tôi sẽ chọn định dạng bitmap. Directx sẽ có thể thực hiện tất cả việc tải bitmap cho bạn và biến nó thành tài nguyên bạn có thể sử dụng. Nếu bạn sử dụng một tệp văn bản đơn giản, bạn sẽ phải tự phân tích nó. Điều này tất nhiên giúp bạn có thêm tự do trong việc diễn giải tệp và có thể là điểm khởi đầu tốt để cho phép thử nghiệm dễ dàng hơn.

Một điều cần xem xét là một sơ đồ chiều cao sẽ khiến bạn có độ phân giải cố định, do đó, các măng đá mà bạn đề cập có thể khó thể hiện tốt, trừ khi bạn tăng mật độ pixel của toàn bản đồ.

Nói chung, tôi muốn nói rằng một sơ đồ chiều cao là một phương tiện hiệu quả để lưu trữ địa hình của bạn, nhưng thêm chi tiết như măng đá sẽ linh hoạt hơn rất nhiều với các mô hình.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.