ฉันจะสร้างแผนที่พื้นผิวแบบคลาวด์ได้อย่างง่ายดายได้อย่างไร


16

ฉันกำลังสร้างดาวเคราะห์ 3 มิติในเกมของฉัน สิ่งเหล่านี้จะถูกมองว่าเป็น "ลูกโลก" บางคนต้องการชั้นเมฆ ผมมองไปที่ปั่นต่างๆบทเรียนสำหรับการสร้าง "โลก"และสำหรับชั้นเมฆของพวกเขาที่พวกเขาใช้ระบบคลาวด์แผ่นดินแผนที่จากองค์การนาซ่า

อย่างไรก็ตามฉันจะสร้างจักรวาลตัวละครที่มีดาวเคราะห์ที่สร้างขึ้นตามขั้นตอนจำนวนมาก ดังนั้นฉันต้องการใช้หลายรูปแบบ

ฉันหวังว่าจะมีวิธีในการสร้างแผนที่คลาวด์ในขั้นตอนเช่นลิงก์ของนาซา ฉันจะต้องสร้างยักษ์แก๊สด้วยดังนั้นฉันจะต้องมีแผนที่พื้นผิวเมฆชนิดอื่นด้วย

ถ้านั่นยากเกินไปฉันอาจย้อนกลับไปสร้างแผนที่คลาวด์หลายรูปแบบ ตัวอย่างเช่น 3 สำหรับเหมือนโลก 3 สำหรับยักษ์ก๊าซเป็นต้น

ดังนั้นฉันจะสร้างหรือสร้างแผนที่คลาวด์เช่นนั้นได้อย่างไร

คำตอบ:


19

การสร้างคลาวด์เป็นเรื่องสนุก! ฉันจะครอบคลุมทั้งวิธีออฟไลน์และวิธีใช้งานจริง

เมฆที่แสดงผลล่วงหน้า

หากคุณต้องการแสดงผลพื้นผิวคลาวด์ล่วงหน้าแบบออฟไลน์ไม่ต้องมองหา 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": เอาต์พุตดิบของคำสั่ง Gimp "Solid Noise"

อีกหนึ่งขั้นตอนที่ฉันขอแนะนำคือแก้ไขระดับของภาพ (เป็น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:เริ่มต้นอย่างแน่นอนด้วยการใช้เมฆที่แสดงผลล่วงหน้าและเปลี่ยนไปใช้คลาวด์ขั้นตอนแบบรันไทม์หากคุณต้องการความหลากหลายเพิ่มเติม (หรือต้องการความท้าทายด้านการเขียนโปรแกรมเพิ่มเติม)


1
นี่คือคำตอบที่ยอดเยี่ยม: ครอบคลุมและติดตามได้ง่าย ฉันเห็นคุณพูดถึง "แปรปรวนเมฆเพื่อแนะนำรูปแบบลม" นี่คือสิ่งที่ฉันจะต้องทำอย่างแน่นอนดังนั้นคุณสามารถทำรายละเอียดเล็กน้อย? เมื่อฉันได้สิ่งนี้ฉันจะยอมรับคำตอบของคุณ
EdwardTeach

@EdwardTeach เรียบร้อยแล้ว; หวังว่าจะช่วยได้!
Postgoodism
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.