การเรนเดอร์ไปข้างหน้าเป็นกระบวนการคำนวณค่าความกระจ่างสำหรับชิ้นส่วนพื้นผิวโดยตรงจากเรขาคณิตอินพุตและข้อมูลแสง การเรนเดอร์แบบแยกเป็นการประมวลผลที่แบ่งออกเป็นสองขั้นตอน: ขั้นแรกให้สร้างบัฟเฟอร์พื้นที่หน้าจอที่มีคุณสมบัติของวัสดุ (บัฟเฟอร์เรขาคณิตหรือ G-buffer) ที่สร้างขึ้นโดย rasterizing เรขาคณิตอินพุตและอันดับที่สองสร้างค่าเรเดียนสำหรับแต่ละพิกเซล บัฟเฟอร์ด้วยข้อมูลแสง
การเรนเดอร์ที่ถูกเลื่อนมักจะถูกนำเสนอเป็นการปรับการเรนเดอร์ล่วงหน้า คำอธิบายอย่างหนึ่งคือแสงมีราคาค่อนข้างแพงและหากคุณมีการหักเงินมากเกินไปคุณก็จะเป็นพิกเซลแสงที่จะไม่ปรากฏบนหน้าจอในขณะที่ถ้าคุณเก็บคุณสมบัติของวัสดุไว้ใน G-buffer และแสงหลังจากนั้น จริง ๆ แล้วปรากฏบนหน้าจอ นี่เป็นข้อได้เปรียบของการเลื่อนเวลาออกไปหรือไม่เนื่องจากคุณสามารถทำ pre-pass ในระดับลึกได้และจากนั้นจะทำการส่งเรนเดอร์พาสด้วยการทดสอบความลึกที่ตั้งไว้D3D11_COMPARISON_EQUAL
หรือGL_EQUAL
หรือเทียบเท่า
การเรนเดอร์ยังมีศักยภาพในการกำหนดตารางเวลาที่ดีขึ้นสำหรับ GPU การแยกวาร์ป / คลื่นขนาดใหญ่หนึ่งอันออกเป็นคลื่นเรขาคณิตที่เล็กกว่าจากนั้นแสงคลื่นที่เล็กลงจะช่วยเพิ่มอัตราการเข้าพักได้ในภายหลัง แต่คุณก็จบลงด้วยการใช้แบนด์วิดท์ที่มากขึ้น (เขียนช่องจำนวนมากไปยัง G-buffer แล้วอ่านกลับในช่วงแสง) แน่นอนว่าข้อมูลเฉพาะที่นี่ขึ้นอยู่กับ GPU ของคุณมาก แต่หลักการทั่วไปคืออะไร?
มีข้อควรพิจารณาเกี่ยวกับประสิทธิภาพอื่น ๆ เมื่อตัดสินใจระหว่างการเรนเดอร์ไปข้างหน้าและการเรนเดอร์ที่เลื่อนออกไปหรือไม่? (สมมติว่าเราสามารถใช้ความหลากหลายของแต่ละเทคนิคได้หากจำเป็น: เช่นเราสามารถเปรียบเทียบกระเบื้องไปข้างหน้ากับกระเบื้องที่เลื่อนออกไปเช่นกัน)