แก้ไข: นี่เป็นเพียงประสบการณ์การเรียนรู้ของฉันเองมันไม่ใช่เหตุผลด้านประสิทธิภาพที่ฉันถามคำถามนี้
นี่เป็นเรื่องเกี่ยวกับเครื่องยนต์ภูมิประเทศที่เหมือน Minecraft ฉันจัดเก็บบล็อกเป็นกลุ่ม (16x256x16 บล็อกเป็นกลุ่ม) เมื่อฉันสร้างชิ้นฉันใช้เทคนิคหลายขั้นตอนเพื่อตั้งค่าภูมิประเทศและวางวัตถุ ในขณะที่สร้างฉันจะเก็บ 1D array หนึ่งสำหรับ chunk แบบเต็ม (solid หรือไม่) และ 1D array ของ solid solid blocks
หลังจากรุ่นฉันทำซ้ำผ่านบล็อกทึบตรวจสอบเพื่อนบ้านของพวกเขาดังนั้นฉันสร้างใบหน้าบล็อกที่ไม่มีเพื่อนบ้านทึบเท่านั้น ฉันเก็บใบหน้าที่จะสร้างในรายการของตัวเอง (นั่นคือ 6 รายการหนึ่งใบหน้าต่อใบหน้าปกติ / ที่เป็นไปได้) เมื่อเรนเดอร์ชิ้นผมแสดงรายการทั้งหมดในอันปัจจุบันของกล้องและเฉพาะรายการที่หันกล้องในกลุ่มอื่น ๆ ทั้งหมด ฉันทำสิ่งนี้โดยการเก็บรายการทั้ง 6 รายการไว้ในบัฟเฟอร์เดียวจากนั้นฉันก็เปลี่ยนช่วงที่ฉันวาด
การใช้ 2D Atlas กับนี้เคล็ดลับเล็ก ๆ น้อย ๆ Shader แอนดรูรัสเซลปัญหาผมต้องการที่จะผสานใบหน้าที่คล้ายกันอย่างสมบูรณ์ นั่นคือถ้าพวกเขาอยู่ในรายการเดียวกัน (ปกติเหมือนกัน) อยู่ติดกันมีระดับแสงเท่ากัน ฯลฯ ฉันรู้ว่าฉันจะจบด้วยรูปสี่เหลี่ยม แต่มันควรลดจำนวนจุดยอดของฉันลง 50% หรือดีกว่าถ้าการประมาณของฉันถูกต้อง
สมมติฐานของฉันคือให้แต่ละรายการ 6 รายการเรียงลำดับตามแกนที่พวกเขาพักจากนั้นตามด้วยอีกสองแกน (รายการด้านบนของบล็อกจะเรียงตามค่า Y ตามด้วย X แล้ว Z)
ด้วยสิ่งนี้เพียงอย่างเดียวฉันสามารถรวมแถบใบหน้าได้ง่าย ๆ แต่ฉันต้องการผสานมากกว่าเพียงแค่แถบเข้าด้วยกันเมื่อเป็นไปได้ ฉันได้อ่านบนนี้ขั้นตอนวิธีการสอดคล้องโลภ แต่ฉันมีปัญหามากเข้าใจมัน
ดังนั้นคำถามของฉัน: หากต้องการรวมใบหน้าตามที่อธิบายไว้ (ไม่สนใจว่าเป็นความคิดที่ไม่ดีสำหรับภูมิประเทศ / แสงแบบไดนามิก) อาจมีอัลกอริทึมที่ใช้ง่ายกว่าหรือไม่ ฉันจะยอมรับคำตอบอย่างมีความสุขที่นำฉันผ่านอัลกอริทึมโลภในวิธีที่ง่ายกว่ามาก (ลิงค์หรือคำอธิบาย)
ฉันไม่คิดว่าประสิทธิภาพจะลดลงเล็กน้อยหากใช้งานได้ง่ายกว่าหรือดีกว่าการใช้งานแผ่น ฉันกังวลว่าอัลกอริทึมส่วนใหญ่มุ่งเน้นที่รูปสามเหลี่ยมแทนที่จะเป็นสี่คนและใช้แผนที่สองมิติแบบที่ฉันเป็นฉันไม่ทราบว่าฉันสามารถใช้รูปสามเหลี่ยมบางอย่างตามทักษะปัจจุบันของฉัน
PS: ตอนนี้ฉันคัดเฟรสตัสมาแล้วหนึ่งอันและดังที่อธิบายไว้แล้ว ฉันยังไม่บดเคี้ยวคัดและยังไม่เคยเลย
* แก้ไข: ฉันใช้เทคนิคเล็ก ๆ น้อย ๆ ของตัวเองซึ่งอาจมีชื่อ แต่ฉันก็ผ่านรายการ 6 รายการของฉันซึ่งเรียงลำดับตามแกนที่พวกเขาพักตามด้วยประเภทบล็อกแล้วตามระดับแสง ฉันวนซ้ำพวกมันสร้างสี่เหลี่ยมใหม่ขณะที่ฉันไปและขยายพวกมันไปพร้อม ๆ กัน มันไม่เหมาะสม แต่แน่นอนว่าค่อนข้างเร็วและลดยอดของฉันลงได้เกือบ 50% โดยเฉลี่ย ความคิดเห็นของ Byte56 คือตู้เสื้อผ้าฉันคิดว่าเป็นคำตอบที่แท้จริง แต่ฉันไม่สามารถเลือกได้สำหรับคำตอบ / ค่าหัว
นี่คือวิธีที่รวดเร็วและเรียบง่ายของฉันที่ฉันจัดการปัญหานี้หลังจากสร้างภูมิประเทศเริ่มต้นเต็มรูปแบบโดยไม่ต้องปรับแต่งมากนัก สมมติว่าช่องสี่เหลี่ยมที่ให้ทั้งหมดเป็นภาพเดียวกันระดับแสงปกติ ฯลฯ แต่ละสีเป็นรูปสี่เหลี่ยมที่แตกต่างกันที่ฉันต้องการแสดงผล ด้วยรายการของฉันเรียงลำดับตามที่พวกเขาเป็นนี่เป็นวิธีที่ง่าย / รวดเร็ว