ไขความลับ Terrain Heightfield: ภูเขานับหมื่นรูปในเกมสร้างยังไง? ข้อดี-ข้อเสียที่ต้องรู้
เคยสงสัยไหมว่าเกมโลกเปิดสร้างภูเขาหุบเขามหาศาลได้ยังไงโดยไม่ทำเครื่องเราแลง? บทความนี้เราจะมาเจาะลึกเทคนิค Terrain Heightfield พร้อมข้อดีและข้อเสียที่นักพัฒนาเกมต้องรู้
สารบัญ

ภูเขามหาศาลเกิดขึ้นจากภาพขาวดำ?
ลองนึกภาพตอนคุณเดินเตร่อยู่ในโลกกว้างของเกม Skyrim หรือ The Witcher 3 สิ้นสุดสายตามีแต่ภูเขาที่ทอดยาว หุบเขาลึกลับ และที่ราบสูงที่สวยงาม คำถามคือ นักพัฒนาเกมเขียนโค้ดหรือสร้างโมเดลสามมิติทุกตัวเพื่อปั้นภูเขาเหล่านั้นขึ้นมาจริงไหม? คำตอบคือไม่เป็นไปได้ที่จะทำด้วยมือตั้งแต่ต้นจนจบ
ความลับเบื้องหลังการสร้างโลกจำลองขนาดใหญ่ ซ่อนอยู่ในไฟล์ภาพขาวดำธรรมดาๆ ที่เราเรียกกันว่า Heightfield (หรือ Heightmap) บทความนี้เราจะเดินทางไปดูกันว่าเทคโนโลยีตัวนี้คืออะไร มันทำงานยังไง และทำไมมันถึงมีทั้งข้อดีที่ทำให้เกมเกิดขึ้น และข้อเสียที่ทำให้นักพัฒนาต้องปวดหัว
Terrain Heightfield คืออะไร?
พูดง่ายๆ ว่า Heightfield คือการใช้ภาพ 2 มิติ (2D Image) มาบอกข้อมูลความสูงต่ำของพื้นที่ในโลก 3 มิติ (3D World) โดยอาศัยหลักการง่ายๆ คือ:
- สีดำ (Black): แทนจุดที่ต่ำที่สุด (เช่น ก้นหุบเขา หรือระดับน้ำทะเล)
- สีขาว (White): แทนจุดที่สูงที่สุด (เช่น ยอดเขาที่ปกคลุมด้วยหิมะ)
- สีเทา (Gray): แทนความสูงที่อยู่ระหว่างกลาง ยิ่งสีอ่อนเท่าไหร่ ยิ่งสูงขึ้น
เอนจินเกม (Game Engine) อย่าง Unity หรือ Unreal Engine จะอ่านค่าพิกเซล (Pixel) จากรูปภาพเหล่านี้ แล้วนำมาแปลงเป็นพิกัดแกน Z (หรือ Y ในบางเอนจิน) ของเมช (Mesh) บนระนาบ 3 มิติ ทำให้เกิดเป็นพื้นที่ที่มีระดับความสูงต่ำแตกต่างกันไปทั้งแผ่น
วิธีการทำงานเบื้องหลัง
ลองจินตนาการว่าคุณมีกระดาษกราดที่เป็นจุดเล็กๆ วางเรียงกันเป็นแผ่นสี่เหลี่ยม แต่ละจุดคือ Vertex ในโลก 3D เมื่อคุณเอาภาพ Heightfield มาวางทับ ระบบจะเริ่มอ่านค่าสีทีละจุด
ถ้าพิกเซลนั้นเป็นสีขาวล้วน เอนจินก็จะดึงจุดนั้นขึ้นไปสูงตามค่าที่ตั้งไว้ (เช่น 1000 เมตร) ถ้าเป็นสีดำล้วน จุดนั้นก็จะอยู่ติดพื้น การผสมผสานของจุดนับล้านๆ จุดที่ถูกดึงขึ้นลงตามภาพขาวดำ จึงกลายเป็นภูเขาและหุบเขาที่เราเห็นในเกม
ข้อดีของการใช้ Heightfield
ทำไมนักพัฒนาเกมยุค 2000 จนถึงปัจจุบันยังคงพึ่งพา Heightfield กันอยู่? นี่คือเหตุผลหลัก
1. ประหยัดทรัพยากรอย่างมหาศาล
การเก็บข้อมูลรูปภาพขาวดำ (Grayscale) ขนาด 1024x1024 พิกเซล ใช้พื้นที่ดิสก์เพียงไม่กี่เมกะไบต์ แต่มันสามารถสร้างพื้นที่ภูเขาที่กว้างหลายตารางกิโลเมตรในเกมได้ หากต้องสร้างเป็นโมเดล 3D จริงๆ ไฟล์จะใหญ่จนเครื่องเล่นเกมคอนโซลรับไม่ไหว
2. แก้ไขง่ายดายในโปรแกรม 2D
คุณไม่จำเป็นต้องเป็นศิลปิน 3D ปั้นภูเขาก็สามารถสร้างโลกได้ ด้วยการเปิดโปรแกรมอย่าง Photoshop หรือ GIMP ใช้พู่กันทาสีขาวทาสีดำ หรือใช้ฟิลเตอร์ Clouds เพื่อสร้างเนินเขาสุ่มขึ้นมา บางคนถึงกับใช้โปรแกรมประมวลผลภาพจากดาวเทียมของ NASA มาทำเป็นแผนที่ในเกมโดยตรง
3. เหมาะกับการสร้างด้วย Procedural Generation
โปรแกรมอย่าง World Machine หรือ Gaea ถูกออกแบบมาเพื่อสร้าง Heightfield โดยเฉพาะ คุณแค่ใส่กฎทางธรรมชาติ (เช่น น้ำไหลผ่าน ลมพัด ภูเขาไฟระเบิด) โปรแกรมจะคำนวณและ spit ออกมาเป็นภาพ Heightfield ที่ดูเหมือนธรรมชาติสร้างมาเอง นำไปใส่ในเกมได้ทันที
ข้อเสียและข้อจำกัดที่หลีกเลี่ยงไม่ได้
อย่างที่กล่าวไป ไม่มีเทคโนโลยีไหนสมบูรณ์แบบ Heightfield ก็มีจุดอ่อนที่ทำให้นักออกแบบเกมต้องคิดหนัก
1. ทำถ้ำหรือโขดหินยื่นออกมา (Overhang) ไม่ได้
นี่คือข้อจำกัดที่ใหญ่ที่สุด เพราะ Heightfield คือการดึงพื้นที่ราบขึ้นไปบนแกนเดียว (1 พิกเซล = 1 ค่าความสูง) มันจึงไม่สามารถสร้างโครงสร้างที่โค้งงอเหนือพื้นได้ เช่น ถ้ำลึกลับ หรือหน้าผาที่ยื่นออกมากั้นแสง ถ้าจะทำถ้ำในเกมที่ใช้ Heightfield นักพัฒนามักต้องวางโมเดล 3D ของปากถ้ำทับลงไปบนพื้นที่ราบแทน
2. ปัญหาพิกเซลแตก (Pixelation) เมื่อเข้าใกล้
ภาพ Heightfield มีขนาดจำกัด (เช่น 4096x4096) ถ้าตัวละครเดินไปใกล้ภูเขามากๆ จะเห็นว่าผิวของภูเขาเป็นเหลี่ยมๆ คล้ายบันได (Stepping artifact) เพราะความละเอียดของภาพไม่พอต่อการเรนเดอร์ระยะใกล้ แม้เอนจินสมัยใหม่จะมีระบบ Tessellation มาช่วยปรับให้เรียบ แต่มันก็ยังกินทรัพยากรอยู่ดี
3. ผิวเรียบเลื่อน (Texture Stretching) ตามทางชัน
เวลาเราทาสี (Texture) ลงบนภูเขาที่สูงชันมากๆ ภาพพื้นผิวที่วางลงไปจะถูกยืดตามแนวแกน Z จนดูผิดธรรมชาติ ทำให้หญ้าหรือหินที่ควรจะเป็นจุดเล็กๆ กลายเป็นเส้นยาวๆ นักพัฒนาต้องใช้เทคนิค Triplanar Mapping หรือการทาสีแบบฉาย 3 ด้านเข้ามาช่วยแก้ปัญหานี้ ซึ่งก็ต้องแลกมาด้วยภาระการประมวลผลที่เพิ่มขึ้น
ตัวอย่างจริงในวงการพัฒนาเกม
ในเกม Ghost of Tsushima ทีมพัฒนา Sucker Punch ใช้ Heightfield เป็นฐานในการสร้างเกาะสึชิมะ แต่เนื่องจากเกมนี้มีโขดหินที่สวยงามและซับซ้อนมาก พวกเขาจึงไม่ได้ใช้ Heightfield เพียวๆ แต่นำโมเดล 3D ที่ปั้นสำเร็จมาวางทับ (Scatter) ลงบนพื้นฐาน Heightfield เพื่อให้ได้ทั้งความสมจริงและประสิทธิภาพที่ดี
ส่วนในวงการ Indie หรืองาน Blender 3D นักศิลปะมักจะใช้ภาพ Heightfield มาเสียบเข้ากับโหนด Displacement ใน Material ของ Blender เพื่อให้เอนจิน Cycles หรือ Eevee สร้างรายละเอียดดอกไม้เล็กๆ บนพื้นผิวโมเดลที่ปั้นมาแล้ว ทำให้โมเดลดูสมจริงโดยไม่ต้องเพิ่มจำนวน Polygon ในตอนต้น
ทางเลือกในอนาคต: Voxel Terrain
เพื่อแก้ปัญหาข้อจำกัดเรื่องถ้ำและโขดหินยื่น เทคโนโลยี Voxel Terrain (การสร้างโลกแบบ Minecraft ที่โลกประกอบด้วยบล็อกเล็กๆ ทึบ) เริ่มถูกนำมาใช้ในเกมบางประเภท แต่ Voxel กินทรัพยากรสูงกว่า Heightfield มาก ทำให้ยังไม่สามารถใช้สร้างเกมโลกเปิดขนาดมหาศาลได้อย่างไหลลื่น Heightfield จึงยังคงเป็นมาตรฐานที่ยั่งยืนต่อไป
ถึงเวลาลองสร้างโลกของคุณเอง
ถ้าคุณเป็นนักพัฒนามือใหม่ที่อยากลองสัมผัสความมหัศจรรย์ของ Heightfield ผมแนะนำให้เปิด Blender ขึ้นมา สร้าง Plane มาหนึ่งรูป แล้วลองหาภาพ Heightmap ฟรีๆ จากอินเทอร์เน็ตมาเสียบเข้ากับ Displacement Modifier ดูสิครับ คุณจะเห็นภาพ 2 มิติกลายร่างเป็นภูเขา 3 มิติต่อหน้าต่อตาในไม่กี่วินาที
หรือถ้าใครเล่นเกมแล้วอยากเจาะลึกโค้ด ลองเข้าไปดู Document ของ Unity Terrain หรือ Unreal Engine Landscape ที่พวกเขาเปิดให้นำเข้าไฟล์ Raw Heightmap กันได้เลย
คุณล่ะครับ เคยลองปั้นภูเขาในเกมหรือในโปรแกรม 3D ด้วย Heightfield แล้วประสบปัญหาผิวยืดหรือขอบไม่เรียบบ้างไหม? มาแชร์เทคนิคการแก้ปัญหาของคุณกันได้ในคอมเมนต์เลย!
เนื้อหาที่จัดทำโดยมี AI ช่วยจะมีป้ายกำกับ "เรียบเรียงโดยมี AI ช่วย" เพื่อให้คุณทราบอย่างชัดเจน เราถือว่าความโปร่งใสเรื่องการใช้ AI เป็นสิ่งสำคัญต่อความไว้วางใจของผู้อ่าน
ความคิดเห็น (0)
ยังไม่มีความคิดเห็น — มาเป็นคนแรกกันเถอะ!