สรุป: ป่าทึบที่น่าเชื่อคือศึกบอสด้านพรอเซสซิ่ง ต้นไม้ไฮโพลีนับพัน ความโปร่งแสงซ้อนชั้น และอินสแตนซ์ทอดยาวไปจนถึงเส้นขอบฟ้า คุณชนะมันด้วยโซ่ LOD ที่มีระเบียบซึ่งจบลงที่อิมโพสเตอร์ (บิลบอร์ดที่หันเข้าหากล้องซึ่งปลอมเป็นต้นไม้ 3D จากมุมใดก็ตาม) อินสแตนซิ่งและคัลลิ่งที่รุนแรง และเทคนิคเชดดิ้งไม่กี่อย่างเพื่อให้ต้นไม้ไกลราคาถูกไม่เผยตัวเอง บทความนี้เดินผ่านโซ่ทั้งหมด ตั้งแต่เมชเต็มถึงบิลบอร์ด เทคนิคอิมโพสเตอร์แปดหน้า และวิธีทำให้ป่าที่ปรับให้เหมาะสมอย่างหนัก ไม่ดูตาย
ต้นไม้ทุกต้นที่นี่อยู่ห่างจากกล้องต่างกัน ดังนั้นทุกต้นควรมีต้นทุนต่างกัน ศิลปะของป่าราคาถูก คือการใช้พอลิกอนเฉพาะกับต้นที่อยู่ใกล้และปลอมส่วนที่เหลือได้อย่างน่าเชื่อ
แนวคิดหลัก: จ่ายตามระยะทาง
ต้นไม้ห่างไป 5 เมตรและต้นห่าง 500 เมตรไม่ควรมีต้นทุนเท่ากัน โซ่ LOD ใช้รายละเอียดเต็ม ในระยะใกล้และการแสดงแทนที่ค่อย ๆ ถูกลงตามระยะทาง จบลงที่บิลบอร์ดแบน ดังนั้นต้นทุนรวม จึงคงที่เมื่อป่าโตขึ้น
เกมทั้งหมดคือการปฏิเสธที่จะจ่ายเต็มราคาสำหรับต้นไม้ที่กล้องแทบไม่สามารถแยกได้ ในระยะใกล้ ต้นไม้เป็น เมชเต็มพร้อมการ์ดใบไม้แต่ละใบ ในระยะไกล มันเป็นพิกเซลกำมือหนึ่งที่ภาพแบนสามารถสร้างซ้ำได้อย่าง สมบูรณ์ โซ่ LOD (level-of-detail) ทำให้สิ่งนั้นเป็นทางการ: หลายเวอร์ชันของต้นไม้เดียวกันที่มีต้นทุน ลดลง สลับกันตามขนาดหน้าจอ ดังนั้นป่าที่มีต้นไม้หนึ่งหมื่นต้นมีต้นทุนโดยประมาณเท่ากับสิ่งที่ มองเห็นได้ในรายละเอียด แทนที่จะเป็นผลรวมของต้นไม้แต่ละต้นในคุณภาพเต็ม หากไม่มีมัน ความหนาแน่น จะทำให้เวลาเฟรมของคุณเชิงเส้นลงพื้น หากมี คุณสามารถผลักจำนวนต้นไม้สูงขึ้นได้มากสำหรับงบประมาณ เดียวกัน
โซ่ LOD ทีละขั้น
LOD0 เมชเต็มพร้อมการ์ดใบไม้ (ใกล้); LOD1–2 เรขาคณิตลดและใบไม้ที่ทำให้ง่าย (กลาง); LOD3 การ์ดไม่กี่ใบหรือการ์ดเดียว; LOD สุดท้ายอิมโพสเตอร์/บิลบอร์ด (ไกล) แต่ละขั้นตอนโดยประมาณ ลดต้นทุนลงครึ่งหนึ่งในขณะที่การสลับยังคงมองไม่เห็น
โซ่ LOD ของพืชพันธุ์ทั่วไปดำเนินการประมาณนี้: LOD0 เมชรายละเอียดเต็มพร้อมการ์ดใบไม้ทั้งหมด สำหรับต้นไม้ที่อยู่ข้างผู้เล่น; LOD1–LOD2 เรขาคณิตของลำต้นที่ลดลงและการ์ดใบไม้ที่ใหญ่ขึ้นและน้อยลง สำหรับระยะกลาง; LOD3 กลุ่มการ์ดที่ทำให้ง่ายอย่างมาก; และ อิมโพสเตอร์สุดท้าย (โดยพื้นฐาน เป็นภาพแบน) สำหรับทุกอย่างที่ไกล งานฝีมืออยู่ที่ ระยะการเปลี่ยน และการเบลนด์ เพื่อให้การสลับ ไม่กระโดด การเปลี่ยน LOD แบบดิเธอร์หรือครอสเฟดซ่อนสวิตช์ การกระโดดแข็งในระยะที่ผิดคือสัญญาณ บอกที่ทำลายภาพลวงตา ปรับระยะให้เข้ากับกล้องจริงของคุณ ไม่ใช่ค่าเริ่มต้น
อิมโพสเตอร์: ปลอม 3D จากทุกมุม
อิมโพสเตอร์ (อิมโพสเตอร์แปดหน้า) เรนเดอร์ล่วงหน้าต้นไม้จากมุมหลายสิบมุมเข้าสู่แอตลาส จากนั้นแสดงมุมมองที่จับได้ใกล้ที่สุดเป็นบิลบอร์ด ต่างจากบิลบอร์ดแบน มันดูถูกต้องเมื่อกล้องเคลื่อนที่ รอบ ๆ ราคาถูก แต่ 3D-ish
ปลายไกลของโซ่คือที่ที่การประหยัดที่ใหญ่ที่สุดอาศัยอยู่ และอิมโพสเตอร์คือเทคนิคฉลาดที่ทำให้มันยอมรับได้ บิลบอร์ดธรรมดา (ภาพแบนภาพเดียวที่หมุนเข้าหากล้อง) ดูดีจากด้านหน้าแต่แบนและเลื่อนอย่างไม่เป็น ธรรมชาติเมื่อคุณเคลื่อนที่ อิมโพสเตอร์แปดหน้า แก้ปัญหานี้โดยการเรนเดอร์ล่วงหน้าต้นไม้จากจุดชม หลายจุดที่จัดวางรอบทรงกลม บรรจุพวกมันเข้าสู่แอตลาสเท็กซ์เจอร์ และแสดงมุมที่จับได้ใดก็ตามที่ใกล้เคียง ที่สุดกับทิศทางกล้องปัจจุบัน (เบลนด์ระหว่างมุมที่ใกล้ที่สุดไม่กี่มุม) ผลลัพธ์อ่านเป็นต้นไม้ 3D จริง จากทุกมุมด้วยเศษเสี้ยวของต้นทุน นั่นคือเหตุผลที่อิมโพสเตอร์เป็นกระดูกสันหลังของป่าไกลที่น่าเชื่อ พวกมันถูกเบคครั้งเดียวและมีต้นทุนแทบไม่มีเพื่อวาด
ชั้นพื้นดินเพิ่มจำนวนอินสแตนซ์อย่างรวดเร็ว พืชชั้นล่างต้องการระเบียบเช่นเดียวกับต้นไม้: อินสแตนซ์ มัน, LOD มัน, และคัลมันหนัก ๆ เฟิร์นที่ 80 เมตรไม่ควรวาดเลย
อินสแตนซิ่งและคัลลิ่ง
วาดต้นไม้ที่ซ้ำกันเป็นอินสแตนซ์เพื่อให้พันต้นมีต้นทุนดรอว์คอลไม่กี่อัน และคัลอย่างรุนแรง คัลฟรัสตัมสิ่งที่อยู่นอกจอและคัลระยะทางสิ่งเล็ก อินสแตนซิ่งแก้ต้นทุน CPU คัลลิ่งหยุดคุณจากการจ่าย สำหรับสิ่งที่มองไม่เห็น
แม้ด้วย LOD ที่สมบูรณ์แบบ การส่งต้นไม้หนึ่งหมื่นต้นเป็นวัตถุแต่ละอันฝัง CPU อินสแตนซิ่งยุบสำเนา ทั้งหมดของต้นไม้เป็นดรอว์คอลกำมือหนึ่ง ซึ่งเจรจาต่อรองไม่ได้สำหรับป่าจริง (และนั่นคือสิ่งที่การเบค สแคทเทอร์เป็นอินสแตนซ์เนทีฟของเอนจินให้คุณ นอกจากนั้น คัลอย่างไร้ปรานี: การคัลฟรัสตัมทิ้งทุกสิ่งที่อยู่ นอกมุมมอง และการคัลระยะทางลบเศษพื้นดินและพืชพันธุ์เล็ก ๆ ที่เล็กเกินไปที่จะสังเกตเห็นเกินช่วงที่กำหนด โดยเฉพาะหญ้าและพืชชั้นล่างควรมีระยะคัลแข็งและใกล้ เพราะพวกมันเพิ่มจำนวนอินสแตนซ์เร็วกว่าต้นไม้ เวิร์กโฟลว์ที่ทาความหนาแน่นแล้วเบคเป็นเมชที่อินสแตนซ์แล้ว) เช่นของ Numivo ส่งมอบให้ เอนจินอย่างแน่นอนรูปแบบที่จัดชุดและคัลได้ที่ป่าทึบต้องการ
รักษาให้ป่าราคาถูกยังมีชีวิต
การปรับให้เหมาะสมอย่างหนักสามารถทำให้ป่าดูคงที่และตายได้ ต่อสู้มันด้วยลมที่ละเอียดอ่อน บน LOD ใกล้ ความแปรผันของสีและมาตราส่วนระหว่างอินสแตนซ์ และเชดดิ้งที่ป้องกันไม่ให้อิมโพสเตอร์ไกล อ่านเป็นกระดาษแข็งแบน
ความเสี่ยงของประสิทธิภาพทั้งหมดนี้คือป่าที่ทำงานได้ยอดเยี่ยมและรู้สึกไร้ชีวิต การสัมผัสราคาถูกสามอย่าง นำมันกลับมา: ลม (แอนิเมชันเวอร์เท็กซ์บน LOD ใกล้เพื่อให้พืชพันธุ์ใกล้เคลื่อนไหว แม้ว่าอิมโพสเตอร์ ไกลจะยังนิ่ง (ไม่มีใครสังเกตเห็นต้นไม้นิ่งที่ 300 เมตร) ความแปรผัน) สุ่มมาตราส่วน การหมุน และ สีอ่อนต่ออินสแตนซ์เพื่อให้ตาไม่จับความซ้ำ ต้นไม้ที่เหมือนกันคือสัญญาณของการคัดลอก-วาง และ การดูแลเชดดิ้ง บนอิมโพสเตอร์ (เบคแสงของพวกมันเพื่อไม่ให้แบนเป็นกระดาษแข็งชัดเจนเมื่อมุมดวงอาทิตย์ เปลี่ยน ใช้เวลาเฟรมที่คุณประหยัดได้ในรายละเอียดใกล้ ๆ เหล่านี้ ที่ผู้เล่นมองจริง ๆ และป่าที่ปรับให้ เหมาะสมจะรู้สึกมีชีวิตเหมือนป่าที่ไม่ได้ปรับให้เหมาะสม) ในขณะที่ทำงานเร็วขึ้นหลายเท่า
ตัวเลขภาคสนามที่ควรขโมย
- หลักการต้นทุน: จ่ายตามระยะทาง ต้นไม้ไกลไม่ควรมีต้นทุนเหมือนต้นใกล้
- โซ่ LOD: เมชเต็ม → ลด → กลุ่มการ์ด → อิมโพสเตอร์ แต่ละอัน ~ตัดต้นทุนลงครึ่ง
- อิมโพสเตอร์ = มุมที่เรนเดอร์ล่วงหน้าในแอตลาส → บิลบอร์ด 3D-ish จากทุกมุมมอง
- อินสแตนซ์ ความซ้ำ (ดรอว์คอลน้อย) + คัลแข็ง พืชพันธุ์เล็กไกล
- รักษาให้มีชีวิต: ลม LOD ใกล้ + ความแปรผันต่ออินสแตนซ์ + เชดดิ้งอิมโพสเตอร์ที่เบคแล้ว
Mini-FAQ
บิลบอร์ด vs อิมโพสเตอร์ ต่างกันอย่างไร? บิลบอร์ดเป็นภาพแบนภาพเดียวที่หันเข้าหากล้องและแบน เมื่อคุณเคลื่อนที่รอบ ๆ อิมโพสเตอร์เก็บมุมหลายมุมและแสดงมุมที่ถูกต้อง ดังนั้นมันยืนใน 3D สำหรับ สิ่งใดก็ตามที่ผู้เล่นโคจรหรือเดินผ่าน ใช้อิมโพสเตอร์ บิลบอร์ดธรรมดาดีเฉพาะสำหรับพื้นหลังไกลจริง ๆ และคงที่
ต้นไม้ต้องการ LOD กี่ระดับ? โดยทั่วไปสามถึงสี่บวกอิมโพสเตอร์ มากกว่าไม่ได้ดีกว่าโดยอัตโนมัติ แต่ละระดับคือต้นทุนการทำและหน่วยความจำ พอที่จะทำให้การสลับแต่ละครั้งเป็นก้าวเล็กที่มองไม่เห็นคือ เป้าหมาย ไม่ใช่ค่าสูงสุด
Nanite ทำให้สิ่งนี้ล้าสมัยหรือไม่? มันเปลี่ยนด้านเรขาคณิต (Nanite จัดการรายละเอียดเมชหนาแน่น โดยไม่มี LOD แบบดั้งเดิม) แต่ความโปร่งแสง (การ์ดใบไม้) ระเบียบอินสแตนซิ่ง และคัลลิ่งยังคงสำคัญ และอิมโพสเตอร์ยังคงมีประโยชน์สำหรับระยะไกล หลักการอยู่รอด เครื่องมือเปลี่ยน
อะไรฆ่าประสิทธิภาพของป่าบ่อยที่สุด? โอเวอร์ดรอว์จากการ์ดใบไม้โปร่งแสงที่ทับซ้อนกัน และพืชพันธุ์ พื้นดินที่ไม่ได้คัล กระชับการ์ดใบไม้ คัลพืชชั้นล่างในระยะใกล้ และอินสแตนซ์ทุกอย่าง ทั้งสามยึด งบประมาณส่วนใหญ่กลับคืนก่อนที่คุณจะสัมผัสเมชของต้นไม้ด้วยซ้ำ
ป่าทึบเป็นหนึ่งในสิ่งที่ลงโทษมากที่สุดในการเรนเดอร์และเป็นหนึ่งในสิ่งที่คุ้มค่าที่สุดที่จะทำให้ถูกต้อง สร้างโซ่ LOD ให้อิมโพสเตอร์รับภาระระยะไกล อินสแตนซ์และคัลอย่างไร้ปรานี และใช้การประหยัดของคุณ กับลมและความแปรผันในระยะใกล้ และคุณจะมีป่าที่ทอดยาวไปจนถึงเส้นขอบฟ้า และ รักษาเฟรมเรตของมัน

