Blender: Chiếu bản đồ lên hình cầu

Oct 09 2020

Tôi có một phần của bản đồ, với các tọa độ của nó, và tôi muốn chiếu nó vào đúng vị trí của nó trên một hình cầu, giống như trên một hành tinh. Bản đồ này là một hình ảnh địa lý với các tọa độ địa lý của nó.

Tôi đã tìm cách chèn nó dưới dạng kết cấu hình ảnh vào hình cầu, sau đó điều chỉnh vị trí bản đồ trên hình cầu theo cách thủ công, nhưng giải pháp đó không chính xác. Ngoài ra, tôi muốn thêm một số bản đồ trên cùng một hình cầu và tôi cần xác định vị trí chính xác của chúng.

Có cách nào để đưa bản đồ vào đúng tọa độ của nó bằng máy xay sinh tố không?

Đây là một trong những hình ảnh (từ sao Hỏa), làm ví dụ:

Và đây là những gì tôi cần:

Trả lời

3 lemon Oct 16 2020 at 07:28

Xem xét phần bản đồ tương ứng với một phép chiếu hình tam giác, chúng ta có thể làm biến dạng mặt phẳng đến hình cầu bằng cách tiếp cận được chỉ ra ở đây .

Tạo hình cầu từ lưới

Lưới cơ sở phải có tỷ lệ width/height = 2như chúng tôi lập bản đồ vì kinh độ là 360 độ và kinh độ là 180 độ.

Nếu lưới song song với chế độ xem phía trước, chúng ta có thể cung cấp cho nó một số chia nhỏ phẳng và bẻ cong nó 180 ° xung quanh X và 360 ° xung quanh Z.

Để mở nó ra (vì chúng tôi sẽ sử dụng ánh xạ UV), vẫn ở chế độ xem trước và chế độ chỉnh sửa, Usau đó sử dụng "Dự án từ chế độ xem (giới hạn)" .

Bộ đổ bóng để đặt phần bản đồ

Từ hình ảnh đã cho, chúng ta có thể thấy rằng phần bản đồ nằm (gần đúng) từ -160 ° đến -126 ° theo kinh độ và từ 28 ° đến 64 ° theo vĩ độ.

Những gì chúng ta phải làm:

  • Xác định xem một điểm đã cho có nằm trong phần bản đồ hay không
  • Bản đồ lại phần bản đồ này tại vị trí được cung cấp bởi các phạm vi tọa độ của nó

Trong X (hoặc U) trong bản đồ UV, một tọa độ nhất định nằm trong khoảng từ 0 đến 1. Kinh độ nằm trong khoảng từ -180 đến 180. Vì vậy, chúng ta có thể thay đổi tọa độ của phần bản đồ cho 180 và chia nó cho 360 để đi từ không gian kinh độ vào không gian UV.

Điều tương tự từ Y (hoặc V).

Với phép tính này (được thực hiện bởi nhóm nút AddDivide trong hỗn hợp bên dưới) được áp dụng cho các tọa độ của phần bản đồ, chúng ta có thể kiểm tra xem một điểm bản đồ UV nhất định có nằm bên trong bản đồ hay không (được thực hiện bởi giữa nhóm nút trong tệp bên dưới).

Tính toán đầu tiên này cho biết liệu kết cấu có phải được vẽ trên hình cầu cho một điểm bản đồ UV nhất định hay không.

Bây giờ để vẽ kết cấu ở vị trí mong muốn, chúng ta cần ánh xạ lại điểm UV cho không gian kết cấu ở vị trí và tỷ lệ tốt.

Điều này được thực hiện bằng cách trừ tọa độ bản đồ tối thiểu trong không gian UV với tọa độ điểm UV sau đó chia nó cho phạm vi bản đồ trong không gian UV.

X in texture space = (X in UV space - min map X in UV space) / (max map X - min map X in UV space)

Phần này được thực hiện bởi nhóm nút Remap01 trong tệp.

Cuối cùng, chúng tôi kết hợp tất cả lại với nhau trong một nhóm nút duy nhất để bạn có thể áp dụng nó cho một số phần bản đồ.

Nhóm nút này được gọi là RemapEquirectangular và có các tham số sau: tọa độ UV, kinh độ min và max, vĩ độ min và max.

Kết quả là như sau: