Làm thế nào tôi có thể dễ dàng tạo bản đồ kết cấu đám mây?


16

Tôi đang làm các hành tinh 3d trong trò chơi của mình; chúng sẽ được xem là "quả địa cầu". Một số trong số họ sẽ cần các lớp đám mây. Tôi đã xem các hướng dẫn khác nhau của Blender để tạo ra "trái đất" và đối với các tầng mây của họ, họ sử dụng bản đồ đám mây trái đất từ ​​NASA .

Tuy nhiên tôi sẽ tạo ra một vũ trụ hư cấu với nhiều hành tinh được tạo theo thủ tục. Vì vậy, tôi muốn sử dụng nhiều biến thể.

Tôi hy vọng có một cách để thủ tục tạo ra các bản đồ đám mây như liên kết của NASA. Tôi cũng sẽ cần tạo ra những người khổng lồ khí, vì vậy tôi cũng sẽ cần các loại bản đồ kết cấu đám mây khác .

Nếu điều đó quá khó, tôi có thể quay lại để tạo ra một số biến thể của bản đồ đám mây. Ví dụ: 3 cho người giống như trái đất, 3 cho người khổng lồ khí, v.v.

Vậy làm thế nào để tôi tạo tĩnh hoặc lập trình tạo các bản đồ đám mây như vậy?

Câu trả lời:


19

Thế hệ đám mây thật thú vị! Tôi sẽ bao gồm cả phương thức ngoại tuyến và thời gian chạy.

Những đám mây được kết xuất trước

Nếu bạn muốn kết xuất trước kết cấu đám mây của mình ngoại tuyến, đừng tìm đâu xa ngoài Photoshop (hoặc Gimp , nếu bạn thích). Cả hai chương trình có thể dễ dàng tạo ra các mẫu đám mây. Các mục menu có xu hướng di chuyển xung quanh giữa các bản phát hành, nhưng kể từ Gimp 2.8.2, lệnh cốt lõi mà bạn đang tìm kiếm là Filters -> Render -> Clouds -> Solid Noise. Bạn sẽ cần tạo một hình ảnh trống mới trước khi lệnh được kích hoạt. Tôi khuyến khích bạn thử nghiệm các tham số nhiễu, nhưng chỉ là một ví dụ, đây là điều sẽ xảy ra nếu bạn đặt "Hạt giống ngẫu nhiên" thành 1, "Chi tiết" thành 4, "Kích thước X" thành 4.0, "Kích thước Y" thành 8.0, vô hiệu hóa "Ngẫu nhiên" và "Rối loạn" và bật "Tilable": Đầu ra thô của lệnh Gimp "Solid noise"

Một bước nữa tôi chắc chắn khuyên bạn nên chỉnh sửa các cấp độ của hình ảnh ( Colors -> Levels...trong Gimp). Bằng cách kéo các điểm cuối xung quanh, bạn có thể thay đổi hiệu quả mức độ che phủ của đám mây từ "hoàn toàn u ám" thành "không phải là một đám mây trên bầu trời". Những đám mây ngưỡng

Các khả năng thú vị khác:

  • Sử dụng các công cụ "Dodge" và "Burn" để làm sáng / làm tối các phần của hình ảnh theo cách thủ công.
  • Warp hình ảnh đám mây để đề xuất các mẫu gió. Hãy thử Filters -> Distorts -> Whirl and Pinch...lệnh của Gimp hoặc để sử dụng nhiều điều khiển hơn Filters -> Distorts -> IWarp...với Chế độ biến dạng được đặt thành "Xoay". Mặc dù vậy, hãy giữ cho nó tinh tế - quá nhiều cong vênh có xu hướng làm mờ chi tiết tần số cao ra khỏi hình ảnh.
  • Thêm nhiều lớp đám mây độc lập để mô phỏng các loại đám mây khác nhau, từ mỏng và khôn ngoan đến lớn & chunky (Tôi chắc chắn chúng có tên khoa học thích hợp, nhưng chết tiệt Jim, tôi là một lập trình viên, không phải nhà khí tượng học!). Trong trường hợp này, có lẽ bạn muốn lưu mỗi lớp thành một hình ảnh riêng biệt để bạn có thể làm động chúng một cách độc lập khi chạy.

Nó thực sự phụ thuộc vào tầm nhìn nghệ thuật của bạn. Đi hạt dẻ! Khi bạn kết thúc, hãy nhớ xuất kết cấu dưới dạng hình ảnh thang độ xám một kênh, để bạn có thể sử dụng cùng một dữ liệu đám mây cho kênh màu và kênh alpha của mình khi chạy.

Tạo đám mây thời gian chạy

Tạo các mẫu đám mây không giới hạn khi chạy có liên quan nhiều hơn một chút, nhưng vẫn hoàn toàn khả thi. Đây là một chủ đề lớn, và điều này sẽ chỉ bao gồm các nét rộng.

