2012-12-23 40 views
10

Vì vậy, khi nhìn thấy hình ảnh từ Godus tôi đã tự hỏi làm thế nào để tạo ra một đơn giản không tương tác, hình ảnh 2D với màu sắc, khác nhau cho tầm cao khác nhau hoặc các lớp chiều cao như trên hình bên dưới.iOS: Tạo hình ảnh từ dữ liệu không phải hình ảnh (Godus như ngang)

Tôi chỉ đang nghĩ đến việc tạo ra các lớp màu cơ bản cho địa hình không có nhà cửa, cây cối và các đơn vị. Tôi đã không suy nghĩ về việc tạo ra một công cụ đồ họa mà có thể giải quyết điều này, nhưng một cách đơn giản để tạo ra một hình ảnh phẳng trên màn hình.

Câu hỏi đặt ra là hai lần:

1, Những loại dữ liệu có thể được sử dụng cho loại này của thế hệ? Tôi đã nghĩ có thể là nghệ thuật ASCII dễ tạo và sửa đổi để nhanh chóng thay đổi địa hình, nhưng sẽ rất khó để cung cấp thông tin về chiều cao.

2, Các khung, lớp, phương pháp hoặc phương pháp hiện có có thể được sử dụng để giải quyết thế hệ sau khi có sẵn dữ liệu.

Godus: like this one

nghệ thuật ASCII (phía bắc châu Âu với cho Na Uy, # cho Thụy Điển, $ cho Phần Lan và% cho Nga: enter image description here

(Trích từ các tài liệu MapBox : http://mapbox.com/developers/utfgrid/#map_data_as_ascii_art)

Trả lời

5

Nếu bạn muốn tạo hình ảnh 2D, đường viền đơn giản, tôi sẽ thử như sau:

  • Tạo một số dữ liệu chiều cao. Tôi chỉ cần sử dụng một hình ảnh có quy mô màu xám cho điều đó, thay vì ascii. Bạn có thể tạo ra các bản đồ độ cao cơ bản trong MS Paint hoặc bất kỳ thứ gì tương tự.
  • Làm mịn dữ liệu. Ví dụ: áp dụng hiệu ứng làm mờ hoặc tăng độ phân giải bằng bộ lọc mịn.
  • Cân nhắc kẹp tất cả dữ liệu độ cao bên dưới một điểm nhất định - đây là mức nước, nếu bạn muốn.
  • Định lượng dữ liệu. Bạn càng định lượng, càng ít đường nét càng rõ ràng hơn.
  • Áp dụng màu giả, thông qua tra cứu bảng màu. Ví dụ: một khu vực thấp màu xanh, cho nước, sau đó màu vàng, cho cát, màu xanh lá cây cho cỏ, nâu cho trái đất, màu xám cho đá, và trắng cho tuyết.

Các bộ phận quan trọng là bộ lọc mở rộng/làm mịn, tạo ra nhiều hình dạng thú vị hơn cho đường nét của bạn và số lượng thực sự tạo ra các đường nét.

Bạn có thể chơi với các giai đoạn của việc này. Ví dụ, bạn có thể giới thiệu một số tiếng ồn với địa hình, để làm cho nó trông tự nhiên hơn nếu dữ liệu nguồn của bạn là rất sạch sẽ. Hoặc bạn có thể tăng độ mịn nếu bạn muốn mọi thứ được làm tròn.

Nếu bạn muốn sử dụng ascii, bạn chỉ có thể tạo bitmap trực tiếp từ đó, điều này sẽ không phức tạp.Ascii bạn sử dụng như một ví dụ mặc dù được phân chia theo quốc gia chứ không phải là địa hình, do đó, màu giả và đường nét có lẽ sẽ làm điều sai trái. Bạn có thể sử dụng nó làm đầu vào cho một máy tạo địa hình đơn giản, có lẽ chỉ có một vài ký tự để biểu thị nơi bạn muốn đất, biển, núi, v.v.

Đây là một ví dụ rất cơ bản mà tôi gõ, nó chỉ là một ứng dụng của kỹ thuật tôi đã đề xuất. Tôi không sử dụng bất kỳ khung công tác hoặc lib nào, chỉ cần một vài chức năng xử lý hình ảnh đơn giản và bản đồ độ cao của Châu Âu mà tôi đã tìm thấy:

enter image description here

Các vấn đề liên quan