การสร้างคลาวด์เป็นเรื่องสนุก! ฉันจะครอบคลุมทั้งวิธีออฟไลน์และวิธีใช้งานจริง
เมฆที่แสดงผลล่วงหน้า
หากคุณต้องการแสดงผลพื้นผิวคลาวด์ล่วงหน้าแบบออฟไลน์ไม่ต้องมองหา Photoshop (หรือGimpหากคุณต้องการ) ทั้งสองโปรแกรมสามารถสร้างรูปแบบคลาวด์ได้อย่างง่ายดาย รายการเมนูมีแนวโน้มที่จะย้ายไปรอบ ๆ ระหว่างรุ่น แต่เป็นของ Gimp 2.8.2 Filters -> Render -> Clouds -> Solid Noise
คำสั่งหลักที่คุณกำลังมองหาอยู่ คุณจะต้องสร้างภาพว่างเปล่าใหม่ก่อนที่จะเปิดใช้งานคำสั่ง ฉันขอแนะนำให้คุณทดสอบด้วยพารามิเตอร์เสียงรบกวน แต่เป็นเพียงตัวอย่างเดียวนี่คือสิ่งที่จะเกิดขึ้นหากคุณตั้งค่า "Random Seed" เป็น 1 "รายละเอียด" ถึง 4, "X Size" เป็น 4.0, "Y Size" ถึง 8.0 ปิดการใช้งาน "Randomize" และ "Turbulent" และเปิดใช้งาน "Tilable":
อีกหนึ่งขั้นตอนที่ฉันขอแนะนำคือแก้ไขระดับของภาพ (เป็นColors -> Levels...
Gimp) ด้วยการลากจุดสิ้นสุดไปรอบ ๆ คุณสามารถเปลี่ยนระดับของการปกคลุมของคลาวด์ได้อย่างมีประสิทธิภาพจาก "มืดครึ้มอย่างเต็มที่" เป็น "ไม่ใช่เมฆในท้องฟ้า"
ความเป็นไปได้ที่น่าสนใจอื่น ๆ :
- ใช้เครื่องมือ "Dodge" และ "Burn" เพื่อปรับความสว่าง / มืดของส่วนของภาพด้วยตนเอง
- วาปภาพเมฆเพื่อแนะนำรูปแบบลม ลองใช้
Filters -> Distorts -> Whirl and Pinch...
คำสั่งของ Gimp หรือควบคุมการใช้งานมากขึ้นFilters -> Distorts -> IWarp...
ด้วยโหมด Deform ที่ตั้งค่าเป็น "Swirl" แม้ว่าจะรักษาความละเอียดไว้เล็กน้อย - การแปรปรวนมากเกินไปมีแนวโน้มที่จะเบลอรายละเอียดความถี่สูงออกจากภาพ
- เพิ่มเลเยอร์เมฆอิสระหลายชั้นเพื่อจำลองเมฆประเภทต่าง ๆ ตั้งแต่ขนาดบางและเล็กไปจนถึงขนาดใหญ่ & หนา (ฉันแน่ใจว่าพวกเขามีชื่อทางวิทยาศาสตร์ที่เหมาะสม แต่จิมฉันเป็นโปรแกรมเมอร์ไม่ใช่นักอุตุนิยมวิทยา!) ในกรณีนี้คุณอาจต้องการบันทึกแต่ละเลเยอร์เป็นรูปภาพแยกต่างหากเพื่อให้คุณสามารถเคลื่อนไหวได้อย่างอิสระในขณะทำงาน
มันขึ้นอยู่กับวิสัยทัศน์ทางศิลปะของคุณ ไปถั่ว! เมื่อเสร็จแล้วอย่าลืมส่งออกพื้นผิวเป็นภาพสีเทาช่องทางเดียวเพื่อให้คุณสามารถใช้ข้อมูลคลาวด์เดียวกันสำหรับสีและช่องอัลฟาของคุณในขณะทำงาน
การสร้างคลาวด์รันไทม์
การสร้างรูปแบบคลาวด์แบบไม่ จำกัด ที่รันไทม์นั้นมีความเกี่ยวข้องมากกว่า แต่ก็ยังเป็นไปได้โดยสิ้นเชิง มันเป็นหัวข้อใหญ่และจะครอบคลุมเฉพาะจังหวะกว้าง ๆ เท่านั้น
โดยพื้นฐานแล้วคุณกำลังจะทำซ้ำคำสั่ง "Solid Noise" ของ Gimp ในโค้ด shader ของคุณโดยใช้ฟังก์ชั่นเสียงเช่น canonical Perlin Noiseเพื่อสร้างระดับเสียงไม่มีที่สิ้นสุดราบรื่นกำหนดขึ้นได้ (เป็นทางเลือก) คำถามของคุณไม่ได้ระบุ API การแสดงผลที่คุณกำหนดเป้าหมายดังนั้นฉันจึงไม่เจาะจงเกินไป บทที่ 26 ของ "GPU Gems 2"ครอบคลุมเสียงรบกวนของ Perlin ใน (ค่อนข้างเก่า) HLSL และ CgFX หรือคุณสามารถใช้ฟังก์ชั่น GLSL หล่นในเสียงได้. ด้วยการสุ่มตัวอย่างชิ้นเสียงสองมิติแบบ 2D คุณจะได้คำสั่ง Gimp "Solid Noise" ที่มีรายละเอียด = 0 ยิ่งระยะห่างระหว่างตัวอย่างเสียงลดลงความถี่ของคุณก็จะลดลง ("นุ่มนวล") หากต้องการเพิ่มระดับของรายละเอียดความถี่สูงให้เริ่มต้นด้วยรูปแบบสัญญาณรบกวนความถี่ต่ำพื้นฐานและเพิ่มสัญญาณรบกวน "อ็อกเทฟ" ความถี่สูงเพิ่มเติมโดยที่ "อ็อกเทฟ" แต่ละอันมีความแตกต่างของระดับเสียง 3D ที่แตกต่างกัน และแอมพลิจูดที่ต่ำกว่า ตัวอย่างภาพของกระบวนการนี้ (ซึ่งผมพบโดย Googling "หลายคู่ Perlin เสียง") สามารถพบได้ที่นี่
ในฐานะที่เป็นโบนัสที่เพิ่มขึ้นอย่างมากพื้นผิวแบบคลาวด์ที่สร้างในแบบนี้สามารถเคลื่อนไหวได้อย่างง่ายดายมาก! เพิ่มออฟเซ็ตตามเวลาลงในพิกัดตัวอย่างฟังก์ชั่นเสียงรบกวน 3D ของคุณและคุณจะได้รับการเคลื่อนไหวของคลาวด์ที่น่าเชื่อถืออย่างมาก (เช่นที่เห็นในวิดีโอนี้เป็นต้น) นี่เป็นเพราะฟังก์ชั่นเสียงรบกวนนั้นราบรื่นในทั้งสามมิติ การเลื่อนพื้นผิวในทิศทาง U / V ทำให้เมฆเคลื่อนที่ไปรอบ ๆ ดาวเคราะห์ในขณะที่การเลื่อนในทิศทาง W (ตั้งฉาก) จะมีผลกระทบอย่างช้า ๆ "วิวัฒนาการ" เมฆ
แปรปรวนเมฆที่รันไทม์เป็นไปได้เช่นกันสำหรับผลกระทบเหมือนพายุเฮอริเคน ผลลัพธ์อาจมีคุณภาพสูงกว่าฟิลเตอร์แปรปรวนnaïve Gimp ซึ่ง (ดังที่ได้กล่าวไว้ก่อนหน้านี้) สามารถนำไปสู่พื้นผิวที่พร่ามัวมากเกินไป เทคนิคหนึ่งที่คุณต้องการดูอย่างแน่นอนคือ "flow maps" ตามที่อธิบายโดย Alex Vlachos of Valve ( SIGGRAPH 2010 สไลด์ ) หรือ Carlos Gonzalez ของ Naughty Dog ( สไลด์ GDC 2012 ) แนวคิดพื้นฐานคือคุณวาดเขตข้อมูลเวกเตอร์ ("แผนที่การไหล") และใช้เพื่อบิดเบือนและเลื่อนพื้นผิวของคลาวด์ที่รันไทม์ในขณะที่ข้ามระยะห่างระหว่างพื้นผิวเมฆที่แตกต่างกันสองครั้งเมื่อระยะการบิดเบือนสูงเกินไป
ใช้วิธีใด
การแสดงพื้นผิวคลาวด์ล่วงหน้าใน Gimp / Photoshop นั้นง่ายมาก คุณสามารถสร้างพื้นผิวใหม่ในไม่กี่วินาทีเมื่อคุณได้รับมัน รหัสรันไทม์นั้นเล็กน้อยและรวดเร็วมาก อย่างไรก็ตามพื้นผิวแบบคลาวด์ที่เป็นเอกลักษณ์มากขึ้นหมายถึงความต้องการพื้นที่ดิสก์ที่สูงขึ้น (เช่นการดาวน์โหลดที่ใหญ่ขึ้น / ช้าลง) และการใช้งาน VRAM เพิ่มเติมที่รันไทม์
การสร้างคลาวด์รันไทม์นั้นยากกว่ามากในตอนแรก แต่เมื่อคุณทำงานได้มันจะมีข้อได้เปรียบที่ชัดเจนมากกว่าพื้นผิวของคลาวด์ที่แสดงผลล่วงหน้า คุณสามารถสร้างรูปแบบคลาวด์แบบเคลื่อนไหวที่สมจริงไม่ จำกัด ได้โดยไม่ต้องใช้พื้นที่ดิสก์เพิ่มเติมหรือ VRAM อย่างไรก็ตามค่าใช้จ่ายรันไทม์ของการประเมินฟังก์ชั่นสัญญาณรบกวน 3D หลายรายการต่อพิกเซลสามารถสูงชันได้ เมฆเฉดสีของคุณจะช้ากว่าในกรณีที่แสดงผลล่วงหน้า
TL; DR:เริ่มต้นอย่างแน่นอนด้วยการใช้เมฆที่แสดงผลล่วงหน้าและเปลี่ยนไปใช้คลาวด์ขั้นตอนแบบรันไทม์หากคุณต้องการความหลากหลายเพิ่มเติม (หรือต้องการความท้าทายด้านการเขียนโปรแกรมเพิ่มเติม)