Về cơ bản, bạn sẽ sao chép lệnh "Nhiễu rắn" của Gimp trong mã shader của mình, sử dụng chức năng nhiễu như Perlin Noise chính tắc để tạo ra các âm lượng nhiễu định kỳ, mịn, xác định, (tùy chọn). Câu hỏi của bạn không chỉ định API kết xuất nào bạn đang nhắm mục tiêu, vì vậy tôi không thể quá cụ thể ở đây; chương 26 của "GPU Gems 2" bao gồm một biến thể của tiếng ồn Perlin trong (một phần ngày) HLSL và CgFX, hoặc bạn có thể sử dụng chức năng nhiễu GLSL thả xuống này. Bằng cách lấy mẫu một lát 2D của âm lượng nhiễu 3D, bạn sẽ có được thứ gì đó giống như lệnh Gimp "Solid noise" với Chi tiết = 0. Khoảng cách giữa các mẫu âm lượng tiếng ồn của bạn càng thấp, tần số thấp hơn ("mịn hơn") tiếng ồn của bạn sẽ càng thấp. Để tăng mức độ chi tiết tần số cao, hãy bắt đầu với mẫu nhiễu tần số thấp cơ sở và thêm các "quãng tám" tần số cao hơn, trong đó mỗi "quãng tám" là một lát khác nhau của âm lượng 3D với khoảng cách lấy mẫu lớn hơn và biên độ thấp hơn. Một ví dụ trực quan về quá trình này (mà tôi tìm thấy bởi "tiếng ồn Perlin đa quãng tám" của Google có thể được tìm thấy ở đây .

Là một phần thưởng bổ sung khổng lồ, kết cấu đám mây được tạo theo kiểu này có thể rất dễ dàng được tạo hình động! Thêm phần bù dựa trên thời gian vào tọa độ mẫu hàm nhiễu 3D của bạn và bạn sẽ có được chuyển động đám mây cực kỳ thuyết phục ( ví dụ như trong video này ). Điều này là do chức năng tiếng ồn trơn tru trong cả ba chiều; cuộn kết cấu theo hướng U / V làm cho các đám mây di chuyển xung quanh hành tinh, trong khi cuộn theo hướng W (vuông góc) có tác dụng từ từ "tiến hóa" các đám mây.

Các đám mây cong vênh khi chạy cũng có thể, cho các hiệu ứng giống như bão. Kết quả thực sự có thể có chất lượng cao hơn nhiều so với các bộ lọc sợi dọc Gimp ngây thơ, mà (như đã đề cập trước đó) có thể dẫn đến một kết cấu quá mờ. Một kỹ thuật mà bạn chắc chắn muốn xem xét là "bản đồ dòng chảy", như được mô tả bởi Alex Vlachos của Valve ( slide SIGGRAPH 2010 ) hoặc Carlos Gonzalez của Naughty Dog ( slide GDC 2012 ). Ý tưởng cơ bản là bạn vẽ một trường vectơ ("sơ đồ dòng chảy") và sử dụng nó để làm biến dạng và cuộn kết cấu đám mây khi chạy, trong khi định kỳ mờ giữa hai kết cấu đám mây khác nhau khi khoảng cách biến dạng quá cao.

Sử dụng phương pháp nào?

Kết cấu trước đám mây kết xuất trong Gimp / Photoshop cực kỳ dễ dàng; bạn có thể tạo một kết cấu mới trong vài giây sau khi bạn hiểu rõ về nó. Mã thời gian chạy là tầm thường, và rất nhanh. Tuy nhiên, kết cấu đám mây độc đáo hơn có nghĩa là yêu cầu không gian đĩa cao hơn (đồng thời, tải xuống lớn hơn / chậm hơn) và sử dụng VRAM nhiều hơn khi chạy.

Việc tạo đám mây thời gian chạy ban đầu khó khăn hơn nhiều, nhưng một khi bạn làm cho nó hoạt động, nó có một số lợi thế rõ ràng so với kết cấu đám mây được kết xuất trước. Bạn có thể tạo vô số các mẫu đám mây hoạt hình thực tế mà không cần sử dụng bất kỳ không gian đĩa hoặc VRAM bổ sung nào. Tuy nhiên, chi phí thời gian chạy để đánh giá nhiều chức năng nhiễu 3D trên mỗi pixel có thể rất cao; trình tạo bóng đám mây của bạn sẽ chậm hơn nhiều so với trường hợp được kết xuất sẵn.

TL; DR: chắc chắn bắt đầu bằng cách sử dụng các đám mây được kết xuất sẵn và chuyển sang các đám mây thủ tục thời gian chạy nếu bạn cần thêm sự đa dạng (hoặc muốn có thêm một thách thức lập trình).


1
Đây là một câu trả lời tuyệt vời: rất toàn diện và dễ làm theo. Tôi thấy bạn đã đề cập đến "cong vênh những đám mây để gợi ý các kiểu gió". Đây là điều tôi chắc chắn sẽ cần phải làm, vì vậy bạn có thể giải thích một chút không? Một khi tôi có điều này, tôi sẽ chấp nhận câu trả lời của bạn.
EdwardTeach

@EdwardTeach Xong; Hy vọng rằng sẽ giúp!
nghĩa hậu hiện đại
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.